.bash_history файл корня может быть похожим:
line 1
line 2
line 3
line 4
Теперь я удаляю строки 3 и 4
su
vim ~/.bash_history
#delete line 3 und 4 with dd
line 1
line 2
:wq
ВОЙТИ
CTRL + D
Но если я смотрю теперь на .bash_history:
su
cat ~/.bash_history
#.bash_history
line 1
line 2
vim ~/.bash_history
Таким образом, как я могу удалить только часть истории без последней строки, показывающей, что я отредактировал файл.
Спасибо
Использование:
su
vim ~/.bash_history
История не экономит команду, если она имеет пространство перед ним.
<час> Это зависит от HISTCONTROL
переменная. По умолчанию (для корня) это ignoredups:ignorespace
.
Как уже упомянуто Вы могли использовать пространство перед своей командой, но это зависит от HISTCONTROL
переменная. Вот некоторые альтернативы -
Можно на самом деле сказать терминалу останавливать и начинать записывать историю. Это может быть сделано с помощью этих команд -
set +o history #stop recording history
set -o history #start recording history
Если Вы уже выполнили некоторые команды и забыли прекращать записывать или использовать пространство, можно все еще мешать ему быть записанными в .bash_history
пока заседание все еще открыто. Это записано в файл, когда Вы закрыли терминальный сеанс. Таким образом, можно удалить текущую историю сессии прежде, чем закрыть сеанс (прежде чем выход su
в Вашем случае). Это может быть сделано с помощью этой команды -
history -c
Экстремальная опция состояла бы в том, чтобы уничтожить терминальный процесс, когда Вы сделаны, выполнив все команды. Вы в основном уничтожаете процесс, прежде чем он сможет записать историю в файл.
kill -9 $$
$$
даст текущий терминальный идентификатор процесса и kill -9
уничтожит тот процесс.