Команда 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