The Linux Cookbook 一書的作者 Michael Stutz 憑借自己多年使用 UNIX 的經(jīng)驗,總結(jié)了 10 個良好習(xí)慣,個人認(rèn)為真的很受用,現(xiàn)摘要如下與大家分享。
?
- 建立層級目錄:使用 mkdir 的 -p 選項,如 mkdir -p tmp/a/b/c。
- 解包到指定的目錄:使用 tar 的 -C 選項,如 tar xvf newarc.tar.gz -C tmp/a/b/c。
- 聯(lián)合命令:使用 ;、&&、|| 等控制運(yùn)算符,如 cd tmp/a/b/c && tar xvf ~/archive.tar。
-
小心使用變量:把變量放到 “” 中,如
~ $ 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
~ $
-
長命令的輸入:使用 \ 分行折斷,如
~ $ cd tmp/a/b/c || \
> mkdir -p tmp/a/b/c && \
> tar xvf -C tmp/a/b/c ~/archive.tar -
分組命令:使用 ()、{} 來分組命令,如
~ $ ( 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" -
使用 xargs:可以過濾輸出,如
~/tmp $ ls -l | xargs
-rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \
root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \
16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \
joe joe 3239 Sep 30 12:40 mkdirhier.sh
~/tmp $ -
使用 grep 的 -c 選項可以計算輸出的行數(shù),它比使用管道的 wc -l 更快,如
~ $ time grep and tmp/a/longfile.txt | wc -l
2811real 0m0.097s
user 0m0.006s
sys 0m0.032s
~ $ time grep -c and tmp/a/longfile.txt
2811real 0m0.013s
user 0m0.006s
sys 0m0.005s
~ $
-
匹配輸出的字段:使用 awk,如
~/tmp $ ls -l | awk '$6 == "Dec"'
-rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar
-rw-r--r-- 1 root root 238 Dec 03 08:19 README
~/tmp $ -
停用 cat 的管道輸出:可用 grep 代替,如
~ $ time cat tmp/a/longfile.txt | grep and
2811real 0m0.015s
user 0m0.003s
sys 0m0.013s
~ $ time grep and tmp/a/longfile.txt
2811real 0m0.010s
user 0m0.006s
sys 0m0.004s
~ $
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
