Сокращения команд

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

Сокращения для определенных сочетаний параметров или имен файлов неприменимы, так как bash не ищет сокращений во всех параметрах команды. Однако bash распознает особые случаи, когда в одной командной строке перечисляется несколько команд (например, при использовании программных каналов, подстановке команд, последовательного выполнения команд с помощью ;), и просматривает все имеющиеся названия команд — нет ли в них сокращений.

user$ alias cdb='cd~kofler/linuxbuch'

Вышеуказанная команда определяет сокращение cdb, с помощью которой я перехожу в один из самых нужных каталогов своего компьютера — ~kofler/linuxbuch.

Вызовы команды alias можно применять и в виде вложений. Обратите внимание на то, что сокращения alias имеют приоритет над одноименными командами. Это свойство можно использовать для того, чтобы воспрепятствовать нежелательному вызову команды:

user$ alias more=less

Теперь при любой попытке выполнить команду more запускается мощная программа less. Если же по каким-то причинам вам снова понадобится команда more, потребуется указать путь к ней полностью (/bin/more) или поставить перед ней обратный слэш (\more). В таком случае он препятствует интерпретации псевдонима.

Сокращения alias можно вновь удалять с помощью unalias. В противном случае сокращения остаются действительны до того, как вы покинете оболочку (то есть не позднее, чем до выхода из системы). Если после этого вам все еще будут нужны какие-либо сокращения, задайте команды alias в файлах /etc/bashrc и ~/.bashrc в вашем домашнем каталоге.

Во многих дистрибутивах некоторые сокращения псевдонимов задаются по умолчанию. Например, если все время поступает запрос от rm относительно того, следует ли удалить файл, это обычно связано с заданным псевдонимом rm=rm -i. Список всех псевдонимов, действительных в настоящий момент, возвращает команда alias. В следующих строках показано, в каких разделах дистрибутивов Debian, Fedora, SUSE и Ubuntu располагаются определения псевдонимов.

Debian Fedora, Ubuntu: /etc/bashrc /etc/profile.d/.sh ~/.bashrc

SUSE: /etc/bash.bashrc /etc/profile.d/.sh ~/.bashrc ~/.alias

Подобно сокращениям могут работать и программы оболочки. Shell-сценарии имеют и определенное достоинство — они способны разбираться в параметрах ($1, $2 и т. д.) и применяются более гибко.

Last updated