Mac OS X 中的 Bash 命令补全

Mac OS X 中的 Bash 命令补全

如何在输入命令时获取finkmacports自动完成程序名称,就像在 Ubuntu 中一样apt-get

例如当我输入

sudo port install ca

然后按下tab,我希望终端自动完成或显示可用的命令。

OS X 甚至不会在之后自动完成命令sudo

答案1

bash 完成添加完成:

  • sudo和之后的命令名称which
  • Macports 和 Homebrew 软件包名称(可选)
  • 主机名known_hosts用于以下命令ssh
  • 文件夹CDPATH

等等。您可以使用 打印完成命令列表,complete -p并使用 查看函数的源代码declare -f

安装 Homebrew 或 MacPorts 和 Bash

首先,你必须安装自制或者麦金塔按照说明进行操作。笔记:请勿同时安装两者,因为它们会发生冲突。

然后,安装较新版本的 Bash。OS X 中的内置 Bash 有点旧,使用 Bash > 4.1 可以获得更多完成选项,您可以通过

brew install bash

或者

sudo port install bash

取决于您使用 Homebrew 还是 MacPorts。

使用 Homebrew 安装 bash-completion

要安装bash-completion,您必须:

brew install bash-completion

并将以下内容添加到您的~/.bash_profile

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

Homebrew 当前安装了旧版本的 bash-completion(1.3),它仍然可以与 Bash 3.x 一起使用,但仍然建议使用 Bash 4.x。

使用 MacPorts 安装 bash-completion

使用 MacPorts:

sudo port install bash-completion

然后,添加到您的~/.bash_profile

if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
  . /opt/local/etc/profile.d/bash_completion.sh
fi

trac.macports.org/wiki/howto/bash-completion有关如何启用端口名称补全的说明。

相关内容