Linux文件操作命令
查看文件内容
cat
- 文件内容快速查看
语法:cat [选项] 文件名
核心参数:
-
-n
:显示行号(包括空行) -
-E
:显示行尾结束符($) -
-T
:显示制表符(^I)
实战案例:
# 案例1:查看文件内容
cat /etc/issue # 显示系统版本信息# 案例2:合并两个文件
cat file1.txt file2.txt # 直接输出到屏幕# 案例3:创建新文件
cat > test.txt # 输入内容后按Ctrl+D保存
注意事项:
-
大文件慎用(内存压力)
-
禁止直接编辑文件(需配合
>>
追加)
more
- 分屏查看器
交互命令:
-
空格键 下一页
-
Enter
下一行 -
q
:退出 -
:f
显示当前位置
进阶用法:
# 案例1:查看日志文件
more /var/log/messages # 按空格键下翻页# 案例2:跳过前10行
more +10 /etc/passwd # 从第11行开始显示
回车键 | 向下移动一行。 |
---|---|
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页,后期引入功能,早期more只能前进不能后退 |
q | 退出 more。 |
less
- 高级分页工具
核心优势:
-
支持上下滚动
-
搜索功能(
/pattern
)
常用参数:
-
-S
:禁用行换行(适合宽文件) -
-i
:忽略搜索大小写 -
-N
:显示行号
实战技巧:
# 案例1:实时追踪日志
less +F /var/log/nginx/access.log # 按Ctrl+C退出# 案例2:搜索关键字
less /etc/ssh/sshd_config # 输入 /Port 搜索
回车键 | 向下移动一行。 |
---|---|
d | 向下移动半页。 |
空格键 | 向下移动一页。 |
b | 向上移动一页。 |
上下方向键 | 向上与向下移动,less命令特有功能键,鼠标滑轮 |
less -N 文件名称 | 显示行号 |
/ 字符串 | 搜索指定的字符串。 |
q | 退出less |
n/N | 下一个/上一个 |
cat,more,less三者的对比
cat | more | less | |
---|---|---|---|
作用 | 显示小文件(一屏以内) | 显示大文件(超过一屏) | 显示大文件(超过一屏) |
交互命令 | 无 | 有 b,d,space,enter | 有 b,d,space,enter |
上下键翻行 | 无 | 无 | 有 |
head
- 文件头部查看
语法:head [选项] 文件名
参数:
-
-n 5
:显示前5行 -
-c 100
:显示前100字节
组合用法:
# 案例1:查看配置文件头部
head -n 5 /etc/ssh/sshd_config # 显示前5行# 案例2:多文件并行预览
head -n 3 /etc/group /etc/shadow # 同时显示两个文件前3行
tail
- 文件尾部追踪
核心参数:
-
-f
:实时追踪(Ctrl+C退出) -
-F
:追踪文件名变更(适用于日志轮转) -
-n +5
:从第5行开始显示
生产应用:
# 案例1:实时查看新增日志
tail -f /var/log/cron # 按Ctrl+C退出# 案例2:多文件同步追踪
tail -f /var/log/{messages,kern.log} # 同时监控多个日志# 案例3:过滤关键字后追踪
tail -f /var/log/httpd/access_log | grep -i "404"
统计文件信息
wc
- 统计文件内容数量
命令:wc,wc = word count
作用:用于统计文件内容信息(包含行数、单词数、字节数)
语法:wc [参数选项] 文件名
常见参数:
-l:表示lines,行数(以回车/换行符为标准)
-w:表示words,单词数 依照空格来判断单词数量
-c:表示bytes, 字节数(空格,回车,换行)
# 案例1:统计文本行数
wc -l /etc/group # 输出行数# 案例2:批量统计多个文件
wc -l *.conf # 统计当前目录所有.conf文件的行数
du
- 统计文件大小
命令:du
作用:查看文件或目录(会递归显示子目录)占用磁盘空间大小
语法:# du [参数选项] 文件名或目录名
常见参数:-s :summaries,只显示汇总的大小,统计文件夹的大小
-h:表示以高可读性的形式进行显示,如果不写-h,默认以KB的形式显示文件大小
用法一:du 文件名
示例代码:
#du /var/log/boot.log
含义:统计/var/log/boot.log文件的大小用法二:du -h 文件名
示例代码:
#du -h /var/log/boot.log
含义:统计/var/log/boot.log文件的大小,以高可读性显示
示例代码:统计 /var/log 目录大小
用法三:du 目录名
示例代码:
#du /var/log/
含义:统计/var/log/目录的大小,包含目录下每一个单独文件的大小用法四:du -s 目录名
示例代码:
#du -s /var/log/
含义:统计/var/log/boot.log文件的大小,汇总只显示目录大小用法五:du -sh 目录名
示例代码:
#du -sh /var/log/
含义:统计/var/log/boot.log文件的大小,汇总只显示目录大小,并采用高可读性
文本处理
find
- 文件搜索利器
搜索条件:
-
-name "*.txt"
:按名称匹配 -
-mtime +7
:7天前修改 -
-size +100k
:大于100KB
管道符
工作原理:将前一个命令的输出作为后一个命令的输入
性能优化:
-
避免无用输出(如
cat file | grep pattern
可简化为grep pattern file
) -
使用
buffer
工具加速大数据流传输
命令 | 核心功能 | 最佳场景 | 性能特征 |
---|---|---|---|
cat | 文件拼接/快速预览 | 小文件(<100行) | 直接输出 |
less | 高效分页浏览 | 大文件(>1GB) | 智能加载 |
grep | 内容过滤 | 日志分析 | 正则支持 |
find | 文件检索 | 系统级搜索 | 精准定位 |
grep
- 模式匹配神器
正则表达式:
-
^root
:行首匹配 -
\.conf$
:行尾匹配 -
[0-9]{3}-[0-9]{4}
:匹配电话号码格式
实用技巧:
# 案例1:搜索关键字
grep "root" /etc/passwd # 显示包含root的行# 案例2:统计唯一匹配行
grep -oP '\b[A-Z]{3}\b' /etc/issue | sort -u # 提取并去重大写字母单词# 案例3:反向选择(排除匹配)
grep -v -E '^(#|$)' /etc/fstab # 排除注释行和空行# 案例4:显示匹配行号和文件名
grep -Hn 'UUID' /etc/fstab # 显示文件名、行号、匹配内容# 案例5:递归搜索当前目录
grep -r 'error' . # 当前目录及其子目录搜索
基础搜索参数
- -i
(忽略大小写)
grep -i "hello" file.txt # 搜索 "hello"、"Hello"、"HELLO" 等
- -v
(反向匹配,显示不包含模式的行)
grep -v "error" log.txt # 排除所有包含 "error" 的行
- -w
(全词匹配,仅匹配完整单词)
grep -w "cat" file.txt # 匹配 "cat",但不匹配 "category" 或 "cats"
- -n
(显示匹配行的行号)
grep -n "TODO" code.py # 输出格式:行号:匹配内容
- -l
(仅显示包含匹配项的文件名,不显示具体内容)
grep -l "success" *.log # 列出所有包含 "success" 的日志文件名
- -c
(统计匹配行的数量)
grep -c "404" access.log # 统计 "404" 出现的次数
组合案例
1. 在单个文件中查找关键词
场景:查看日志文件并搜索“error”
cat system.log | grep "error"
或更高效的方式(直接使用grep
):
grep "error" system.log
作用:快速定位文件中的错误信息。
2. 在多个文件中查找关键词
场景:搜索所有.txt
文件中的“hello”
cat *.txt | grep "hello"
注意:如果需知道结果来自哪个文件,直接使用grep
更合适:
grep "hello" *.txt
作用:跨文件搜索时,显示文件名和匹配内容。
3. 忽略大小写搜索
场景:查找“success”(无论大写或小写)
cat report.txt | grep -i "success"
作用:避免因大小写差异漏掉结果。
4. 显示匹配行的行号
场景:在代码中查找“TODO”并标注行号
cat app.py | grep -n "TODO"
作用:快速跳转到代码中的待办项位置。
5. 统计匹配的行数
场景:统计日志中“warning”出现的次数
cat server.log | grep -c "warning"
作用:量化问题出现的频率。
6. 排除特定关键词
场景:查看配置文件,跳过所有注释行(以#
开头)
cat config.conf | grep -v "^#"
作用:仅关注有效配置。
7. 组合多个搜索条件
场景:查找“error”或“critical”
cat messages.log | grep -e "error" -e "critical"
作用:同时监控多个关键词。
8. 将结果保存到新文件
场景:提取包含“404”的日志行并保存
cat access.log | grep "404" > 404_errors.txt
作用:生成问题报告供后续分析。