The Apple Geek

Чему ты научился сегодня?

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

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

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

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

$ brew updateFrom http://github.com/mxcl/homebrew * branch            master     -> FETCH_HEADAlready up-to-date.$ brew search bash-completionbash-completion$ brew install bash-completion

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

$ vim ~/.bash_profileif [ -f `brew --prefix`/etc/bash_completion ]; then  . `brew --prefix`/etc/bash_completionfi

Затем подгружаем изменения (или выходим/входим в 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