Linux命令行里的“瑞士军刀”

标签: linux 技术技巧 | 发表时间:2013-06-07 23:11 | 作者:Aqee
出处:http://www.aqee.net
swiss-army-knife

这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作。

下面的这些内容是 Quora网站上Joshua Levy网友的总结:

  • 通过sort/uniq获取文件内容的交集、合集和不同之处:假设有a、b两个文本文件,文件本身已经去除了重复内容。下面是效率最高的方法,可以处理任何体积的文件,甚至几个G的文件。(Sort对内存没有要求,但也许你需要用 -T 参数。)可以试着比较一下,你可以看看如果用Java来处理磁盘上文件的合并,需要用多少行代码。

cat a b | sort | uniq > c   # c 是a和b的合集

cat a b | sort | uniq -d > c   # c 是a和b的交集

cat a b b | sort | uniq -u > c   # c 是a和b的不同

  • 汇总一个文本内容里第三列数字的和(这个方法要比用Python来做快3倍并只需1/3的代码量):

awk ‘{ x += $3 } END { print x }’ myfile

  • 如果你想查看一个目录树里的文件的体积和修改日期,用下面的方法,相当于你挨个目录做”ls -l”,而且输出的形式比你用”ls -lR”更可读:

find . -type f -ls

  • 使用xargs命令。这个命令非常的强大。注意每行上你可以控制多少个东西的执行。如果你不确定它是正确的执行,先使用xargs echo。同样,-I{} 也非常有用。例子:

find . -name \*.py | xargs grep some_function

cat hosts | xargs -I{} ssh root@{} hostname

  • 假设你有一个文本文件,比如一个web服务器日志,在某些行上有一些值,比如URL中的acct_id参数。如果你想统计每个acct_id的所有请求记录:

cat access.log | egrep -o ‘acct_id=[0-9]+’ | cut -d= -f2 | sort | uniq -c | sort -rn


本文由 外刊IT评论网( www.aqee.net)原创发表,文章地址: Linux命令行里的“瑞士军刀”,[英文原文: What are the most useful "Swiss army knife" one-liners on Unix? ]







相关 [linux 命令行 瑞士军刀] 推荐:

Linux命令行里的“瑞士军刀”

- - 外刊IT评论
这里说的“瑞士军刀”是指那些简单的一句命令就能完成其它高级语言一大片代码才能完成的工作. 下面的这些内容是 Quora网站上Joshua Levy网友的总结:. 通过sort/uniq获取文件内容的交集、合集和不同之处:假设有a、b两个文本文件,文件本身已经去除了重复内容. 下面是效率最高的方法,可以处理任何体积的文件,甚至几个G的文件.

Linux 系统实时监控的瑞士军刀 - Glances

- - 开源软件 - ITeye博客
早些时候,我们提到过有很多可以用来监视系统性能的 Linux  系统监视工具. 但我们估计,或许更多的用户会倾向与绝大多数 Linux 发行版都带的工具 ( top 命令). top 命令是 Linux 下的一个实时任务管理器, 同时也是用于在  GNU/Linux 发行版中寻找系统性能方面的瓶颈,并帮助我们作出正确操作的常用系统监视工具.

28个Unix/Linux的命令行神器

- - 酷壳 - CoolShell.cn
下面是 Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具( 原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的. 这些工具都非常不错,希望每个人都知道. 本篇文章还在 Hacker News上被讨论,你可以过去看看. 我以作者的原文中加入了官网链接和一些说明.

Linux命令行文本处理工具

- - CSDN博客系统运维推荐文章
这是看Linuxcast的笔记. Linux命令行文本处理工具. 命令grep用以基于关键字搜索文本. 命令格式grep "关键字",并且通常和管道一起使用,如ls -l | grep "test". -i 在搜索的时候忽略大小写. -Ax 在输出的时候包含结果所在行之后(after)的指定行数. -Bx 在输出的时候包含结果所在行之前(before)的指定行数.

Unix调试的瑞士军刀:lsof

- Ran - 黑客志
这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀. Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息. 打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链接,Socket流,网络Socket,UNIX域Socket,以及其它更多.

Unix 调试的瑞士军刀:lsof

- 加州旅客 - Wow! Ubuntu
本文转载自黑客志 (这是一个多人协作的群体Blog,旨在为国内开发者提供新鲜和高质量的黑客文章,文章主要来源为 Hacker News. 原文地址:Unix调试的瑞士军刀:lsof / 原作者: @Yuanyi Zhang. 这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么 lsof 就是 Unix 调试的瑞士军刀.

Unix调试的瑞士军刀:lsof

- paul - FeedzShare
来自: 黑客志 - FeedzShare  . 发布时间:2011年06月20日,  已有 2 人推荐. 这是“你应该知道的Unix和Linux命令”系列的第三篇,在这篇文章中,我会介绍lsof这个工具,如果说netcat是进行网络诊断的瑞士军刀,那么lsof就是Unix调试的瑞士军刀. Lsof是遵从Unix哲学的典范,它只做一件事情,并且做的相当完美——它可以列出某个进程打开的所有文件信息.

石器时代的瑞士军刀

- Zoe - 玩意儿
石器时代的工具,变成瑞士军刀的造型,酷. 本文原始链接:http://www.cngadget.cn/swiss-army-knife.html.

石器时代的 瑞士军刀

- Life is Beta - Poboo
精挑细选8位 Cosplay 美女. 瑞士超现实主义艺术插画师David Fuhrer作品欣赏 (@sudasuta). 大叔版少女时代,同步率破万,以前的鸡鸡鸡鸡弱爆了. 瑞士Vals村的地下住宅 (@60designwebpick). 瑞士动物园培育奇异水母,形似煎蛋 (@ermiao). 瑞士裝置藝術家—URS FISCHER (@mydesy).

石器时代的瑞士军刀

- Norbert - YesKafei Daily
3D 时代:Sony 计划将所有已经发布的PS3游戏升级为3D版本. 三轮车将10年带到了纽约时代广场. 商业中心纯粹为瑜伽~ (@i-oo). 对话,时代的气息 (@longquanzs). 心胸格局——菩萨度众生就是引领时代 (@longquanzs). 纽约时代广场:上海宣传片 (@17weiguan).