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.小心使用变量:把变量放到 “” 中,如

  1. ~ $ ls tmp/
  2. a b
  3. ~ $ VAR="tmp/*"
  4. ~ $ echo $VAR
  5. tmp/a tmp/b
  6. ~ $ echo "$VAR"
  7. tmp/*
  8. ~ $ echo $VARa
  9. ~ $ echo "$VARa"
  10.  
  11. ~ $ echo "${VAR}a"
  12. tmp/*a
  13. ~ $ echo ${VAR}a
  14. tmp/a
  15. ~ $

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

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

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

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

7.使用 xargs:可以过滤输出,如

  1. ~/tmp $ ls -l | xargs
  2. -rw-r--r-- 7 joe joe 12043 Jan 27 20:36 December_Report.pdf -rw-r--r-- 1 \
  3. root root 238 Dec 03 08:19 README drwxr-xr-x 38 joe joe 354082 Nov 02 \
  4. 16:07 a -rw-r--r-- 3 joe joe 5096 Dec 14 14:26 archive.tar -rwxr-xr-x 1 \
  5. joe joe 3239 Sep 30 12:40 mkdirhier.sh
  6. ~/tmp $

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

  1. ~ $ time grep and tmp/a/longfile.txt | wc -l
  2. 2811
  3. real 0m0.097s
  4. user 0m0.006s
  5. sys 0m0.032s
  6. ~ $ time grep -c and tmp/a/longfile.txt
  7. 2811
  8.  
  9. real 0m0.013s
  10. user 0m0.006s
  11. sys 0m0.005s
  12. ~ $

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 代替,如

  1. ~ $ time cat tmp/a/longfile.txt | grep and
  2. 2811
  3. real 0m0.015s
  4. user 0m0.003s
  5. sys 0m0.013s
  6. ~ $ time grep and tmp/a/longfile.txt
  7. 2811
  8. real 0m0.010s
  9. user 0m0.006s
  10. sys 0m0.004s
  11. ~ $

shell 10个好习惯的更多相关文章

  1. Unix 高手的10个好习惯

    引言 当您经常使用某个系统时,往往会陷入某种固定的使用模式.有时,您没有养成以尽可能最好的方式做事的习惯.有时,您的不良习惯甚至会导致出现混乱.纠正此类缺点的最佳方法之一,就是有意识地采用抵制这些坏习 ...

  2. T-SQL的10个好习惯

    有关T-SQL的10个好习惯 1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多.但我这里还是要说一下. 不使用Select *的原因主要不是坊间 ...

  3. 【Shell脚本编程系列】Shell脚本开发的习惯和规范

    1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...

  4. Node黑客开发的10个好习惯(2016)

    在2015年底之际,javascript开发者已经掌握了大量的工具.最后一次我们调查的时候,现代化的JS蓝图才刚刚出现.今天,我们很容易在JS的庞大生态系统中迷失,而成功的团队大部分时间都遵守着JS开 ...

  5. shell 10流程控制

    if 判断 if #shell #!/bin/sh a=5 if [[ $a > 3 ]];then echo "$a>3" fi #写成一行 if [[ $a < ...

  6. JavaScript开发人员必知的10个关键习惯

    还在一味没有目的的编写JavaScript代码吗?那么你就OUT了!让我们一起来看看小编为大家搜罗的JavaScript开发人员应该具备的十大关键习惯吧! 随着新技术的不断发展,JavaScript已 ...

  7. 有关T-SQL的10个好习惯(转)

    1. 在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多.但我这里还是要说一下. 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需 ...

  8. (SQL Server)有关T-SQL的10个好习惯

    转自 http://www.cnblogs.com/CareySon/archive/2012/10/11/2719598.html 1.在生产环境中不要出现Select * 这一点我想大家已经是比较 ...

  9. UNIX 技巧: UNIX 高手的另外 10 个习惯

    让我们面对现实吧:坏习惯很难改变.但是您已经熟悉的习惯可能更难克服.有时,重新审视某些事情可能让您遇到“啊哈,我没想到它能做到这一点!”的时刻.在 Michael Stutz 的优秀文章“UNIX 高 ...

随机推荐

  1. Solr(一) 安装部署环境

    Solr运行环境 第一步:安装java jdk 第二步:安装tomcat服务器 安装过程:参考http://jingyan.baidu.com/article/870c6fc33e62bcb03fe4 ...

  2. LOJ121 【离线可过】动态图连通性

    题目链接:戳我 [线段树分治版本代码] 这里面的线段树是时间线段树,每一个节点都要开一个vector,记录当前时间区间中存在的边的标号qwq #include<iostream> #inc ...

  3. python--区分函数和方法, 反射

    1.  isinstance,   type,   issubclass isinstance(): 判断你给的xxx对象是否是xxxxx类型的,只支持向上判断 isinstance(object, ...

  4. GO学习笔记 - Go 只有一种循环结构—— for 循环。

    一,Go 只有一种循环结构—— for 循环. 官方教程:https://tour.go-zh.org/flowcontrol/1 Go 只有一种循环结构—— for 循环. 基本的 for 循环包含 ...

  5. BZOJ 1934--善意的投票(最小割)

    1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2354  Solved: 1471[Submit][ ...

  6. [Scala随用随学] —— sealed声明的作用

    今天在看MLlib的源码时,看到Vector的声明是sealed trait,很好奇这个sealed有什么作用,与是搜到了这个文章: http://www.cnblogs.com/rollenholt ...

  7. 白帽hacker酷炫小技能大盘点!

    白帽子是谁? 他们与一行行代码打交道,在“0”和“1”的世界中寻找风险,在IT产业软硬件核心技术和代码等自主研发能力不足.安全防护手段滞后.地下黑客业务已形成产业链的背景下,我国网络安全正面临日益严峻 ...

  8. Groovy学习记录-------Groovy安装/配置

    1.Groovy SDK下载 Groovy SDK官网下载地址: http://www.groovy-lang.org/download.html  每个版本有五个选项可供下载,依次为: binary ...

  9. [ActionScript3.0] AS3利用ExternalInterface与js通信

    AS3代码,可做文档类; package { import flash.display.Sprite; import flash.events.*; import flash.external.Ext ...

  10. 使用java执行ffmpeg命令进行推流操作

    视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...