История команд в Linux или Учитесь использовать уже выполненное вами ранее

Работая в командной строке 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. Или просто добавьте статью в свои любимые закладки: