Linux 提高操作效率之 tab 命令補全

2021-10-22 23:58:34 字數 4454 閱讀 2165

最近在使用阿里雲 ecs 時,發現 centos 無法進行 tab 補全,特別影響操作效率,本文簡單記錄下 linux 下的 tab 命令補全功能,希望對 linux 初學者有所幫助。

linux 最小化安裝時,是沒有 tab 命令補全的,需要自己手動安裝。

# 安裝

$ yum -y install bash-completion

# 重新登入生效

預設情況下,在 linux 中提供下列補全功能:

# echo 在 $ 符號後按兩次 tab 將顯示所有可用的變數

$ echo $[tab]

[tab]

# su 在 「- 」 符號後,按兩次 tab 將顯示所有使用者名稱

$ su - [tab]

[tab]

# 同上,按兩次 tab 將顯示所有使用者名稱

$ cd ~[tab]

[tab]

注意:使用者名稱是從 /etc/passwd 檔案中獲取的。

在執行命令時,如果找到單個匹配項的可執行檔案,則乙個 tab 就會將可執行命令自動補全。

$ ls -lt

總用量 5736

-rwxr-xr-x 1 nginx nginx 5872560 3月 24 15:33 nginx

# ./n 之後按一次 tab 將補全可執行命令:./nginx

$ ./n[tab]

當找到多個匹配項時,則兩個 tab 將會顯示可用命令。

$ ./yum[tab]

[tab]

yum yum-builddep yum-config-manager yum-debug-dump yum-debug-restore yum********** yum-groups-manager

與可執行命令補全類似,找到單個匹配項時,乙個 tab 自動補全,兩個 tab 列出所有匹配項。

$ ls -lt

總用量 80

-rw-r--r-- 1 nginx nginx 6542 3月 26 21:06 nginx.conf

drwxr-xr-x 2 root root 4096 3月 26 20:59 site-enable

drwxr-xr-x 2 nginx nginx 4096 3月 24 15:33 ssl

-rw-r--r-- 1 nginx nginx 2656 3月 24 15:33 nginx.conf.default

-rw-r--r-- 1 nginx nginx 636 3月 24 15:33 scgi_params.default

-rw-r--r-- 1 nginx nginx 636 3月 24 15:33 scgi_params

-rw-r--r-- 1 nginx nginx 664 3月 24 15:33 uwsgi_params.default

-rw-r--r-- 1 nginx nginx 664 3月 24 15:33 uwsgi_params

-rw-r--r-- 1 nginx nginx 1077 3月 24 15:33 fastcgi.conf.default

-rw-r--r-- 1 nginx nginx 1077 3月 24 15:33 fastcgi.conf

-rw-r--r-- 1 nginx nginx 1007 3月 24 15:33 fastcgi_params.default

-rw-r--r-- 1 nginx nginx 1007 3月 24 15:33 fastcgi_params

-rw-r--r-- 1 nginx nginx 5231 3月 24 15:33 mime.types.default

-rw-r--r-- 1 nginx nginx 5231 3月 24 15:33 mime.types

-rw-r--r-- 1 nginx nginx 3610 3月 24 15:33 win-utf

-rw-r--r-- 1 nginx nginx 2837 3月 24 15:33 koi-utf

-rw-r--r-- 1 nginx nginx 2223 3月 24 15:33 koi-win

# 在cat n 之後按一次 tab 鍵,會自動補全 cat nginx.conf

$ cat n[tab]

# 「cd 」 之後按一次 tab 鍵,會

$ cd

[tab]

$ cd s[tab]

site-enable/ ssl/

# 當有很多檔案要顯示時,會顯示以下警告訊息

$ ls -l /etc/[tab]

[tab]

display all 194 possibilities? (y or n)

# ssh 在 @ 符號後,按兩次 tab 鍵,獲取要連線的主機名

$ ssh root@ [tab]

[tab]

# 同上,按兩次 tab 鍵,獲取要連線的主機名

$ scp nginx.conf nginx@ [tab]

[tab]

注意:主機名是從 /etc/hosts 檔案中獲取的。

# 檢視已有的命令列補全

$ complete |

more

complete -f _minimal

complete -f _filedir_xspec oodraw

complete -f _filedir_xspec elinks

complete -f _filedir_xspec freeamp

complete -f _longopt split

complete -f _longopt sed

complete -f _longopt ld

complete -f _longopt grep

complete -j -p '"%' -s '"'

jobs

complete -d pushd

complete -f _minimal sh

complete -f _filedir_xspec playmidi

complete -f _longopt mv

complete -f _known_hosts rlogin

complete -f _service service

complete -b help

complete -a stopped -p '"%' -s '"'

bgcomplete -f _filedir_xspec cdiff

complete -f _filedir_xspec bibtex

complete -f _filedir_xspec r**iew

complete -f _filedir_xspec realplay

complete -f _filedir_xspec xine

complete -f _filedir_xspec xpdf

complete -f _longopt strip

complete -f _longopt pr

complete -f _longopt grub

complete -f _longopt gperf

complete -f _known_hosts ftp

complete -o filenames -f _yu_debug_dump yum-debug-dump.py

complete -o filenames -f _yu_builddep yum-builddep

complete -o filenames -f _yu_repoclosure repoclosure

complete -o filenames -f _yu_repo_rss repo-rss

complete -f _filedir_xspec oowriter

complete -f _filedir_xspec chromium-browser

complete -f _filedir_xspec gqmpeg

complete -f _filedir_xspec tex

complete -f _filedir_xspec zathura

complete -f _filedir_xspec lzegrep

complete -f _longopt m4

complete -f _command time

--more--

# complete 命令詳情

$ man complete

另外,complete 可以讓自己寫的程式也支援自動補全功能,目前我沒有此需求,需要時再研究。

對DOM操作效率的提高

本文部分內容,引用自 想要知道如何提高效率,那麼首先我們需要知道,關於dom的操作,哪乙個最影響整體的效率,也就是說,哪一處所占用的時間較大,首先,我們介紹一下,html頁面顯示在瀏覽器中,都要經過哪些流程。其中,第三步,對render tree的各個結點計算布局資訊為時間占用較大的一部分,而在這一...

提高開發效率之「每日時間管理」

軟體團隊的開發效率,一直都是乙個很棘手的問題。效率無法提高,很容易導致軟體專案經常的出現延誤。延誤的原因很多,但是有一點卻是不容忽視的,那就是每天一點點延誤的日積月累。本文重點從改善每天的工作效率來入手。每天效率的提高,很多人也都有分析,大的來說也就是兩個方面 還有很多點,不全面之處,請大家指出 1...

python高階之效率提高 pdb簡易教程

比起使用print與log,它更能提高工作效率。1.1 修改 侵入在程式開始執行前一行,插入import ipdb ipdb.set trace 1.2 執行時侵入python m pdb2.1 在制定位置設定斷點b b lineno b filename lineno b functionname...