1、自動補全是Bash Shell的功能,相關的命令(compgen、complete、compopt)
創新互聯建站擁有一支富有激情的企業網站制作團隊,在互聯網網站建設行業深耕十余年,專業且經驗豐富。十余年網站優化營銷經驗,我們已為1000+中小企業提供了成都網站制作、成都做網站、外貿營銷網站建設解決方案,按需網站制作,設計滿意,售后服務無憂。所有客戶皆提供一年免費網站維護!
2、complete實例
創建hello_complete,內容:
complete -F _hello_complete_func hello.sh
_hello_complete_func ()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="help usage version"
if [[ ${cur} == * ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
3、source hello_complete讓補全的參數生效。
4、創建hello.sh
#!/bin/sh
echo "hello world"
5、./hello.sh [TAB][TAB]
help usage version
6、不用complete簡單的提醒需要輸入參數
#!/bin/sh
str=$1
if [[ $1 == '' ]];then
echo "Usage: $0 help|version"
exit 0;
fi
echo "$str"
在 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
看看配置之后的效果
如果覺得有用記得收藏點贊
在Linux系統中,輸入一個命令,按一次TAB鍵會補全命令,按兩次TAB鍵,就會列出所有以輸入字符開頭的可用命令。這個功能被稱作命令補全。默認情況下,bash命令行可以自動補全文件或目錄名稱。
要讓可編程命令補全功能在你的終端起作用 ,你只需要執行/etc/bash_completion即可。如果你沒有找到/etc/bash_completion文件,那么你只需要通過使用apt-get命令來安裝bash_completion 包即可。
用法示例:
在輸入write命令之后,如果你按兩次TAB按鍵,自動補全功能會提供執行write操作的列表。
在Linux的終端中輸入tab鍵時,有時會出現命令不能補全的情況,此時有一種原因是bash錯誤。
使用 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即可。
此處參考: .
本文出自 “ 低調的前進 ” 博客,請務必保留此出處
一方面文件實質都存放在根目錄下,樹狀目錄,所以tab可以在當前指定目錄下尋找i節點信息補齊路徑或者文件名; 另一方面tab可以去查詢環境變量設置里面/etc/bin的命令文件,補齊命令。
Linux下TAB命令補全是bash的功能。putty登陸linux后需要切換到bash shell,先查看系統可用的shell種類:
[oracle@zeng?~]$?chsh?-l
/bin/sh
#這個不能使用tab補全命令
/bin/bash?
#修改為這個bash?shell即可
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
修改當前的shell
[oracle@zeng?~]$?chsh?
Changing?shell?for?oracle.
Password:?
New?shell?[/bin/bash]:?/bin/bash
Shell?changed.
分享文章:linux命令補全設置 linux命令行補全
網址分享:http://m.kartarina.com/article18/hgcpgp.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、網站內鏈、Google、品牌網站建設、企業建站、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯