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