UNIX高手的十个习惯

1. 在单个目录下创建目录树
     $mkdir -p dir1/dir2/dir3         //在当前工作目录下创建了一个简单目录树
     $mkdir -p project/{bin, doc, src/{part1, part2, part3} , ...}         //创建一个复杂的目录树
2. 直接解压到指定目录,不必移动存档
     $tar xzvf -C /tmp/a/b/c rc.tar.gz
3. 将命令与控制操作符组合使用(&&操作符和||操作符)
    a) 在操作符两边的两个命令,仅当第一个命令返回0时才执行第二个命令,也就是第一个命令执行成功才执行第二个命令,用&&操作符
         $cd /tmp/a/b/c && tar xzvf -C /tmp/a/b/c ~/src.tar.gz
    b) 在操作符两边的两个命令,仅当第一个命令返回非0时才执行第二个命令,也就是第一个命令执行失败时才执行第二个命令,否则不执行第二个命令,用||操作符
         $cd /tmp/a/b/c || mkdir -p /tmp/a/b/c

         符合命令: $cd /tmp/a/b/c || mkdir -p tmp/a/b/c && tar -xzvf -C /tmp/a/b/c ~/src.tar.gz
4. 谨慎使用变量
5. 使用转义序列来管理较长的输入(反斜杠将较长的行延续到下一行)
    $cd tmp/a/b /
    >                     || mkdir -p tmp/a/b /
    >                                                      && tar xzvf -C src.tar.gz
6. 在列表中对命令分组

    a) 在subshell中运行命令列表(使用括号将命令列表包括在单个组中)。这样做将在一个新的subshell中运行命令,并允许重定向或整组命令的输出。当要在subshell中修改环境变量而不想在当前shell中修改环境变量时用此方法。

    b) 在当前shell中使用命令列表(使用大括号将命令列表扩起来,并确保大括号与命令列表之间有空格,并且命令列表最后一个命令以分号结尾

7. 避免通过管道将grep发送到wc -l来对数出进行记数,grep的-c选项提供了对与特定模式匹配的行的记数,并且一定比wc -l快

对于多个文件,带-c选项的grep返回每个文件的单独记数,而wc -l则是所有文件的总的记数

但是grep是针对行来说的,它不可以计算文件中的元素的个数,如果一行里有2个元素,则-c选项只会计算1次,但如果要算出一个文件中元素的总数还是得用wc -l选项,如下:


文件myfile内容如下:
             xiaoming and xiaozhang and me are students.
             he and she are couples.
如执行以下命令:
             $grep 
- c  and myfile
输出2
但是如果执行:
             $grep 
- o and myfile  |  wc  - l
输出3
-o选项是必须的,此选项仅用来匹配元素(模式),不能跟-c选项接合

8. 停止对cat使用管道

     错误的用法:把cat对文件的输出用管道 传送给grep,然后匹配其中的模式,纯粹是浪费时间,因为grep接受文件名作为参数,没有必要用cat输出

9. 使用awk查找特定字符串中的模式

10. xargs命令:把接收到的数据以行为单位将他们用空格符分隔,列成一行。可以将其转换为某个函数或命令的参数列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值