如何在RHEL8(Red Hat Linux)中添加bash自动完成功能

时间:2019-11-20 08:52:57  来源:igfitidea点击:

Bash是一个与sh兼容的命令语言解释器,它执行从标准输入或者文件读取的命令。
Bash无需修改就可以运行大多数sh脚本。
bash-completion是一组shell函数,它们利用了rhel8上bash的可编程完成特性。
在这个教程中,我们将学习如何在RHEL8中安装和启用Bash自动完成功能(命令补全)。

如何在RHEL8中添加bash自动完成(自动补全)功能

在Red Hat Enterprise Linux 8中添加bash补全功能的步骤如下:

  1. 运行以下命令在RHEL 8上搜索bash completion:sudo yum search bash-completion
  2. 在RHEL 8上安装bash-completion: sudo yum install bash-completion
  3. 注销当前shell,登录到bash, 检查RHEL8中的bash-completion是否正常工作。

如何在RHEL 8中安装bash-completion

bash-completion是自动完成文件名、命令等的有用工具。

安装命令:

$ sudo yum install bash-completion

或者

$ sudo dnf install bash-completion

如何测试Bash-completion的补全功能

安装包创建了一个新的shell脚本文件:

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

内容如下:

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

如何在当前会话中启用bash补全功能

使用source命令使配置生效:

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

现在就可以使用补全功能了。
比如 输入 sour+tab键就可以直接补全source命令。