Linux命令
cat
cat
命令用于连接文件并打印到标准输出设备上。
由 1 开始对所有输出的行数编号
cat -n <filename>
sed
sed
命令是利用script来处理文本文件。sed
可依照script的指令,来处理、编辑文本文件。
打印文件5~7行的记录
sed -n '5,7p'
动作说明:
a
:新增, a 的后面可以接字串,而这些字串会在新的一行出现c
:取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行d
:删除i
:插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)p
:打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行s
:取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法(如1,20s/old/new/g
)
grep
grep
命令用于查找文件里符合条件的字符串
模糊搜索(查询文件中包含’123’或’abc’的记录)
grep -E '123|abc' <filename>
环绕搜索(B
展示前面几行,A
展示后面几行)
grep -B 3 -A 3 'wrong request' <filename>
获取服务器内网IP
ip addr |grep inet |grep -v inet6 |grep eth0|awk '{print $2}' |awk -F "/" '{print $1}'
find
find
命令用来在指定目录下查找文件
将目前目录及其子目录下所有延伸档名是java
的文件列出来。
find . -name "*.java"
awk
awk
是一种处理文本文件的语言,是一个强大的文本分析工具
使用正则匹配记录,输出空格分割的第三个字段
awk '/<regex>/ { print $3 }' <filename>
netstat
netstat命令用于显示网络状态
显示详细的网络状况
netstat -a
查询占用端口号的程序名或pid
netstat -nlp | grep <port>
常用场景
cat & grep
输出文件中从40行开始的10行记录
cat -n <filename> | tail -n +40 | head -n 10
tail -n <num>
为末尾num行;tail -n <+num>
则为开头num行
sed & grep
查询文件中在时间段内带有word
关键字的记录
sed -n '/2018-12-06 14/,/2018-12-06 17/p' <filename> | grep word
find & rm
删除文件名满足<regex>
正则表达式的文件
find . -regex ".*<regex>.*" -exec rm {} \;
参考资料:
1.Linux 命令大全
2.Linux日志筛选命令
3.如何分析 Linux 日志