时间:2017-08-17来源:东坡网作者:zhijie
单行程序
这是将命令连成一行的一些样例:
有时候通过 sort/uniq 对文本文件做交集、并集和差集运算时,这个例子会相当有帮助。假定 a和 b 是已经进行了唯一性处理的文本文件。这会很快,而且可以处理任意大小的文件,总计可达数千兆字节。(Sort不受内存限制,不过如果 /tmp 放在一个很小的根分区的话,你可能需要使用 -T 选项。)也可参见上面关于LC_ALL的注解和 -u 选项(参见下面例子更清晰)。
sh 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 的差集
使用 grep 。 * 来可视化查看一个目录中的所有文件的所有内容,例如,对于放满配置文件的目录: /sys, /proc, /etc。
对某个文本文件的第三列中所有数据进行求和(该例子可能比同等功能的Python要快3倍,而且代码也少于其3倍):
awk ’{ x += $3 } END { print x }‘ myfile
如果想要查看某个文件树的大小/日期,该例子就像一个递归ls -l,但是比ls -lR要更容易读懂:
find 。-type f -ls
只要可以,请使用 xargs 或 parallel。注意,你可以控制每行(-L)执行多少个项目,以及并行执行(-P)。如果你不确定它是否会做正确的事情,可以首先使用 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
运行该函数来获得来自本文的随机提示(解析Markdown并从中提取某个项目):
function taocl(){
curl -s https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md |
pandoc -f markdown -t html |
xmlstarlet fo --html --dropdtd |
xmlstarlet sel -t -v ”(html/body/ul/li[count(p)》0])[$RANDOM mod last()+1]“|
xmlstarlet unesc | fmt -80
}
2023-03-16
Linux如何通过netstat命令查看80端口连接数2023-03-16
Linux启动sshd服务报错could not load host怎么办?2023-03-16
Debian如何设置程序开机自启动身为一个网站的站长,不仅要保证网站的流量提升,还要预防DDOS攻击,那么在Linux系统下要如何检测DDOS攻击呢?又该如何防止DDOS攻击呢?这都是一门学问。...
2023-03-16
在惠普笔记本上安装完Debian系统后,声音出现了问题,多半是声卡驱动故障,这时可重新安装编译声卡驱动解决问题,下面小编就给大家详细介绍下Debian编译安装声卡驱动的方法。...
2023-03-16