我所用到的Linux命令

来源:互联网 发布:在线考试管理系统php 编辑:程序博客网 时间:2024/06/06 03:43

记录日常工作中用到的Linux命令:grep,awk,find,sed,tar,zip,hexdump,tcpdump

grep

使用grep命令从一大串输出或者文件中获取自己想要的行。因此使用grep需要指定数据源和匹配条件(你想要的行的特征)。
  1. 如何指定数据源?最简单的方式就是最后一个参数指定某个文件!当然,与大多数GNU命令一样,grep可以从标准输入中获取数据,这意味着可以将grep放到管道符 的后面。
  2. 如何指定匹配条件呢?直接指定你想要匹配的单词!同时grep也支持正则表达是,默认grep使用的是基本正则表达式,加上"-E"参数后,grep支持扩展正则表达式。 
  3. 其他常用的参数。-r 递归的搜索目录下的文件。-n 将匹配的行号打印出来。-v 参数表示剔除掉包含匹配内容的行。
示例:

awk

复杂而强大的脚本语言。我通常用来将行中的部分内容取出。原理比较简单,可以指定awk安装某个符号将行做split(想想python中的split),split后的各个部分就可以用$1 $2 $3 $NF等表示,然后print出来得意。与grep命令一样,awk也可以从标准输入和文件中读取内容,也是按行操作,与管道符号的结合也是非常的自然。
  1. 如何指定分隔符呢?使用-F选项,如-F "-",默认情况下分隔符为空格。
  2. 特殊的变量NF表示当前处理行split之后,总共的段落数。NR表示当前正在处理的行的行号。
另外,awk也支持将其执行语句放到awk文件中,类似于shell脚本。
示例:
awk简单使用中通常包含两个部分,-F段指示分隔符。然后使用'{  }' 包含对每行的处理。一般情况下就是print的操作。复杂一点的,可以进行一点逻辑判断,比如示例中所示,只打印行号唯一的行中的内容。

find

简单来说,find命令用来查找某个目录下带有指定特征的文件,并对这行文件执行相应的操作。因此可以看出,主要包含三个参数:目录,特征,执行的操作。这三个参数都是有默认值的,比如目录默认是当前目录,特征默认是全部匹配,执行的操作默认是将匹配成功的文件名打印到标准输出中。
日常中最常用的操作是,直接find某个目录,然后将输出重定向到grep,找到想要的文件,然后用xargs之类的将其print出来。其实想想,这个操作可以简单的使用find dir -name "*.yfsc" 这种方式来代替,估计会剩许多内存和时间。
find /mnt/uuid | grep "yfsc" find /mnt/uuid -name "*.yfsc"

执行的操作有许多中表示如: 

-print 表示将文件名打印出来-exec comand '{}' \ 表示对文件执行某个命令操作-delete 表示删除掉文件-fprint file 表示将匹配到的文件名输入到某个文件中保存-printf  format  按format所表示的格式,输出没一个文件名



sed
tar
zip
tcpdump






原创粉丝点击