文本查看 #

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

小结 #

通过本节学习,你应该掌握:

  1. cat:显示文件内容,连接文件
  2. less:分页查看,功能丰富
  3. more:简单分页查看
  4. head:显示文件开头
  5. tail:显示文件末尾,实时监控
  6. tac:反向显示文件
  7. nl:带行号显示
  8. wc:统计文件信息

下一步,我们将学习文本编辑命令。

最后更新:2026-04-11