История команд в Linux или Учитесь использовать уже выполненное вами ранее.
24 февраля 2010
Работая в командной строке Linux, мы часто вводим какие-либо команды. Некоторые из них мы выполняем довольно редко, а некоторые каждый день.
Хорошую возможность не тратить время на набор одних и тех же команд подарили нам разработчики оболочки bash. Они предоставили возможность использовать историю команд, чтобы сократить время набора команд и сделать работу в командной строке более эффективной.
Сегодня мы поговорим о истории команд в Linux и научимся эффективно управлять ею.
По умолчанию, история команд включена, и все команды, которые вы выполняете в командной строке, могут быть использованы вами повторно без особых затрат времени на их набор.
Историю команд в Linux можно отключить, выполнив в командной строке команду:
$ set +o history
Если, после отключения истории команд, вы вновь захотите использовать ее в своей работе, просто выполните команду:
$ set -o history
Как вы знаете, ничего не бывает бесконечного, и размер истории команд в Linux не исключение. Одна из переменных окружения, имеющая название HISTSIZE, хранит в себе количество выполненных команд. По умолчанию, ее значение - 1000, но в некоторых дистрибутивах встречается и значение 500. Вы можете посмотреть значение переменной HISTSIZE в вашей системе, выполнив в командной строке следующую команду:
$ echo $HISTSIZE
Рассмотрим команды, которые позволят вам работать с историей команд Linux и управлять ее содержимым.
Если вы хотите посмотреть все содержимое истории, выполните в командной строке команду:
$ history
Для того, чтобы показать последние 12 выполненных команд, выполните:
$ history 12
Может случиться так, что вы случайно, вместо команды, наберете свой пароль.. Оставлять свой пароль где-либо - дурная примета и исправить вам это поможет команда:
$ history -d257
Она удалит строку 257 (предположим, что именно эта строка хранит случайно набранный вами пароль) из общего списка, хранящегося в истории команд.
Команда:
$ !!
позволит повторить последнюю выполненную вами команду.
Предположим, что вы хотите повторить предпоследнюю выполненную команду.. Для этого используйте следующую команду:
$ !-2
Если это будет двадцатая, с конца списка истории, команда, то вам поможет выполнение следующей команды:
$ !-20
Команду, выполненную ранее и начинающуюся с букв sud (многие догадались что это за команда?), вы можете повторить, используя следующую команду:
$ !sud
Будьте внимательны, если вы ранее выполняли какую-либо команду несколько раз, но использовали при выполнении разные ключи или опции.
К примеру, вы добавили в систему несколько пользователей и назначали им пароль. Но после ввода последнего пароля, вы решили изменить пароль одному из пользователей (предположим его логин andy). В этом случае вам поможет следующая реализация:
$ !?andy
она позволит повторить команду passwd andy, выполненную вами ранее. Или, к примеру, выполненную ранее команду:
# less /var/log/messages | grep tty1
вам позволит повторить следующая команда:
# !?messages?
Работая с историей команд Linux, вы можете редактировать ее, используя для этого комбинации клавиш. Вот некоторые из них (приведен список основных комбинаций клавиш редактора Emacs):
Ctrl+f - перемещение вправо на один символ;
Ctrl+b - перемещение влево на один символ;
Ctrl+a (или клавиша Home) - перемещение на начало строки;
Ctrl+e (или клавиша End) - перемещение в конец строки;
Alt+f - перемещение на начало предыдущего слова;
Alt-b - перемещение на начало последующего слова;
Ctrl+ d (или клавиша Delete) - удаление символа, на котором стоит курсор;
Ctrl+k - удаление всех символов справа от курсора до конца строки с запоминанием удаленного для дальнейшего использования;
Alt+d - удаление символов справа от курсора до конца текущего слова с запоминанием удаленного для дальнейшего использования;
Ctrl+y - вставка удаленных символов и слов, удаленных при помощи двух предыдущих комбинаций.
Использование истории команд, на мой взгляд, крайне удобно в работе и помогает экономить время.
Понравилась статья? Оставайтесь со мной на Linuxway.ru, подписавшись на новые материалы сайта по RSS. Или просто добавьте статью в свои любимые закладки:
Похожие статьи
2 ответов в “История команд в Linux или Учитесь использовать уже выполненное вами ранее.”
Написать комментарий


Спасибо за статью. Отдельное спасибо за горячие клавиши редактора Emacs. Нигде не мог найти понятного и русского описания
На здоровье! Рад был помочь.