Ubuntu: удалить часть корня .bash_history без следов

Файл .bash_history root может выглядеть так:

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

ENTER CTRL + D

[d7 ] Но если я посмотрю на .bash_history:

su
cat ~/.bash_history

#.bash_history
line 1
line 2
vim ~/.bash_history

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

Спасибо

1
задан 14 October 2015 в 18:32

1 ответ

Как уже упоминалось, вы можете использовать пробел перед вашей командой, но это зависит от переменной HISTCONTROL. Вот несколько альтернатив -

Вы можете сказать терминалу прекратить запись и начать запись истории. Это можно сделать с помощью этих команд -

set +o history      #stop recording history
set -o history      #start recording history

Если вы уже запустили некоторые команды и забыли остановить запись или использовать пробел, вы все равно можете остановить ее от записи до .bash_history, пока сеанс по-прежнему открыт. Он записывается в файл при закрытии сеанса терминала. Таким образом, вы можете удалить текущую историю сеанса непосредственно перед закрытием сеанса (до выхода из su в вашем случае). Это можно сделать с помощью этой команды -

history -c

Крайним вариантом было бы убить терминальный процесс, когда вы закончите выполнение всех команд. Вы действительно убиваете процесс, прежде чем он сможет записать историю в файл.

kill -9 $$

$$ выдаст текущий идентификатор процесса терминала, а kill -9 убьет этот процесс.

0
ответ дан 23 May 2018 в 16:40

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

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