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

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

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

217 голосов | спросил hd. 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 09:44:30 +0400 2012, 09:44:30

8 ответов


284

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

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

cat /dev/null > ~/.bash_history

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

Однако

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

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

cat /dev/null > ~/.bash_history && history -c && exit
ответил devav2 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 09:51:45 +0400 2012, 09:51:45
114

Что делать:

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

history -c
history -w

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

Ссылка: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/

ответил callpraths 12 AMpFri, 12 Apr 2013 00:55:55 +040055Friday 2013, 00:55:55
43

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

history -c && history -w

Удачи!

ответил Edwin Jose 12 PM00000040000000931 2013, 16:39:09
19

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

ответил Peter Eijlander 10 MarpmSun, 10 Mar 2013 22:10:33 +04002013-03-10T22:10:33+04:0010 2013, 22:10:33
10

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

ответил Anwar 23 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 23 Sep 2012 10:18:11 +0400 2012, 10:18:11
5

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

history -c

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

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

history -c && history -w

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

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

ответил mobiGeek 10 J000000Thursday14 2014, 21:05:42
4
rm ~/.bash_history; history -c; logout

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

ответил stolsvik 1 +04002013-10-01T23:16:15+04:00312013bEurope/MoscowTue, 01 Oct 2013 23:16:15 +0400 2013, 23:16:15
0

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

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

rm -f .bash_history

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

ответил Mixed IT Prof 30 PM000000100000000431 2014, 22:06:04

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132