Библиотека сайта rus-linux.net
Как игнорировать регистр символов при использовании функции автодополнения команд в терминале Linux
Оригинал: How to Ignore Case When Using Tab Completion in the Linux Terminal
Автор: Lori Kaufman
Дата публикации: 16 августа 2016 г.
Перевод: А.Панин
Дата перевода: 6 октября 2016 г.
Интерфейс командной строки Linux является регистрозависимым. В процессе использования функции автодополнения команд по клавише Tab
для быстрого перехода в директорию или вывода списка директорий вы должны использовать символы в том же регистре, что и символы в именах директорий. Однако, существует способ избавления этой функции от зависимости от регистра символов.
Функция автодополнения по клавише Tab
позволяет ускорить и упростить ввод имен директорий. Вы можете просто начать ввод имени директории после приглашения командной оболочки и нажать клавишу Tab
для автоматического завершения ввода ее имени. Например, для перехода в директорию Documents
вы можете просто начать ввод с cd Docu
, после чего нажать клавишу Tab
. В результате сработает функция автодополнения команды и введенная команда превратится в cd Documents/
.
Вы можете сделать данную функцию регистронезависимой, добавив специальную директиву в файл конфигурации Linux с именем .inputrc
. Данный файл конфигурации предназначен для описания раскладок клавиатуры для определенных условий на уровне командной оболочки (например, bash) и позволяет тонко настроить поведение интерфейса командной строки системы. Добавление директивы в упомянутый файл конфигурации не представляет каких-либо сложностей и мы покажем, как это сделать.
Существует два файла .inputrc
: глобальный файл, директивы из которого влияют на поведение командных оболочек всех пользователей системы (/etc/.inputrc
) и локальный файл в домашней директории текущего пользователя, директивы из которого влияют на поведение командной оболочки лишь этого пользователя (~/.inputrc
). Символ ~
соответствует домашней директории пользователя, такой, как /home/lori/
. Локальный файл .inputrc
имеет приоритет над глобальным и это означает, что все директивы, которые вы добавили в локальный файл, будут использоваться вне зависимости от содержимого глобального файла. В данной статье мы будем добавлять специальную директиву для игнорирования регистра символов в локальный файл из домашней директории пользователя, вы же можете добавлять ее в любой из упомянутых файлов.
Воспользуемся текстовым редактором под названием gedit для добавления директивы в файл конфигурации .inputrc
. Используйте комбинацию клавиш Ctrl+Alt+T
для открытия окна эмулятора терминала. После этого введите следующую команду для открытия файла .inputrc
в текстовом редакторе и нажмите клавишу Enter
:
gksu gedit ~/.inputrc
Если вы хотите модифицировать глобальный файл .inputrc
, введите вместо нее следующую команду:
gksu gedit /etc/.inputrc
Если в вашей системе нет файла .inputrc
, он будет автоматически создан в результате исполнения одной из этих команд либо в вашей домашней директории, либо в директории /etc
.
После исполнения команды должен появиться диалог с предложением ввести ваш пароль, поэтому следует ввести в соответствующее поле пароль, который вы используете для входа в систему и нажать на кнопку "OK"
.
Файл .inputrc
может оказаться пустым и это вполне нормально. Для того, чтобы командная оболочка игнорировала регистр символов при использовании функции автодополнения команд следует добавить следующую строку в данный файл:
set completion-ignore-case on
После этого следует нажать на кнопку "Save"
("Сохранить"
).
Для закрытия окна текстового редактора gedit следует нажать на кнопку "X" в его левом верхнем углу.
Директива, добавленная в файл конфигурации .inputrc
, никоим образом не повлияет на текущую сессию эмулятора терминала. Вы должны закрыть окно терминала и открыть его снова для того, чтобы изменения вступили в силу. Поэтому введите команду exit
после приглашения командной оболочки и нажмите клавишу Enter
, либо нажмите на кнопку "X" верхнем левом углу окна.
Примечание: вы можете увидеть несколько предупреждений в окне эмулятора терминала, но они никоим образом не влияют на работоспособность рассматриваемой функции.
Теперь, к примеру, при вводе cd docu
и нажатии клавиши Tab
...
функция автодополнения будет работать даже несмотря на то, что регистр всех введенных символов не совпадает с регистром символов имени директории.
Если вы захотите отменить внесенные изменения и вернуться к стандартному поведению функции автодополнения команд, вы сможете просто открыть файл .inputrc
, в который была добавлена директива, убрать строку с директивой, сохранить файл и закрыть текстовый редактор. Помните о том, что необходимо закрыть и снова открыть окно эмулятора терминала после редактирования файла .inputrc
для вступления изменений в силу.