校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Linux中10個你不知道的命令補齊技巧

Linux中10個你不知道的命令補齊技巧

熱門標簽:地址高德地圖標注 制作地圖標注 桂林市ai電銷機器人公司 外呼系統怎么弄 商店地圖標注外賣入駐 地圖標注的牌子 磁力導航地圖標注 外呼系統鏈接 新科火車站地圖標注點

默認情況下,bash命令行可以自動補全文件或目錄名稱。不過,我們可以使bash命令行補全執行更多的操作,通過補全命令可以讓它成就下一個輝煌。

這個教程說明了我們是怎樣使用可編程的命令行補全功能(programmable completion)把自動補全的功能應用于選項或者命令行參數。

例如:在輸入write 命令之后,如果你按兩次TAB按鍵,自動補全功能會提供執行write操作的列表。


復制代碼
代碼如下:

$ write [TAB][TAB]
bala raj
jason randy
john ritu
mayla thomas
nisha www-data

在下面的例子中,輸入telnet命令將會顯示可用了主機名:


復制代碼
代碼如下:

$ telnet [TAB][TAB]
localhost dev-db fileserver

要讓可編程命令補全功能在你的終端起作用 ,你只需要執行/etc/bash_completion即可,就像下面展示出來的操作:


復制代碼
代碼如下:

# . /etc/bash_completion

你也可以取消/etc/bash.bashrc(對于Ubuntu Linux 13.04系統)下面的注釋,這樣,你就可以不需要執行上面的命令了,


復制代碼
代碼如下:

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

如果你沒有發現這些代碼,也沒有找到/etc/bash_completion文件,那么你只需要通過使用apt-get命令來安裝bash_completion 包即可。

1、查看現有的bash補全命令

啟用可編程的bash命令行補全功能,就可以定義一套bash補全命令。命令行補全可以用來定義bash補全命令。

來看一下現有的bash補全功能,使用完整的命令,如下:

復制代碼
代碼如下:

complete -p | less

選項 -p 是可選擇的。

2、Bash中標準補全的列表

Bash為linux用戶默認提供了下面的標準補全命令。
變量名補全(Variablename completion)
用戶名補全(Username completion)
主機名補全(Hostname completion)
Path路徑補全(Pathname completion)
文件名補全(Filename completion)

3、為獲取命令定義補全命令

使用-c參數定義一個補全命令來獲得可使用的命令列表。在下面的例子中,為which命令定義了補全命令,

復制代碼
代碼如下:

$ complete -c which
$ which [TAB][TAB]
Display all 2116 possibilities? (y or n)

就像上面看到的,如果按”y”,所有的命令都會顯示出來。

4、為獲得目錄定義補全命令

使用參數d,定義一個只獲得目錄名稱的補全命令,下面的例子中,定義了ls的補全命令


復制代碼
代碼如下:

$ ls
countfiles.sh dir1/ dir2/ dir3/
$ complete -d ls
$ ls [TAB][TAB]
dir1/ dir2/ dir3/

就像上面看到的,連續按兩次TAB,就可以看到目錄名稱。

5、為獲得后臺作業名稱獲得補全命令

通過使用complete命令,把獲得job名稱作為參數是允許的。參數j用來把job名稱作為參數傳到命令行,展示如下:

復制代碼
代碼如下:

$ jobs
[1]- Stopped cat
[2]+ Stopped sed 'p'
$ complete -j ./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
cat sed

想要了解更多的后臺任務,可以通過這些案例來了解下如何管理Linux 后臺任務。

6、使用前綴和后綴補全命令

補全命令可以通過被前綴(在后面添加)和后綴(添加在后面)來定義。在下面的例子中,前綴和后綴在list_job_attrib.sh中被定義。

復制代碼
代碼如下:

$ jobs
[1]+ Stopped cat
$ complete -P '"gt;' -S 'lt;"' ./list_job_attrib.sh
$ ./list_job_attrib.sh [TAB][TAB]
$ ./list_job_attrib.sh "gt;catlt;"

7、具有排除功能的文件名和目錄補全

看看下面的腳本,輸出output 目錄下面的文件:


復制代碼
代碼如下:

$ cd output/
$ ls
all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txt
parser_mod.tmp extract.o

在上面的例子中,如果你想要排除以.tmp和.o為后綴的文件,實現ls命令的自動補全功能,可以這樣:


復制代碼
代碼如下:

$ export FIGNORE='.tmp:.o'
$ complete -f -d ls
$ cd output
$ ls [TAB][TAB]
all_calls.txt incoming_calls.txt outgoing_calls.txt missed_calls.txt

FIGNORE 是一個shell變量,它包含了排除在自動補全隊列中的文件的文件名的后綴。

8、通過IFS變量分割String字符串,得到被分割后的值。

單詞表可以通過使用w參數被IFS 變量中定義的字符串分割成多個單詞。最終每個單詞都會被分開,被顯示出來。


復制代碼
代碼如下:

$ export IFS=" "
$ complete -W "bubble quick" ./sort_numbers.sh
$ ./sort_numbers.sh [TAB][TAB]
bubble quick

如上所述,被IFS分割之后,單詞就會被擴展開,所以也可能有下面展示的這些變量。


復制代碼
代碼如下:

$ echo $SORT_TYPE1
bubble
$ echo $SORT_TYPE2
quick
$ complete -W "$SORT_TYPE1 $SORT_TYPE2" ./sort_numbers.sh
$ ./sort_numbers.sh [TAB][TAB]
bubble quick

9、編寫你自己的函數以實現自動補全功能

你可以聲明一個函數來定義補全功能。使用 -F 參數,被傳入到補全命令的函數名,可以執行并。例如,函數可以寫成下面的樣式。


復制代碼
代碼如下:

_parser_options()
{
local curr_arg;
curr_arg=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=( $(compgen -W '-i --incoming -o --outgoing -m --missed' -- $curr_arg ) );
}

在上面的函數中,

1.COMPREPLY :存儲在按下[TAB][TAB]之后打印信息的數組。
2.COMP_WORDS :在命令行輸入的單詞數組
3.COMP_CWORD :COMP_WORDS 數組的索引,可以訪問命令行中不用位置的單詞。
4.compgen :使用-W參數,持有current_arg變量中盡可能完整的、分開的內容。
文件中parser_option 函數通過source執行如下:

復制代碼
代碼如下:

$ source parser_option

這個函數鏈接到腳本解析器如下:

復制代碼
代碼如下:

$ complete -F _parser_options ./parser.pl
$ ./parser.pl [TAB][TAB]
-i --incoming -o --outgoing -m --missed

就像上面所看到的,解析器的參數可以通過_parser_options函數生成。

注意:查看/etc/bash_completion文件,了解更多的可編程的命令行補全功能函數。

10、當第一規范沒有進行匹配時,就需要執行第二規范

通過定義的補全規范,沒有進行匹配,那么通過-o參數定義的completion 就會執行。


復制代碼
代碼如下:

$ complete -F _count_files -o dirnames ./countfiles.sh

同上,通過使用_count_files 文件中定義的_count_files 函數定義的completion ,如果_count_files函數沒有進行匹配,那么就會執行目錄補全。

復制代碼
代碼如下:

$ ls
countfiles.sh dir1/ dir2/ dir3/
$./countfiles.sh [TAB][TAB]
dir1 dir2 dir3

標簽:江蘇 亳州 濱州 綏化 常德 宿州 保山 河源

巨人網絡通訊聲明:本文標題《Linux中10個你不知道的命令補齊技巧》,本文關鍵詞  Linux,中,10個,你,不知道,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux中10個你不知道的命令補齊技巧》相關的同類信息!
  • 本頁收集關于Linux中10個你不知道的命令補齊技巧的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品久久久久久久人人人人传媒| 91麻豆精品国产| 国产成人啪午夜精品网站男同| 丝袜美腿亚洲综合| 五月天久久比比资源色| 亚洲成av人影院| 美女在线一区二区| 久久国产精品免费| 国产精品资源在线| av在线不卡网| 欧美四级电影网| 欧美一级理论性理论a| 精品国产污网站| 欧美极品另类videosde| 日韩一区在线看| 一个色在线综合| 丝袜脚交一区二区| 韩国中文字幕2020精品| 成人综合在线观看| 在线观看亚洲a| 日韩欧美亚洲一区二区| 国产欧美一区视频| 亚洲国产精品久久艾草纯爱| 美女被吸乳得到大胸91| 成人黄色电影在线| 欧美丰满美乳xxx高潮www| 精品99久久久久久| 亚洲欧美日韩人成在线播放| 日本中文在线一区| 成人高清av在线| 7799精品视频| 亚洲天堂a在线| 久久精品免费观看| 成人动漫一区二区| 欧美一区二区三区视频在线| 日本一二三不卡| 首页欧美精品中文字幕| 国产a区久久久| 欧美伦理视频网站| 亚洲欧美在线视频| 国内精品伊人久久久久影院对白| 91一区在线观看| 日韩精品一区二区在线观看| 亚洲男女一区二区三区| 捆绑调教一区二区三区| 91日韩精品一区| 国产日产欧美一区| 久久国产日韩欧美精品| 精品视频色一区| 亚洲免费三区一区二区| 丁香网亚洲国际| 精品福利在线导航| 日韩vs国产vs欧美| 在线观看日韩电影| 亚洲图片欧美激情| 国产精华液一区二区三区| 欧美一卡在线观看| 丝袜美腿亚洲一区二区图片| 91官网在线免费观看| 亚洲欧美自拍偷拍色图| 成人美女视频在线观看18| 久久女同精品一区二区| 老司机一区二区| 精品久久久网站| 久久99九九99精品| 日韩欧美国产一区在线观看| 日韩二区三区在线观看| 欧美日韩免费在线视频| 亚洲国产视频直播| 色噜噜狠狠色综合中国| 亚洲男同1069视频| 日本高清免费不卡视频| 亚洲一区二区三区免费视频| 在线观看三级视频欧美| 亚洲午夜久久久| 欧美精品一二三区| 日本午夜一区二区| 精品国精品自拍自在线| 韩国视频一区二区| 国产日韩欧美激情| 波波电影院一区二区三区| 国产精品色眯眯| 色激情天天射综合网| 亚洲一区国产视频| 宅男在线国产精品| 国产精品中文字幕欧美| 国产精品热久久久久夜色精品三区| 不卡视频在线观看| 亚洲一级片在线观看| 欧美精品1区2区| 国产一区 二区 三区一级| 久久精品视频一区二区| 99久久婷婷国产| 亚洲成人www| 久久午夜电影网| 91啦中文在线观看| 美女视频黄频大全不卡视频在线播放| 91精品国产一区二区人妖| 国产一区久久久| 日韩毛片一二三区| 欧美一级午夜免费电影| 成人高清在线视频| 男人的j进女人的j一区| 中文字幕精品在线不卡| 欧美亚洲图片小说| 国产一区二区免费视频| 亚洲日本乱码在线观看| 日韩午夜在线影院| 91在线一区二区| 精品在线视频一区| 亚洲国产成人av网| 久久精品亚洲乱码伦伦中文| 欧美日韩免费不卡视频一区二区三区 | 成人性色生活片| 一区二区在线免费观看| 欧美一区二区三区免费视频| 成人免费的视频| 蜜桃av噜噜一区| 亚洲一区在线观看免费| 国产精品全国免费观看高清 | 欧美色爱综合网| 国产在线不卡一卡二卡三卡四卡| 一区二区免费在线| 久久亚洲欧美国产精品乐播 | 欧美一区二区三区在| 99re视频这里只有精品| 国产麻豆精品95视频| 午夜精品久久久久久久99樱桃| 国产精品久久久久桃色tv| 91精品欧美一区二区三区综合在 | 亚洲精品高清在线| 亚洲国产精品国自产拍av| 精品电影一区二区三区| 欧美肥胖老妇做爰| 欧美日韩精品欧美日韩精品一综合| 不卡av免费在线观看| 懂色av一区二区夜夜嗨| 国产精一区二区三区| 精一区二区三区| 久久精品国产色蜜蜜麻豆| 亚洲一区二区三区四区在线免费观看| 中文字幕亚洲电影| 国产精品乱码妇女bbbb| 亚洲国产成人一区二区三区| 久久久久九九视频| www激情久久| 久久久久久日产精品| 久久久久久久久一| 欧美激情一区二区三区全黄| 中文一区二区在线观看| 中文字幕欧美日本乱码一线二线 | 99精品桃花视频在线观看| 成人性视频网站| av电影在线观看完整版一区二区| 国产99精品视频| www.av亚洲| 日本精品裸体写真集在线观看| 色哟哟在线观看一区二区三区| 99国产精品国产精品毛片| 91色|porny| 欧美精品v国产精品v日韩精品| 欧美一区二区三区四区视频| 欧美成人猛片aaaaaaa| 国产亚洲人成网站| 国产精品理论在线观看| 亚洲永久精品大片| 天堂精品中文字幕在线| 久久69国产一区二区蜜臀| 国产91清纯白嫩初高中在线观看| 成人黄页在线观看| 欧美日本韩国一区二区三区视频| 欧美日韩aaaaa| 精品91自产拍在线观看一区| 国产精品美女久久久久久久| 亚洲欧美日韩国产另类专区| 亚洲成人综合网站| 精品一区二区三区蜜桃| 91浏览器在线视频| 欧美一区二区精品| 中文字幕巨乱亚洲| 婷婷久久综合九色国产成人| 国产精品一区专区| 色综合天天综合网天天看片| 7777精品伊人久久久大香线蕉完整版 | 久久福利视频一区二区| 国产精品18久久久久久久久久久久| www.日韩av| 欧美大片拔萝卜| 亚洲视频 欧洲视频| 日韩国产精品久久| 暴力调教一区二区三区| 欧美成人一区二区| 一区二区三区精密机械公司| 黄色资源网久久资源365| 91久久一区二区| 中国色在线观看另类| 日本成人在线网站| 色爱区综合激月婷婷| 国产亚洲综合av| 美女免费视频一区二区|