5. Завершення командного рядка

Завершення - це дуже зручна функція, і всі сучасні shell'и (включаючи bash) мають її. Її роль полягає в полегшенні роботи користувача настільки, наскільки це можливо. Найкращий спосіб демонстрації завершення - це ілюстрація на прикладі.

5.1. Приклад

Припустимо, в вашому особистому каталозі є файл_з_дуже_довгим_і_складним_для_вводу_ім'ям, і потрібно його переглянути. Припустимо у вас у тому ж самому каталозі є файл з ім'ям файл_з_текстом. Ви знаходжитесь у своєму особистому каталозі, тож введіть таку послідовність:

$ less fi<TAB>

(тобто, введіть less фа, а потім натисніть клавішу Tab). Потім shell розширить командний рядок до наступного:

$ less файл_з_

а також виведе список можливих варіантів (це його конфігурація за умовчанням, яка може бути налаштована). Потім введіть таку послідовність символів:

$ less файл_з_д<TAB>

і shell розширить командний рядок до потрібного вам результату:

$ less файл_з_дуже_довгим_і_складним_для_вводу_ім'ям

Потім все, що вам потрібно зробити - це натиснути клавішу Enter для підтвердження і приступити до читання файлу.

[Підказка]Підказка

Використовуйте клавішу q для завершення перегляду файлів.

5.2. Інші способи завершення

Клавіша Tab - це не єдиний спосіб для виконання завершення, хоча він і є найбільш загальним. Як правило, словом, зо завершується, буде назва команди для першого слова в командному рядку (результатом nsl<TAB> буде nslookup), а ім'я файла - для всіх інших слів, тільки якщо перед словом немає “магічного” символ типу ~, @ або $. У даному випадку shell спробує завершити ім'я користувача, ім'я машини або ім'я змінної оточення відповідно[17]. Також існує магічний символ для завершення імені файла (/) і команда для повторного виклику команди з історії (!).

Інші два способу для виконання завершення - це послідовності 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.



[17] Пам'ятайте: UNIX® розрізняє верхній і нижній регістри. Змінна оточення HOME і змінна home - це не одне і же саме.