当前位置:首页>Linux>Linux 日志不会查?这 13 个命令先练熟

Linux 日志不会查?这 13 个命令先练熟

  • 2026-10-11 07:36:33
Linux 日志不会查?这 13 个命令先练熟

从 cat、tail、grep 到 find、sort、diff、chmod,把文件查看、日志排查、文本处理和权限调整。

本文目录

01 内容查看

02 分页阅读

03 头尾查看

04 数量统计

05 文件查找

06 快速定位

07 命令定位

08 文本搜索

09 排序处理

10 连续去重

11 差异比较

12 权限修改

13 属主修改

cat:快速查看文件内容

catfile.txtcat-nfile.txt# 显示行号catfile1.txtfile2.txt# 合并显示多个文件cat>newfile.txt<<EOF# 创建并写入内容HelloWorldThisisatestEOF

cat 适合查看短文件,也能合并多个文件内容;文件很大时别硬 cat,容易刷屏,换 less 或 tail 更稳。

less / more:分页阅读大文件

lesslarge_file.logmorelarge_file.log# less 快捷键:# q: 退出# /关键词: 向下搜索# ?关键词: 向上搜索# n: 下一个匹配# G: 跳到末尾# gg: 跳到开头

less / more 像给大文件加了翻页器,查日志时比 cat 友好;less 里用 /关键词 搜索,按 q 退出。

head / tail:查看文件头尾

head-n20file.txt# 查看前20行tail-n30file.txt# 查看后30行tail-f/var/log/syslog# 实时跟踪日志tail-f-n50app.log# 实时跟踪最后50行head-c100file.txt# 查看前100字节

head 看开头,tail 看结尾,tail -f 是实时追日志的常用姿势;线上排查时可以配合 -n 控制初始输出行数。

wc:统计行数、字数、字节数

wcfile.txt# 输出: 行数 字数 字节数 文件名wc-lfile.txt# 仅统计行数wc-wfile.txt# 仅统计单词数wc-cfile.txt# 仅统计字节数

wc 用来做文件数量感知,像给文本做体检;最常用 wc -l 统计行数,排查日志量和数据量时很顺手。

find:按条件查找文件

find/home-name"*.txt"# 按名称查找find/var-typef-name"*.log"# 查找.log文件find.-size+100M# 查找大于100MB的文件find/tmp-mtime+7# 查找7天前修改的文件find.-userroot# 按所有者查找find.-perm755# 按权限查找find.-empty# 查找空文件/目录find.-name"*.py"-execrm{}\;# 查找并执行命令find.-typed-name"node_modules"-prune-execrm-rf{}\;# 删除node_modules

find 是服务器文件定位主力,可以按名称、大小、时间、属主、权限查;带 -exec 执行删除前务必先只查不删,确认范围再动手。

locate:快速定位文件名

locateconfig.iniupdatedb# 更新数据库locate-i"readme"# 忽略大小写

locate 依赖索引数据库,所以查得快;如果新文件搜不到,先 updatedb 更新索引,这个坑很常见。

which / whereis / type:定位命令来源

whichpythonwhereispythontypelstype-acd# 显示所有类型

这组命令用来搞清楚一个命令到底从哪来;type 能识别 shell 内建命令,排查 PATH 和别名问题很好用。

grep:文本搜索与上下文定位

选项
说明
-i
忽略大小写
-r
递归搜索
-n
显示行号
-c
显示匹配次数
-v
反向匹配(不包含)
-E
使用扩展正则
-l
只显示文件名
grep"error"app.loggrep-rn"TODO"./src/# 递归搜索并显示行号grep-i"warning"syslog# 忽略大小写grep-v"^#" config.cfg # 排除注释行grep-E"error|fail"log.txt# 匹配多个模式grep-c"function"*.js# 统计每个文件的匹配数psaux|grepnginx# 结合管道使用grep-A5"error"log.txt# 显示匹配后5行grep-B3"error"log.txt# 显示匹配前3行grep-C2"error"log.txt# 显示匹配前后各2行

grep 是日志排查核心,-r 递归、-n 显示行号、-v 反向过滤;查异常时常配 -A/-B/-C 带出上下文,别只看孤零零一行。

sort:对文本行排序

sortfile.txt# 默认按字母排序sort-nnumbers.txt# 按数字排序sort-rfile.txt# 倒序排序sort-k2data.txt# 按第2列排序sort-ufile.txt# 去重后排序sort-t','-k2-ncsv.csv# 指定分隔符,按第2列数字排序

sort 像给文本行排队,默认按字母,-n 按数字,-k 指定列;处理 CSV 时记得用 -t 指定分隔符。

uniq:去除连续重复行

uniqfile.txt# 去除连续重复行uniq-cfile.txt# 统计重复次数uniq-dfile.txt# 只显示重复行sortfile.txt|uniq-c# 先排序再统计(推荐用法)

uniq 只处理连续重复行,所以通常先 sort 再 uniq;统计重复次数时 sort file.txt | uniq -c 是很经典的组合。

diff:比较文件差异

difffile1.txtfile2.txtdiff-ufile1.txtfile2.txt# 统一格式输出diff-rdir1/dir2/# 递归比较目录diff-yfile1.txtfile2.txt# 并排显示差异

diff 用来比较两个文件或目录的不同,像给文本做变更对账;看补丁风格输出时优先用 diff -u。

chmod:修改文件权限

权限
数字
说明
rwx
7
读+写+执行
rw-
6
读+写
r-x
5
读+执行
r--
4
只读
-wx
3
写+执行
-w-
2
只写
--x
1
只执行
---
0
无权限
chmod755script.sh# 数字法设置权限chmodu+xscript.sh# 给所有者添加执行权限chmodg+w,o-rfile.txt# 组添加写权限,其他人移除读权限chmod-R755/var/www/# 递归修改权限chmoda+rwxfile.txt# 所有人添加读写执行权限

chmod 负责改读写执行权限,数字法 7/6/5/4 要熟;生产环境别随手 chmod 777,够用原则更安全。

chown:修改所有者和所属组

chownuserfile.txt# 修改所有者chownuser:groupfile.txt# 修改所有者和组chown-Rwww-data:www-data/var/www/# 递归修改chgrpdevelopersfile.txt# 只修改所属组

chown 用来调整文件归属,常见于 Web 目录和部署目录;递归 -R 很方便,但也要先确认路径,别把系统目录属主改乱。

感谢观看本次分享,觉得有用的话,欢迎点赞、在看、转发给需要的朋友。
关注公众号,获取更多技术干货。

最新文章

随机文章