Відповіді:
Ви можете змінити параметри Ubuntu за замовчуванням, встановивши дві змінні (HISTIGNORE a HISTCONTROL), використовуючи команди, як показано нижче:
HISTIGNORE='!( *)'
HISTCONTROL=ignoredups
HISTCONTROL=ignoredups
змінює поведінку історії лише ігнорувати повторювані рядки, а не ігнорувати рядки, починаючи з пробілу. (Ви також можете встановити HISTCONTROL на порожній рядок (з HISTCONTROL=
), якщо ви хочете зберігати дублікати, але це зазвичай не потрібно.)
HISTIGNORE='!( *)'
змушує історію ігнорувати кожен рядок, який не починається з пробілу: ( *)
відповідатиме кожному рядку, починаючи з пробілу, але ведучий !
заперечує матч, тому він відповідає всім, що не починається з пробілу. І все, що відповідає малюнку HISTIGNORE, буде ігноруватися історією. (Цей останній варіант вимагає, щоб bash запускався з extglob
увімкнутим, з shopt -s extglob
, але це налаштування за замовчуванням для Ubuntu.)
Якщо ви хочете зробити це постійним, не забудьте вставити вищевказані дві команди у свої ~/.bashrc
.
HISTIGNORE='ls*:cd*'
, що змусить історію ігнорувати кожен рядок, починаючи з ls
або cd
, ви можете розширити цей список іншими командами, просто поставте :
між командами . Але не забувайте, що функція відкликання команд, до якої ви можете отримати доступ за допомогою клавіші зі стрілкою вгору, також використовує цю історію, тому якщо ви встановите щось ігноруване, ви не зможете згадати ці ігноровані команди за допомогою " стрілка вгору".
ssh-copy-id
або ssh-keygen
. Увімкнено HISTIGNORE
, я включив " ssh\ *
" з іншими своїми ігнорованими командами. Уникнення пробілу, очевидно, є обов'язковим.
" Команди, виконані в терміналі з префіксом із порожнім пробілом, не записуються у файл історії команд "
Так вони є.
.bashrc
.. Мені потрібно було, щоб запобігти запису bash усіхcd
s,ls
s та інших щоденних команд, які я використовую; і для тих кількох команд, які мені потрібні в історії, я тепер можу використовувати префікс ..