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

Одна из возможностей Bash, отсутствовавшая в более ранних оболочках (Bourne Shell или С Shell) - редактирование командной строки. Без этого допущенную в наборе команды ошибку можно было исправить, только удалив все символы после нее. Например, если в команде

$ /usr/kocal/bin/mycommand

ошибочно набрано "kocal" вместо "local", то вернуть курсор к "k" можно только удалив все последующие символы, которые придется набрать вновь после исправления ошибки. Надо ли объяснять, насколько это неэффективно!

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

Чтобы ускорить редактирование командной строки, особенно при наборе длинных команд, в Bash предусмотрено несколько функциональных комбинаций клавиш, перечисленных в табл. 16.1.

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

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

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

Список команд из табл. 16.1 - лишь незначительная часть всех команд редактирования, предоставляемых оболочкой Bash. Однако это основные функции, необходимые большинству пользователей для эффективной работы. Более подробный список функций редактирования можно найти в разделе HEADLINE страницы руководства оболочки Bash, для вывода которой необходимо ввести в командной строке man bash.