Поиск по сайту:

Как очистить историю командной строки в Linux

5 способов очистить историю Bash в Linux

В Bash все команды, которые вы запускаете в Терминале, хранятся в текстовом файле с именем .bash_history в вашем домашнем каталоге. Мы можем использовать команду history для отображения всех команд, которые вы запускали с момента начала сеанса. По какой-то причине вы можете захотеть удалить всю или определенную команду из истории Bash. В этом кратком руководстве мы на примерах узнаем, как очистить историю командной строки в Linux.

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

Зачем нам очищать историю командной строки?

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

Эти команды могут быть вредными, и их не следует использовать. Но ученики могут не до конца осознавать последствия таких критических команд.

Любопытный студент может просмотреть историю командной строки и задаться вопросом, что будут делать эти команды, и начать тестировать их одну за другой. Результат? Он/она может случайно сломать систему.

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

Это всего лишь пример. Может быть много других причин для очистки истории командной строки Linux.

Почему бы нам не очистить историю командной строки?

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

Как я уже говорил ранее, команды, которые вы запускаете в Терминале, будут сохраняться в файле ~/.bash_history. Вы можете восстановить ранее выполненные команды, нажав кнопку Page Up на клавиатуре.

Когда вы нажмете кнопку Page Up, появится список команд, которые вы недавно запускали. Просто продолжайте нажимать клавишу со стрелкой ВВЕРХ, пока не найдете команду, которую хотите выполнить. Как только вы найдете команду, которую хотите запустить, просто нажмите Enter, чтобы выполнить ее. Вот и все. Вам не нужно каждый раз вводить всю команду.

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

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

Без лишних слов, давайте посмотрим, как работать с историей Bash в Linux.

Очистить историю командной строки в Linux

Есть много способов очистить историю командной строки. Здесь я перечислил пять способов.

1. Очистите всю историю командной строки с помощью команды history.

Как говорилось ранее, команда история отобразит последние выполненные команды.

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

history

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

history -c

Или

history -cw

Приведенные выше команды очистят историю командной строки.

2. Избегайте сохранения команд в списке истории, вставляя пробел перед каждой командой.

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

Для этого необходимо установить значение переменной среды HISTCONTROL как “ignorespace” или “ignoreboth”.

Отредактируйте файл ~/.bashrc:

nano ~/.bashrc

Добавьте в конце следующую строку:

export HISTCONTROL=ignorespace

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

source ~/.bashrc

Или просто выйдите из системы и войдите снова, чтобы применить изменения.

Чтобы убедиться в этом, выполните несколько команд. И ставьте пробел перед любой командой. Я поставил пробел в последней команде.

clear
uname -mrs
sudo pacman -Syyu
sudo wifi-menu
ls
<space>sudo ping ostechnix.com

Здесь обозначает пробел.

См. следующий снимок экрана:

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

Теперь запустите команду history, чтобы просмотреть недавно выполненные команды:

history

Пример вывода:

 3 clear
 4 export HISTCONTROL=ignorespace
 5 clear
 6 uname -mrs
 7 sudo pacman -Syyu
 8 sudo wifi-menu
 9 ls
 10 history

Очистить историю командной строки в Linux

Как видно из приведенного выше вывода, команда "sudo ping ostechnix.com" не отображается в выводе команды истории.

3. Очистить или удалить определенные команды из истории Bash.

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

Позвольте мне показать вам пример. Я собираюсь запустить следующие команды в Терминале.

clear
cal
time
ls
uname -r

Затем отобразите вывод команды истории с помощью команды:

history

пример вывода:

 3 clear
 4 cal
 5 time
 6 ls
 7 uname -r
 8 history

Как вы видите в приведенном выше выводе, команда истории отображает последние выполненные команды.

Чтобы очистить или удалить определенную команду из истории, используйте флаг -d с номером префикса команды:

history -d <number>

Здесь представляет номер строки каждой команды.

Например, чтобы удалить из истории команду "time" с номером строки "5", выполните:

history -d 5

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

history

Пример вывода:

 3 clear
 4 cal
 5 ls
 6 uname -r
 7 history
 8 history -d 5
 9 history

Очистить или удалить определенные команды из истории

Как видите, команда «время» удалена. Аналогичным образом вы можете удалить любую команду из списка истории.

Рекомендуемая загрузка – Бесплатная электронная книга: «Изучите Linux за 5 дней»

4. Автоматическая очистка истории Bash при выходе из системы.

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

Для этого отредактируйте файл ~/.bashrc:

vi ~/.bashrc

Добавьте следующую строку:

unset HISTFILE

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

5. Удалить историю командной строки навсегда

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

Чтобы удалить все команды из истории Bash во всех сеансах, необходимо удалить содержимое файла .bash_history . Этот файл содержит список команд, которые мы запускаем в терминале. Вы можете каждый раз очищать этот файл вручную или настроить задание cron для его регулярной очистки.

Чтобы вручную очистить содержимое этого файла, запустите:

cat /dev/null > ~/.bash_history

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

Альтернативно вы можете запланировать выполнение этой задачи через регулярные промежутки времени, используя задания cron.

Для этого выполните:

crontab -e

Добавьте следующие команды:

00 20 * * * cat /dev/null > ~/.bash_history

Сохраните и выйдите из файла. История будет автоматически очищаться в 20:00 каждый день.

Рекомендуется к прочтению:

  • Как избежать дублирования записей в истории Bash в Linux
  • Как удалить определенную команду из истории Bash в Linux
  • Как отобразить историю Bash без номеров строк
  • 5 способов повторить последнюю команду в Linux
  • Добавьте команды Linux в закладки для упрощения повторного вызова
  • Как сохранять команды и использовать их по требованию

Заключение

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

Статьи по данной тематике