1. 背景
在Ubuntu上使用Docker的时候,使用tab键自动完成docker命令感觉非常方便,例如:只需要输入image或者container ID的前几位就可以使用Tab键补齐整个命令行。但是在Mac上却没有办法实现相同的操作。
经过搜索终于找到了原因:原来是因为没有启用Bash completion功能导致的。而实际上Docker安装包内已经提供了针对Docker的Bash Completion
脚本,只需要启用即可。
2. 安装
要启用Docker的Bash Completion
功能,需要满足两个条件:
- 你用的是Bash这个shell(好像废话了,嘿嘿);
- 安装有
Bash completion
这个功能。
但是Mac上默认是没有安装Bash completion
功能的。需要通过Homebrew
进行安装。如果之前没有安装过Homebrew
,首先参考附录安装。
2.1 安装bash-completion
安装bash-completion。方法如下:
1brew install bash-completion
2.2 启用bash-completion
然后将/Applications/Docker.app/Contents/Resources/etc
目录中的docker-compose.bash-completion
,docker.bash-completion
两个文件拷贝到/usr/local/etc/bash_completion.d
目录中。
最后修改.bash_profile,增加如下内容即可:
1[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
附录A. 参考资料
附录B. Homebrew使用记录
1zhang@zhangdeMacBook-Pro:~$ brew info bash-completion
2bash-completion: stable 1.3 (bottled)
3Programmable completion for Bash 3.2
4https://bash-completion.alioth.debian.org/
5/usr/local/Cellar/bash-completion/1.3_1 (189 files, 607.8K) *
6 Poured from bottle on 2017-01-16 at 18:09:59
7From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/bash-completion.rb
8==> Caveats
9Add the following lines to your ~/.bash_profile:
10 [ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
11
12Bash completion has been installed to:
13 /usr/local/etc/bash_completion.d