type
status
date
slug
summary
tags
category
icon
password
Sub-item
Last edited time
Oct 14, 2023 01:34 PM
Parent item
领域
重定向
标准输入输出流:
- 输入流:系统设备号是
0
- 输出流:系统设备号是
1
- 错误输出流:系统设备号是
2
- 输出和错误重定向:
ls -al > out.log 2>&1
把ls命令输出重定向到文件out.log:错误信息重定向到输出流,再重定向到文件out.log
- 输出和错误重定向追加:
ls -al >> out.log 2>&1
- 后台运行日志重定向:
命令结果处理
- 排序:
sort。倒排:sort -r
- 去重:
uniq - 第一次
awk我们将第 4 列的日期和第 1 列的ip地址拼接在一起; next关键字是提醒awk跳转到下一行输入。 对每一行输入,awk会根据第 1 列的字符串(也就是日期)进行累加;END关键字代表一个触发器,就是 END 后面用 {} 括起来的语句会在所有输入都处理完之后执行——当所有输入都执行完,结果被累加到uv中后,通过foreach遍历uv中所有的key,去打印ip和ip对应的数量;
去重并统计数量:针对nginx日志(第1列是IP)统计总访问人数:
awk '{print $1}' access.log | sort | uniq | wc -l 去重并统计重复的数量:针对nginx日志(第四列是日期)统计每天的总访问量:
awk '{print $4, 2, 11}' access.log | sort | uniq -c 去重并分类统计重复的数量:针对nginx日志(第四列是日期)统计每天的用户访问量:
- 筛选:
grep。不包含:grep -v
- 统计行数:统计go文件的代码总行数:
wc
实例:统计PV:对nginx的日志文件统计行数:
- 不影响结果的情况下保存中间结果:
tee
Xargs:向其他命令动态传递参数
把管道或标准输入流的数据,按照分隔符进行拆分,然后作为参数送给后面的命令。
常用参数
-I,为xargs分割后的每项指定变量名称,默认是 {},在接下来的命令中使用{}代替传递过来的参数。
-d delim:指定分隔符。
-n num:传递给命令的参数个数,默认是用所有的。
-a file:从文件中读入作为stdin
-t:表示先打印命令,然后再执行。
-0:指定输入项以空字符而不是空格分隔。当处理包含空格或其他特殊字符的文件名时,这非常有用。例如,find . -name '*.txt' -print0 | xargs -0 command将在所有以 .txt 结尾的文件上执行 command。