文本查看 #
cat - 连接并显示文件 #
基本用法 #
bash
# 显示文件内容
$ cat file.txt
# 显示多个文件
$ cat file1.txt file2.txt
# 连接文件
$ cat file1.txt file2.txt > combined.txt
常用选项 #
bash
# -n 显示行号
$ cat -n file.txt
1 Line 1
2 Line 2
3 Line 3
# -b 显示行号(空行除外)
$ cat -b file.txt
1 Line 1
2 Line 2
# -s 压缩连续空行
$ cat -s file.txt
# -T 显示制表符
$ cat -T file.txt
Line 1^ILine 2
# -A 显示所有特殊字符
$ cat -A file.txt
Line 1$
Line 2^Iwith tab$
$
# -E 显示行尾
$ cat -E file.txt
Line 1$
Line 2$
实用示例 #
bash
# 创建文件
$ cat > newfile.txt
Hello World
This is a test
# 按 Ctrl+D 结束
# 追加内容
$ cat >> file.txt
More content
# 按 Ctrl+D 结束
# 合并文件
$ cat part*.txt > complete.txt
# 显示文件并高亮
$ cat -n file.txt | less -R
# 查看配置文件(排除注释)
$ cat config.conf | grep -v "^#" | grep -v "^$"
# 复制文件
$ cat source.txt > destination.txt
# 显示特殊字符
$ cat -A script.sh
less - 分页查看 #
基本用法 #
bash
# 分页查看文件
$ less file.txt
# 查看多个文件
$ less file1.txt file2.txt
# 从指定行开始
$ less +10 file.txt
# 显示行号
$ less -N file.txt
导航命令 #
text
┌─────────────────────────────────────────────────────────────┐
│ less 导航命令 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 空格键 / f 向下翻一页 │
│ b 向上翻一页 │
│ 回车键 / j 向下翻一行 │
│ k 向上翻一行 │
│ g 跳到文件开头 │
│ G 跳到文件末尾 │
│ 10g 跳到第 10 行 │
│ 50% 跳到文件 50% 位置 │
│ │
│ /pattern 向下搜索 │
│ ?pattern 向上搜索 │
│ n 下一个匹配 │
│ N 上一个匹配 │
│ │
│ :n 下一个文件 │
│ :p 上一个文件 │
│ q 退出 │
│ │
└─────────────────────────────────────────────────────────────┘
常用选项 #
bash
# -N 显示行号
$ less -N file.txt
# -S 不换行显示长行
$ less -S file.txt
# -F 如果文件一屏能显示完,直接退出
$ less -F file.txt
# -R 显示颜色
$ less -R file.txt
# -i 搜索忽略大小写
$ less -i file.txt
# -M 显示更多信息
$ less -M file.txt
# +F 实时跟踪(类似 tail -f)
$ less +F /var/log/syslog
实用技巧 #
bash
# 查看压缩文件
$ less large.log.gz
# 查看命令输出
$ dmesg | less
# 搜索并高亮
$ less -p "error" file.txt
# 实时查看日志
$ less +F /var/log/nginx/access.log
# 查看大文件
$ less -n large_file.txt
# 配合 grep 使用
$ grep -r "error" /var/log/ | less -R
more - 简单分页 #
基本用法 #
bash
# 分页查看文件
$ more file.txt
# 从指定行开始
$ more +10 file.txt
# 每屏显示指定行数
$ more -10 file.txt
导航命令 #
text
┌─────────────────────────────────────────────────────────────┐
│ more 导航命令 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 空格键 向下翻一页 │
│ 回车键 向下翻一行 │
│ b 向上翻一页 │
│ /pattern 搜索 │
│ n 下一个匹配 │
│ q 退出 │
│ h 帮助 │
│ │
└─────────────────────────────────────────────────────────────┘
more vs less #
text
┌─────────────────────────────────────────────────────────────┐
│ more vs less │
├─────────────────────────────────────────────────────────────┤
│ │
│ more │
│ ├── 只能向下翻页 │
│ ├── 功能较少 │
│ └── 适合简单查看 │
│ │
│ less │
│ ├── 可以向上/向下翻页 │
│ ├── 功能丰富 │
│ ├── 支持搜索高亮 │
│ └── 推荐使用 │
│ │
└─────────────────────────────────────────────────────────────┘
head - 显示文件开头 #
基本用法 #
bash
# 显示前 10 行(默认)
$ head file.txt
# 显示前 n 行
$ head -n 20 file.txt
$ head -20 file.txt
# 显示多个文件
$ head file1.txt file2.txt
常用选项 #
bash
# -n 指定行数
$ head -n 20 file.txt
# -c 指定字节数
$ head -c 100 file.txt
# -q 不显示文件名
$ head -q file1.txt file2.txt
# -v 显示文件名
$ head -v file.txt
==> file.txt <==
Line 1
Line 2
实用示例 #
bash
# 查看文件开头
$ head /etc/passwd
# 查看日志开头
$ head /var/log/syslog
# 显示前 5 行
$ head -5 file.txt
# 显示前 100 字节
$ head -c 100 file.txt
# 查看多个配置文件开头
$ head -n 5 /etc/*.conf
# 查看脚本开头(检查解释器)
$ head -1 script.sh
#!/bin/bash
# 显示文件前 10% 内容
$ head -n $(($(wc -l < file.txt) / 10)) file.txt
tail - 显示文件末尾 #
基本用法 #
bash
# 显示最后 10 行(默认)
$ tail file.txt
# 显示最后 n 行
$ tail -n 20 file.txt
$ tail -20 file.txt
# 显示多个文件
$ tail file1.txt file2.txt
常用选项 #
bash
# -n 指定行数
$ tail -n 20 file.txt
# -c 指定字节数
$ tail -c 100 file.txt
# -f 实时跟踪
$ tail -f /var/log/syslog
# -F 跟踪文件(文件重建后继续)
$ tail -F /var/log/nginx/access.log
# -q 不显示文件名
$ tail -q file1.txt file2.txt
# -v 显示文件名
$ tail -v file.txt
实时监控 #
bash
# 实时查看日志
$ tail -f /var/log/syslog
# 实时查看多个日志
$ tail -f /var/log/nginx/access.log /var/log/nginx/error.log
# 实时查看并过滤
$ tail -f /var/log/nginx/access.log | grep "ERROR"
# 实时查看最近 100 行
$ tail -n 100 -f /var/log/syslog
# 实时查看并高亮
$ tail -f /var/log/syslog | grep --color=auto -E "ERROR|WARN|$"
# 实时查看 Apache 日志
$ tail -f /var/log/apache2/access.log
# 实时查看应用日志
$ tail -f /var/log/myapp/application.log
实用示例 #
bash
# 查看最后 50 行
$ tail -50 file.txt
# 查看日志最新内容
$ tail /var/log/syslog
# 实时监控日志
$ tail -f /var/log/syslog
# 查看文件最后 1KB
$ tail -c 1K file.txt
# 从第 100 行开始显示
$ tail -n +100 file.txt
# 查看多个日志文件
$ tail -f /var/log/*.log
# 实时查看并统计
$ tail -f access.log | awk '{print $1}' | sort | uniq -c
tac - 反向显示 #
基本用法 #
bash
# 反向显示文件(从最后一行开始)
$ tac file.txt
# 显示多个文件
$ tac file1.txt file2.txt
# 指定分隔符
$ tac -s "," file.txt
实用示例 #
bash
# 查看日志(最新在前)
$ tac /var/log/syslog | less
# 反向查看文件
$ tac file.txt
# 反向合并文件
$ tac file.txt > reversed.txt
# 查看历史命令(最新在前)
$ tac ~/.bash_history | head -20
nl - 带行号显示 #
基本用法 #
bash
# 显示带行号的内容
$ nl file.txt
1 Line 1
2 Line 2
3 Line 3
# 指定起始行号
$ nl -v 10 file.txt
10 Line 1
11 Line 2
常用选项 #
bash
# -b 行号方式
$ nl -b a file.txt # 所有行编号
$ nl -b t file.txt # 非空行编号(默认)
$ nl -b n file.txt # 不编号
# -n 行号格式
$ nl -n ln file.txt # 左对齐
$ nl -n rn file.txt # 右对齐(默认)
$ nl -n rz file.txt # 右对齐,补零
# -w 行号宽度
$ nl -w 4 file.txt
# -s 分隔符
$ nl -s ": " file.txt
1: Line 1
2: Line 2
wc - 统计文件 #
基本用法 #
bash
# 统计行数、单词数、字节数
$ wc file.txt
100 500 3000 file.txt
# 行数 单词数 字节数
# 统计多个文件
$ wc file1.txt file2.txt
100 500 3000 file1.txt
200 800 5000 file2.txt
300 1300 8000 total
常用选项 #
bash
# -l 只统计行数
$ wc -l file.txt
100 file.txt
# -w 只统计单词数
$ wc -w file.txt
500 file.txt
# -c 只统计字节数
$ wc -c file.txt
3000 file.txt
# -m 只统计字符数
$ wc -m file.txt
# -L 最长行的长度
$ wc -L file.txt
80 file.txt
实用示例 #
bash
# 统计文件行数
$ wc -l file.txt
# 统计代码行数
$ find . -name "*.py" | xargs wc -l
# 统计目录下所有文件
$ wc -l *.txt
# 统计单词数
$ wc -w document.txt
# 统计日志行数
$ wc -l /var/log/syslog
# 配合 grep 使用
$ grep "ERROR" log.txt | wc -l
# 统计文件数量
$ ls -1 | wc -l
# 统计代码总行数
$ find . -name "*.js" -exec cat {} \; | wc -l
小结 #
通过本节学习,你应该掌握:
- cat:显示文件内容,连接文件
- less:分页查看,功能丰富
- more:简单分页查看
- head:显示文件开头
- tail:显示文件末尾,实时监控
- tac:反向显示文件
- nl:带行号显示
- wc:统计文件信息
下一步,我们将学习文本编辑命令。
最后更新:2026-04-11