如何在Ubuntu Linux中添加bash自动完成功能

时间:2020-01-09 10:37:04  来源:igfitidea点击:

如何在Ubuntu Linux 18.04/20.04 LTS中启用自动完成功能?
如何在Ubuntu Linux中编写简单的bash完成代码?

Bash是与sh兼容的命令语言解释器,它执行从标准输入或文件读取的命令。

Bash可以运行大多数sh脚本而无需修改。

bash-completion是shell函数的集合,这些函数利用了Ubuntu Linux上bash的可编程完成功能。
该页面显示了如何在Ubuntu Linux中安装和启用Bash自动完成功能。

如何在Ubuntu Linux中添加bash自动完成功能

在Ubuntu中添加bash完成的过程如下:

  • 打开终端应用程序
  • 通过运行以下命令刷新Ubuntu上的软件包数据库:sudo apt update
  • 通过运行以下命令在Ubuntu上安装bash-completion软件包:sudo apt install bash-completion
  • 注销并登录以验证Ubuntu Linux中的bash自动完成是否正常工作

让我们详细了解所有步骤。

如何在Ubuntu中添加bash完成

Bash补全是自动完成文件名,命令等的有用工具。
键入以下apt命令/apt-get命令以在Ubuntu Linux中安装自动完成功能:

$ sudo apt update
$ sudo apt install bash-completion

如何测试Bash的可编程完成

安装程序放置了一个名为/etc/profile.d/bash_completion.sh的shell脚本。
您可以在cat命令的帮助下进行查看:

$ cat /etc/profile.d/bash_completion.sh

启用bash智能完成功能的Bash Shell代码

您可以将/etc/profile.d/bash_completion.sh添加到~/.bashrc文件中,如下所示:

## source it from ~/.bashrc or ~/.bash_profile ##
echo "source /etc/profile.d/bash_completion.sh" >> ~/.bashrc
## Another example Check and load it from ~/.bashrc or ~/.bash_profile ##
grep -wq '^source /etc/profile.d/bash_completion.sh' ~/.bashrc || echo 'source /etc/profile.d/bash_completion.sh'>>~/.bashrc

如何在Ubuntu上启用bash完成并在当前会话中使用它

该脚本将在您的登录会话或开始新的Shell会话时自动获得调用。
对于当前会话,请使用source命令加载它:

$ source /etc/profile.d/bash_completion.sh

在键入命令以自动完成语法或选项时,按[TAB]键:

$ sudo apt i[TAB]
$ cat /etc/re[TAB]

编写您的第一个简单的bash完成代码

假设您始终要使用host命令检查三个域名的IP地址。
因此,在shell提示符下键入以下内容:

complete -W 'google.com theitroad.local theitroad.com' host

现在键入host,然后按[TAB]键将任一域名用于host命令:

host [TAB]

在Ubuntu 18.04上执行bash完成的host命令