RHEL/CentOS Linux安装并激活Bash完成

时间:2020-01-09 10:38:21  来源:igfitidea点击:

如何在基于CentOS/RHEL/Fedora/Scientific Linux的系统上通过各种命令使用bash自动完成功能?

自动完成仅是各种黑客的集合,这些黑客指定了Readline如何使用完整的内置参数完成参数。
默认情况下,许多Linux发行版(例如Debian Linux,Ubuntu Linux等)都启用了此功能。
但是,尚未在基于RHEL的Linux发行版(包括CentOS Linux)上安装并启用此功能。
他的教程向您展示了如何在CentOS/RHEL/Oracle/Scientific或Fedora Linux上安装Bash自动完成功能。

在CentOS/RHEL上安装和启用Bash完成的软件包

您需要安装两个软件包:

  • bash-completion:Bash的可编程完成
  • bash-completion-extras:Bash的其他可编程补全(仅适用于CentOS/RHEL/Oracle/SL v7.x)

RHEL/CentOS Linux安装并激活Bash完成

首先,在CentOS/RHEL版本6上打开EPEL存储库(如果您使用的是CentOS/RHEL 7.x,请参阅此页面以打开EPEL存储库),然后执行以下yum命令来安装bash-completion软件包:

# yum install bash-completion

或者

# yum install bash-completion bash-completion-extras

输出示例:

Loaded plugins: fastestmirror
Installed size: 648 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): bash-completion-2.1-6.el7.noarch.rpm                                     |  85 kB  00:00:03     
(2/2): bash-completion-extras-2.1-11.el7.noarch.rpm                             | 123 kB  00:00:07     
------------------------------------------------------------------------------------------------------
Total                                                                   26 kB/s | 208 kB  00:00:07     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:bash-completion-2.1-6.el7.noarch                                                  1/2 
  Installing : 1:bash-completion-extras-2.1-11.el7.noarch                                          2/2 
  Verifying  : 1:bash-completion-extras-2.1-11.el7.noarch                                          1/2 
  Verifying  : 1:bash-completion-2.1-6.el7.noarch                                                  2/2 
 
Installed:
  bash-completion.noarch 1:2.1-6.el7             bash-completion-extras.noarch 1:2.1-11.el7            
 
Complete!

" Fedora Linux"用户执行以下dnf命令:

$ sudo dnf install bash-completion

如何使用bash自动完成功能?

然后退出登录shell/ssh会话,并使用以下命令重新登录:

# logout

打开终端或使用ssh登录:

$ ssh [email protected]

或者,使用以下命令为bash获取完成代码:

$ . /etc/bash_completion

或者

$ source /etc/bash_completion

对于较新的版本,请尝试:

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

用法示例

您只需要简单地按一下TAB键即可。
语法为:

command [TAB]
command arg[TAB][TAB]
man da[TAB]

rpm使用

执行以下命令(执行rpm -qi ph后接[TAB]):

$ rpm -qi ph[TAB][TAB]
php         php-cli     php-common  php-devel   php-imap

Yum用法

执行以下命令:

$ yum [TAB][TAB]
--assumeyes        --enableplugin     list               search
--cacheonly        --enablerepo       makecache          --setopt
check              --errorlevel       --nogpgcheck       shell
check-update       --exclude          --noplugins        --showduplicates
clean              groupinfo          --obsoletes        --skip-broken
--color            groupinstall       provides           --tolerant
--config           grouplist          --quiet            update
--debuglevel       groupremove        --randomwait       upgrade
deplist            help               reinstall          --verbose
--disableexcludes  --help             --releasever       version
--disableplugin    history            remove             --version
--disablerepo      info               repolist           
distro-sync        install            resolvedep         
downgrade          --installroot      --rpmverbosity

要搜索名为lsof的软件包:

$ yum se[TAB] lsof

或即时搜索并安装:

# yum in[TAB] ls[TAB]
lshell.noarch            lslk-debuginfo.x86_64    lsscsi-debuginfo.x86_64
lshw-gui.x86_64          lslk.x86_64              lsscsi.x86_64
lshw.x86_64              lsof-debuginfo.x86_64    lsyncd.x86_64

cryptsetup用法

Linux磁盘上的统一密钥设置格式(LUKS)允许您加密整个磁盘,并且可以使用cryptsetup命令安装或重新安装加密分区:

cryptsetup [TAB] luksOpen /dev/md[TAB]

自动完成功能支持的所有命令的列表

执行以下命令:

$ cd /etc/bash_completion.d
$ ls

输出示例:

autoconf       gpg2               ntpdate           shadow
automake       gzip               open-iscsi        smartctl
bash-builtins  iconv              openssl           sqlite3
bind-utils     iftop              perl              ssh
brctl          ifupdown           pkg-config        strace
bzip2          info               pm-utils          subscription-manager
chkconfig      ipmitool           postfix           tar
configure      iproute2           procps            tcpdump
dhclient       man                rsync             yum.bash
e2fsprogs      mdadm              scl.bash          yum-utils.bash
findutils      module-init-tools  service
getent         net-tools          sh