Терминал помнит всё: как использовать историю команд Linux на 100%

Терминал помнит всё: как использовать историю команд Linux на 100%

Представьте, что ваш терминал обладает идеальной памятью. Он помнит каждую команду, которую вы когда-либо вводили, и готов мгновенно вернуть её по вашему требованию. Это не магия, а мощный встроенный инструмент — история команд Linux.

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

Мы покажем вам, как выжать из этого инструмента максимум. Вы научитесь не просто просматривать историю, а моментально находить и выполнять нужные команды. Узнаете хитрые сочетания клавиш, о которых не догадываются многие опытные пользователи.

Например, нажатие Ctrl+R запустит обратный поиск — просто начните вводить часть команды. А символы `!!` повторят ваше последнее действие. Это сэкономит вам десятки нажатий клавиш в день.

Но это только начало. Вы сможете настроить историю под себя: заставить её показывать дату и время выполнения команд, игнорировать повторяющиеся или секретные операции (да, команды можно скрывать от истории!). Вы даже сможете синхронизировать историю между всеми открытыми терминалами.

Готовы превратить работу в консоли из рутины в удовольствие? Мы подготовили для вас самые полезные приёмы и настройки, которые кардинально упростят вашу жизнь. Погружайтесь в статью, чтобы раскрыть весь потенциал вашего терминала!


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

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


Содержание статьи

История команд Linux

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

history

Терминал помнит всё: как использовать историю команд Linux на 100%

Для дополнительных действий с историей вам могут понадобиться опции. Команда history linux имеет очень простой синтаксис:

$ history опции файл

В качестве файла можно указать файл истории. По умолчанию история для текущего пользователя хранится в файле ~/.history, но вы можете задать, например, файл другого пользователя. А теперь рассмотрим опции:

  • -c - очистить историю;
  • -d - удалить определенную строку из истории;
  • -a - добавить новую команду в историю;
  • -n - скопировать команды из файла истории в текущий список;
  • -w - перезаписать содержимое одного файла истории в другой, заменяя повторяющиеся вхождения.

Наиболее полезной для нас из всего этого будет опция -c, которая позволяет очистить историю команд linux:

history -c

Так вы можете посмотреть только последние 10 команд:

history 10

Терминал помнит всё: как использовать историю команд Linux на 100%

 

 

А с помощью опции -d удалить ненужное, например, удалить команду под номером 1007:

history -d 1007

Терминал помнит всё: как использовать историю команд Linux на 100%

Если вы хотите выполнить поиск по истории bash, можно использовать фильтр grep. Например, найдем все команды zypper:

history | grep zypper

Терминал помнит всё: как использовать историю команд Linux на 100%

На самом деле работать с историей еще более просто с помощью оболочки, возможно, вы уже используете многие ее функции, но о некоторых точно не знаете. Рассмотрим их:

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

Вы можете выполнить последнюю команду просто набрав "!!". Также можно выполнить одну из предыдущих команд указав ее номер "!-2"

Терминал помнит всё: как использовать историю команд Linux на 100% Терминал помнит всё: как использовать историю команд Linux на 100%

Чтобы выполнить поиск по истории прямо во время ввода нажмите Ctrl+R и начните вводить начало команды.

Терминал помнит всё: как использовать историю команд Linux на 100%Если вы знаете, что нужная команда была последней, которая начиналась на определенные символы, например, l, то вы можете ее выполнить, дописав "!l":

Терминал помнит всё: как использовать историю команд Linux на 100%

Если нужная команда последняя содержала определенное слово, например, tmp, то вы можете ее найти, использовав "!?tmp":

Терминал помнит всё: как использовать историю команд Linux на 100%

 

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

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

Настройка истории Linux

Linux - очень настраиваемая и гибкая система, поэтому настроить здесь можно все, в том числе и историю. По умолчанию выводится только номер команды, но вы можете выводить и ее дату. Для этого нужно экспортировать переменную HISTORYFORMAT вместе нужным форматом:

export HISTTIMEFORMAT='%F %T '
$ history

Терминал помнит всё: как использовать историю команд Linux на 100%

Для форматирования можно использовать такие модификаторы:

  • %d – день;
  • %m – месяц;
  • %y – год;
  • %T – штамп времени;
  • %F - штамп даты.

Вы можете указать какие команды не стоит отображать, например, не будем выводить ls -l, pwd и date:

export HISTIGNORE='ls -l:pwd:date:'

Также можно отключить вывод одинаковых команд:

export HISTCONTROL=ignoredups

Существует два флага, ignoredups и ignorespace. Второй указывает, что нужно игнорировать команды, начинающиеся с пробела. Если вы хотите установить оба значения, используйте флаг ignoreboth. Используйте переменную HISTSIZE, чтобы установить размер истории:

export HISTSIZE=2000

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

export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r;"

Для тестирования работы вы можете набирать эти команды прямо в терминале и сразу видеть результат, но для сохранения добавьте нужные строки в ваш ~/.bashrc. Например:

vi ~/.bashrc

export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r;"
$ export HISTCONTROL=ignoredups
$ export HISTTIMEFORMAT='%F %T '

Готово, теперь осталось сохранить изменения и перезапустить ваши терминалы. Теперь ваша история будет выводить дату, игнорировать дубли и синхронизироваться между терминалами.

Выводы

В этой статье мы рассмотрели что такое история команд linux, как с ней работать, как применяется команда history linux и какие настройки можно использовать для более комфортной работы. Если у вас остались вопросы, спрашивайте в комментариях!

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив