• shell 10个好习惯


    The Linux Cookbook 一书的作者 Michael Stutz 凭借自己多年使用 UNIX 的经验,总结了 10 个良好习惯,个人认为真的很受用,现摘要如下与大家分享。



    1.建立层级目录:使用 mkdir 的 -p 选项,如 mkdir -p tmp/a/b/c


    2.解包到指定的目录:使用 tar 的 -C 选项,如 tar xvf newarc.tar.gz -C tmp/a/b/c




    3.联合命令:使用 ;、&&、|| 等控制运算符,如 cd tmp/a/b/c && tar xvf ~/archive.tar


    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  
    ~ $ 

    5.长命令的输入:使用 分行折断,如

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


    6.分组命令:使用 ()、{} 来分组命令,如

    ~ $ ( 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"  

    7.使用 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 $ 

    8.使用 grep 的 -c 选项可以计算输出的行数,它比使用管道的 wc -l 更快,如

      ~ $ time grep and tmp/a/longfile.txt | wc -l  
      2811   
      real 0m0.097s  
      user 0m0.006s  
      sys 0m0.032s  
      ~ $ time grep -c and tmp/a/longfile.txt  
      2811  
        
      real 0m0.013s  
      user 0m0.006s  
    sys 0m0.005s  
    ~ $  


    9.匹配输出的字段:使用 awk,如

    1. ~/tmp $ ls -l | awk '$6 == "Dec"'  
    2. -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar  
    3. -rw-r--r-- 1 root root 238 Dec 03 08:19 README  
    4. ~/tmp $  


      

    10.停用 cat 的管道输出:可用 grep 代替,如

    ~ $ time cat tmp/a/longfile.txt | grep and  
     2811   
     real 0m0.015s  
     user 0m0.003s  
     sys 0m0.013s  
     ~ $ time grep and tmp/a/longfile.txt  
     2811  
     real 0m0.010s  
     user 0m0.006s  
     sys 0m0.004s  
     ~ $  
  • 相关阅读:
    第三百九十一、二、三、四、五、六、七天 how can I 坚持
    第三百九十天 how can I 坚持
    第三百八十九天 how can I 坚持
    POJ 1745:Divisibility 枚举某一状态的DP
    POJ 1502:MPI Maelstrom Dijkstra模板题
    POJ 1160:Post Office 邮局经典DP
    POJ 1062:昂贵的聘礼
    POJ 1125:Stockbroker Grapevine
    POJ 1236:Network of Schools
    POJ 2186:Popular Cows Tarjan模板题
  • 原文地址:https://www.cnblogs.com/chongchong88/p/5579625.html
Copyright © 2020-2023  润新知