Подтвердить что ты не робот

Не сохранять текущий сеанс bash в истории

Я заметил, что при открытии .bash_history, что он содержит только записи из моего предыдущего сеанса, кажется, что текущий сеанс добавляется только при выходе. Есть ли способ предотвратить сохранение текущей сессии? Даже сбой bash является вариантом, если вы знаете, как это сделать. Я обнаружил, что могу kill -9 выполнить этот процесс, но если есть лучший способ, я бы с удовольствием узнал.

4b9b3361

Ответ 1

Возможно, более элегантным, чем сбой bash, будет использование команды history -c для очистки истории текущего сеанса. Тогда нет ничего, что можно было бы сэкономить (даже вытирает себя из истории).

Ответ 2

Отсоедините переменную $HISTFILE

$ unset HISTFILE

Если HISTFILE не установлен, или если файл истории невозможен, история не сохраняется.
http://www.faqs.org/docs/bashman/bashref_106.html

Ответ 3

Существует еще один вариант, похожий на history -c, но который не уничтожает ничего предшествующего текущему сеансу.

Это history -r, который перезагружает историю из HISTFILE, например, если вы только вошли в систему.

Я не знаю, работает ли это или существует в любой версии bash, предшествующей 4.3.11, но, хотя было бы полезно включить его в список.

Вот пример, показывающий разницу между этой командой и -c one:

[email protected]:~$ # I Just logged in
[email protected]:~$ history | tail -n6 # this shows commands from the previous session, which ends at item 4682 as well as from the current one
 4679  2014-08-23 17:15:29 # Previous session
 4680  2014-08-23 17:15:33 # Still the previous session
 4681  2014-08-23 17:15:37 # note the datetime
 4682  2014-08-23 17:15:44 exit
 4683  2014-08-23 17:17:25 # I Just logged in
 4684  2014-08-23 17:19:54 history | tail -n6 # this shows the last command, and the ones from the previous session
[email protected]:~$ # This is a secret command, so I need to remove the traces of this session
[email protected]:~$ history -r
[email protected]:~$ history | tail -n5 # Note that I went back to item 4682, and there are no traces of history -r command
 6242  2014-08-23 17:15:29 # Previous session
 6243  2014-08-23 17:15:33 # Still the previous session
 6244  2014-08-23 17:15:37 # note the datetime
 6245  2014-08-23 17:15:44 exit
 6246  2014-08-23 17:22:26 history | tail -n5 # Note that I went back to item 4682, and there are no traces of history -r command
[email protected]:~$ history -c # instead if I issue history -c
[email protected]:~$ history # everything disappears
 5248  2014-08-23 17:23:13 history # everything disappears
[email protected]:~$

Ответ 4

Я знаю, что это старый поток. Просто хотел добавить это для завершения:

Если вы хотите, чтобы определенные команды не были сохранены, проверьте, установлена ​​ли переменная HISTCONTROL: HISTCONTROL = ignoreboth или HISTCONTROL = ignorespace

Каждая команда, начинающаяся с ведущего пробела, не будет помещаться в историю.

Только мои 2 цента.

Ответ 5

Это должно сделать:

HISTFILE=

отключить HISTFILE.

Ответ 6

Для меня работает следующее.

 export HISTFILE=/dev/null 

Обратите внимание, что перед ним есть пробел. Большинство современных дистрибутивов не будут добавлять команды, которые вводятся после пробела в историю bash. Это предотвратит появление этой строки в вашей истории.