grep awk sed tar wget各种linux工具

最近忙于处理被刷bug,各种查日志,取数据,又对一些linux文本处理工具多会了一些功能,特记录在此。

wget

以前就随便用用,顶多加个-O重命名下载文件

  • -c 断点续传
  • -t 0 反复尝试的次数,0为不限次数
  • -O xxx 下载后重命名为xxx 还有个一遍下载一遍计算md5的妙招: wget -O - http://example.com/file | tee file | md5sum > file.md5 学习了!

tar

先列个tar的关于打包的基础功能 tar -cf all.tar *.jpg 将所有jpg文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 tar -rf all.tar *.gif 将所有gif文件增加到all.tar的包里面去。-r是表示增加文件的意思。 tar -uf all.tar logo.gif 更新原来all.tar中logo.gif文件,-u是表示更新文件的意思。 tar -tf all.tar 列出all.tar包中所有文件,-t是列出文件的意思。 tar -xf all.tar 解出all.tar包中所有文件,-x是解开的意思。 所有上述命令都可以加-v,表示show details 以前基本只用tar zxvf,现在发现tar还可以部分解压,比如你这样压缩:tar -czvf ab.tar.gz a.txt b.txt,然后只想解压其中a.txt,只需要tar -xzvf ab.tar.gz -C /path_untar a.txt tar默认使用gunzip解压gz文件,还发现一个据说多线程解压的pigz工具,据说可以提速,适用了一下,没感觉。。。

gzip

gzip gunzip分别是gz格式的压缩和解压缩工具,但是其实只用gzip就可以完成压缩和解压缩了,gzip -d选项即解压缩。通常都是对tar打包后的文件做gz压缩。

grep

新学会一个很好用的-o选项,只列出匹配的内容,这样grep就可以提出一部分字符串了! 还有个利用-f选项比较两个文件差集的,比如grep -F -v -f a b,意思是b-a的集合

awk

awk -F 可以指定分割符,默认是空格,已经足以支持大多数情况,例如:awk 'print $0,$1'意思是对每一行按照空格分隔,然后把$0也就是全部分割列和$1第一列输出到stdout。awk其实很复杂,甚至还支持函数,条件判断之类的。

sed

sed主要是可以对每一行文本做各种处理。 主要格式是sed [option] 'cmds' file 目前我用到的常见用法有: 1. sed -n '/abc/p' file -n不打印,然后p命令又是打印,意思是只打印含有abc的行,当然这里abc可以写正则。 2. sed -n 's/aaa/bbb/gp' file 这里s命令类似vim里的替换命令,意思是把每行的aaa替换成bbb然后输出 3. sed -n 's/\(.*\)aa\(.*\)/\2/g 首先s命令里的pattern把每行匹配出2部分,aa前的是\1,aa后的\2,所以这条命令的意思是用aa后的正则匹配结果替换整行,也就是提取出了aa后的所有,因为sed默认是不改原文件的,所以配合>重定向很容易完成了字符串提取。如果加-i选项则写回原文件。

comm

comm可以求两文件交集,差集等,但是要求文件有序,一般配合sort用。

iotop(需要apt-get安装下)

查看磁盘读写速度,目前就用到一个-p选项指定查看的进程id。比如iotop -p 110

ps

新学会用ps查看指定列比如查看进程启动时间start,ps axo pid,start,args

目前就想到这么多,以后想到再加。