十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在Linux的终端中输入tab键时,有时会出现命令不能补全的情况,此时有一种原因是bash错误。
目前创新互联公司已为1000+的企业提供了网站建设、域名、网站空间、网站托管、服务器托管、企业网站设计、宜章网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
使用 ls -l /bin/sh 命令发现
/bin/sh - /bin/dash
dash是一个不同于bash的Shell,它主要为了执行脚本而出现,而不是交互,它速度更快,但功能比bash要少的多。语法严格遵守POSIX标准。
通过命令 ln -sf bash /bin/sh 可以将dash改成bash。此时问题可以解决。
Ubuntu系统在某些情况下,apt-get 不能补全相关命令,可以通过修改/etc/bash.bashrc文件的相关行,把默认的#号去掉即可。
if [ -f /etc/bash_completion ]; then
/etc/bash_completion
fi
重新登录Shell即可。
此处参考: .
本文出自 “ 低调的前进 ” 博客,请务必保留此出处
如何像使用Ubuntu一样方便使用tab键自动补全命令,bash-completion增强bash的自动补全功能。
最早接触的linux发行版本是ubuntu,后来学习工作等原因转向了RedHat系的发行版本,使用中发现同样使用的是bash但是redhat系中bash的补全功能却比ubuntu中bash的补全功能弱了不少,后来查资料发现是ubuntu中预装了bash-completion这个软件。安装上这个软件后你的bash补全功能就和ubuntu中的一样强大了
在这里下推荐一个YUM源很不错的,软件很齐全
vim /etc/yum.repos.d/bash.repo
[DAG]
name=DAG repo
baseurl=$releasever/en/$basearch/dag/
gpgcheck=0
enabled=1
#yum search bash-completion
#yum install bash-completion
上面这段加入你的yum源中然后就可以很爽的使用tab键了;
在 Linux 命令行中,当输入字符后,按Tab 键,Shell 就会列出以这些字符开头的所有可用命令,如果只有一个命令匹配到,按一次 Tab 键就自动将这个命令补全。
如果输入pass,此时按 Tab 键,因为以pass开头的命令只有passwd这个命令, Shell 就会自动补全 passwd 命令。
另外如果输入的字符匹配多个命令则会列出所有可用的命令,比如,如果输入do,此时按 Tab 键 Shell 就会自列出可用的命令。
但是系统自带的命令补全功能有限,自动补全功能仅限于命令和文件名。
可以安装 Bash 命令补全增强软件包 bash-completion来实现更多命令的补全。
以Centos为例
直接通过yum命令安装
bash-completion版本信息
配置命令补全
命令补全的脚本存放在/usr/share/bash-completion/completions/目录,可以在这个目录查看支持增强补全功能的命令。
再试试输入docker命令后按tab键:
可以看到后续可用命令的提示,妈妈再也不用担心我记不住命令了。
同样对于kubenetes也可以实现命令的自动补全和提示:
如果是在安装bash-completion之后安装git是不能自动命令补全,需要手动进行一些配置。
git安装之后文档里会有git-completion.bash文件
安装完git之后重新source一下bash-completion
看看配置之后的效果
如果觉得有用记得收藏点赞