Команда history

Назад    Вниз

Стандартно с помощью клавиш перемещения курсора (вверх и вниз) можно перемещаться по списку ранее введенных команд. Есть еще один хороший способ просмотра списка введенных команд в bash – это команда history. По умолчанию она выводит список команд, хранящийся в истории:

# history
1 top
2 vi example.cpp
3 g++ -o example example.cpp
...
498 ls
499 sudo apt-get install opera
500 ps ax | grep example

Веденные команды в bash по умолчанию записываются в файл ~/.bash_history. Можно сменить местоположение или имя файла для хранения команд. Для этого надо в ~/.bashrc, задать опцию HISTFILE=~/.somefile_history. В этом же файле можно изменить и другие опции, например:

HISTSIZE – определяет число строк, хранящихся в списке истории (в памяти интерпретатора).

HISTFILESIZE – максимальное количество команд хранящихся в файле истории.

При запуске команды history без параметров, выдается весь список выполненных команд, что довольно громоздко, поэтому есть возможность указать количество выводимых строк (команд):

# history 30
547 mc
548 sfdisk -lx
549 apt-get install mocp
...
576 mc

Выдаст 30 последних команд. Каждая команда имеет свой номер, с помощью которого к ней можно обратиться. Если нам надо повторить 548 команду, то набираем в bash:

# !548

Отобразиться команда соответствующая этому номеру, затем результат ее выполнения.

Список наиболее распространенных команд:

  • !! – ссылается на предыдущую команду;
  • !n – ссылается на команду под номером n;
  • !-n – ссылается на команду по номером "текущая минус n";
  • history -c — очистить историю команд, удалив все записи;
  • history -d n — удалить из истории запись под номером n;
  • history -a — дописать команды, введенные в текущей сессии bash, в конец файла $HISTFILE.

Так же можно сохранить дату и время для каждой команды в истории, для этого в конец файла ~/.bashrc дописываем:

# vi ~/.bashrc export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Чтобы изменения в ~/.bashrc вступили в силу без перезапуска сеанса или системы, выполните команду:

# bash

Результат выполнения команды:

$ history 5
1 Oct/25 - 04:24:48 sudo mc
2 Oct/25 - 04:24:48 history
3 Oct/25 - 04:24:48 ls -la
4 Oct/25 - 04:24:48 top
5 Oct/25 - 04:24:48 man renace

Назад    Вверх