Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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

Пред. 

Глава 3. Введение в командную строку

 След.


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

Завершение - это очень удобная функция, и все современные shells (включая bash) обладают ее. Ее роль заключается в облегчении работы пользователя настолько, насколько это возможно. Наилучший способ демонстрации завершения - это иллюстрация на примере.

Пример

Допустим, что в вашем личном каталоге имеется файл_с_очень_длинным_и_сложным_для_ввода_именем, и вам нужно его просмотреть. Допустим, что у вас в том же самом каталоге есть файл с именем файл_с_текстом. Вы находитесь в своем личном каталоге, поэтому введите следующую последовательность:

$ less фа<TAB>

(т.е., введите less фа, а затем нажмите клавишу TAB). Затем shell расширит командную строку до следующего:

$ less файл_с_

а также выведет список возможных вариантов (это его конфигурация по умолчанию, которая может быть настроена). Затем введите следующую последовательность символов:

less файл_с_о<TAB>

и shell расширит командную строку до нужного вам результата:

less файл_с_очень_длинным_и_сложным_для_ввода_именем

Затем все, что вам нужно сделать - это нажать клавишу Enter для подтверждения и приняться за чтение файла.

Другие способы завершения

Клавиша TAB - это не единственный способ для выполнения завершения, хотя он и является самым общим. Как правило, завершаемым словом будет название команды для первого слова в командной строке (результатом nsl<TAB> будет nslookup), а имя файла - для всех стальных слов, если только перед словом не идет «магический» символ типа ~, @ или $. В данном случае shell попытается завершить имя пользователя, имя машины или имя переменной окружения соответственно[8]. Также существует магический символ для завершения имени файла (/) и команда для повторного вызова команды из истории (!).

Другие два способа для выполнения завершения - это последовательности Esc-<x> и Ctrl+x <x>, где <x> - это один из упомянутых выше магических символов. Esc-<x> попробует предложить единственное завершение. В случае неудачи слово будет завершено наибольшей возможной подстрокой из списка вариантов. Звуковой сигнал (beep) означает, что выбор не является единственным, или просто нет подходящего варианта. Последовательность Ctrl+x <x> выводит список возможных вариантов без попытки какого-либо завершения. Нажатие на клавишу TAB - это то же самое, что и последовательное нажатие Esc-<x> и Ctrl+x <x>, где магический символ зависит от контекста.

Таким образом, единственным способом увидеть все определенные переменные окружения будет ввести в пустой строке последовательность Ctrl+x $. Другой пример: если вам нужно просмотреть страницу man для команды nslookup, просто введите man nsl, а затем Esc-!, и командный процессор автоматически завершит команду до man nslookup.



[8] Помните: UNIX® различает верхний и нижний регистры. Переменная окружения HOME и переменная home - это не одно и то же.


Пред. 

Уровень выше

 След.

Перенаправления и каналы 

Начало

 Запуск и обработка фоновых процессов: управление заданиями