TIP Bash completion

出自Gentoo Linux Wiki

跳转到: 导航, 搜索
这篇文章属于 经验心得 系列的一部分。
终端/Shell 网络 X 窗口系统 Portage 系统 文件系统 内核 其它

目录

[编辑] 为什么要使用 bash-completion

它可以大大提高您的命令行工作效率。安装好之后,绝大多数命令均可以补齐命令行选项,省却了查看man的麻烦。还有很多命令可以直接补齐参数,而不必事先查看有哪些参数。几乎所有的命令你都可以尝试使用利用tab键来补齐。比如:

  1. cd[空格][tab],将只列出目录名字
  2. find[空格]-[tab],将显示所有以一个-开头的选项
  3. modprobe[空格][tab],将显示所有内核模块的名字
  4. emerge[空格]stardict[tab],将显示所有以stardict开头的软件包名
  5. mplayer
    • [空格][tab],将会只列出所有媒体类型的文件
    • [空格]-sub[空格][tab],又会自动补齐字幕文件的名字
    • [空格]-vo[空格][tab],将会列出所有的视频输出插件的名字

[编辑] 安装并启用bash-completion

首先,编辑 /etc/make.conf 加入 bash-completion USE 标记。然后重新编译系统里所有支持这个 USE 标记的软件包:

代码: 重新编译所有含有bash-completion USE标记的软件
 $ emerge -avuN world

接着,安装 bash-completioneselect

代码: 安装 bash-completion 和 eselect
 $ emerge -av bash-completion eselect

确保你的 ~/.bashrc 里有下面一行:

文件: ~/.bashrc
[[ -f /etc/profile.d/bash-completion ]] && source /etc/profile.d/bash-completion

最后source一下~/.bashrc:

代码: souce ~/.bashrc
 $ source ~/.bashrc

[编辑] Portage相关的命令

为了给portage相关命令(比如emerge, equery, revdep-rebuild 等) 加上 tab 补齐功能,需要安装 gentoo-bashcomp

$ emerge gentoo-bashcomp

然后使用eselect提供的bashcomp-config来启用gentoo-bashcomp,并source ~/.bashrc:

代码: 启用gentoo-bashcomp
 $ bashcomp-config enable gentoo
 $ source ~/.bashrc

[编辑] 其他命令

绝大多数命令在第一步之后就可以用上bash-completion了,不过有一部分需要手工启用,这些命令的列表可以这样查到

代码: 列出需要手工启用bash-completion的命令列表
 $ bashcomp-config list

如果你想启用 unrar 的补齐,可以这样做:

代码: 启用rar的bash-completion
 $ bashcomp-config enable unrar
 $ source ~/.bashrc
个人工具