Главная > Debian, В помощь sysadmin'y > Работа в Linux с историей команд (history)

Работа в Linux с историей команд (history)

Как говориться «лень — двигатель прогресса» поэтому я покажу как можно еще работать с командной строкой bash, стандартно с помощью клавиш перемещения курсора можно перемещаться по списку ранее введенных команд. Если мне была нужна определенная команда из ранее введенных — „стрелка вверх“ и до тех пор пока нужная команда не появиться в терминале далее корректировка по надобности и выполнения ее.
Оказываеться есть еще один хороший способ — для просмотра списка ранее введенных команд в bash — имеется команда history. По умолчанию она выводит список команд хранящийся в истории.
$ history
1 sudo route del -net
2 cat /etc/resolv.conf
3 htop
......
50 nslookup
51 ping mail.ru
52 ifconfig
......
200 sudo aptitude full-upgrade
......
300 mc


По умолчанию все пишиться в файл ~/.bash_history, а его размер — 500 команд.
Если хотим хранить историю в другом файле, то нужно в .bashrc, задать команду HISTFILE=~/.my_history.
HISTSIZE — определяет число строк, хранящихся в списке истории (в памяти интерпретатора).
HISTFILESIZE — максимальное количество команд хранящихся в файле истории.
Если интересует больше записей, по можно поменять под себя:

$ export HISTSIZE=1000
$ export HISTFILESIZE=1000

При запуске команды history без параметров, выдаеться весь список сохранненных команд, что довольно громоздко, поэтому есть возможность указать
количество выводимых строк (команд):
$ history 20
280 sudo aptitude full-upgrade
281 ps ax | grep conky
282 dig @217.23.122.130 ya.ru mx
......
300 mc

Выдаст 20 последних команд, все команды имеею свой номер, с помощью которого к ней можно обратится.
Если нам надо повторить 282 команду, то просто набираем в терминале:
$ !282
dig @217.23.122.130 ya.ru mx
; <<>> DiG 9.5.0-P2 <<>> @217.23.122.130 ya.ru mx
; (1 server found)
... ......

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

  • !! — ссылается на предыдущую команду;
  • !n — ссылается на команду под номером n;
  • !-n — ссылается на команду по номером „текущая минус n“;
  • history -c — очистить историю команд, удалив все записи
  • history -d n — удалить из истории запись под номером n
  • history -a — дописать команды, введенные в текущей сессии bash, в конец файла $HISTFILE
  • Дополнения:
    Так же можно сохранить дату и время для каждой команды в истории, для этого в конец .bashrc дописываем:
    $ nano .bashrc

    export HISTTIMEFORMAT=»%h/%d-%H:%M:%S «

    и применяем изменений в .bashrc без перезапуска сеанса/системы делаем командой
    $ bash
    Получаем :
    $ history 3

    147 Aug/11 — 11:05:28 sudo aptitude install gspca-source
    148 Aug/11 — 11:07:23 cd /lib/modules/2.6.32-22-generic/
    149 Aug/11 — 11:11:08 modprobe gspca

    1. Пока что нет комментариев.
    1. Пока что нет уведомлений.
    Необходимо войти на сайт, чтобы написать комментарий.
    #
    аренда Рожковых кофемашин, ii high

    //