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

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

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

Я запустил:

history

Затем я увижу номера команд, например:

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

Затем я запускаю, например:

history -d 489 history -c

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

Пожалуйста, советую.

5
задан 11 April 2017 в 01:08

16 ответов

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

Существует файл с именем: ~/.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, выпущенной в текущий сеанс:

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

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

3
ответ дан 22 May 2018 в 23:46
  • 1
    Удалит ли это только последние 5 команд в bash? И постоянно? например поэтому, когда я закрываю терминал и повторно заходил в ssh, последние 5 не будут там? – Anthony Pinto 11 April 2017 в 01:15
  • 2
    пс. сначала попробовал его локально и получил «голова: незаконный подсчет строк - -5». – Anthony Pinto 11 April 2017 в 01:15
  • 3
    Что-то вроде работы, когда я запускаю историю -wd 493, например, и она работает, чтобы удалить ее навсегда, однако, тогда в истории у меня есть куча истории -wd и т. Д. ... так что это противоречиво, как я могу ясно, например последние 5 команд за один выстрел были бы лучшими, а затем фактическая команда, которую я использовал для их очистки – Anthony Pinto 11 April 2017 в 01:20
  • 4
    Проверьте новый код. отлично работает для меня. – Ravexina 11 April 2017 в 01:25
  • 5
    Говорит: «head: незаконный подсчет строк - -5». все еще. :( – Anthony Pinto 11 April 2017 в 01:26

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

Существует файл с именем: ~/.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, выпущенной в текущий сеанс:

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

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

3
ответ дан 18 July 2018 в 15:13

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

Существует файл с именем: ~/.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, выпущенной в текущий сеанс:

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

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

3
ответ дан 24 July 2018 в 20:35

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

Существует файл с именем: ~/.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, выпущенной в текущий сеанс:

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

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

3
ответ дан 31 July 2018 в 23:37

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

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

Ссылка: StackExchange

1
ответ дан 22 May 2018 в 23:46
  • 1
    Это намного ближе, поэтому я запускаю историю -wd 493, например, и она работает, чтобы удалить ее навсегда, однако, тогда в истории у меня есть куча истории -wd и т. Д. ... так что это противоречиво, как я могу очистить например последние 5 команд всего за один выстрел были бы лучше, а затем фактическая команда, которую я использовал, чтобы очистить их. – Anthony Pinto 11 April 2017 в 01:18
  • 2
    Нет ли страницы истории? Sry Я в Windows .... – EODCraft Staff 11 April 2017 в 01:20
  • 3
    @EODCraftStaff Тип man и название командного руководства, которое вы хотите увидеть. В этом случае: man history. – L. D. James 11 April 2017 в 01:26
  • 4
    Используйте пробел перед командой удаления истории, и он не войдет в вашу историю после удаления содержимого из истории. Кроме того, kill -s 9 $$, когда вы закончите. – Stephen 11 April 2017 в 03:13

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

0
ответ дан 22 May 2018 в 23:46
  • 1
    Не так хорошо с VIM - я могу запустить, историю -wd 1, history -wd 2, history -wd 3, history -wd 4, history -wd 5, а затем history -c? Тогда в следующий раз, когда я открою все 5, вы уйдете плюс команды для этого сеанса, чтобы удалить их? – Anthony Pinto 11 April 2017 в 01:24
  • 2
    Если вы хотите скрыть команды из истории, используйте переменную HISTIGNORE, например. в вашем .bashrc, HISTIGNORE = 'clear: history: ls: cd' – Nick Rodriguez 11 April 2017 в 01:33
  • 3
    Вы можете использовать gedit ~ / .bash_history, не нужно использовать vim или nano. – EODCraft Staff 11 April 2017 в 01:41

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

Как удалить историю без какой-либо трассы
history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
, если вы хотите исключить команду, не оставляя следов.
history -d $((HISTCMD-1)) && type_your_command_here_and_execute
0
ответ дан 22 May 2018 в 23:46
  • 1
    (2.) не отвечает на вопрос, и было бы намного проще добавить команду traceless с символом пробела, чтобы опустить ее дополнение к истории. – David Foerster 20 November 2017 в 12:50

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

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

Ссылка: StackExchange

2
ответ дан 18 July 2018 в 15:13

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

0
ответ дан 18 July 2018 в 15:13

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

Как удалить историю без какой-либо трассы history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete , если вы хотите исключить команду, не оставляя следов. history -d $((HISTCMD-1)) && type_your_command_here_and_execute
0
ответ дан 18 July 2018 в 15:13

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

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

Ссылка: StackExchange

2
ответ дан 24 July 2018 в 20:35
  • 1
    Это намного ближе, поэтому я запускаю историю -wd 493, например, и она работает, чтобы удалить ее навсегда, однако, тогда в истории у меня есть куча истории -wd и т. Д. ... так что это противоречиво, как я могу очистить например последние 5 команд всего за один выстрел были бы лучше, а затем фактическая команда, которую я использовал, чтобы очистить их. – Anthony Pinto 11 April 2017 в 01:18
  • 2
    Нет ли страницы истории? Sry Я в Windows .... – EODCraft Staff 11 April 2017 в 01:20
  • 3
    @EODCraftStaff Тип man и название командного руководства, которое вы хотите увидеть. В этом случае: man history. – L. D. James 11 April 2017 в 01:26
  • 4
    Используйте пробел перед командой удаления истории, и он не войдет в вашу историю после удаления содержимого из истории. Кроме того, kill -s 9 $$, когда вы закончите. – Stephen 11 April 2017 в 03:13

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

0
ответ дан 24 July 2018 в 20:35
  • 1
    Не так хорошо с VIM - я могу запустить, историю -wd 1, history -wd 2, history -wd 3, history -wd 4, history -wd 5, а затем history -c? Тогда в следующий раз, когда я открою все 5, вы уйдете плюс команды для этого сеанса, чтобы удалить их? – Anthony Pinto 11 April 2017 в 01:24
  • 2
    Если вы хотите скрыть команды из истории, используйте переменную HISTIGNORE, например. в вашем .bashrc, HISTIGNORE = 'clear: history: ls: cd' – Nick Rodriguez 11 April 2017 в 01:33
  • 3
    Вы можете использовать gedit ~ / .bash_history, не нужно использовать vim или nano. – EODCraft Staff 11 April 2017 в 01:41

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

Как удалить историю без какой-либо трассы history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete , если вы хотите исключить команду, не оставляя следов. history -d $((HISTCMD-1)) && type_your_command_here_and_execute
0
ответ дан 24 July 2018 в 20:35
  • 1
    (2.) не отвечает на вопрос, и было бы намного проще добавить команду traceless с символом пробела, чтобы опустить ее дополнение к истории. – David Foerster 20 November 2017 в 12:50

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

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

Ссылка: StackExchange

2
ответ дан 31 July 2018 в 23:37
  • 1
    Это намного ближе, поэтому я запускаю историю -wd 493, например, и она работает, чтобы удалить ее навсегда, однако, тогда в истории у меня есть куча истории -wd и т. Д. ... так что это противоречиво, как я могу очистить например последние 5 команд всего за один выстрел были бы лучше, а затем фактическая команда, которую я использовал, чтобы очистить их. – Anthony Pinto 11 April 2017 в 01:18
  • 2
    Нет ли страницы истории? Sry Я в Windows .... – EODCraft Staff 11 April 2017 в 01:20
  • 3
    @EODCraftStaff Тип man и название командного руководства, которое вы хотите увидеть. В этом случае: man history. – L. D. James 11 April 2017 в 01:26
  • 4
    Используйте пробел перед командой удаления истории, и он не войдет в вашу историю после удаления содержимого из истории. Кроме того, kill -s 9 $$, когда вы закончите. – Stephen 11 April 2017 в 03:13

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

0
ответ дан 31 July 2018 в 23:37
  • 1
    Не так хорошо с VIM - я могу запустить, историю -wd 1, history -wd 2, history -wd 3, history -wd 4, history -wd 5, а затем history -c? Тогда в следующий раз, когда я открою все 5, вы уйдете плюс команды для этого сеанса, чтобы удалить их? – Anthony Pinto 11 April 2017 в 01:24
  • 2
    Если вы хотите скрыть команды из истории, используйте переменную HISTIGNORE, например. в вашем .bashrc, HISTIGNORE = 'clear: history: ls: cd' – Nick Rodriguez 11 April 2017 в 01:33
  • 3
    Вы можете использовать gedit ~ / .bash_history, не нужно использовать vim или nano. – EODCraft Staff 11 April 2017 в 01:41

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

Как удалить историю без какой-либо трассы history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete , если вы хотите исключить команду, не оставляя следов. history -d $((HISTCMD-1)) && type_your_command_here_and_execute
0
ответ дан 31 July 2018 в 23:37
  • 1
    (2.) не отвечает на вопрос, и было бы намного проще добавить команду traceless с символом пробела, чтобы опустить ее дополнение к истории. – David Foerster 20 November 2017 в 12:50

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

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