У меня есть пара вопросов о истории терминала или командной строки, которая хранится в ~/.bash_history.
Я могу видеть файл в терминале с помощью команды history, но если я попытаюсь открыть он с gedit bash_history файл полностью пуст. Зачем? Я нашел, как удалить определенное количество строк в файле из терминала с помощью этой строки кода:for i in {1..N}; do history -d N; done
где N - количество строк (или команд), которые вы хотите удалить, но теперь в файле истории отображается это последнее и это не очень умно, если вы пытаетесь покрыть свои вещи. Итак, вопрос: как я могу дать последнюю строку кода и убедиться, что это не записывается? gedit ~/.bash_history
. Этот файл обновляется только при закрытии терминала. Чтобы удалить последние 10 строк из этого файла и не получить эту команду самостоятельно, откройте новый терминал и выполните следующую цепочку команд: sed -n -e :a -e '1,10!{P;N;D;};N;ba' ~/.bash_history && history -c && exit
или for i in {1..10}; do sed -i '$d' ~/.bash_history; done && history -c && exit
или head -n -10 ~/.bash_history > ~/.b_h_2 && mv ~/.b_h_2 ~/.bash_history && history -c && exit
sed или head соответственно удаляет выбранные строки из ~/.bash_history, history -c удаляет историю терминала, а exit закрывает ее. gedit ~/.bash_history
. Этот файл обновляется только при закрытии терминала. Чтобы удалить последние 10 строк из этого файла и не получить эту команду самостоятельно, откройте новый терминал и выполните следующую цепочку команд: sed -n -e :a -e '1,10!{P;N;D;};N;ba' ~/.bash_history && history -c && exit
или for i in {1..10}; do sed -i '$d' ~/.bash_history; done && history -c && exit
или head -n -10 ~/.bash_history > ~/.b_h_2 && mv ~/.b_h_2 ~/.bash_history && history -c && exit
sed или head соответственно удаляет выбранные строки из ~/.bash_history, history -c удаляет историю терминала, а exit закрывает ее. gedit ~/.bash_history
. Этот файл обновляется только при закрытии терминала. Чтобы удалить последние 10 строк из этого файла и не получить эту команду самостоятельно, откройте новый терминал и выполните следующую цепочку команд: sed -n -e :a -e '1,10!{P;N;D;};N;ba' ~/.bash_history && history -c && exit
или for i in {1..10}; do sed -i '$d' ~/.bash_history; done && history -c && exit
или head -n -10 ~/.bash_history > ~/.b_h_2 && mv ~/.b_h_2 ~/.bash_history && history -c && exit
sed или head соответственно удаляет выбранные строки из ~/.bash_history, history -c удаляет историю терминала, а exit закрывает ее. Файл bash_history является скрытым файлом, начиная с точки. Вам нужно сделать
gedit ~/.bash_history
. Это откроет файл в gedit.
Если вы хотите удалить только определенные части вашего командного журнала, то указанные выше методы просто прекрасны. Если вы хотите остановить ведение журнала команд для определенного сеанса bash, выполните команду
unset HISTFILE
Чтобы быть более резким, если вы определенные части вашего журнала команд , то вы может сделать
rm ~/.bash_history
ln -s /dev/null ~/.bash_history
Обратите внимание, что первый метод будет действовать только для одного сеанса, тогда как второй метод остановит ведение журнала команд для всех будущих сеансов.
Я понимаю, что у этого уже есть принятый ответ, но я так делаю это с 80-х годов. Это отличный способ скрыть ваши треки, и это многофазный подход. По большей части это тот, который не замечается, если он действительно не обращает внимания. Вот как это делается.
Откройте терминал / оболочку / сеанс и выполните:
chmod 444 ~/.bash_history
выйдите из оболочки, откройте терминал / оболочку / сеанс и выполните: Вот несколько объявлений способы продолжить стирание истории
vi ~/.bash_history
9999999 dd
<esc>wq!
sudo echo "which ls" > ~/.bash_history
sudo echo "cd ~/;ls" >> ~/.bash_history
, затем для хорошей меры: [ ! d5]
chmod 444 ~/.bash_history
выйти из оболочки
открыть новую оболочку и ввести
history
, что делает ее менее заметной, если вы делаете ls -ratl, ~ / .bash_history в конечном итоге исчезнет в погремушке списка каталогов. Он не будет отображаться как ссылка, которая привлечет ненужное внимание.
Недостатком этого подхода является то, что вы теряете возможность вернуться и восстановить свою историю. фактический файл ~ / .bash_history также может оказаться в верхней части списка каталогов, так как может закончиться очень старой датой модификации с течением времени, что само по себе может привести к обнаружению того, что что-то не так.
1) Запустить sh; это порождает подоболочку золы, которая вообще не записывает историю. Отредактируйте оттуда
2) Добавьте строку HISTCONTROL=ignoreboth в .bashrc и сделайте exec bash, чтобы навсегда заменить текущую оболочку на повторную инициализацию, затем выполните все команды, которые вы не хотите регистрировать с помощью ведущее пространство.
, так как я пока не комментирую комментарий, добавлю свои комментарии в качестве ответа:
man history ответит на все.
ответ на # 1 заключается в том, что история находится в памяти. history -a, чтобы сохранить файл немедленно. history -w также сохранит, но может испортить другие сеансы.
ответить # 2: history -a, gedit, удалить строки, которые вы хотите, history -r
История не сохраняется до выхода из оболочки. Попробуйте выйти из оболочки, а затем снова взгляните на .bash_history. Там должна быть история команд.
Я понимаю, что у этого уже есть принятый ответ, но я так делаю это с 80-х годов. Это отличный способ скрыть ваши треки, и это многофазный подход. По большей части это тот, который не замечается, если он действительно не обращает внимания. Вот как это делается.
Откройте терминал / оболочку / сеанс и выполните:
chmod 444 ~/.bash_history
выйдите из оболочки, откройте терминал / оболочку / сеанс и выполните: Вот несколько объявлений способы продолжить стирание истории
vi ~/.bash_history
9999999 dd
<esc>wq!
sudo echo "which ls" > ~/.bash_history
sudo echo "cd ~/;ls" >> ~/.bash_history
, затем для хорошей меры: [ ! d5] chmod 444 ~/.bash_history
выйти из оболочки
открыть новую оболочку и ввести
history
, что делает ее менее заметной, если вы делаете ls -ratl, ~ / .bash_history в конечном итоге исчезнет в погремушке списка каталогов. Он не будет отображаться как ссылка, которая привлечет ненужное внимание.
Недостатком этого подхода является то, что вы теряете возможность вернуться и восстановить свою историю. фактический файл ~ / .bash_history также может оказаться в верхней части списка каталогов, так как может закончиться очень старой датой модификации с течением времени, что само по себе может привести к обнаружению того, что что-то не так.
, так как я пока не комментирую комментарий, добавлю свои комментарии в качестве ответа:
man history ответит на все.
ответ на # 1 заключается в том, что история находится в памяти. history -a, чтобы сохранить файл немедленно. history -w также сохранит, но может испортить другие сеансы.
ответить # 2: history -a, gedit, удалить строки, которые вы хотите, history -r
Файл bash_history является скрытым файлом, начиная с точки. Вам нужно сделать
gedit ~/.bash_history
. Это откроет файл в gedit.
1) Запустить sh; это порождает подоболочку золы, которая вообще не записывает историю. Отредактируйте оттуда
2) Добавьте строку HISTCONTROL=ignoreboth в .bashrc и сделайте exec bash, чтобы навсегда заменить текущую оболочку на повторную инициализацию, затем выполните все команды, которые вы не хотите регистрировать с помощью ведущее пространство.
История не сохраняется до выхода из оболочки. Попробуйте выйти из оболочки, а затем снова взгляните на .bash_history. Там должна быть история команд.
Если вы хотите удалить только определенные части вашего командного журнала, то указанные выше методы просто прекрасны. Если вы хотите остановить ведение журнала команд для определенного сеанса bash, выполните команду
unset HISTFILE
Чтобы быть более резким, если вы определенные части вашего журнала команд , то вы может сделать
rm ~/.bash_history
ln -s /dev/null ~/.bash_history
Обратите внимание, что первый метод будет действовать только для одного сеанса, тогда как второй метод остановит ведение журнала команд для всех будущих сеансов.
Я понимаю, что у этого уже есть принятый ответ, но я так делаю это с 80-х годов. Это отличный способ скрыть ваши треки, и это многофазный подход. По большей части это тот, который не замечается, если он действительно не обращает внимания. Вот как это делается.
Откройте терминал / оболочку / сеанс и выполните:
chmod 444 ~/.bash_history
выйдите из оболочки, откройте терминал / оболочку / сеанс и выполните: Вот несколько объявлений способы продолжить стирание истории
vi ~/.bash_history
9999999 dd
<esc>wq!
sudo echo "which ls" > ~/.bash_history
sudo echo "cd ~/;ls" >> ~/.bash_history
, затем для хорошей меры: [ ! d5] chmod 444 ~/.bash_history
выйти из оболочки
открыть новую оболочку и ввести
history
, что делает ее менее заметной, если вы делаете ls -ratl, ~ / .bash_history в конечном итоге исчезнет в погремушке списка каталогов. Он не будет отображаться как ссылка, которая привлечет ненужное внимание.
Недостатком этого подхода является то, что вы теряете возможность вернуться и восстановить свою историю. фактический файл ~ / .bash_history также может оказаться в верхней части списка каталогов, так как может закончиться очень старой датой модификации с течением времени, что само по себе может привести к обнаружению того, что что-то не так.
, так как я пока не комментирую комментарий, добавлю свои комментарии в качестве ответа:
man history ответит на все.
ответ на # 1 заключается в том, что история находится в памяти. history -a, чтобы сохранить файл немедленно. history -w также сохранит, но может испортить другие сеансы.
ответить # 2: history -a, gedit, удалить строки, которые вы хотите, history -r
Файл bash_history является скрытым файлом, начиная с точки. Вам нужно сделать
gedit ~/.bash_history
. Это откроет файл в gedit.
1) Запустить sh; это порождает подоболочку золы, которая вообще не записывает историю. Отредактируйте оттуда
2) Добавьте строку HISTCONTROL=ignoreboth в .bashrc и сделайте exec bash, чтобы навсегда заменить текущую оболочку на повторную инициализацию, затем выполните все команды, которые вы не хотите регистрировать с помощью ведущее пространство.
История не сохраняется до выхода из оболочки. Попробуйте выйти из оболочки, а затем снова взгляните на .bash_history. Там должна быть история команд.
Если вы хотите удалить только определенные части вашего командного журнала, то указанные выше методы просто прекрасны. Если вы хотите остановить ведение журнала команд для определенного сеанса bash, выполните команду
unset HISTFILE
Чтобы быть более резким, если вы определенные части вашего журнала команд , то вы может сделать
rm ~/.bash_history
ln -s /dev/null ~/.bash_history
Обратите внимание, что первый метод будет действовать только для одного сеанса, тогда как второй метод остановит ведение журнала команд для всех будущих сеансов.