как я удаляю последние 5 строк в истории удара?

Как я могу удалить последние 5 строк в истории удара? Так, чтобы, когда я перезагружаю сервер Ubuntu или перезапускаю его, они не были там вообще?

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

Я работал:

history

Затем я буду видеть числа команд, например:

  489  cd ..
  490  cd .zshrc
  491  cat .zshrc

Затем я работаю, например:

history -d 489
history -c 

Затем я закрываю терминал и вновь открыл его, и я все еще вижу строку 489, он был только удален для той текущей сессии, как я удаляю его permentantly из всего продвижения сессий?

Советуйте.

8
задан 1 September 2018 в 02:02

5 ответов

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

Существует файл с именем: ~/.bash_history, в котором содержится история ваших предыдущих сеансов терминала, при каждом закрытии терминала ваша история будет там сохраняться.

В то же время история ваших старых сессий вместе с текущей сессией временно доступна командам history, пока вы не закроете терминал, который затем будет сохранен в файл ~/.bash_history.

Таким образом, если вы удалите 5 строк в конце ~/.bash_history, то закрытие терминала приведет к тому, что ваша текущая команда будет доступна на следующих сессиях.

Так что если я сделаю wc для .bash_history:

wc -l ~/.bash_history

Большую часть времени я получу меньшее число, чем history | wc -l.

Если вы хотите удалить последние 5 строк файла, вы можете использовать эту команду:

for i in {1..5}; do sed -i '$d' .bash_history; done;

И если вы хотите сохранить всю историю, кроме последних 5 команд, выпущенных в текущем сеансе run:

history | awk '{ print $2 }' | head -n -5 > .bash_history

Не забудьте также запустить history -c.

6
ответ дан 23 November 2019 в 05:24

Удаление из файла истории можно выполнить с помощью командной строки в два этапа:

Нажатие history -d <line_number> удаляет указанную строку из истории в памяти. Нажатие history -w записывает текущую историю в памяти в файл ~ / .bash_history. Два шага вместе навсегда удаляют строку из истории в памяти, а также из файла .bash_history.

Ссылка: StackExchange

8
ответ дан 23 November 2019 в 05:24

Я думаю, вам нужно попробовать это очень легко & amp; простой.

  1. Как удалить историю без следа

    history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
    
  2. , если вы хотите выполнить команду, не оставив следа.

    history -d $((HISTCMD-1)) && type_your_command_here_and_execute
    
5
ответ дан 23 November 2019 в 05:24

Откройте ~/.bash_history в вашем редакторе и удалите последние 5 строк.

0
ответ дан 23 November 2019 в 05:24

1. Запишите текущую историю в файл истории, перезаписав содержание файла истории

история-w

2. история редактирования, как Вы желаете

vi ~/.bash_history

3. Считайте содержание файла истории и используйте их в качестве текущей истории.

история-r

0
ответ дан 23 November 2019 в 05:24

Другие вопросы по тегам:

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