Linux命令大全 - 文件内容查看和编辑
本文介绍了Linux系统中12个核心文件处理命令,包括cat(显示文件内容)、tac(反向显示)、less/more(分页查看)、head/tail(查看文件首尾)、grep/egrep/fgrep/rgrep(文本搜索)以及sed/awk(高级文本处理)。这些命令涵盖了文件查看、搜索、编辑等常见操作场景,是系统管理和文本处理的必备工具。每个命令都包含语法说明、常用参数、实际案例和执行结果,帮助用
概述
本部分介绍Linux系统中用于查看、编辑和处理文件内容的命令。这些命令是文本处理、日志分析和文件操作的核心工具,掌握它们对于系统管理和开发工作至关重要。
1. cat - 显示文件内容
命令语法
cat [选项] [文件...]
功能说明
连接文件并显示内容到标准输出。
常用参数
-n: 显示行号-b: 只对非空行显示行号-s: 压缩连续的空行-A: 显示所有控制字符-T: 显示制表符为^I
实际案例
# 显示文件内容
cat file.txt
# 显示行号
cat -n file.txt
# 显示多个文件
cat file1.txt file2.txt
# 显示所有字符
cat -A file.txt
# 压缩空行
cat -s file.txt
执行结果
$ cat -n file.txt
1 Hello World
2 This is line 2
3 This is line 3
详细解析
cat命令是最基础的文件查看命令,适合查看小文件。对于大文件建议使用less或more命令。
2. tac - 反向显示文件
命令语法
tac [选项] [文件...]
功能说明
反向显示文件内容(cat的反向)。
常用参数
-b: 在行前添加分隔符-r: 将分隔符作为正则表达式-s: 使用指定字符串作为分隔符
实际案例
# 反向显示文件
tac file.txt
# 反向显示多个文件
tac file1.txt file2.txt
# 使用分隔符
tac -s "---" file.txt
执行结果
$ tac file.txt
This is line 3
This is line 2
Hello World
详细解析
tac命令将文件内容按行反向显示,常用于查看日志文件的最后几行。
3. less - 分页查看文件
命令语法
less [选项] [文件...]
功能说明
分页显示文件内容,支持向前向后浏览。
常用参数
-N: 显示行号-S: 不换行显示长行-i: 忽略大小写搜索-F: 如果文件只有一屏则直接退出
实际案例
# 分页查看文件
less file.txt
# 显示行号
less -N file.txt
# 不换行显示
less -S file.txt
# 忽略大小写搜索
less -i file.txt
执行结果
$ less file.txt
Hello World
This is line 2
This is line 3
(END)
详细解析
less命令是查看大文件的最佳选择,支持搜索、跳转等操作。常用快捷键:
- 空格键:向下翻页
- b:向上翻页
- /:搜索
- q:退出
4. more - 分页查看文件
命令语法
more [选项] [文件...]
功能说明
分页显示文件内容,只能向前浏览。
常用参数
-d: 显示帮助信息-f: 不折叠长行-l: 不暂停在换页符-p: 清屏后显示
实际案例
# 分页查看文件
more file.txt
# 显示帮助信息
more -d file.txt
# 不折叠长行
more -f file.txt
# 清屏显示
more -p file.txt
执行结果
$ more file.txt
Hello World
This is line 2
This is line 3
--More--(25%)
详细解析
more命令比less简单,但功能较少。现在更推荐使用less命令。
5. head - 查看文件开头
命令语法
head [选项] [文件...]
功能说明
显示文件的前几行。
常用参数
-n: 指定显示行数-c: 指定显示字节数-q: 不显示文件名-v: 显示文件名
实际案例
# 显示前10行
head file.txt
# 显示前5行
head -n 5 file.txt
# 显示前100字节
head -c 100 file.txt
# 显示多个文件
head file1.txt file2.txt
执行结果
$ head -n 3 file.txt
Hello World
This is line 2
This is line 3
详细解析
head命令默认显示前10行,常用于查看文件的开头部分。
6. tail - 查看文件结尾
命令语法
tail [选项] [文件...]
功能说明
显示文件的最后几行。
常用参数
-n: 指定显示行数-c: 指定显示字节数-f: 实时跟踪文件变化-F: 跟踪文件变化,文件被删除后重新打开
实际案例
# 显示最后10行
tail file.txt
# 显示最后5行
tail -n 5 file.txt
# 实时跟踪日志
tail -f /var/log/syslog
# 跟踪文件变化
tail -F logfile.txt
执行结果
$ tail -n 3 file.txt
This is line 8
This is line 9
This is line 10
详细解析
tail命令是查看日志文件的常用工具,-f参数可以实时监控文件变化。
7. grep - 文本搜索
命令语法
grep [选项] 模式 [文件...]
功能说明
在文件中搜索匹配的文本行。
常用参数
-i: 忽略大小写-v: 显示不匹配的行-n: 显示行号-r: 递归搜索目录-l: 只显示文件名-c: 只显示匹配行数
实际案例
# 搜索文本
grep "hello" file.txt
# 忽略大小写搜索
grep -i "HELLO" file.txt
# 显示行号
grep -n "hello" file.txt
# 递归搜索
grep -r "hello" /home/user/
# 显示不匹配的行
grep -v "hello" file.txt
执行结果
$ grep -n "hello" file.txt
1:Hello World
5:hello there
详细解析
grep是Linux中最强大的文本搜索工具,支持正则表达式,是日志分析和文本处理的核心命令。
8. egrep - 扩展grep
命令语法
egrep [选项] 模式 [文件...]
功能说明
使用扩展正则表达式的grep。
常用参数
与grep相同,但支持扩展正则表达式。
实际案例
# 使用扩展正则表达式
egrep "hello|world" file.txt
# 搜索多个模式
egrep "(error|warning)" logfile.txt
# 使用量词
egrep "go{2,4}d" file.txt
执行结果
$ egrep "hello|world" file.txt
Hello World
hello there
详细解析
egrep等同于grep -E,支持扩展正则表达式,包括|、+、?、{}等元字符。
9. fgrep - 固定字符串grep
命令语法
fgrep [选项] 字符串 [文件...]
功能说明
搜索固定字符串,不解释正则表达式。
常用参数
与grep相同,但将模式作为固定字符串处理。
实际案例
# 搜索固定字符串
fgrep "hello.world" file.txt
# 搜索特殊字符
fgrep "*.txt" file.txt
执行结果
$ fgrep "hello.world" file.txt
hello.world is a domain
详细解析
fgrep等同于grep -F,将搜索模式作为固定字符串处理,不解释正则表达式。
10. rgrep - 递归grep
命令语法
rgrep [选项] 模式 [目录...]
功能说明
递归搜索目录中的文件。
常用参数
与grep相同,但默认递归搜索。
实际案例
# 递归搜索
rgrep "hello" /home/user/
# 递归搜索并显示行号
rgrep -n "hello" /home/user/
执行结果
$ rgrep "hello" /home/user/
/home/user/file1.txt:Hello World
/home/user/documents/file2.txt:hello there
详细解析
rgrep等同于grep -r,递归搜索指定目录及其子目录中的文件。
11. sed - 流编辑器
命令语法
sed [选项] 命令 [文件...]
功能说明
流编辑器,用于文本替换、删除、插入等操作。
常用参数
-i: 直接修改文件-n: 只显示处理后的行-e: 执行多个命令-f: 从文件读取命令
实际案例
# 替换文本
sed 's/old/new/g' file.txt
# 删除行
sed '2d' file.txt
# 插入行
sed '2i\New line' file.txt
# 直接修改文件
sed -i 's/old/new/g' file.txt
# 执行多个命令
sed -e 's/old/new/g' -e '2d' file.txt
执行结果
$ sed 's/old/new/g' file.txt
Hello new World
This is new line
详细解析
sed是强大的流编辑器,支持复杂的文本处理操作,常用于批量文本替换。
12. awk - 文本处理工具
命令语法
awk [选项] '程序' [文件...]
功能说明
强大的文本处理和数据提取工具。
常用参数
-F: 指定字段分隔符-v: 定义变量-f: 从文件读取程序
实际案例
# 打印第一列
awk '{print $1}' file.txt
# 使用逗号分隔符
awk -F',' '{print $1, $3}' file.txt
# 条件过滤
awk '$3 > 100 {print $1, $3}' file.txt
# 计算总和
awk '{sum += $1} END {print sum}' file.txt
# 使用变量
awk -v var=10 '{print $1 + var}' file.txt
执行结果
$ awk '{print $1}' file.txt
Hello
This
Another
详细解析
awk是强大的文本处理工具,支持字段操作、条件判断、循环等,是数据分析的重要工具。
13. gawk - GNU awk
命令语法
gawk [选项] '程序' [文件...]
功能说明
GNU版本的awk,功能更强大。
常用参数
与awk相同,但支持更多功能。
实际案例
# 使用GNU扩展功能
gawk '{print length($0)}' file.txt
# 使用内置函数
gawk '{print toupper($1)}' file.txt
# 使用数组
gawk '{count[$1]++} END {for (i in count) print i, count[i]}' file.txt
执行结果
$ gawk '{print length($0)}' file.txt
11
15
12
详细解析
gawk是awk的GNU实现,支持更多内置函数和扩展功能。
14. mawk - 快速awk
命令语法
mawk [选项] '程序' [文件...]
功能说明
快速版本的awk实现。
常用参数
与awk相同,但执行速度更快。
实际案例
# 快速处理大文件
mawk '{print $1}' largefile.txt
# 快速计算
mawk '{sum += $1} END {print sum}' data.txt
执行结果
$ mawk '{print $1}' file.txt
Hello
This
Another
详细解析
mawk是awk的快速实现,适合处理大文件,但功能相对较少。
15. nano - 简单文本编辑器
命令语法
nano [选项] [文件...]
功能说明
简单易用的文本编辑器。
常用参数
-w: 不自动换行-T: 设置制表符宽度-c: 显示行号
实际案例
# 编辑文件
nano file.txt
# 不自动换行
nano -w file.txt
# 显示行号
nano -c file.txt
# 设置制表符宽度
nano -T 4 file.txt
执行结果
$ nano file.txt
# 打开nano编辑器界面
详细解析
nano是初学者友好的文本编辑器,界面简单,快捷键显示在底部。
16. vi - 文本编辑器
命令语法
vi [选项] [文件...]
功能说明
经典的文本编辑器。
常用参数
+: 启动时执行命令-R: 只读模式-c: 启动时执行命令
实际案例
# 编辑文件
vi file.txt
# 只读模式
vi -R file.txt
# 启动时跳转到指定行
vi +10 file.txt
# 启动时执行命令
vi -c "set number" file.txt
执行结果
$ vi file.txt
# 打开vi编辑器界面
详细解析
vi是经典的文本编辑器,有两种模式:命令模式和插入模式。
17. vim - 改进的vi
命令语法
vim [选项] [文件...]
功能说明
vi的改进版本,功能更强大。
常用参数
+: 启动时执行命令-R: 只读模式-c: 启动时执行命令-o: 水平分割窗口-O: 垂直分割窗口
实际案例
# 编辑文件
vim file.txt
# 水平分割编辑多个文件
vim -o file1.txt file2.txt
# 垂直分割编辑多个文件
vim -O file1.txt file2.txt
# 启动时跳转到指定行
vim +10 file.txt
执行结果
$ vim file.txt
# 打开vim编辑器界面
详细解析
vim是vi的改进版本,支持语法高亮、多窗口、插件等高级功能。
18. emacs - 文本编辑器
命令语法
emacs [选项] [文件...]
功能说明
功能强大的文本编辑器。
常用参数
-nw: 不使用图形界面-q: 不加载初始化文件-batch: 批处理模式
实际案例
# 编辑文件
emacs file.txt
# 不使用图形界面
emacs -nw file.txt
# 不加载初始化文件
emacs -q file.txt
# 批处理模式
emacs -batch -l script.el
执行结果
$ emacs file.txt
# 打开emacs编辑器界面
详细解析
emacs是功能强大的文本编辑器,支持Lisp扩展,可以配置成IDE。
19. ed - 行编辑器
命令语法
ed [选项] [文件...]
功能说明
经典的行编辑器。
常用参数
-p: 设置提示符-s: 静默模式-v: 详细模式
实际案例
# 编辑文件
ed file.txt
# 设置提示符
ed -p "> " file.txt
# 静默模式
ed -s file.txt
执行结果
$ ed file.txt
# 打开ed编辑器界面
详细解析
ed是最早的行编辑器,现在很少使用,但了解它有助于理解vi的历史。
20. ex - 行编辑器
命令语法
ex [选项] [文件...]
功能说明
vi的前身,行编辑器。
常用参数
与vi相同。
实际案例
# 编辑文件
ex file.txt
# 只读模式
ex -R file.txt
执行结果
$ ex file.txt
# 打开ex编辑器界面
详细解析
ex是vi的前身,现在很少直接使用,但vi的命令模式就是基于ex的。
21. rev - 反转行内容
命令语法
rev [文件...]
功能说明
反转每行字符的顺序。
常用参数
无特殊参数。
实际案例
# 反转文件内容
rev file.txt
# 反转多个文件
rev file1.txt file2.txt
执行结果
$ rev file.txt
dlroW olleH
2 enil si sihT
3 enil si sihT
详细解析
rev命令将每行的字符顺序反转,常用于文本处理。
22. column - 格式化列输出
命令语法
column [选项] [文件...]
功能说明
将输入格式化为列输出。
常用参数
-t: 创建表格-s: 指定分隔符-c: 指定列宽
实际案例
# 格式化列输出
column file.txt
# 创建表格
column -t file.txt
# 使用指定分隔符
column -s ',' file.txt
# 指定列宽
column -c 80 file.txt
执行结果
$ column -t file.txt
Hello World
This is line 2
This is line 3
详细解析
column命令将输入格式化为整齐的列输出,便于阅读。
23. fmt - 格式化文本
命令语法
fmt [选项] [文件...]
功能说明
格式化文本段落。
常用参数
-w: 设置行宽-u: 统一空格-s: 只分割长行
实际案例
# 格式化文本
fmt file.txt
# 设置行宽
fmt -w 60 file.txt
# 统一空格
fmt -u file.txt
# 只分割长行
fmt -s file.txt
执行结果
$ fmt -w 40 file.txt
Hello World This is a long line
that will be wrapped to fit
within the specified width.
详细解析
fmt命令用于格式化文本段落,调整行宽和空格。
24. fold - 折叠长行
命令语法
fold [选项] [文件...]
功能说明
将长行折叠到指定宽度。
常用参数
-w: 设置行宽-s: 在空格处折叠-b: 按字节计算宽度
实际案例
# 折叠长行
fold file.txt
# 设置行宽
fold -w 40 file.txt
# 在空格处折叠
fold -s -w 40 file.txt
# 按字节计算
fold -b -w 40 file.txt
执行结果
$ fold -w 20 file.txt
Hello World This is
a long line that
will be folded
详细解析
fold命令将长行折叠到指定宽度,保持文本的可读性。
25. pr - 格式化打印
命令语法
pr [选项] [文件...]
功能说明
格式化文件用于打印。
常用参数
-h: 设置页眉-l: 设置页长-w: 设置行宽-c: 设置列数
实际案例
# 格式化打印
pr file.txt
# 设置页眉
pr -h "My Document" file.txt
# 设置页长
pr -l 50 file.txt
# 设置列数
pr -c 2 file.txt
执行结果
$ pr file.txt
2023-12-15 10:30 file.txt Page 1
Hello World
This is line 2
This is line 3
详细解析
pr命令格式化文件用于打印,添加页眉、页脚和分页符。
26. nl - 添加行号
命令语法
nl [选项] [文件...]
功能说明
为文件添加行号。
常用参数
-b: 设置行号样式-n: 设置行号格式-w: 设置行号宽度-s: 设置行号分隔符
实际案例
# 添加行号
nl file.txt
# 设置行号样式
nl -b a file.txt
# 设置行号格式
nl -n ln file.txt
# 设置行号宽度
nl -w 3 file.txt
# 设置分隔符
nl -s ": " file.txt
执行结果
$ nl file.txt
1 Hello World
2 This is line 2
3 This is line 3
详细解析
nl命令为文件添加行号,支持多种行号样式和格式。
27. wc - 统计行数/字数
命令语法
wc [选项] [文件...]
功能说明
统计文件的行数、字数和字符数。
常用参数
-l: 只统计行数-w: 只统计字数-c: 只统计字符数-m: 只统计字符数(多字节字符)
实际案例
# 统计所有信息
wc file.txt
# 只统计行数
wc -l file.txt
# 只统计字数
wc -w file.txt
# 只统计字符数
wc -c file.txt
# 统计多个文件
wc file1.txt file2.txt
执行结果
$ wc file.txt
3 9 45 file.txt
详细解析
wc命令显示文件的行数、字数和字符数,输出格式为:行数 字数 字符数 文件名。
28. sort - 排序
命令语法
sort [选项] [文件...]
功能说明
对文件内容进行排序。
常用参数
-r: 反向排序-n: 按数值排序-k: 指定排序字段-u: 去除重复行-f: 忽略大小写
实际案例
# 基本排序
sort file.txt
# 反向排序
sort -r file.txt
# 按数值排序
sort -n numbers.txt
# 指定排序字段
sort -k 2 file.txt
# 去除重复行
sort -u file.txt
# 忽略大小写
sort -f file.txt
执行结果
$ sort file.txt
Another line
Hello World
This is line 2
This is line 3
详细解析
sort命令对文件内容进行排序,支持多种排序方式和字段选择。
29. uniq - 去重
命令语法
uniq [选项] [输入文件] [输出文件]
功能说明
去除或报告重复行。
常用参数
-c: 显示重复次数-d: 只显示重复行-u: 只显示唯一行-i: 忽略大小写
实际案例
# 去除重复行
uniq file.txt
# 显示重复次数
uniq -c file.txt
# 只显示重复行
uniq -d file.txt
# 只显示唯一行
uniq -u file.txt
# 忽略大小写
uniq -i file.txt
执行结果
$ uniq -c file.txt
2 Hello World
1 This is line 2
1 This is line 3
详细解析
uniq命令去除重复行,通常与sort命令配合使用。
30. cut - 提取列
命令语法
cut [选项] [文件...]
功能说明
从文件中提取列。
常用参数
-c: 按字符位置提取-f: 按字段提取-d: 指定字段分隔符
实际案例
# 按字符位置提取
cut -c 1-10 file.txt
# 按字段提取
cut -f 1,3 file.txt
# 使用指定分隔符
cut -d ',' -f 1,3 file.txt
# 提取多个字段
cut -f 1-3 file.txt
执行结果
$ cut -f 1 file.txt
Hello
This
Another
详细解析
cut命令从文件中提取指定的列,支持按字符位置和字段提取。
总结
本部分介绍了Linux系统中用于文件内容查看和编辑的核心命令。这些命令是文本处理、日志分析和文件操作的基础工具。
主要命令分类:
- 文件查看:cat、less、more、head、tail
- 文本搜索:grep、egrep、fgrep、rgrep
- 文本编辑:sed、awk、nano、vi、vim、emacs
- 文本处理:sort、uniq、cut、paste、tr
- 格式化:fmt、fold、column、pr、nl
使用建议:
- 查看大文件使用less而不是cat
- 实时监控日志使用tail -f
- 文本搜索使用grep,支持正则表达式
- 复杂文本处理使用awk或sed
- 编辑文件根据熟练程度选择nano、vi或vim
- 文本分析结合sort、uniq、cut等命令
这些命令为Linux系统管理和文本处理提供了强大的工具集。
更多推荐



所有评论(0)