文件查看 #

一、cat - 连接并显示文件 #

1.1 基本用法 #

bash
# 显示文件内容
cat file.txt

# 显示多个文件
cat file1.txt file2.txt

# 连接文件并输出
cat file1.txt file2.txt > merged.txt

# 追加文件
cat file2.txt >> file1.txt

1.2 常用选项 #

bash
# 显示行号
cat -n file.txt

# 显示非空行行号
cat -b file.txt

# 显示特殊字符
cat -A file.txt

# 显示制表符为 ^I
cat -T file.txt

# 显示行结束符 $
cat -E file.txt

# 压缩连续空行
cat -s file.txt

1.3 实用技巧 #

bash
# 创建文件
cat > file.txt << EOF
Line 1
Line 2
Line 3
EOF

# 追加内容
cat >> file.txt << EOF
Line 4
Line 5
EOF

# 查看配置文件(去除注释和空行)
cat /etc/nginx/nginx.conf | grep -v "^#" | grep -v "^$"

# 合并文件并添加标记
cat -n file1.txt file2.txt > merged.txt

二、less - 分页查看 #

2.1 基本用法 #

bash
# 查看文件
less file.txt

# 查看多个文件
less file1.txt file2.txt

# 从标准输入读取
cat file.txt | less

2.2 导航快捷键 #

移动操作:

快捷键 功能
Space / f 向下翻页
b 向上翻页
Enter / j 向下一行
k 向上一行
g 跳到文件开头
G 跳到文件末尾
10g 跳到第 10 行

搜索操作:

快捷键 功能
/pattern 向下搜索
?pattern 向上搜索
n 下一个匹配
N 上一个匹配

其他操作:

快捷键 功能
q 退出
h 帮助
F 实时跟踪(类似 tail -f)
v 使用编辑器编辑

2.3 常用选项 #

bash
# 显示行号
less -N file.txt

# 忽略大小写搜索
less -I file.txt

# 自动换行
less -S file.txt

# 实时跟踪日志
less +F /var/log/syslog

2.4 多文件操作 #

bash
# 查看多个文件
less file1.txt file2.txt

# :n 下一个文件
# :p 上一个文件
# :x 第一个文件
# :d 删除当前文件
# :e 添加新文件

三、head - 查看文件开头 #

3.1 基本用法 #

bash
# 显示前 10 行
head file.txt

# 显示前 N 行
head -n 20 file.txt
head -20 file.txt

# 显示前 N 个字节
head -c 100 file.txt

# 显示前 N KB
head -c 10K file.txt

3.2 多文件操作 #

bash
# 显示多个文件开头
head file1.txt file2.txt

# 不显示文件名
head -q file1.txt file2.txt

# 始终显示文件名
head -v file1.txt file2.txt

3.3 实用示例 #

bash
# 查看文件前 5 行
head -5 /etc/passwd

# 查看日志最新内容
head -100 /var/log/syslog

# 查看配置文件开头
head -20 nginx.conf

# 查看文件类型
head -c 4 file.png | xxd

四、tail - 查看文件末尾 #

4.1 基本用法 #

bash
# 显示后 10 行
tail file.txt

# 显示后 N 行
tail -n 20 file.txt
tail -20 file.txt

# 显示后 N 个字节
tail -c 100 file.txt

# 从第 N 行开始显示
tail -n +10 file.txt

4.2 实时跟踪 #

bash
# 实时跟踪文件
tail -f /var/log/syslog

# 跟踪并显示文件名
tail -f /var/log/*.log

# 跟踪多个文件
tail -f file1.txt file2.txt

# 组合使用
tail -100f /var/log/syslog

4.3 常用选项 #

bash
# 不显示文件名
tail -q file1.txt file2.txt

# 始终显示文件名
tail -v file1.txt file2.txt

# 重试打开文件(文件不存在时)
tail -F /var/log/new.log

# PID 失效后退出
tail -f --pid=1234 /var/log/app.log

4.4 实用示例 #

bash
# 查看最新日志
tail -100 /var/log/nginx/access.log

# 实时监控错误日志
tail -f /var/log/nginx/error.log

# 查看系统日志
tail -f /var/log/syslog

# 查看认证日志
tail -f /var/log/auth.log

# 查看应用日志并过滤
tail -f app.log | grep ERROR

五、more - 分页查看 #

5.1 基本用法 #

bash
# 查看文件
more file.txt

# 从指定行开始
more +10 file.txt

# 从匹配模式开始
more +/pattern file.txt

5.2 导航快捷键 #

快捷键 功能
Space 向下翻页
Enter 向下一行
b 向上翻页
/pattern 搜索
n 下一个匹配
q 退出
:f 显示文件信息

5.3 more 与 less 的区别 #

特性 more less
向后翻页 支持 支持
向前翻页 有限支持 完全支持
搜索功能 基础 强大
性能 较慢 较快
功能 基础 丰富

推荐使用 less 代替 more

六、其他查看命令 #

6.1 tac - 反向显示 #

bash
# 反向显示文件(从最后一行开始)
tac file.txt

# 示例
cat file.txt
# Line 1
# Line 2
# Line 3

tac file.txt
# Line 3
# Line 2
# Line 1

6.2 nl - 带行号显示 #

bash
# 显示行号
nl file.txt

# 只显示非空行号
nl -b t file.txt

# 显示所有行号
nl -b a file.txt

# 自定义格式
nl -w 4 -s ': ' file.txt

6.3 rev - 反转每行 #

bash
# 反转每行字符
rev file.txt

# 示例
echo "Hello World" | rev
# dlroW olleH

6.4 od - 八进制显示 #

bash
# 八进制显示
od file.txt

# 十六进制显示
od -x file.txt

# ASCII 显示
od -c file.txt

# 显示文件前 16 字节
od -N 16 -x file.txt

6.5 hexdump - 十六进制显示 #

bash
# 十六进制显示
hexdump -C file.txt

# 只显示 ASCII
hexdump -c file.txt

# 显示偏移量
hexdump -C file.txt

七、文件统计 #

7.1 wc - 统计文件 #

bash
# 统计行数、单词数、字节数
wc file.txt

# 只统计行数
wc -l file.txt

# 只统计单词数
wc -w file.txt

# 只统计字节数
wc -c file.txt

# 只统计字符数
wc -m file.txt

# 统计多个文件
wc file1.txt file2.txt

# 配合管道使用
ls | wc -l
cat file.txt | wc -w

7.2 统计示例 #

bash
# 统计代码行数
find . -name "*.py" | xargs wc -l

# 统计目录下文件数
ls -1 | wc -l

# 统计单词频率
cat file.txt | tr ' ' '\n' | sort | uniq -c | sort -nr

# 统计文件大小
du -sh *

八、文件比较 #

8.1 diff - 文件比较 #

bash
# 比较两个文件
diff file1.txt file2.txt

# 并排显示
diff -y file1.txt file2.txt

# 显示上下文
diff -c file1.txt file2.txt

# 统一格式
diff -u file1.txt file2.txt

# 递归比较目录
diff -r dir1/ dir2/

# 忽略空白
diff -w file1.txt file2.txt

# 忽略大小写
diff -i file1.txt file2.txt

8.2 cmp - 字节比较 #

bash
# 比较文件
cmp file1.txt file2.txt

# 显示所有差异
cmp -l file1.txt file2.txt

# 显示字节编号
cmp -b file1.txt file2.txt

8.3 vimdiff - 可视化比较 #

bash
# 使用 vim 比较
vimdiff file1.txt file2.txt

# 比较三个文件
vimdiff file1.txt file2.txt file3.txt

九、文件搜索 #

9.1 grep - 文本搜索 #

bash
# 基本搜索
grep "pattern" file.txt

# 忽略大小写
grep -i "pattern" file.txt

# 显示行号
grep -n "pattern" file.txt

# 显示匹配数量
grep -c "pattern" file.txt

# 反向匹配
grep -v "pattern" file.txt

# 递归搜索
grep -r "pattern" directory/

# 只显示文件名
grep -l "pattern" *.txt

# 显示匹配颜色
grep --color "pattern" file.txt

# 使用正则表达式
grep -E "pattern1|pattern2" file.txt

# 显示上下文
grep -C 3 "pattern" file.txt

9.2 实用示例 #

bash
# 搜索进程
ps aux | grep nginx

# 搜索日志中的错误
grep -i "error" /var/log/syslog

# 搜索代码中的函数
grep -rn "function_name" src/

# 搜索配置文件
grep -r "ServerName" /etc/apache2/

# 统计匹配行数
grep -c "ERROR" app.log

十、实践练习 #

10.1 练习一:基本查看 #

bash
# 1. 创建测试文件
cat > test.txt << EOF
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
EOF

# 2. 查看整个文件
cat test.txt

# 3. 查看前 3 行
head -3 test.txt

# 4. 查看后 3 行
tail -3 test.txt

# 5. 分页查看
less test.txt

10.2 练习二:日志分析 #

bash
# 1. 查看系统日志
tail -50 /var/log/syslog

# 2. 实时监控日志
tail -f /var/log/syslog

# 3. 搜索错误
grep -i "error" /var/log/syslog

# 4. 统计错误数量
grep -c "error" /var/log/syslog

# 5. 查看最近的错误
tail -100 /var/log/syslog | grep -i error

10.3 练习三:文件比较 #

bash
# 1. 创建两个测试文件
echo -e "Line 1\nLine 2\nLine 3" > file1.txt
echo -e "Line 1\nLine 2 modified\nLine 3\nLine 4" > file2.txt

# 2. 比较文件
diff file1.txt file2.txt

# 3. 并排比较
diff -y file1.txt file2.txt

# 4. 统一格式
diff -u file1.txt file2.txt

10.4 练习四:文件统计 #

bash
# 1. 统计文件行数
wc -l test.txt

# 2. 统计单词数
wc -w test.txt

# 3. 统计字符数
wc -m test.txt

# 4. 统计目录下所有 .txt 文件
find . -name "*.txt" | xargs wc -l

十一、小结 #

本章学习了 Linux 文件查看的各种命令,包括 cat、less、head、tail、more 等。

关键要点:

  1. cat 适合查看小文件和合并文件
  2. less 是最强大的分页查看工具
  3. headtail 用于查看文件开头和结尾
  4. tail -f 用于实时监控日志
  5. grep 是强大的文本搜索工具

下一章预告: 文本处理 - 学习强大的文本处理工具 sed、awk 等。

最后更新:2026-03-27