一、基础命令
二、面试常问
2.1 cat、zcat
- cat -n app.log | grep "error" 查询日志中含有某个关键字error的信息,并显示行号
- zcat = zip cat 直接查找压缩包里的内容
2.2 grep
- -E:启用扩展的正则表达式语法。
- grep -nE "123|abc" app.log 查询日志文件app.log中包含关键字123或abc的行,显示行号
- -A num:显示匹配行以及后面的 num 行。
- -B num:显示匹配行以及前面的 num 行。
- -C num:显示匹配行以及前后各 num 行。
-
grep -E -C5 "123" app.log:显示app.log中含有关键字"123"的行内容,以及之前之后的各5行内容。
2.3 head
- head -n +10(10) app.log 从文件开头第10行......
- head -n -10 app.log 从文件结尾第10行开始显示内容
2.4 tail
- tail -n 5 (-5)app.log 末尾5行
- tail -n +5 app.log 从5行开始到末尾
- tail -f app.log 实时查看日志信息
- tail -f app.log | grep "erro" --color 实时查看日志中含有某关键字'erro'的信息,并彩色打印
- tail -fn 100 app.log 循环实时查看最后100行的内容
2.5 ps【process status 进程状态】
ps
命令是一个常用的 Linux 命令,用于查看当前系统中运行的进程信息。它提供了关于进程的各种详细信息,如进程 ID(PID)、进程状态、CPU 使用情况、内存占用、运行时间等。
有时候当我们执行 ps
命令时,TIME 显示为 00:00:00
。这意味着该进程尚未使用 CPU ,所以没有 CPU 执行的总时间。
- ps -e 显示所有正在运行的进程 e: every
- ps -a 显示与终端无关的所有进
-
ps -ef | grep 8080:查看端口号8080被哪个进程占用。
-
ps -ef | grep redis:查看已经启动所有进程中与字符“redis”相关的进程。
2.6 Nginx
- 应用日志记录的位置:/data/applogs/shopdiy-web/logs
- tail -f app.log:动态查看应用日志。
- 应用Nginx日志记录的位置,HTTP请求时长结果查看:/data/applogs/nginx
- tail -f shopdiy-web.access.log:通过访问页面来动态查看Nginx日志。
2.7 gzip
-
gzip app.log-2018-09-22-1.log,被压缩成 app.log-2018-09-22-1.log.gz
-
gzip -d app.log-2018-09-22-1.log.gz,被解压成 app.log-2018-09-22-1.log
-
gzip -dc app.log.2018-01-11.gz |grep "此次共实际刷数据" | more:不解压直接查看压缩包中的“关键词”信息
2.8 sed(查找日志文件特定段)
-
sed -n "5,10p" app.log:按照行数——查看日志第5到第10行。
-
sed -n "/2018-04-08 09:40:53.374/,/2018-04-08 10:21:04.812/p" express.log | grep "此次共实际刷数据" :按照时间段——查看两个时间之间的日志,并且显示关键字。
2.9 lsof (list open file)
-
lsof -i tcp:58528 可以查看该端口被什么程序占用,并显示PID,方便kill
2.10 netstat
NETSTAT(Network Statistics)是一个用于检查网络状态的系统工具,它可以查看本地主机的网络连接状态、路由表、网络接口状态、统计信息等。
- netstat -a:列出所有端口
- netstat -at :列出所有tcp端口
- netstat -au:列出所有udp端口
- netstat -l :只显示监听端口
- netstat -lt :只列出所有监听tcp端口
- netstat -lu :只列出所有监听udp端口
- netstat -st:显示 TCP 端口的统计信息
- netstat -su:显示 UDP 端口的统计信息
2.11 ifconfig
ifconfig:Mac查看本机IP地址
2.12 查看日志文件大小和指定关键字
- wc【word count】:统计指定文字的行数(l)、单词数(w)、字节数(c)
- du【disk usage】:展示磁盘使用量的统计信息
- du -sb app.log:参数 -b 表示以B计数。
- du -sm app.log:参数 -m 表示以M计数。
- du -sh app.log:参数 -h 表示以K/M/G计数,容易识别出文件大小 。
- 分页加载日志数据:less app.log