管道
程序运行环境输入与输出
- 标准输入0
read a;echo $a - 标准输出1
echo ceshiren.com - 错误输出
ls not_exist_dir
管道重定向
- 管道与管道之间可以重定向
- 管道与文件之间可以重定向
管道连接符 |
- 管道连接符 | 可以连接多个程序的执行
- 管道连接是以子进程的方式启动的
管道执行的上下文控制
- 使用{ command; }注意花括号与内部命令之间的空格与分号;
- 使用控制逻辑while read 组合
- 使用 $()``
三剑客与SQL对比
BRE基本正则表达式
- ^ 开头$结尾
- [ a - z ] [ 0 - 9 ] 区间,如果开头带有^表示不能匹配区间内的元素
- *0个或多个
- . 表示任意字符
BRE扩展正则表达式
- ?非贪婪匹配
- ’+‘ 一个或多个
- ()分组
- {}范围约束
- | 匹配多个表达式的任何一个
Nginx日志分析
- find_error_log:找出log中的404 500的报错
find_error_log(){
less nginx.log | grep -E '(" 404 |" 500 )'
less nginx.log | awk '$9~/404|500/'
}
- find_top_10:找出访问量最高的IP,统计分析,取出top3
find_top_10(){
less nginx.log | awk '{print $1}' | sort |uniq -c | sort -nr | head -10
}