Bash 自動補齊 on Mac OSX 10.11.1

曾有人問起凍仁是怎麼熟記各個 GNU/Linux 指令的?成千上萬個指令記也記不完,更別說還有 Mac OSX (以下簡稱 OSX)、Windows 跟各式的網路設備。除了常用、把指令融入生活外,凍仁還會在 Bash 開啟自動補齊 (completion) 功能來輔助操作。

自動補齊 (completion) 說穿了就是一直在 Bash 裡按 Tab 來取得指令和檔案結構的提示,這點也適用 OSX 上的 Shell 喔!

▲ Bash 自動補齊火力展示。

1. 安裝 bash-completion 套件 (使用 zsh 的伙伴請改用 zsh-completion)。
[ jonny@el_capitan ~ ]
$ brew install bash-completion [Enter]

2. 自動載入 bash-completion 設定。
[ jonny@el_capitan ~ ]
$ vim ~/.bashrc [Enter]
...
# Enable the bash completion.

# - GNU/Linux.
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
  . /etc/bash_completion
fi

# - Mac OS X (homebrew).
if [ "$(uname)" == "Darwin" ]; then
  if [ -f $(brew --prefix)/etc/bash_completion ]; then
    . $(brew --prefix)/etc/bash_completion
  fi
fi 

3. 除了 bash-completion 以外,我們還能藉由擴充 Homebrew-completions 來取得各式的自動補齊 scripts。
[ jonny@el_capitan ~ ]
$ brew tap homebrew/completions [Enter]

4. 接下來就看用到哪裝到哪,最好可以走到哪補齊到哪。
[ jonny@el_capitan ~ ]
$ brew install homebrew/completions/docker-machine-completion \
      homebrew/completions/django-completion \
      homebrew/completions/pip-bash-completion \
      homebrew/completions/rake-completion \
      homebrew/completions/ruby-completion [Enter]

5. 重開終端機 (Terminal) 即可套用。

Bash 自動補齊可是要成為命令列大師必點的技能,下次在終端機裡迷路時不妨多按幾下 Tab 唄!

話說 AWS 官方似乎也有提供 aws-cliCommand Completion scripts,等玩過再回來分享了。

2015-12-03


當參考 Installing the AWS Command Line Interface - AWS Command Line Interface 一文裝好 aws-cli 後,我們就可以在 bashrc 載入以下設定來啟用 aws-cli 的自動補齊功能了。
[ jonny@el_capitan ~ ]
$ vim ~/.bashrc [Enter]
...
# AWS CLI

if [ -f "/usr/local/bin/aws_completer" ] ; then
  complete -C '/usr/local/bin/aws_completer' aws
fi

2015-12-24


homebrew 裡的 docker-completion 不太好用,建議直接使用 docker 官方的 completion script。

1. 下載 docker-completion script。
[ jonny@el_capitan ~ ]
$ wget https://raw.githubusercontent.com/docker/docker/master/contrib/completion/bash/docker

2. 安裝 docker-completion。
[ jonny@el_capitan ~ ]
$ mv docker /usr/local/etc/bash_completion.d/

延伸閱讀:
成為 GNU/Linux 命令列達人的七種武器
[完全用 GNU/Linux 工作] 09. Hacking Bash

相關連結:
Homebrew/homebrew-completions
ekalinin/pip-bash-completion

資料來源:
Install Bash git completion · bobthecow/git-flow-completion Wiki


留言

  1. docker官方的路徑改成這樣了
    https://github.com/docker/cli/blob/master/contrib/completion/bash/docker

    回覆刪除

張貼留言

喜歡這篇文章嗎?歡迎在底下留言讓凍仁知道。😉

Popular Articles

MySQL 語法匯整