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

UnixForum





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

Как игнорировать регистр символов при использовании функции автодополнения команд в терминале Linux

Оригинал: How to Ignore Case When Using Tab Completion in the Linux Terminal
Автор: Lori Kaufman
Дата публикации: 16 августа 2016 г.
Перевод: А.Панин
Дата перевода: 6 октября 2016 г.

Как игнорировать регистр символов при использовании функции автодополнения команд в терминале Linux

Интерфейс командной строки 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" ("Сохранить").

Добавление директивы в файл .inputrc

Для закрытия окна текстового редактора gedit следует нажать на кнопку "X" в его левом верхнем углу.

Закрытие окна gedit

Директива, добавленная в файл конфигурации .inputrc, никоим образом не повлияет на текущую сессию эмулятора терминала. Вы должны закрыть окно терминала и открыть его снова для того, чтобы изменения вступили в силу. Поэтому введите команду exit после приглашения командной оболочки и нажмите клавишу Enter, либо нажмите на кнопку "X" верхнем левом углу окна.

Примечание: вы можете увидеть несколько предупреждений в окне эмулятора терминала, но они никоим образом не влияют на работоспособность рассматриваемой функции.

Закрытие окна эмулятора терминала

Теперь, к примеру, при вводе cd docu и нажатии клавиши Tab...

Ввод команды cd

функция автодополнения будет работать даже несмотря на то, что регистр всех введенных символов не совпадает с регистром символов имени директории.

Регистронезависимое автодополнение по клавише Tab

Если вы захотите отменить внесенные изменения и вернуться к стандартному поведению функции автодополнения команд, вы сможете просто открыть файл .inputrc, в который была добавлена директива, убрать строку с директивой, сохранить файл и закрыть текстовый редактор. Помните о том, что необходимо закрыть и снова открыть окно эмулятора терминала после редактирования файла .inputrc для вступления изменений в силу.