Редактирование командной строки

Одна из возможностей Bash, отсутствовавшая в более ранних оболочках (Bourne Shell или C Shell), - это редактирование командной строки. В прошлом, при допущенной ошибке в команде, её можно было исправить только удалив все символы после неё. Например, при ошибке в команде $ /usr/kocal/bin/mycommand, где ошибочно указано "kocal" вместо "local", исправление требовало удаления всего текста после ошибки и его повторного ввода. Очевидно, что это не самый эффективный способ.

Современные оболочки, включая Bash, предоставляют полный набор инструментов для редактирования командной строки. Курсор можно перемещать по строке, используя клавиши со стрелками, удаляя или добавляя символы по мере необходимости. Вы можете завершить ввод команды, нажав Enter, даже не перемещая курсор в конец строки. По умолчанию Bash находится в режиме вставки, так что введённые символы не заменяют существующие, а добавляются между ними.

Для ускорения редактирования командной строки, особенно при вводе длинных команд, в Bash предусмотрены функциональные комбинации клавиш, перечисленные ниже:

Табл. 16.1. Функциональные комбинации клавиш для редактирования командной строки

Комбинация клавишФункция
Ctrl+AПереход в начало строки
Ctrl+EПереход в конец строки
Ctrl+BПереход на один символ влево
Ctrl+FПереход на один символ вправо
Esc, BПереход на одно слово влево
Esc, FПереход на одно слово вправо
Ctrl+LОчистка экрана с выводом командной строки вверху
Ctrl+DУдаление символа в текущей позиции курсора
BackspaceУдаление символа слева от курсора
Ctrl+TПоменять местами символ в позиции курсора с символом слева от него
Esc, ТПоменять местами слово в позиции курсора со словом слева от него
Esc, UПеревод текущего слова в верхний регистр
Esc, LПеревод текущего слова в нижний регистр
Esc, СПеревод текущего слова в нижний регистр с заглавной первой буквой
Ctrl+KУдаление символов от позиции курсора до конца строки

Люди, знакомые с редактором emacs, быстро заметят, что эти функциональные клавиши взяты именно из этого редактора. Действительно, команды Bash заимствованы из emacs. Альтернативный набор команд из редактора vi менее популярен среди программистов и опытных системных администраторов, поэтому он не рассматривается в этой статье.

Перечисленные выше команды - лишь небольшая часть всех возможностей редактирования в Bash. Это основные функции, которые пригодятся большинству пользователей. Для более подробной информации обратитесь к странице руководства Bash, введя команду man bash.