У меня есть пара вопросов об истории терминала или командной строки, которая хранится в ~/.bash_history
.
Я могу увидеть файл в терминале с
history
командой, но если я пытаюсь открыть его сgedit bash_history
файлом, он полностью пуст. Почему?Я нашел, как удалить определенное количество строк в файле из терминала с помощью этой строки кода:
for i in {1..N}; do history -d N; done
где N - это количество строк (или команд), которые вы хотите удалить, но теперь файл истории показывает эту последнюю команду, и это не очень разумно, если вы пытаетесь раскрыть свои вещи. Итак, вопрос: как я могу дать последнюю строку кода и убедиться, что это не записывается?
Ответы:
Вы просто забыли предыдущую точку, команда для открытия файла истории терминала (bash)
Этот файл обновляется только при закрытии терминала.
Чтобы удалить последние 10 строк из этого файла и не записывать саму эту команду, откройте новый терминал и выполните следующую цепочку команд:
или
или
sed
илиhead
соответственно удаляет выбранные строки из~/.bash_history
,history -c
очищает историю терминала иexit
закрывает ее.источник
for
+sed
:head -n -N
где верхний регистрN
- количество удаляемых строк. stackoverflow.com/a/13380679/711006head -n -N testfile > testfile
просто очищает файл! Я добавил обходной путь, но он, конечно, не короче.head
не может работать на месте, какsed
. В первую очередь я искал однуsed
команду, заменяющую вашfor
цикл. На странице, на которую я ссылаюсь, есть несколько вариантов, но они не так понятны, как ваш код.Файл bash_history представляет собой скрытый файл, начинающийся с точки. Вам нужно сделать
Это откроет файл в gedit.
источник
Если вы хотите удалить только определенные части вашего журнала команд, то приведенные выше методы вполне подойдут. Если вы хотите остановить ведение журнала команды для определенного сеанса bash, введите команду
Чтобы быть более радикальным, если вы не хотите, чтобы какая-либо из ваших команд была зарегистрирована , то вы можете сделать
Обратите внимание, что первый метод будет действовать только для одного сеанса, тогда как второй метод остановит ведение журнала команд для всех будущих сеансов.
источник
Я понимаю, что на это уже есть принятый ответ, но так я делаю это с 80-х годов. Это отличный способ скрыть ваши треки, и это многофазный подход. По большей части это тот, который не замечен, если только вы действительно не обращаете внимание. Вот как это делается.
Откройте терминал / оболочку / сессию и выполните:
выйдите из оболочки, откройте терминал / оболочку / сессию и выполните: Вот несколько творческих способов навсегда стереть историю
1:
2 (создать фальшивую историю)
тогда для хорошей меры:
выйти из оболочки
откройте новую оболочку и введите
что делает его менее заметным, так это то, что если вы выполните команду ls -ratl, ~ / .bash_history в конце концов исчезнет в погоне за списком каталогов. Он не будет отображаться как ссылка, которая привлекла бы ненужное внимание. Большинство людей не делают -a в корне, что полезно, когда требуется эмуляция.
Недостатком этого подхода является то, что вы теряете способность возвращаться и восстанавливать свою историю. Фактический файл ~ / .bash_history также может оказаться в верхней части списка каталогов, поскольку со временем он может иметь действительно старую дату изменения, что само по себе может привести к обнаружению, что что-то не так.
источник
9999999 dd
для удаления все строки в файле:%d
,:1,$d
илиdG
работаете намного лучше1) бегать
sh
; это порождает частичку пепла, который вообще не записывает историю. Редактировать оттуда2) Добавить строку
HISTCONTROL=ignoreboth
к.bashrc
, и сделать ,exec bash
чтобы навсегда заменить текущую оболочку с инициализируется один, то делать все команды , которые вы не хотите войти с ведущим пространством.источник
так как я пока не могу комментировать, добавлю свои комментарии как ответ:
man history
ответит на все это.Ответ № 1 заключается в том, что история находится в памяти.
history -a
сохранить в файл немедленно.history -w
также сохранит, но может испортить другие сессии.ответ №2:,
history -a
gedit, удалите нужные строки,history -r
источник
История не сохраняется, пока вы не выйдете из оболочки. Попробуйте выйти из оболочки и снова посмотрите на .bash_history. История команд должна быть там.
источник