亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Unix > 正文

看UNIX高手的10個習(xí)慣第1/2頁

2020-10-28 18:50:41
字體:
供稿:網(wǎng)友
引言

當(dāng)您經(jīng)常使用某個系統(tǒng)時,往往會陷入某種固定的使用模式。有時,您沒有養(yǎng)成以盡可能最好的方式做事的習(xí)慣。有時,您的不良習(xí)慣甚至?xí)?dǎo)致出現(xiàn)混亂。糾正此類缺點(diǎn)的最佳方法之一,就是有意識地采用抵制這些壞習(xí)慣的好習(xí)慣。本文提出了 10 個值得采用的 UNIX 命令行習(xí)慣――幫助您克服許多常見使用怪癖,并在該過程中提高命令行工作效率的好習(xí)慣。下面列出了這 10 個好習(xí)慣,之后對進(jìn)行了更詳細(xì)的描述。

采用 10 個好習(xí)慣

要采用的十個好習(xí)慣為: 

在單個命令中創(chuàng)建目錄樹。 
更改路徑;不要移動存檔。 
將命令與控制操作符組合使用。 
謹(jǐn)慎引用變量。 
使用轉(zhuǎn)義序列來管理較長的輸入。 
在列表中對命令分組。 
在 find 之外使用 xargs 。 
了解何時 grep 應(yīng)該執(zhí)行計(jì)數(shù)――何時應(yīng)該繞過。 
匹配輸出中的某些字段,而不只是對行進(jìn)行匹配。 
停止對 cat 使用管道。 
在單個命令中創(chuàng)建目錄樹

清單 1 演示了最常見的 UNIX 壞習(xí)慣之一:一次定義一個目錄樹。


清單 1. 壞習(xí)慣 1 的示例:單獨(dú)定義每個目錄樹

~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $



使用 mkdir 的 -p 選項(xiàng)并在單個命令中創(chuàng)建所有父目錄及其子目錄要容易得多。但是即使對于知道此選項(xiàng)的管理員,他們在命令行上創(chuàng)建子目錄時也仍然束縛于逐步創(chuàng)建每級子目錄?;〞r間有意識地養(yǎng)成這個好習(xí)慣是值得的:


清單 2. 好習(xí)慣 1 的示例:使用一個命令來定義目錄樹

~ $ mkdir -p tmp/a/b/c



您可以使用此選項(xiàng)來創(chuàng)建整個復(fù)雜的目錄樹(在腳本中使用是非常理想的),而不只是創(chuàng)建簡單的層次結(jié)構(gòu)。例如:


清單 3. 好習(xí)慣 1 的另一個示例:使用一個命令來定義復(fù)雜的目錄樹

~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}



過去,單獨(dú)定義目錄的唯一借口是您的 mkdir 實(shí)現(xiàn)不支持此選項(xiàng),但是在大多數(shù)系統(tǒng)上不再是這樣了。IBM、AIX®、mkdir、GNU mkdir 和其他遵守單一 UNIX 規(guī)范 (Single UNIX Specification) 的系統(tǒng)現(xiàn)在都具有此選項(xiàng)。

對于仍然缺乏該功能的少數(shù)系統(tǒng),您可以使用 mkdirhier 腳本(請參見參考資料),此腳本是執(zhí)行相同功能的 mkdir 的包裝:

~ $ mkdirhier project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}



更改路徑;不要移動存檔

另一個不良的使用模式是將 .tar 存檔文件移動到某個目錄,因?yàn)樵撃夸浨『檬悄M谄渲刑崛?nbsp;.tar 文件的目錄。其實(shí)您根本不需要這樣做。您可以隨心所欲地將任何 .tar 存檔文件解壓縮到任何目錄――這就是 -C 選項(xiàng)的用途。在解壓縮某個存檔文件時,使用 -C 選項(xiàng)來指定要在其中解壓縮該文件的目錄:


清單 4. 好習(xí)慣 2 的示例:使用選項(xiàng) -C 來解壓縮 .tar 存檔文件

~ $ tar xvf -C tmp/a/b/c newarc.tar.gz



相對于將存檔文件移動到您希望在其中解壓縮它的位置,切換到該目錄,然后才解壓縮它,養(yǎng)成使用 -C 的習(xí)慣則更加可取――當(dāng)存檔文件位于其他某個位置時尤其如此。



 


 回頁首 




將命令與控制操作符組合使用

您可能已經(jīng)知道,在大多數(shù) Shell 中,您可以在單個命令行上通過在命令之間放置一個分號 (;) 來組合命令。該分號是 Shell 控制操作符,雖然它對于在單個命令行上將離散的命令串聯(lián)起來很有用,但它并不適用于所有情況。例如,假設(shè)您使用分號來組合兩個命令,其中第二個命令的正確執(zhí)行完全依賴于第一個命令的成功完成。如果第一個命令未按您預(yù)期的那樣退出,第二個命令仍然會運(yùn)行――結(jié)果會導(dǎo)致失敗。相反,應(yīng)該使用更適當(dāng)?shù)目刂撇僮鞣ū疚膶⒚枋銎渲械牟糠植僮鞣?。只要您?nbsp;Shell 支持它們,就值得養(yǎng)成使用它們的習(xí)慣。

僅當(dāng)另一個命令返回零退出狀態(tài)時才運(yùn)行某個命令

使用 && 控制操作符來組合兩個命令,以便僅當(dāng) 第一個命令返回零退出狀態(tài)時才運(yùn)行第二個命令。換句話說,如果第一個命令運(yùn)行成功,則第二個命令將運(yùn)行。如果第一個命令失敗,則第二個命令根本就不運(yùn)行。例如:


清單 5. 好習(xí)慣 3 的示例:將命令與控制操作符組合使用

~ $ cd tmp/a/b/c && tar xvf ~/archive.tar



在此例中,存檔的內(nèi)容將提取到 ~/tmp/a/b/c 目錄中,除非該目錄不存在。如果該目錄不存在,則 tar 命令不會運(yùn)行,因此不會提取任何內(nèi)容。

僅當(dāng)另一個命令返回非零退出狀態(tài)時才運(yùn)行某個命令

類似地,|| 控制操作符分隔兩個命令,并且僅當(dāng)?shù)谝粋€命令返回非零退出狀態(tài)時才運(yùn)行第二個命令。換句話說,如果第一個命令成功,則第二個命令不會運(yùn)行。如果第一個命令失敗,則第二個命令才會 運(yùn)行。在測試某個給定目錄是否存在時,通常使用此操作符,如果該目錄不存在,則創(chuàng)建它:


清單 6. 好習(xí)慣 3 的另一個示例:將命令與控制操作符組合使用

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c



您還可以組合使用本部分中描述的控制操作符。每個操作符都影響最后的命令運(yùn)行:


清單 7. 好習(xí)慣 3 的組合示例:將命令與控制操作符組合使用

~ $ cd tmp/a/b/c || mkdir -p tmp/a/b/c && tar xvf -C tmp/a/b/c ~/archive.tar







 回頁首 




謹(jǐn)慎引用變量

始終要謹(jǐn)慎使用 Shell 擴(kuò)展和變量名稱。一般最好將變量調(diào)用包括在雙引號中,除非您有不這樣做的足夠理由。類似地,如果您直接在字母數(shù)字文本后面使用變量名稱,則還要確保將該變量名稱包括在方括號 ([]) 中,以使其與周圍的文本區(qū)分開來。否則,Shell 將把尾隨文本解釋為變量名稱的一部分――并且很可能返回一個空值。清單 8 提供了變量的各種引用和非引用及其影響的示例。


清單 8. 好習(xí)慣 4 的示例:引用(和非引用)變量

~ $ ls tmp/
a b
~ $ VAR="tmp/*"
~ $ echo $VAR
tmp/a tmp/b
~ $ echo "$VAR"
tmp/*
~ $ echo $VARa

~ $ echo "$VARa"

~ $ echo "${VAR}a"
tmp/*a
~ $ echo ${VAR}a
tmp/a
~ $







 回頁首 




使用轉(zhuǎn)義序列來管理較長的輸入

您或許看到過使用反斜杠 (/) 來將較長的行延續(xù)到下一行的代碼示例,并且您知道大多數(shù) Shell 都將您通過反斜杠聯(lián)接的后續(xù)行上鍵入的內(nèi)容視為單個長行。然而,您可能沒有在命令行中像通常那樣利用此功能。如果您的終端無法正確處理多行回繞,或者您的命令行比通常?。ɡ缭谔崾痉掠虚L路經(jīng)的時候),反斜杠就特別有用。反斜杠對于了解鍵入的長輸入行的含義也非常有用,如以下示例所示:


清單 9. 好習(xí)慣 5 的示例:將反斜杠用于長輸入

~ $ cd tmp/a/b/c || /
> mkdir -p tmp/a/b/c && /
> tar xvf -C tmp/a/b/c ~/archive.tar



或者,也可以使用以下配置:


清單 10. 好習(xí)慣 5 的替代示例:將反斜杠用于長輸入

~ $ cd tmp/a/b/c /
>                 || /
> mkdir -p tmp/a/b/c /
>                    && /
> tar xvf -C tmp/a/b/c ~/archive.tar



然而,當(dāng)您將輸入行劃分到多行上時,Shell 始終將其視為單個連續(xù)的行,因?yàn)樗偸莿h除所有反斜杠和額外的空格。

注意:在大多數(shù) Shell 中,當(dāng)您按向上箭頭鍵時,整個多行輸入將重繪到單個長輸入行上。



 


 回頁首 




在列表中對命令分組

大多數(shù) Shell 都具有在列表中對命令分組的方法,以便您能將它們的合計(jì)輸出向下傳遞到某個管道,或者將其任何部分或全部流重定向到相同的地方。您一般可以通過在某個 Subshell 中運(yùn)行一個命令列表或通過在當(dāng)前 Shell 中運(yùn)行一個命令列表來實(shí)現(xiàn)此目的。

在 Subshell 中運(yùn)行命令列表

使用括號將命令列表包括在單個組中。這樣做將在一個新的 Subshell 中運(yùn)行命令,并允許您重定向或收集整組命令的輸出,如以下示例所示:


清單 11. 好習(xí)慣 6 的示例:在 Subshell 中運(yùn)行命令列表

~ $ ( cd tmp/a/b/c/ || mkdir -p tmp/a/b/c && /
> VAR=$PWD; cd ~; tar xvf -C $VAR archive.tar ) /
> | mailx admin -S "Archive contents"



在此示例中,該存檔的內(nèi)容將提取到 tmp/a/b/c/ 目錄中,同時將分組命令的輸出(包括所提取文件的列表)通過郵件發(fā)送到地址 admin。

當(dāng)您在命令列表中重新定義環(huán)境變量,并且您不希望將那些定義應(yīng)用于當(dāng)前 Shell 時,使用 Subshell 更可取。

在當(dāng)前 Shell 中運(yùn)行命令列表

將命令列表用大括號 ({}) 括起來,以在當(dāng)前 Shell 中運(yùn)行。確保在括號與實(shí)際命令之間包括空格,否則 Shell 可能無法正確解釋括號。此外,還要確保列表中的最后一個命令以分號結(jié)尾,如以下示例所示:


清單 12. 好習(xí)慣 6 的另一個示例:在當(dāng)前 Shell 中運(yùn)行命令列表

~ $ { cp ${VAR}a . && chown -R guest.guest a && /
> tar cvf newarchive.tar a; } | mailx admin -S "New archive"







 回頁首 




在 find 之外使用 xargs

使用 xargs 工具作為篩選器,以充分利用從 find 命令挑選的輸出。find 運(yùn)行通常提供與某些條件匹配的文件列表。此列表被傳遞到 xargs 上,后者然后使用該文件列表作為參數(shù)來運(yùn)行其他某些有用的命令,如以下示例所示:


清單 13. xargs 工具的經(jīng)典用法示例

~ $ find some-file-criteria some-file-path | /
> xargs some-great-command-that-needs-filename-arguments

             


然而,不要將 xargs 僅看作是 find 的輔助工具;它是一個未得到充分利用的工具之一,當(dāng)您養(yǎng)成使用它的習(xí)慣時,將會希望進(jìn)行所有試驗(yàn),包括以下用法。

傳遞空格分隔的列表

在最簡單的調(diào)用形式中,xargs 就像一個篩選器,它接受一個列表(每個成員分別在單獨(dú)的行上)作為輸入。該工具將那些成員放置在單個空格分隔的行上:


清單 14. xargs 工具產(chǎn)生的輸出示例

~ $ xargs
                a

                c

                    Control-D

a b c
~ $



您可以發(fā)送通過 xargs 來輸出文件名的任何工具的輸出,以便為其他某些接受文件名作為參數(shù)的工具獲得參數(shù)列表,如以下示例所示:

12下一頁閱讀全文
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
免费在线看v| 曰韩精品一区二区| 欧美性bbb| 私库av在线播放| 色播五月激情五月| 奇米影视一区二区三区小说| 91一区二区在线观看| 视频一区二区三| 激情网址大全| 高清不卡日本v二区在线| 日本激情免费| 天天操天天干天天舔| 国产一二在线播放| 免费成人黄色| 加勒比一区二区三区在线| 亚洲成人av免费在线观看| 美女被久久久| 欧美激情网友自拍| 99精品免费| 99久久婷婷国产综合精品青牛牛| 第一区第二区在线| 波多野结衣网站| 国产一二三四在线| 成人免费看片视频| 成人一区二区视频| 国产夫妻自拍一区| 成人动漫在线播放| 欧美激情视频网址| 日本欧美一区二区| 国产精品国产精品国产专区不蜜| 国产精品无码网站| 亚洲人成影视在线观看| 国产美女搞久久| 亚洲我射av| 亚洲欧美色一区| 国产影视一区二区| 中文字幕有码av| 亚洲一区美女视频在线观看免费| 天堂网av手机版| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 色婷婷综合久久久久中文字幕| 成人小视频在线播放| 韩国三级hd中文字幕有哪些| 精品一成人岛国片在线观看| 国产一区二中文字幕在线看| 香蕉成人伊视频在线观看| av激情在线观看| 中文字幕一区二区三区精彩视频| 亚洲蜜臀av乱码久久精品| 国产精品一区二区三区在线| 99国产精品视频免费观看| 欧美综合在线第二页| 免费成人结看片| 免费尤物视频| av成人亚洲| 成人免费大片黄在线播放| 免费不卡中文字幕在线| 国产伦精品一区二区三区视频网站| 五月天婷婷在线播放| 国产高清视频在线播放| 顶级网黄在线播放| jizzjizzjizz亚洲日本| 免费一区二区三区视频导航| 日韩欧美黄色大片| 中文字幕先锋av影音资源网| 五月天一区二区三区| 亚洲欧美另类久久久精品2019| 欧美性受xxxxxx黑人xyx性爽| 成人中文字幕av| 色999韩欧美国产综合俺来也| 色婷婷av金发美女在线播放| 有色视频在线观看| 全国精品久久少妇| 色午夜这里只有精品| 精人妻一区二区三区| 日韩精品电影一区二区| 国产一级片自拍| 97国产在线| 国产色视频一区二区三区qq号| 色偷偷成人一区二区三区91| 日韩一区二区在线观看视频播放| 日本丰满少妇裸体自慰| 人人妻人人藻人人爽欧美一区| aaaaa级片| 一级在线免费观看| 日本韩国在线不卡| 亚洲一区中文字幕| 亚洲伊人成综合成人网| 色视频欧美一区二区三区| 九九九九九九精品| 一个人看的www日本高清视频| 久久99影视| 色婷婷综合中文久久一本| 欧美调教网站| 国产大学生自拍视频| 96日本xxxxxⅹxxx17| 日本免费黄视频| 91精品国产91久久久久久最新| 亚洲日产国产精品| 日韩一区av在线| 在线观看三级视频欧美| 日本在线免费中文字幕| 欧美又粗又长又爽做受| 欧美老tube| 最近2019年中文视频免费在线观看| 亚洲av片在线观看| 新版中文字幕在线资源| 亚洲欧美另类久久久精品| 欧洲精品视频在线观看| 日本高清精品| 中文字幕在线观看二区| 天美传媒免费在线观看| 毛茸茸多毛bbb毛多视频| 欧洲精品一区二区三区在线观看| 欧美极品jizzhd欧美仙踪林| 嘿咻视频在线看| 99九九电视剧免费观看| 本道综合精品| 欧美午夜美女看片| 国产午夜免费福利| 国产视频手机在线| av电影在线播放| 91精品国产色综合久久久蜜香臀| 精品成人在线观看| 亚洲国产欧美日韩在线| 日韩国产成人| 欧美视频中文一区二区三区在线观看| 麻豆视频传媒入口| 亚洲茄子视频| 国产亚洲欧美在线精品| 亚洲成人网久久久| 国产精品美女久久久久高潮| 亚洲男人天堂手机在线| 欧美性爽视频| 精品久久久久久久久久久院品网| 老熟妇仑乱视频一区二区| jizzjizz大全| 明星裸体视频一区二区| www..com.cn蕾丝视频在线观看免费版| 涩涩涩在线视频| 中文字幕不卡一区| 亚洲tv在线| 欧美成人午夜激情| 国产在线精品一区免费香蕉| 欧美激情麻豆| 成人在线资源网址| 亚洲欧洲自拍偷拍| 亚洲欧美日韩精品在线| 欧美激情一区二区三区免费观看| 尤物视频在线观看免费| 亚洲国产精品一区二区第一页| 国产欧美日韩精品在线观看| 久久免费国产精品| 成人在线观看免费完整| 中文字幕亚洲一区二区va在线| 青青草原综合久久大伊人精品优势| 中文字幕乱码免费| xxxxx91麻豆| 亚洲欧洲www| 亚洲激情在线观看视频免费| 五月开心播播网| 亚洲午夜电影在线观看| 久久综合图片| 无套内谢大学处破女www小说| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一级精品在线| 97久久夜色精品国产九色| 亚洲大胆人体视频| 18视频免费网址在线观看| 色婷婷av一区二区三区在线观看| 国产成人一区二区| 先锋影音欧美性受| 国产欧美日韩视频在线| 国产99久久精品一区二区 夜夜躁日日躁| 男女高潮又爽又黄又无遮挡| 在线欧美小视频| 国产精品伦子伦免费视频| 黄色精品一二区| 日本夜夜草视频网站| 日本wwwcom| 久久久久久久久久免费视频| 色综合中文字幕国产| 国产日韩在线免费| x99av成人免费| 欧美乱大交xxxxx在线观看| 奇米777第四色| 国产aⅴ2021| 成人性生交大片免费看网站| 中国日韩欧美久久久久久久久| 你懂的国产视频| 日本一区二区三区久久| 西西人体44www大胆无码| 韩国成人在线视频| 亚洲精品一区二三区不卡| 一级毛片国产| 亚洲在线观看免费视频| 久久成人18免费网站| 日本中文字幕第一页| 国产精品亚洲人在线观看| 免费av在线一区二区| 影音先锋久久精品| 91久久久久久久久久| 91精品美女在线| 触手亚洲一区二区三区| 亚洲最大成人在线观看| 波多野结衣亚洲一区二区| 草草浮力影院| 中文字幕国产传媒| 久草在线新资源| 国产午夜精品免费一区二区三区| 黄页大全在线免费观看| 亚洲另类图片色| 啪啪激情综合网| 美女国产精品久久久| 亚洲成人tv网| 亚洲国产精品av| 欧美www.| 国产精品色一区二区三区| 美腿丝袜亚洲一区| 国模无码视频一区二区三区| 亚洲第一精品在线| 在线播放精品视频| 日韩av在线第一页| 久久久久美女| 国产无套在线观看| 亚洲色图 激情小说| 日本激情视频网| 日韩成人伦理电影在线观看| 国产激情久久久久| 久草在线免费福利| 久久精品二区亚洲w码| 91精品久久久久久综合乱菊| 欧美国产高跟鞋裸体秀xxxhd| 婷婷激情四射五月天| 国产富婆一级全黄大片| 136国产福利精品导航| 久久国产精品偷| 亚洲av片一区二区三区| 影视一区二区三区| 欧美bbbbxxxx| 亚洲毛片在线观看.| 国产一区二区三区四区在线观看| 天天躁日日躁狠狠躁欧美| 666欧美在线视频| 九色精品美女在线| 波多野结衣50连登视频| 亚洲+变态+欧美+另类+精品| 五月激情丁香一区二区三区| 国产乱人伦偷精品视频不卡| 久久久久久亚洲精品杨幂换脸| 韩国欧美国产1区| 中文字幕一区二区三区人妻| 成人精品视频在线| 黄色性视频网站| 久久久久国产精品一区三寸| 好吊妞这里只有精品| 成人一区二区不卡免费| 蜜桃精品wwwmitaows| 男人的天堂网页| 一卡二卡3卡四卡高清精品视频| 精品一区二区三区久久| 最新国产成人在线观看| 日产国产欧美视频一区精品| 天堂资源在线中文精品| 亚洲欧美日韩色| 97超碰人人模人人爽人人看| 国产精品无码一区二区三区| 91精品亚洲一区在线观看| 中文字幕欧美一区二区| 国产精品亚洲一区二区三区妖精| 91视频免费在线| 成年人黄色大片在线| 中文字幕乱码一区二区| 91精品视频在线| 我和岳m愉情xxxⅹ视频| 久久亚洲国产精品成人av秋霞| 日本a√在线观看| 国产欧美日韩精品一区二区三区| 韩国免费在线视频| 久久99国产精品久久久久久久久| 免费成人深夜夜行p站| 久久99国产精品99久久| 国产精品天美传媒沈樵| 国产精品成人国产乱| 中文字幕乱码视频| 中文字幕高清一区| 成人性生交大片免费看中文网站| 日本不卡二区| ass白嫩白嫩的小美女| 国产免费人人看| 97**国产露脸精品国产| 欧美一区二区三区小说| 欧美猛男性生活免费| av免费在线观看网址| 日韩一二三区在线观看| 亚洲精品极品| 欧美+日本+国产+在线a∨观看| 99re国产| 五月天激情图片| 亚洲男人天堂2020| 美女视频久久黄| 日本中文字幕在线看| 欧美精品一区二区高清在线观看| 欧美区二区三区| 国产尤物在线播放| 亚洲va国产va天堂va久久| 久久躁日日躁aaaaxxxx| 欧美色图另类图片| 福利视频导航一区| 亚洲精品一品区二品区三品区| 国产精品欧美日韩一区| 涩涩视频免费观看| 亚洲一区二区在线免费观看视频| 欧洲精品一区二区| 亚洲精品乱码久久久久久日本蜜臀| 欧美日本韩国一区二区| 亚洲一区二区三区四区中文字幕| 5566先锋影音夜色资源站在线观看| 1区2区3区在线| 三级网站免费观看| 国模冰冰炮一区二区| 国产女人18水真多18精品一级做| 日韩国产欧美在线视频| 国产精品主播直播| 国产又粗又黄又猛| 欧美日韩视频免费| 欧美另类中文字幕| 一本大道久久a久久综合|