Linux文件操作命令终极指南:从查看到高级搜索
一、文件内容查看命令
1. cat
:快速查看小文件
-
核心功能:合并文件、创建新文件、快速预览内容。
-
常用参数:
cat -n file.txt # 显示行号(含空行) cat -E file.conf # 显示行尾符号($)
-
适用场景:查看配置文件(如
/etc/issue
),合并日志文件。 -
注意:避免用
cat
查看大文件(内存溢出风险)。
2. more
与 less
:分页查看大文件
命令 | 特点 | 交互操作 |
---|---|---|
more | 仅支持向下翻页 | 空格键(下一页)、q (退出) |
less | 支持上下滚动、搜索、高亮 | /keyword (搜索)、N (跳转行号) |
-
less
高级用法:less -N /var/log/nginx/access.log # 显示行号 less +F app.log # 实时追踪日志(类似 `tail -f`)
3. head
与 tail
:精准定位文件首尾
-
查看文件头部:
head -n 5 /etc/ssh/sshd_config # 显示前5行
-
追踪文件尾部:
tail -f /var/log/cron # 实时监控日志(按 `Ctrl+C` 退出) tail -F rotated.log # 追踪日志轮转文件(自动重载)
二、文件统计与磁盘管理
1. wc
:统计文件内容
-
核心参数:
wc -l access.log # 统计行数 wc -w report.txt # 统计单词数(按空格分隔) wc -c data.bin # 统计字节数
-
批量统计:
wc -l *.log # 统计所有日志文件行数
2. du
:分析磁盘占用
-
常用参数:
du -sh /var/log # 汇总显示目录大小(易读格式) du -h --max-depth=1 /opt # 显示一级子目录大小
-
实战技巧:
du -sh * | sort -h # 按大小排序当前目录文件
三、文本处理与高级搜索
1. find
:精准文件搜索
-
按条件搜索:
find /var -name "*.log" # 按名称搜索日志文件 find . -size +10M -mtime -7 # 查找7天内大于10MB的文件 find ~ -type d -empty # 查找空目录
2. grep
:模式匹配与过滤
-
基础语法:
grep "error" system.log # 搜索关键字 grep -i "warning" app.log # 忽略大小写 grep -v "^#" config.conf # 排除注释行
-
正则表达式:
grep -E "[0-9]{3}-[0-9]{4}" contacts.txt # 匹配电话号码 grep -oP "(\d{1,3}\.){3}\d{1,3}" log # 提取IP地址
3. 管道符组合应用
-
过滤日志中的错误并统计:
cat app.log | grep "ERROR" | wc -l
-
实时监控多日志文件:
tail -f /var/log/{nginx,apache}/access.log | grep "404"
四、十大实战案例
1. 快速定位配置文件关键行
grep -n "Port" /etc/ssh/sshd_config # 显示行号和内容
2. 提取日志中的唯一IP地址
grep -oP "\d+\.\d+\.\d+\.\d+" access.log | sort -u
3. 批量重命名文件
find . -name "*.jpg" -exec mv {} /backup/images \;
4. 统计目录下文件类型分布
find /data -type f | awk -F. '{print $NF}' | sort | uniq -c
5. 清理7天前的日志文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \;
6. 实时监控日志并高亮关键词
tail -f app.log | grep --color=auto "ERROR"
7. 跨文件搜索代码片段
grep -rnw '/project' -e "TODO"
8. 快速对比两个文件差异
diff <(sort file1.txt) <(sort file2.txt)
9. 压缩并加密敏感文件
tar -czvf - secret/ | gpg -c > backup.tar.gz.gpg
10. 一键生成目录树结构
tree -L 3 -h --dirsfirst
五、总结与命令速查表
场景 | 推荐命令 | 参数示例 |
---|---|---|
查看小文件 | cat | cat -n file.txt |
分页浏览大文件 | less | less -N +F app.log |
实时追踪日志 | tail -f | tail -f /var/log/nginx |
统计文件行数 | wc -l | wc -l *.csv |
搜索文件内容 | grep | grep -i "error" *.log |
查找大文件 | find + -size | find / -size +100M |