Чтение онлайн

на главную - закладки

Жанры

Командная строка Linux
Шрифт:

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

Для поддержки операций редактирования командной строки bash использует библиотеку (коллекцию подпрограмм, которую могут использовать разные программы) с именем Readline. Мы уже видели некоторые из них. Например, нам знакомы клавиши со стрелками влево и вправо, перемещающие курсор, но существует еще целое множество других операций. Рассматривайте их как дополнительные инструменты, которые можно использовать в работе. Необязательно стремиться изучить их все, но многие из них весьма практичны. Выбирайте те, что вам понравятся.

ПРИМЕЧАНИЕ

Некоторые

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

Перемещение курсора

В табл. 8.1 перечислены комбинации клавиш, используемые для перемещения курсора.

Таблица 8.1. Команды перемещения курсора

Клавиша

Действие

CTRL+A

Перемещает курсор в начало строки

CTRL+E

Перемещает курсор в конец строки

CTRL+F

Перемещает курсор на один символ вперед; действует так же, как клавиша со стрелкой вправо

CTRL+B

Перемещает курсор на один символ назад; действует так же, как клавиша со стрелкой влево

ALT+F

Перемещает курсор на одно слово вперед

ALT+B

Перемещает курсор на одно слово назад

CTRL+L

Очищает экран и устанавливает курсор в левый верхний угол. То же самое делает команда clear

Изменение текста

В табл. 8.2 перечислены комбинации клавиш для редактирования символов в командной строке.

Вырезание и вставка (удаление и возврат) текста

В документации к Readline используется термин killing and yanking (удаление и возврат), обозначающий операцию, которую обычно называют вырезанием и вставкой (cutting and pasting). В табл. 8.3 перечислены комбинации клавиш, выполняющие вырезание и вставку. Вырезанные элементы сохраняются в кольцевом буфере, который называется kill-ring (кольцо удалений).

Таблица 8.2. Команды редактирования текста

Клавиша

Действие

CTRL+D

Удаляет символ в позиции курсора

CTRL+T

Меняет местами два символа — в позиции курсора и предшествующий ему

ALT+T

Меняет местами два слова — в позиции курсора и предшествующий ему

ALT+L

Переводит в нижний регистр символы, начиная с символа в позиции курсора и до конца слова

ALT+U

Переводит в верхний регистр символы, начиная с символа в позиции курсора и до конца слова

Таблица 8.3. Команды вырезания и вставки

Клавиша

Действие

CTRL+K

Удаляет символы от позиции курсора до конца строки

CTRL+U

Удаляет символы от позиции курсора до начала строки

ALT+D

Удаляет символы от позиции курсора до конца текущего слова

ALT+BACKSPACE

Удаляет символы от позиции курсора до начала текущего слова. Если курсор находится в начале слова, удаляется предшествующее слово

CTRL+Y

Извлекает текст из кольцевого буфера удалений и вставляет его в позицию курсора

клавиша meta

Отважившиеся заглянуть в документацию к Readline, которая находится в разделе «READLINE», на странице

справочного руководства (man) для bash, столкнутся с термином клавиша meta (meta key). На современных клавиатурах ей соответствует клавиша ALT, но так было не всегда.

В стародавние времена (до появления IBM-совместимых персональных компьютеров, но после появления Unix) персональные компьютеры не были так широко распространены. Иногда их заменяли устройства, называемые терминалами. Терминал — это коммуникационное устройство с текстовым дисплеем и клавиатурой, имеющее внутри столько электроники, сколько необходимо для отображения символов и перемещения курсора. Терминалы подключались (обычно посредством последовательного кабеля) к большому компьютеру или коммуникационной сети большого компьютера. В то время существовало очень много различных терминалов, имевших разные клавиатуры и дисплеи с разными функциональными возможностями. Так как все они поддерживали как минимум набор символов ASCII, разработчикам программного обеспечения, пишущим переносимые приложения, необходимо было прийти к общему знаменателю. В системах Unix применяется очень сложный способ использования терминалов и их разнообразных возможностей. Поскольку разработчики Readline не были уверены в наличии специализированной управляющей клавиши, они изобрели ее и назвали meta. На современных клавиатурах роль клавиши meta играет ALT, однако если вы все еще используете терминал (до сих пор поддерживаются в Linux!), можно просто нажать и отпустить клавишу ESC, и вы получите эффект нажатия и удержания клавиши ALT.

Дополнение

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

[me@linuxbox ~]$ ls

Desktop ls-output.txt Pictures Templates Videos

Documents Music Public

Попробуйте ввести следующую строку, но не нажимайте клавишу ENTER:

[me@linuxbox ~]$ ls l

Теперь нажмите клавишу TAB:

[me@linuxbox ~]$ ls ls-output.txt

Обратили ли вы внимание, как командная оболочка дополнила командную строку за вас? Попробуйте теперь набрать следующую строку — и снова не нажимайте ENTER):

[me@linuxbox ~]$ ls D

Нажмите TAB:

[me@linuxbox ~]$ ls D

Дополнения не произошло — просто прозвучал звуковой сигнал. Так получилось потому, что символу D соответствует более одного элемента в каталоге. Чтобы командная оболочка дополнила вашу строку, предложенная вами «подсказка» должна иметь однозначное продолжение. Попробуйте продолжить ввод:

[me@linuxbox ~]$ ls Do

Затем нажмите TAB:

[me@linuxbox ~]$ ls Documents

Дополнение произошло.

Этот пример демонстрирует дополнение путей как наиболее частый случай использования дополнения. Однако дополнение также работает с именами переменных (когда слово начинается с символа $), именами пользователей (когда слово начинается с символа ~), командами (когда дополняемое слово является первым в командной строке) и сетевыми именами компьютеров (когда слово начинается с символа @). Дополнение сетевых имен компьютеров действует только в отношении имен, перечисленных в /etc/hosts.

Поделиться:
Популярные книги

Черный маг императора 3

Герда Александр
3. Черный маг императора
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Разбуди меня

Рам Янка
7. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Разбуди меня

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Болотник 2

Панченко Андрей Алексеевич
2. Болотник
Фантастика:
попаданцы
альтернативная история
6.25
рейтинг книги
Болотник 2

Ты всё ещё моя

Тодорова Елена
4. Под запретом
Любовные романы:
современные любовные романы
7.00
рейтинг книги
Ты всё ещё моя

S-T-I-K-S. Пройти через туман

Елисеев Алексей Станиславович
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
7.00
рейтинг книги
S-T-I-K-S. Пройти через туман

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Я князь. Книга XVIII

Дрейк Сириус
18. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я князь. Книга XVIII

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Последняя Арена 6

Греков Сергей
6. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 6

Жребий некроманта. Надежда рода

Решетов Евгений Валерьевич
1. Жребий некроманта
Фантастика:
фэнтези
попаданцы
6.50
рейтинг книги
Жребий некроманта. Надежда рода