Практические примеры использования history

Sep 12, 2016 20:54 · 352 words · 2 minute read history

Использование истории введенных команд существенно может ускорить вашу работу в консоли Linux. Давайте разберемся с использованием history на конкретных примерах!

Отобразить дату и время вызова команды можно следующим образом:

export HISTTIMEFORMAT='%F %T '
history | more
1  2016-08-04 11:05:58 asterisk -rx 'queue show'
2  2016-08-04 11:05:58 asterisk -rx 'queue show'
3  2016-08-04 11:05:58 asterisk -rx 'queue show'
4  2016-08-04 11:05:58 cat sip.conf | grep -A 3 113
5  2016-08-04 11:05:58 asterisk -rx 'queue show'
6  2016-08-04 11:05:58 asterisk -rx 'queue show admin'
7  2016-08-04 11:05:58 /etc/init.d/asterisk reload
8  2016-08-04 11:05:58 tail -f /var/log/asterisk/messages

Использование Control+R для поиска команды в history по части слова (ищем по php, по нажатию клавиши ввода эта команда будет выполнена):

#
(reverse-i-search)`php': aptitude purge phpmyadmin

Аналогичным образом можно найти команду, изменить ее часть (например, изменить stop на start) и выполнить:

#
(reverse-i-search)`bind': /etc/init.d/bind9 stop
/etc/init.d/bind9 start

Быстрый повтор предыдущей команды можно сделать аж четырьмя способами:

  • использовать стрелку вверх и нажать клавишу ввода;
  • ввести !! и нажать клавишу ввода;
  • ввести !-1 и нажать клавишу ввода;
  • использовать комбинацию клавиш Control+P и нажать клавишу ввода.

Повторить 5-ю команду из истории:

history | more
1  cd /etc/dhcp/
2  mcedit dhcpd.conf
3  git commit dhcpd.conf -m "test commit"
4  git push
5  /etc/init.d/isc-dhcp-server restart
!5
/etc/init.d/isc-dhcp-server restart
[ ok ] Restarting isc-dhcp-server (via systemctl): isc-dhcp-server.service.

Выполнить последнюю команду из списка, которая начинается на определенное слово:

!dpkg
dpkg -l | grep rrd
ii  librrd4                            1.4.8-1.2                     amd64        time-series data storage and display system (runtime library)
ii  librrds-perl                       1.4.8-1.2                     amd64        time-series data storage and display system (Perl interface, shared)
ii  rrdtool                            1.4.8-1.2                     amd64        time-series data storage and display system (programs)

Выполнить другую команду с параметром, который был использован при выполнении последней команды можно с помощью символов !!:$:

ls dhcpd.conf
dhcpd.conf
nano !!:$
nano dhcpd.conf

Если при выполнении предыдущей команды использовалось два параметра, то выполнить другую команду с использованием первого из них можно используя символы !^:

cp dhcpd.conf dhcpd.conf.bak
dhcpd.conf
nano  !^
nano dhcpd.conf

Найти в истории команду, которая начинается с cp (копирование), и использовать ее второй аргумент для выполнения новой команды:

cp ~/test.txt /really/a/very/long/path/long-filename.txt
ls -l !cp:2
ls -l /really/a/very/long/path/long-filename.txt

Очистить историю введенных команд:

history -c
tweet Share