Практические примеры использования history
Sep 12, 2016 20:54 · 352 words · 2 minute read
Использование истории введенных команд существенно может ускорить вашу работу в консоли 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