时间:2023-01-31来源:系统屋作者: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-01-31
Linux系统如何在Git里撤销操作2023-01-30
Linux替换硬盘已挂载目录的技巧2023-01-30
Fedora 21升级Fedora 22的方法使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需要学习的。...
2023-01-30
在使用vps安装Linux系统后,发现可用分区不足,这主要是vps安装后没有进行相关配置所致,下面小编就给大家介绍下Linux vps系统盘如何分区,深感分区不同的朋友可以来学习下。...
2023-01-30