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

.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

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

Спасибо

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

2 ответа

Использование:

su
 vim ~/.bash_history

История не экономит команду, если она имеет пространство перед ним.

<час>

Это зависит от HISTCONTROL переменная. По умолчанию (для корня) это ignoredups:ignorespace.

4
ответ дан 30 September 2019 в 08:00

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

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

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

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

history -c

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

kill -9 $$

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

1
ответ дан 30 September 2019 в 08:00

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

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