Как: Очистить Историю Команд в BASH
Иногда Вы не хотите сохранять историю в Bash, так как команды могут содержать такие чувствительные данный, как например пароли.
Эта статья поможет держать историю Bash под контролем.
Полностью удалить историю Bash
Выполните следующую команду для полного удаления всей истории Bash:
Опции | Описание |
---|---|
-c | Очистить файл истории |
-w | Внести команды текущей сессии в файл с историей |
Удалить определенную строку из истории Bash
Наберите следующую команду для удаления конкретной строки (например с номером 352) из файла с историей Bash:
Опция | Описание |
---|---|
-d | Удалить строку с указанным номером из истории |
Очистить историю команд текущей сессии
Выполните для удаления истории команд только текущей сессии:
Опция | Описание |
---|---|
-r | Прочитать файл с текущие историей и добавить его содержимое к списку истории команд |
Не сохранять команду в истории Bash
Выполнить команду не занося ее в историю Bash:
Поставьте пробел перед любой командой и она не будет сохранена в истории Bash.
Не сохранять все команды текущей сессии в истории Bash
Отключение HISTFILE приводит к тому, что пока Вы не выйдите из текущей сессии, любые команды которые Вы будете выполнять не будут сохраняться в файле с историей bash_history :
История команд Linux
В терминале Linux, кроме всего прочего, есть одна замечательная вещь. Это история команд Linux. Все команды, которые вы вводите во время работы сохраняются и вы можете найти и посмотреть их в любой момент. Также можете вернуться на несколько команд чтобы не набирать недавно выполненную команду заново.
В этой небольшой статье мы рассмотрим как пользоваться историей команд Linux, как ее настроить, а также рассмотрим полезные приемы, которые могут помочь вам в работе.
История команд Linux
Большинство задач, связанных с историей команд, мы будем выполнять либо с помощью команды history, либо с помощью оболочки. В истории хранится последняя 1000 команд, которые вы выполняли. Чтобы посмотреть всю историю для этого терминала просто запустите команду history без параметров:
Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:
$ history опции файл
В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле
/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:
- -c — очистить историю;
- -d — удалить определенную строку из истории;
- -a — добавить новую команду в историю;
- -n — скопировать команды из файла истории в текущий список;
- -w — перезаписать содержимое одного файла истории в другой, заменяя повторяющиеся вхождения.
Наиболее полезной для нас из всего этого будет опция -c, которая позволяет очистить историю команд linux:
Так вы можете посмотреть только последние 10 команд:
А с помощью опции -d удалить ненужное, например, удалить команду под номером 1007:
Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:
history | grep zypper
На самом деле работать с историей еще более просто с помощью оболочки, возможно, вы уже используете многие ее функции, но о некоторых точно не знаете. Рассмотрим их:
Чтобы показать предыдущую команду просто нажмите стрелку вверх, так можно просмотреть список раньше выполненных команд.
Вы можете выполнить последнюю команду просто набрав «!!». Также можно выполнить одну из предыдущих команд указав ее номер «!-2»
Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.
Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав «!l»:
Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав «!?tmp»:
Если вы не хотите, чтобы выполняемая команда сохранилась в истории просто поставьте перед ней пробел.
Таким образом, вы можете очень быстро отыскать нужную команду, если помните как она была написана. История команд bash хранит очень много команд и этого вполне достаточно для комфортной работы.
Настройка истории Linux
Linux — очень настраиваемая и гибкая система, поэтому настроить здесь можно все, в том числе и историю. По умолчанию выводится только номер команды, но вы можете выводить и ее дату. Для этого нужно экспортировать переменную HISTORYFORMAT вместе нужным форматом:
export HISTTIMEFORMAT=’%F %T ‘
$ history
Для форматирования можно использовать такие модификаторы:
- %d – день;
- %m – месяц;
- %y – год;
- %T – штамп времени;
- %F — штамп даты.
Вы можете указать какие команды не стоит отображать, например, не будем выводить ls -l, pwd и date:
export HISTIGNORE=’ls -l:pwd:date:’
Также можно отключить вывод одинаковых команд:
Существует два флага, ignoredups и ignorespace. Второй указывает, что нужно игнорировать команды, начинающиеся с пробела. Если вы хотите установить оба значения, используйте флаг ignoreboth. Используйте переменную HISTSIZE, чтобы установить размер истории:
По умолчанию история сохраняется для каждого терминала отдельно. Но если вы хотите чтобы все ваши команды немедленно синхронизировались между всеми терминалами, то это очень просто настроить. Добавьте такую переменную:
export PROMPT_COMMAND=»$
Для тестирования работы вы можете набирать эти команды прямо в терминале и сразу видеть результат, но для сохранения добавьте нужные строки в ваш
export PROMPT_COMMAND=»$
$ export HISTCONTROL=ignoredups
$ export HISTTIMEFORMAT=’%F %T ‘
Готово, теперь осталось сохранить изменения и перезапустить ваши терминалы. Теперь ваша история будет выводить дату, игнорировать дубли и синхронизироваться между терминалами.
Выводы
В этой статье мы рассмотрели что такое история команд linux, как с ней работать, как применяется команда history linux и какие настройки можно использовать для более комфортной работы. Если у вас остались вопросы, спрашивайте в комментариях!
Как очистить историю командной строки BASH в Linux?
История bash хранит записи обо всех командах, выполненных пользователем в командной строке Linux. Это позволяет легко запускать ранее выполненные команды с помощью клавиш «стрелка вверх» или «стрелка вниз» для прокрутки файла истории команд.
В этой статье мы покажем вам два простых способа очистить историю командной строки в системе Linux.
Основная причина удаления истории командной строки из терминала Linux состоит в том, чтобы предотвратить использование команд другим пользователем, который мог бы использовать вашу учетную запись.
Например, если вы ввели команду, содержащую пароль в виде обычного текста, и вы не хотите, чтобы другой системный пользователь или злоумышленник видели этот пароль, вам необходимо удалить или очистить файл истории.
Посмотрите на команду ниже, здесь пользователь aaronkilik набрал пароль сервера базы данных в командной строке:
Если вы посмотрите в конец истории файла bash, то увидите там пароль, введенный выше:
Файл bash_history обычно находится в домашнем каталоге пользователя /home/username/.bash_history:
Чтобы удалить одну строку из файла истории, используйте параметр -d. Например, если вы хотите очистить команду, в которой вы ввели открытый текстовый пароль, как в приведенном выше сценарии, найдите номер строки в файле истории и выполните эту команду:
Чтобы удалить или очистить все записи из истории bash, используйте команду history ниже с опцией -c:
В качестве альтернативы, вы можете использовать команду приведенную ниже, чтобы удалить историю всех последних выполненных команд в файле навсегда:
Примечание. Обычный пользователь может просматривать только свою собственную историю команд, но пользователь root может просматривать историю команд всех других пользователей в системе. Всегда помните, что все команды, которые вы запускаете, записываются в файл истории, поэтому не вводите пароли в виде простого текста в командной строке.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!