Я работаю в Mac OSX, поэтому я думаю, что я использую Bash ...?
Иногда я вхожу в то, что не хочу, чтобы меня запомнили в истории. Как мне это убрать?
bash
shell
command-line
command-history
Б Семерка
источник
источник
Ответы:
Профилактические меры
Если вы хотите выполнить команду, не сохраняя ее в истории, добавьте ее с дополнительным пробелом
Чтобы это работало, вам нужно либо в,
ignorespace
либоignoreboth
вHISTCONTROL
. Например, запуститьЧтобы сделать этот параметр постоянным, поместите его в свой
.bashrc
.Посмертная уборка
Если вы уже выполнили команду и хотите удалить ее из истории, сначала используйте
отобразить список команд в вашей истории. Найдите номер рядом с тем, который вы хотите удалить (например, 1234), и запустите
Кроме того, если строка, которую вы хотите удалить, уже записана в ваш $ HISTFILE (что обычно происходит, когда вы завершаете сеанс по умолчанию), вам нужно будет выполнить обратную запись в $ HISTFILE, или эта строка появится снова, когда вы откроете новую сессия:
источник
history -a
в этом случае, в этом случае он уже записан в файл истории, а не при выходе при нормальной конфигурации. В частности: mywiki.wooledge.org/BashFAQ/088history -w
. В противном случае при выходе удаленная строка все еще там!history -w
afterhistory -d {num}
было именно тем, что мне было нужно - этот критический лакомый кусочек должен быть добавлен к ответу, иначе пользователь может подумать, что временное удаление из текущей оболочки на самом деле является постоянным.history -w
необходим для записей, которые уже были записаны в.bash_history
файл. Как воспроизвести (например, на CentOS 7 со стандартной конфигурацией): 1. войдите 2. введите командуecho foo
3. выйдите из системы 4. снова войдите в систему 5. удалите запись дляecho foo
6. выйдите из системы 7. снова войдите в систему: запись все еще там. В зависимости от того, как вы конфигурируете свою историю Bash, возможно, вы можете воспроизвести эту проблему другими способами - например, если вы провоцируете запись истории перед выходом из системы.Чтобы очистить всю свою историю, используйте
Чтобы удалить одну строку, используйте
источник
У меня есть это в моем
~/.bashrc
, что делает команду$ forget
удалить предыдущую команду из историиисточник
history -d $( history | tail -n 1 | cut -f 1 -d " " )
будет проще?history | tail -n1
является самойhistory
командой, поэтому удаление этого номера приводит к неправильной записи. Тем не менее,history -d $( history | awk 'END{print $1-1}' )
объединяет выбор линии, выбор поля и вычитание.Вы всегда можете редактировать и удалять записи
~/.bash_history
, полезно, когда вы хотите удалить одну запись или более одной записиисточник
Если вы хотите забыть весь сеанс bash, вы можете
kill
использовать текущий процесс bash. Поскольку переменная$$
содержитpid
текущую оболочку, вы можете сделать:источник
Вам нужно написать изменения после того, как вы очистили историю. И если вы не хотите, чтобы в вашей истории была команда стереть историю, вам нужно выполнить такую команду:
history -c && history -w && logout
Удачи.
источник
источник