什么是 shell ?
简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。
打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。
回到计算机上来,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。
bash 是 linux 环境下面的命令行终端,对于命令和路径能自动补全,bash-completion则是对bash补全功能的一个增强,增加了对参数和包名的补全;
简单理解:【Bash简介 & Bash是如何处理命令的】
Ubuntu 环境安装【bash-completion】
- 确认 /etc/bash_completion 是否存在,如果没有就安装一个;
apt install bash-completion
安装完成 /etc目录会出现一个bash_completion文件;
- 在用户的shell中运行;
source /etc/bash_completion
也可以将其加入配置文件中;
# 编辑文件
vi /etc/bash.bashrc
取消上面的 if elif
的 #
符号注释,如下所示:
# enable bash completion in interactive shells
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
- 重新切换
bash
解释器,#bash
此时输入 apt
命令,按【tab
】键,显示如下:
k8s 环境中 bash 自动补全:
- 确认 /etc/bash_completion 是否存在,如果没有就安装一个(同上);
- 导入 bash 自动补全的命令;
source <(kubectl completion bash)
- 重新切换 bash 解析器,#bash
以上操作安装好依赖包后,重新进入一下终端即可生效,输入 kubectl 查看所有命令,按【tab】键,显示如下:
提示:
- 一切正常的话,就可以使用Tab健自动补全的功能了;
- 如果还是不能Tab健补全的话,可以退出命令行,然后再重新打开终端;(推荐使用)
- 或者重启系统以启动该软件 也可以;