Как удалить одну строку из истории?

Я работаю в Mac OSX, поэтому, я думаю, я использую bash ...?

Иногда я вводил то, о чем я не хочу вспоминать в истории. Как его удалить?

146 голосов | спросил B Seven 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 26 Sep 2012 21:41:02 +0400 2012, 21:41:02

6 ответов


243

Профилактические меры

Если вы хотите запустить команду без сохранения ее в истории, добавьте ее с дополнительным пространством

prompt$ echo saved
prompt$  echo not saved \
> #     ^ extra space

Для этого вам нужно либо ignorespace, либо ignoreboth в HISTCONTROL). Например, запустите

HISTCONTROL=ignorespace

Чтобы сделать этот параметр постоянным, поместите его в свой .bashrc.

Очистка после вскрытия

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

history

, чтобы отобразить список команд в вашей истории. Найдите номер рядом с тем, который вы хотите удалить (например, 1234) и запустите

history -d 1234
ответил jw013 26 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 26 Sep 2012 21:49:22 +0400 2012, 21:49:22
38
  1. Чтобы очистить всю историю, используйте

    history -c
    
  2. Чтобы удалить одну строку, используйте

    history -d linenumber
    
ответил soumyaranjan 9 Jpm1000000pmFri, 09 Jan 2015 15:13:01 +030015 2015, 15:13:01
4

У меня есть это в моем ~/.bashrc, что делает команду $ forget удалить предыдущую команду из истории

function forget() {                                                              
   history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);              
}
ответил Ryan Haining 3 +03002015-10-03T04:33:32+03:00312015bEurope/MoscowSat, 03 Oct 2015 04:33:32 +0300 2015, 04:33:32
4

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

ответил Weslor 4 MaramFri, 04 Mar 2016 11:19:19 +03002016-03-04T11:19:19+03:0011 2016, 11:19:19
2

Если вы хотите забыть весь сеанс bash, вы можете kill текущий процесс bash. Поскольку переменная $$ содержит pid текущей оболочки, вы можете сделать:

kill -9 $$
ответил Bruno Bronosky 26 Jpm1000000pmThu, 26 Jan 2017 20:53:33 +030017 2017, 20:53:33
0

Вам нужно написать изменения после того, как вы очистили историю. И если вы не хотите, чтобы в вашей истории была команда уничтожения истории, вам необходимо запустить команду следующим образом:

history -c && history -w && logout

Удачи.

ответил user882786 17 MarpmSat, 17 Mar 2018 20:29:50 +03002018-03-17T20:29:50+03:0008 2018, 20:29:50

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

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

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