ГлавнаяОперационные системыLinuxКак скрыть историю командной строки Linux, перейдя в режим инкогнито

Как скрыть историю командной строки Linux, перейдя в режим инкогнито

Если вы являетесь пользователем командной строки Linux, вы согласитесь, что бывают случаи, когда вы не хотите, чтобы определенные выполняемые вами команды записывались в историю командной строки. Для этого может быть много причин. Например, вы занимаете определенную должность в своей компании и у вас есть некоторые привилегии, которыми вы не хотите, чтобы другие злоупотребляли. Или есть несколько важных команд, которые не следует запускать случайно при просмотре списка истории.

Но есть ли способ контролировать, что попадает в список истории, а что нет? Или, другими словами, можем ли мы включить режим инкогнито, подобный веб-браузеру, в командной строке Linux? Ответ — да, и есть много способов добиться этого, в зависимости от того, чего именно вы хотите. В этой статье мы обсудим некоторые из доступных популярных решений.

Примечание : все команды, представленные в этой статье, были протестированы в Ubuntu.

Доступны разные способы

Первые два способа, которые мы здесь опишем, уже были рассмотрены в одна из наших предыдущих статей . Если вы уже знаете о них, вы можете пропустить их. Однако, если вы не в курсе, рекомендуется внимательно их изучить.

1. Вставьте пробел перед командой

Да, вы правильно прочитали. Вставьте пробел в начале команды, и оболочка проигнорирует его, то есть команда не будет записана в историю. Однако есть зависимость: указанное решение будет работать только в том случае, если для переменной среды HISTCONTROL установлено значение «ignorespace» или «ignoreboth», что в бо

Доступны разные способы

умолчанию.

Итак, команда типа следующей:

[space]echo "this is a top secret"

Не появится в истории, если вы уже выполнили эту команду:

export HISTCONTROL = ignorespace

На снимке экрана ниже показан пример такого поведения.

командная строка-история-bash-командное пространство

Четвертая команда «эхо» не была записана в историю, так как она запускалась с пробелом в начале.

2. Отключить всю историю текущего сеанса

Если вы хотите отключить всю историю сеанса, вы можете легко сделать это, отключив переменную среды HISTSIZE перед тем, как начать работу с командной строкой. Чтобы сбросить значение переменной, выполните следующую команду:

export HISTFILE=0

HISTFILE — это количество строк (или команд), которые можно сохранить в списке истории текущего сеанса bash. По умолчанию эта переменная имеет заданное значение — например, в моем случае 1000.

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

3. После завершения сотрите всю историю

Это можно рассматривать как альтернативу решению, упомянутому в предыдущем разделе. Единственное отличие состоит в том, что в этом случае вы запускаете команду ПОСЛЕ того, как завершили всю свою работу. Ниже приводится рассматриваемая команда:

history -cw

Как уже упоминалось, это будет иметь тот же эффект, что и решение HISTFILE, упомянутое выше.

4. Отключайте историю только для своей работы

Хотя решения (2 и 3), описанные выше, помогают, они стирают всю историю, что во многих ситуациях может быть нежелательным. Могут быть случаи, когда вы захотите сохранить список истории до тех пор, пока вы не начнете работу с командной строкой. В подобных ситуация

2. Отключить всю историю текущего сеанса

ющую команду:

[space]set +o history

Примечание. [пробел] представляет собой пробел.

Приведенная выше команда временно отключит историю, то есть все, что вы делаете после запуска этой команды, не будет записано в истории, хотя все действия, выполненные до указанной выше команды, будут там, как и в списке истории.

Чтобы снова включить историю, выполните следующую команду:

[Space]set -o history

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

5. Удаление определенных команд из истории

Теперь предположим, что список истории уже содержит некоторые команды, которые вы не хотели записывать. Что можно сделать в этом случае? Это просто. Вы можете пойти дальше и удалить их. Ниже описано, как это сделать:

[space]history | grep "part of command you want to remove"

Приведенная выше команда выведет список совпадающих команд (которые есть в списке истории) с номером [num], предшествующим каждой из них.

После того как вы определили команду, которую хотите удалить, просто запустите следующую к

3. После завершения сотрите всю историю

писка истории:

history -d [num]

На следующем снимке экрана показан пример.

командная строка-история-удаление-специфичных-команд

Вторая команда echo успешно удалена.

В качестве альтернативы вы можете просто нажать клавишу со стрелкой вверх, чтобы вернуться назад по списку истории, и как только интересующая вас команда появится на терминале, просто нажмите «Ctrl + U», чтобы полностью очистить строку, эффективно удалив это из списка.

Заключение

4. Отключайте историю только для своей работы

ндной строки Linux в соответствии с вашими потребностями. Однако имейте в виду, что обычно не рекомендуется скрывать или удалять команду из истории, хотя это само по себе не является неправильным, но вы должны осознавать, что вы делаете и какие последствия это может иметь.

5. Удаление определенных команд из истории

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи