如何在CentOS 8 Linux中添加bash自动完成功能
时间:2020-01-09 10:37:03 来源:igfitidea点击:
如何在CentOS 8(CentOS Enterprise Linux 8)中启用自动完成功能?
如何在CentOS 8中编写简单的bash完成代码?
简介:Bash是一个免费的开源shell。
它是sh兼容的命令语言解释器,它执行从标准输入或文件中读取的命令。
Bash可以运行大多数sh脚本而无需修改。
bash-completion是Shell函数的集合,这些函数利用CentOS 8上bash的可编程完成功能。
在本教程中我们学习了如何在CentOS 8中安装和启用Bash自动完成功能。
如何在CentOS 8中添加bash自动完成
在CentOS Enterprise Linux 8中添加bash完成的过程如下:
- 打开终端窗口/bash shell提示
- 通过运行以下命令在CentOS 8上搜索bash-completion:
sudo yum search bash-completion
- 通过运行以下命令在CentOS 8上安装bash的完成:
- 注销并登录以验证CentOS 8中的bash自动完成是否按预期工作
让我们详细查看所有步骤和示例。
查找有关bash-completion软件包的信息
可以按以下方式进行搜索:
yum search bash-completion
输出示例:
Last metadata expiration check: 0:06:40 ago on Wed Dec 11 17:03:53 2019. ==================== Name Exactly Matched: bash-completion ==================== bash-completion.noarch : Programmable completion for Bash ======================== Name Matched: bash-completion ======================== nbdkit-bash-completion.noarch : Bash tab-completion for nbdkit libvirt-bash-completion.x86_64 : Bash completion script libguestfs-bash-completion.noarch : Bash tab-completion scripts for libguestfs tools coccinelle-bash-completion.noarch : Bash tab-completion for coccinelle python-django-bash-completion.noarch : bash completion files for Django
另一个选择是在CentOX 8包装盒上列出包装:
yum list bash-completion
输出示例:
Last metadata expiration check: 0:06:06 ago on Wed Dec 11 17:03:53 2019. Available Packages bash-completion.noarch 1:2.7-5.el8 BaseOS
如何添加Bash完成CentOS 8
Bash补全是自动完成文件名,命令,目录名,主机名等的有用工具。
输入以下yum命令以在CentOS 8中安装自动完成功能:
sudo yum install bash-completion
要么
sudo dnf install bash-completion
如何测试Bash的可编程完成
上面的命令放置了一个名为/etc/profile.d/bash_completion.sh的shell脚本。
您可以在more命令或cat命令的帮助下进行查看:
more /etc/profile.d/bash_completion.sh
要么
cat /etc/profile.d/bash_completion.sh
输出示例:
# Check for interactive bash and that we haven't already been sourced in CentOS server if [ -n "${BASH_VERSION-}" -a -n "${PS1-}" -a -z "${BASH_COMPLETION_VERSINFO-}" ]; then # Check for recent enough version of bash. if [ ${BASH_VERSINFO[0]} -gt 4 ] || \ [ ${BASH_VERSINFO[0]} -eq 4 -a ${BASH_VERSINFO[1]} -ge 1 ]; then [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && \ . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then # Source completion code. . /usr/share/bash-completion/bash_completion fi fi fi fi
如何在CentOS 8上启用bash完成并在当前会话中使用它
上面的脚本将从您的登录会话或开始新的Shell会话时自动获得呼叫。
对于当前会话,请使用source命令加载它:
source /etc/profile.d/bash_completion.sh
在键入命令以自动完成语法或选项时,按[TAB]键:
sudo dnf i[TAB] cat /etc/ho[TAB]
在CentOS 8上编写第一个简单的bash完成代码
假设您一直想使用ping命令ping通三个服务器的IP地址/主机名。
因此,在shell提示符下键入以下内容:
complete -W '192.168.2.254 theitroad.local google.com' ping
现在键入ping并按[TAB]键以将任何域名/IP地址用于ping命令:
ping [TAB]