Вы хотите использовать -p
опция; -D
для динамического перенаправления портов, то есть создавая перенаправление портов на существующем соединении.
Если Вы хотите выполнить команду, не сохраняя его в истории, предварительно ожидайте его с дополнительным пространством
prompt$ echo saved
prompt$ echo not saved \
> # ^ extra space
Чтобы это работало, Вам нужно также ignorespace
или ignoreboth
в HISTCONTROL
. Например, выполненный
HISTCONTROL=ignorespace
Для установки этой персистентной настройки вставьте его Ваш .bashrc
.
Если Вы уже выполнили команду и хотите удалить ее из истории, сначала используйте
history
отобразить список команд в Вашей истории. Найдите число рядом с тем, которое Вы хотите удалить (например, 1234) и выполнить
history -d 1234
Кроме того, если строка, которую Вы хотите удалить, была уже записана в Ваш $HISTFILE (который обычно происходит, когда Вы закончите сессию по умолчанию), необходимо будет записать обратно к $HISTFILE, или строка вновь появится при открытии новой сессии:
history -w
Чтобы очистить всю свою историю, используйте
историю -c.
Чтобы удалить одну строку, используйте
history -d linenumber.
У меня есть это в моем ~ / .bashrc
, что заставляет команду $ забудьте
удалить предыдущую команду из история
function forget() {
history -d $(expr $(history | tail -n 1 | grep -oP '^ \d+') - 1);
}
Вы всегда можете редактировать и удалять записи из ~/.bash_history
, полезно, когда вы хотите удалить либо одну запись, либо несколько
Если вы хотите забыть весь сеанс bash, вы можете убить
текущий процесс bash. Так как переменная $$
содержит pid
текущей оболочки, вы можете:
kill -9 $$
Вам необходимо записать изменения после очистки истории. И если вы не хотите, чтобы в вашей истории была команда очистки истории, вам нужно запустить такую команду:
history -c && history -w && logout
Удачи.
Если вы хотите удалить ряд строк истории, вы можете использовать приведенный ниже скрипт.
В этом примере вывод истории будет удален со строки 1 по строку 150.
for i in `history | awk 'NR > 1 && NR <=150{print $1}'`; do history -d $i; done
Чтобы удалить одну строку из файла истории, используйте параметр -d. Например, если вы хотите очистить команду, в которой вы ввели открытый текстовый пароль -, как в приведенном выше сценарии, найдите номер строки в файле истории и выполните эту команду.
$ history -d 2038
Чтобы удалить или очистить все записи из истории bash, используйте приведенную ниже команду history с параметром -c.
$ history -c
Кроме того, вы можете использовать приведенную ниже команду, чтобы навсегда удалить историю всех последних выполненных команд в файле.
$ cat /dev/null > ~/.bash_history
В Bash 5 также можно удалить диапазон
history -d 511-520
1 -в типе терминала bash
history
#Список всех команд в истории.bash _файл истории с номерами строк
бывший:
...
987 cd
988 ssh x@127.0.0.1
990 exit
991 cd
2 -выберите номер строки CMD, которую вы хотите удалить
history -d 988
Обратите внимание, :если вы хотите удалить, например, последние 3 CMD, просто выберите номер третьей строки снизу, например :988, и повторите CMD history -d 988
3 раза подряд.
В Ubuntu (, но я почти уверен, что это будет работать и для других дистрибутивов Linux, а также для MacOS таким же образом )файл истории bash можно просто отредактировать в произвольном текстовом редакторе:
$ nano ~/.bash_history
Если вы не знаете, где он хранится, вы можете найти его следующим образом:
$ echo $HISTFILE
Или вы можете сделать это более общим способом:
$ nano $HISTFILE
history -a
, в этом случае это уже записано в файл истории, а не на выходе в соответствии с нормальной конфигурацией. Конкретно: mywiki.wooledge.org/BashFAQ/088 – jordanm 22.10.2012, 06:54history -w
. Иначе, когда Вы выходите, удаленная строка все еще там! – Felipe Alvarez 18.01.2017, 04:39history -w
послеhistory -d {num}
был точно, в чем я нуждался - что критический лакомый кусочек должен быть добавлен к ответу, иначе пользователь мог бы думать, что временный файл удаляет из текущей оболочки, является на самом деле постоянным. – michael 11.07.2017, 06:58