Есть ли способ , чтобы исключить такие команды , как rm -rf
, svn revert
от того , получать хранится в Баш истории? На самом деле, я по ошибке выдал их несколько раз, хотя у меня нет намерения делать это, просто потому, что я делаю вещи быстро, и это произошло. Следовательно, это приводит к потере большого количества работы, которую я проделал до сих пор.
bash
command-history
Рави Гупта
источник
источник
Ответы:
Вы можете захотеть
$HISTIGNORE
: «Список шаблонов, разделенных двоеточиями, который используется для определения того, какие командные строки следует сохранить в списке истории». Эта строка в вашем ~ / .bashrc должна выполнить эту работу:Кроме того, вы можете добавить пробел в начале команды, чтобы исключить ее из истории. Это работает до тех пор, пока
$HISTCONTROL
содержитignorespace
илиignoreboth
, что по умолчанию в любом дистрибутиве, который я использовал.источник
y
, после всехcp
(с псевдонимомcp -i
) переходов. Так что я псевдонимy
какalias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'
... НоHISTIGNORE
это лучший способ, как это выглядит. :) Благодарность.export HISTCONTROL="ignorespace"
к своему~/.bashrc
игнорировать команды, которые начинаются с пробелов.Хотя это немного отличается от вопроса OP, когда я намеренно не хочу, чтобы команда сохранялась в истории bash, я ставлю перед ними пробел. Работает в Ubuntu и его вариантах, не уверен, работает ли он на всех системах.
источник
$HISTCONTROL
(см. Мой ответ).Я обычно убиваю свой bash-экземпляр, когда делаю вещи, которые мне не нужны в истории.
$$ представляет текущий процесс - bash, когда вы запускаете его из оболочки. Вы можете использовать $ BASHPID, но это больше печатать :-)
источник
HISTFILE=/dev/null
является лучшим вариантом.HISTFILE=
работает как в bash, так и в ksh.unset HISTFILE