ryg

Команды alias и unalias в Mac OS X и FreeBSD

Синтаксис:

alias [-p] [name[=value] ...]
unalias [-a] name [name ...]

Описание:

Встроенная команда alias в bash позволяет создать псевдоним команды. Псевдоним в дальнейшем может быть  использован для вызова заданной команды. Команда является встроенной в bash.

Параметры: 

-p Напечатать список действующих псевдонимов команд в системе
-a Удалить все псевдонимы из системы

Если команда вызывается без параметров или параметром -p, то будет выведен список команд-псевдонимов и их значений. Если вызвать команду с именем псевдонима, то будет напечатано его значение.

Имя псевдонима не может быть alias или unalias. Для удаления псевдонима из bash и его значения используется команда unalias. Команда может удалить один псевдоним, список и все действующие псевдонимы.

Обработка и подстановка.

Среда поддерживает список псевдонимов, которые могут назначаться, отменяться и выводится. После ввода команды она разбирается на "простые" команды и первое слово, слева направо посимвольно проверяется, не является ли оно псевдонимом. Если это так, то оно будет подменено значением заданное псевдонимом. В Mac OS X развернутая команда повторно тестируется на псевдонимы, то есть если у вас, есть два псевдонима:
 
alias list='ls -1'
alias le='list -o'

попытка выполнить команду le приведет к выполнению команды 

ls -1 -o 

Однако при обработке команды отсутствует рекурсивность, например:

alias ls ='ls -F'

В этом случае замена ls на ls -F будет сделана однократно. К сожалению, передача параметров внутрь алиаса невозможна (за исключением csh). Для создания новых команд с передачей параметров необходимо использовать механизм функций, которые, как правило, более удобны для использования практически для всех задач.

Для создания постоянных псевдонимов в UNIX рекомендуется использовать файл ~/.bash_aliases, однако в Mac OS X данный файл не обрабатывается. Поэтому их можно добавить в файл ~/.bash_profile или добавить в него следующие строки  или сделать рабочим файл ~/.bash_aliases для этого в файл ~/.bash_profile или в ~/.bashrc добавьте строки:

if [ -f ~/.bash_aliases ]; then
  . ~/.bash_aliases
fi

Примеры:

Исправление ошибок с пробелами в написании команды:

$ alias cd..='cd ..'
$ alias ..='cd ..'
Показать текущую папку:
$ alias .='echo $PWD'
Найти нужную команду в истории команд
$ alias mem='history | grep'
$ mem ls
Неполный перечень псевдонимов, которые я использую в ~/.bash_aliases

alias cd..='cd ..'
alias ..='cd ..'
alias mem='history | grep'
alias .='echo $PWD'
alias purge='sudo purge'
alias h='history'
alias apachet='sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'
alias apacher='sudo apachectl restart'
alias showhidden='defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder'
alias hidehidden='defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder'

Cвязанные команды:

bash - запустить интерпретатор командного языка shell
grep - искать содержимое в файлах по шаблонам
sudo - выполнить команду от лица другого пользователя
defaults - изменить пользовательские настройки Mac OS X