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"
2、统计文件信息
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文件的大小,汇总只显示目录大小,并采用高可读性
3、文本处理
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" 出现的次数
4、组合案例
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
作用:生成问题报告供后续分析
3265

被折叠的 条评论
为什么被折叠?



