Блог Олега Сердюкова

Упрощение работы с bash с помощью пакета bash-completion

Привык я в стандартной конфигурации Ubuntu к удобству автодополнения в bash, которое обеспечивается пакетом bash-completion.

Автодополнение имён файлов/каталогов/программ с помощью кнопки Tab в bash или получение списка вариантов с помощью двойного нажатия Tab знают все. А этот пакет расширяет автодополнение, позволяя, например, дополнять параметры в командах, имена хостов и т.п. В общем вещь полезная.

Установка с использованием Homebrew:

$ brew update
From http://github.com/mxcl/homebrew
 * branch            master     -> FETCH_HEAD
Already up-to-date.

$ brew search bash-completion
bash-completion

$ brew install bash-completion

Активируем bash-completion в ~/.bash_profile:

$ vim ~/.bash_profile
if [ -f `brew --prefix`/etc/bash_completion ]; then
  . `brew --prefix`/etc/bash_completion
fi

Затем подгружаем изменения (или выходим/входим в Terminal.app):

$ . ~/.bash_profile

Поддерживаемые расширения можно посмотреть в /usr/local/etc/bash_completion.d/, там же можно поинтересоваться содержимым некоторых скриптов, интересно.

Например, теперь при нажатии double Tab после ssh предлагается список хостов:

$ ssh 192(tab) (tab)
192.168.98.12   192.168.98.3    192.168.99.2    195.234.212.51

Или дополнение опций:

$ ssh -o C(tab) (tab)
ChallengeResponseAuthentication=  Ciphers=                          CompressionLevel=                 ControlMaster=
CheckHostIP=                      ClearAllForwardings=              ConnectTimeout=                   ControlPath=
Cipher=                           Compression=                      ConnectionAttempts=               

Расширений много, поэтому работать станет в shell проще.

Comments