linux命令自動(dòng)補(bǔ)全工具bash-completion或渤,自動(dòng)補(bǔ)全git、Docker奕扣、kubenetes等命令

什么是命令自動(dòng)補(bǔ)全

在 Linux 命令行中薪鹦,當(dāng)輸入字符后,按Tab 鍵惯豆,Shell 就會(huì)列出以這些字符開頭的所有可用命令池磁,如果只有一個(gè)命令匹配到,按一次 Tab 鍵就自動(dòng)將這個(gè)命令補(bǔ)全楷兽。

如果輸入pass地熄,此時(shí)按 Tab 鍵,因?yàn)橐詐ass開頭的命令只有passwd這個(gè)命令芯杀, Shell 就會(huì)自動(dòng)補(bǔ)全 passwd 命令端考。

另外如果輸入的字符匹配多個(gè)命令則會(huì)列出所有可用的命令,比如揭厚,如果輸入do却特,此時(shí)按 Tab 鍵 Shell 就會(huì)自列出可用的命令。

[root@node2 ~]# do

do docker-containerd-shim dockerd done

docker docker-containerd-shim-current dockerd-current

docker-containerd docker-ctr-current docker-storage-setup

docker-containerd-current docker-current domainname

但是系統(tǒng)自帶的命令補(bǔ)全功能有限筛圆,自動(dòng)補(bǔ)全功能僅限于命令和文件名裂明。

可以安裝 Bash 命令補(bǔ)全增強(qiáng)軟件包 bash-completion來實(shí)現(xiàn)更多命令的補(bǔ)全。

bash-completion的安裝

以Centos為例

[root@node1 ~]# cat /etc/redhat-release

CentOS Linux release 7.7.1908 (Core)

直接通過yum命令安裝

yum install bash-completion

bash-completion版本信息

[root@node1 completions]# rpm -qi bash-completion

Name : bash-completion

Epoch : 1

Version : 2.1

Release : 6.el7

Architecture: noarch

Install Date: Thu 19 Mar 2020 07:59:19 AM CST

Group : Unspecified

Size : 264934

License : GPLv2+

Signature : RSA/SHA256, Fri 04 Jul 2014 08:47:01 AM CST, Key ID 24c6a8a7f4a80eb5

Source RPM : bash-completion-2.1-6.el7.src.rpm

Build Date : Tue 10 Jun 2014 08:05:27 AM CST

Build Host : worker1.bsys.centos.org

Relocations : (not relocatable)

Packager : CentOS BuildSystem <http://bugs.centos.org>

Vendor : CentOS

URL : http://bash-completion.alioth.debian.org/

Summary : Programmable completion for Bash

Description :

bash-completion is a collection of shell functions that take advantage

of the programmable completion feature of bash.

配置命令補(bǔ)全

source /usr/share/bash-completion/bash_completion

命令補(bǔ)全的腳本存放在/usr/share/bash-completion/completions/目錄太援,可以在這個(gè)目錄查看支持增強(qiáng)補(bǔ)全功能的命令闽晦。

再試試輸入docker命令后按tab鍵:

[root@node1 completions]# docker

build diff history inspect logs port restart search stats top wait

commit events image kill network ps rm secret stop unpause

container exec images load node pull rmi service swarm update

cp export import login pause push run stack system version

create help info logout plugin rename save start tag volume

[root@node1 completions]# docker

可以看到后續(xù)可用命令的提示扳碍,媽媽再也不用擔(dān)心我記不住命令了。

同樣對于kubenetes也可以實(shí)現(xiàn)命令的自動(dòng)補(bǔ)全和提示:

[root@node1 ~]# kubectl

annotate certificate cordon drain get port-forward run uncordon

api-versions cluster-info cp edit label proxy scale version

apply completion create exec logs replace set

attach config delete explain options rolling-update taint

autoscale convert describe expose patch rollout top

[root@node1 ~]# kubectl

git的命令補(bǔ)全

如果是在安裝bash-completion之后安裝git是不能自動(dòng)命令補(bǔ)全仙蛉,需要手動(dòng)進(jìn)行一些配置笋敞。

git安裝之后文檔里會(huì)有g(shù)it-completion.bash文件

[root@node1 bash-completion]# find / -name git-completion*

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.bash

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.tcsh

/usr/share/doc/git-1.8.3.1/contrib/completion/git-completion.zsh

/usr/share/bash-completion/completions/git-completion.bash

/usr/share/git-core/contrib/completion/git-completion.tcsh

[root@node1 bash-completion]#

安裝完git之后重新source一下bash-completion

source /usr/share/bash-completion/bash_completion

看看配置之后的效果

[root@node3 ~]# git

add cherry difftool init reflog show

am cherry-pick fetch log relink show-branch

annotate clean filter-branch merge remote stage

apply clone format-patch mergetool repack stash

archive column fsck mv replace status

bisect commit gc name-rev request-pull submodule

blame config get-tar-commit-id notes reset subtree

branch credential grep pull revert tag

bundle describe help push rm whatchanged

checkout diff imap-send rebase shortlog

[root@node3 ~]# git

如果覺得有用記得收藏點(diǎn)贊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市捅儒,隨后出現(xiàn)的幾起案子液样,更是在濱河造成了極大的恐慌,老刑警劉巖巧还,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異坊秸,居然都是意外死亡麸祷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門褒搔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阶牍,“玉大人,你說我怎么就攤上這事星瘾∽吣酰” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵琳状,是天一觀的道長磕瓷。 經(jīng)常有香客問我,道長念逞,這世上最難降的妖魔是什么困食? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮翎承,結(jié)果婚禮上硕盹,老公的妹妹穿的比我還像新娘。我一直安慰自己叨咖,他們只是感情好瘩例,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甸各,像睡著了一般垛贤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痴晦,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天南吮,我揣著相機(jī)與錄音,去河邊找鬼誊酌。 笑死部凑,一個(gè)胖子當(dāng)著我的面吹牛露乏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涂邀,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼瘟仿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了比勉?” 一聲冷哼從身側(cè)響起劳较,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浩聋,沒想到半個(gè)月后观蜗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衣洁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年墓捻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坊夫。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡砖第,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出环凿,到底是詐尸還是另有隱情梧兼,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布智听,位于F島的核電站羽杰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瞭稼。R本人自食惡果不足惜忽洛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望环肘。 院中可真熱鬧欲虚,春花似錦、人聲如沸悔雹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腌零。三九已至梯找,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間益涧,已是汗流浹背锈锤。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人久免。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓浅辙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阎姥。 傳聞我的和親對象是個(gè)殘疾皇子记舆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容