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

 

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

Одна из возможностей 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.