Как полностью очистить историю bash?

201

Я хочу очистить все перед командой из истории моего сервера. Я использую history -c , кажется, все вещи очищены, но когда я ssh на сервер, все команды все еще существуют.

Как я могу удалить их навсегда?

    
задан hd. 23.09.2012 в 07:44
источник

8 ответов

270

Файл ~/.bash_history содержит историю.

Чтобы полностью очистить историю bash на сервере, откройте терминал и введите

cat /dev/null > ~/.bash_history

Другим альтернативным способом является ссылка ~/.bash_history на /dev/null

Однако

Один из раздражающих побочных эффектов состоит в том, что записи истории имеют копию в памяти , и при выходе из нее она будет сброситься обратно в файл.

Чтобы обойти это, используйте следующую команду (работая для меня):

cat /dev/null > ~/.bash_history && history -c && exit
    
ответ дан devav2 23.09.2012 в 07:51
источник
102

Что делать:

В каждый откройте оболочку bash (вы можете открыть несколько терминалов):

history -c
history -w

Почему: Как отмечено выше, history -c опустошает файл ~/.bash_history . Важно отметить, что оболочка bash не сразу обновляет историю до файла bash_history. Поэтому важно: (1) очистить историю до файла и (2) очистить историю, во всех терминалах . Это то, что делают команды выше.

Ссылка: Ссылка

    
ответ дан callpraths 11.04.2013 в 22:55
41

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

history -c && history -w

Удачи!

    
ответ дан Edwin Jose 12.08.2013 в 14:39
19

Еще один гораздо более простой: запуск history -c в командной строке терминала и исчезновение - это все записи в файле bash_history .

    
ответ дан Peter Eijlander 10.03.2013 в 19:10
9

Другой способ сделать это - удалить файл ~/.bash_history , используя команду rm ~/.bash_history . Когда вы входите в другое время, файл .bash_history будет автоматически создан.

    
ответ дан Anwar 23.09.2012 в 08:18
4

Очистите историю текущей оболочки:

history -c

Когда вы выходите из системы, ваша текущая история оболочки добавляется к ~ / .bash_history, которая является кешем предыдущих историй снарядов, до максимального числа (см. HISTFILESIZE в «man bash»).

Если вы хотите полностью удалить историю, то вам, по существу, нужно выгрузить ~ / .bash_history, о которой многие из вышеперечисленных записей предложили. Например:

history -c && history -w

Это очищает историю текущей оболочки, а затем заставляет историю текущей (shell) текущей оболочки перезаписывать ~ / .bash_history .... или, если быть более точным, она заставляет ее перезаписывать HISTFILE (по умолчанию это ~ / .bash_history) .

Надеюсь, что это поможет.

    
ответ дан mobiGeek 10.07.2014 в 19:05
4
rm ~/.bash_history; history -c; logout

Теперь войдите в систему и убедитесь, что ваша стрелка не дает вам ничего.

    
ответ дан stolsvik 01.10.2013 в 21:16
0

Попробуйте этот

отредактируйте свой .profile и добавьте строку ниже в конце файла

rm -f .bash_history

таким образом, каждый раз, когда вы входите в систему, он автоматически удалит ваш файл .bash_history. Добавление опции -r recursive remove кажется опасным и не требуется.

    
ответ дан Mixed IT Prof 30.08.2014 в 20:06