Linux文件内容查看和编辑指南:cat、less、grep等常用命令详解
文章目录Linux文件内容查看和编辑1. 查看文件内容cat用法cat详解概要主要用途参数选项返回值例子注意lessless详解补充说明语法选项参数实例moremore详解补充说明语法选项参数实例2. 文件搜索和过滤grepgrep详解语法选项参数实例findfind详解语法选项参数实例awkawk详解语法选项参数实例3. 文件编辑nanonano详解语法选项参数实例vi/vimvi/vim详解语法选项参数实例总结Linux文件内容查看和编辑1. 查看文件内容cat用法cat命令用于显示整个文件的内容。它将文件的内容一次性输出到终端窗口。例如要显示名为file.txt的文件内容可以运行以下命令cat file.txt小提示如果文件内容太长无法一次性在终端显示完整可以使用less或者more命令进行分页显示。cat详解连接多个文件并打印到标准输出。概要cat [OPTION]… [FILE]…主要用途显示文件内容如果没有文件或文件为-则读取标准输入。将多个文件的内容进行连接并打印到标准输出。显示文件内容中的不可见字符控制字符、换行符、制表符等。参数FILE可选要处理的文件可以为一或多个。选项长选项与短选项等价-A, --show-all 等价于-vET组合选项。-b, --number-nonblank 只对非空行编号从1开始编号覆盖-n选项。-e 等价于-vE组合选项。-E, --show-ends 在每行的结尾显示’$字符。-n, --number 对所有行编号从1开始编号。-s, --squeeze-blank 压缩连续的空行到一行。-t 等价于-vT组合选项。-T, --show-tabs 使用^I表示TAB制表符。-u POSIX兼容性选项无意义。-v, --show-nonprinting 使用^和M-符号显示控制字符除了LFDline feed即换行符’\n’和TAB制表符。–help 显示帮助信息并退出。–version 显示版本信息并退出。返回值返回状态为成功除非给出了非法选项或非法参数。例子# 合并显示多个文件 cat ./1.log ./2.log ./3.log # 显示文件中的非打印字符、tab、换行符 cat -A test.log # 压缩文件的空行 cat -s test.log # 显示文件并在所有行开头附加行号 cat -n test.log # 显示文件并在所有非空行开头附加行号 cat -b test.log # 将标准输入的内容和文件内容一并显示 echo ###### |cat - test.log注意该命令是GNU coreutils包中的命令相关的帮助信息请查看man -s 1 cat或info coreutils cat invocation。当使用cat命令查看体积较大的文件时文本在屏幕上迅速闪过滚屏用户往往看不清所显示的内容为了控制滚屏可以按Ctrls键停止滚屏按Ctrlq键恢复滚屏按Ctrlc中断键可以终止该命令的执行返回Shell提示符状态。建议您查看体积较大的文件时使用less、more命令或emacs、vi等文本编辑器。lessless命令可以按页查看文件内容并且提供了一些方便的浏览操作。若要使用less查看文件内容只需输入以下命令less file.txt此时会显示文件内容的第一页。您可以使用箭头键向上/向下滚动或者按空格键向下翻页。小提示要退出less命令可以按下q键。less详解分屏上下翻页浏览文件内容补充说明less命令的作用与more十分相似都可以用来浏览文字档案的内容不同的是less命令允许用户向前或向后浏览文件而more命令只能向前浏览。用less命令显示文件时用PageUp键向上翻页用PageDown键向下翻页。要退出less程序应按Q键。语法less [选项] [参数]选项-e文件内容显示完毕后自动退出-f强制显示文件-g不加亮显示搜索到的所有关键词仅显示当前显示的关键字以提高显示速度-l搜索时忽略大小写的差异-N每一行行首显示行号-s将连续多个空行压缩成一行显示-S在单行显示较长的内容而不换行显示-x数字将TAB字符显示为指定个数的空格字符。参数文件指定要分屏显示内容的文件。实例sudo less /var/log/shadowsocks.logmore与less类似more命令也可用于按页查看文件内容。要使用more查看文件内容只需输入以下命令more file.txt与less不同的是more只允许您向前滚动一页无法像less那样向后滚动。小提示要退出more命令可以按下q键。more详解more命令用于分页显示文件内容。补充说明more命令是一个基于vi编辑器的文本过滤器它以全屏幕的方式按页显示文本文件的内容并且支持vi中的关键字定位操作。more内置了许多快捷键如H获得帮助信息。Enter向下翻滚一行。空格向下滚动一屏。Q退出命令。该命令一次显示一屏文本满屏后停下来并且在屏幕底部出现一个提示信息给出已经显示的文件百分比“–More–XX%”。您可以按以下方法对提示进行回答按Space键显示文本的下一屏内容。按Enter键只显示文本的下一行内容。按斜线符|接着输入一个模式可以在文本中寻找下一个相匹配的模式。按H键显示帮助屏该屏上有相关的帮助信息。按B键显示上一屏内容。按Q键退出more命令。语法more [选项] [文件]选项-数字指定每屏显示的行数。-d显示提示信息。-c不进行滚屏操作每次刷新屏幕。-s将多个空行压缩成一行显示。-u禁止下划线。数字从指定数字的行开始显示。参数文件要分页显示内容的文件。实例显示file文件的内容但在显示之前先清屏并且在屏幕最下方显示完成的百分比。more -dc file显示file文件的内容每10行显示一次而且在显示之前先清屏。more -c -10 file2. 文件搜索和过滤grepgrep命令用于在文件中搜索指定的模式。它可以根据您提供的模式进行匹配并输出匹配到的行。以下是使用grep的基本语法grep pattern file.txt其中pattern是您要搜索的模式file.txt是您要搜索的文件名。例如要在名为file.txt的文件中搜索包含单词 “hello” 的行可以运行以下命令grep hello file.txtgrep命令还提供了许多选项以便更灵活地进行搜索。您可以通过man grep命令查看完整的帮助文档。grep详解grep命令用于在文件中搜索指定的模式并输出匹配的行。语法grep [选项] 模式 [文件]选项-i忽略大小写。-v反向匹配只输出不匹配的行。-r递归搜索目录下的所有文件。-l只输出包含匹配模式的文件名。-c只输出匹配的行数。-n同时输出匹配的行和行号。-H当搜索多个文件时显示匹配的行及文件名。参数模式要搜索的模式可以是普通字符串或正则表达式。文件指定要进行搜索的文件。实例在文件example.txt中搜索包含字符串 “hello” 的行并输出匹配的行grep hello example.txt在多个文件中搜索匹配模式 “pattern” 的行并显示匹配的行及文件名grep -H pattern file1.txt file2.txt在目录directory及其子目录中递归搜索匹配模式 “keyword” 的行并输出匹配的行和行号grep -r -n keyword directory搜索文件中不包含模式 “exclude” 的行并输出不匹配的行grep -v exclude example.txtfindfind命令可用于在指定路径下查找符合条件的文件。以下是使用find的基本语法find path -name filename其中path是要搜索的路径filename是要搜索的文件名。例如要在当前目录及其子目录下查找名为file.txt的文件可以运行以下命令find . -name file.txtfind命令还支持其他条件如按照文件类型、大小等进行搜索。您可以通过man find命令查看完整的帮助文档。find详解find命令用于在指定目录下查找符合条件的文件或目录。语法find [路径] [表达式]选项-name按照文件名匹配。-type按照文件类型匹配。-size按照文件大小匹配。-mtime按照文件修改时间匹配。-exec对搜索结果执行某个命令。参数路径需要查找的目录路径。表达式用于指定搜索条件的表达式。实例在当前目录及其子目录中查找文件名为 “example.txt” 的文件find . -name example.txt在/var/log目录中查找文件名以 “.log” 结尾的文件find /var/log -name *.log在当前目录及其子目录中查找文件类型为普通文件并且大小大于 1MB 的文件find . -type f -size 1M在/tmp目录中查找最近 7 天内被修改过的文件并将结果输出到result.txt文件find /tmp -mtime -7 result.txt查找文件名以 “.txt” 结尾的文件并将搜索结果传递给-exec后面的命令进行处理如删除find . -name *.txt -exec rm {} \;awkawk是一种强大的文本处理工具它可以根据指定的规则对文件进行处理和分析。以下是使用awk的基本语法awk pattern { action } file.txt其中pattern是要匹配的模式action是要执行的操作file.txt是要处理的文件名。例如要提取名为file.txt的文件中的第一列数据可以运行以下命令awk { print $1 } file.txtawk还支持更复杂的操作如条件判断、循环等。如果您想深入了解awk的用法请参阅相关文档或教程。awk详解awk是一种处理文本文件的命令行工具用于分析和操作文本数据支持各种数学和字符串函数以及条件语句和循环语句等。语法awk [选项] 表达式 [文件]选项-F指定输入文件的字段分隔符。-v定义一个变量并赋值。-f使用脚本文件来执行命令。参数表达式包含awk命令的脚本用于对输入文件进行处理。文件需要处理的输入文件。实例输出文件/etc/passwd中的第一列和第三列awk -F : {print $1, $3} /etc/passwd统计文件/var/log/messages中包含关键字 “error” 的行数awk /error/ {count} END {print count} /var/log/messages使用变量和算术运算对文件/proc/meminfo中的数据进行处理awk -v total0 /MemTotal/ {total$2} /SwapTotal/ {total$2} END {print total / 1024 MB} /proc/meminfo使用脚本文件script.awk对文件/var/log/auth.log进行处理awk -f script.awk /var/log/auth.log3. 文件编辑nanonano是一个简单易用的文本编辑器适合新手用户使用。要使用nano编辑文件只需输入以下命令nano file.txt此时会在终端窗口中打开file.txt您可以对文件进行编辑和保存。小提示在nano中底部会显示一些常用的操作快捷键如保存文件、退出编辑等。nano详解nano是一个简单易用的文本编辑器在终端中使用支持基本的文本编辑操作和快捷键。语法nano [选项] [文件]选项-B启用备份功能在保存文件时会创建备份文件。-C启用自动换行功能。-E禁用可视化滚动条。-G禁用鼠标支持。-i自动缩进新行。-m启用鼠标支持。-O禁用文件写入时的自动换行功能。-R只读模式打开文件。-S禁用滚动同步功能。-T指定语法高亮模式如-T python。参数文件需要编辑的文件路径。实例使用nano编辑文件example.txtnano example.txt启用备份功能并编辑文件example.txtnano -B example.txt使用鼠标支持并编辑文件example.txtnano -m example.txt在只读模式下打开文件example.txtnano -R example.txt以上是对nano命令的简要介绍您可以根据需要使用不同的选项和参数来进行文本编辑操作。在nano编辑器中您可以使用快捷键进行剪切、复制、粘贴、搜索替换等常见操作具体快捷键信息可以通过CtrlG或者F1键查看。vi/vimvi或vim是一个功能强大的文本编辑器广泛用于 Linux 系统。要使用vi打开文件只需输入以下命令vi file.txt此时会进入vi的编辑模式您可以进行插入、删除、替换等操作。小提示要保存更改并退出vi可以按下Esc键然后输入:wq并按回车键。vi/vim详解vi和vim是一个强大的文本编辑器广泛用于终端环境下进行文本编辑。vim是vi的增强版本提供了更多功能和改进。语法vi [选项] [文件] vim [选项] [文件]选项-b以二进制模式打开文件。-c 命令执行指定的Ex命令。-C启用兼容模式。-E启动Ex模式不显示界面。-g启用图形界面模式。-i 配置文件使用指定的配置文件。-m启用修改模式。-n禁用自动换行。-R只读模式打开文件。-s安静模式抑制警告信息。-u vimrc使用指定的vimrc配置文件。-w 脚本文件将录制的宏保存到指定的脚本文件中。参数文件需要编辑的文件路径。实例使用vi编辑文件example.txtvi example.txt使用vim编辑文件example.txtvim example.txt在只读模式下打开文件example.txtvim -R example.txt执行vim命令后执行指定的Ex命令例如删除所有行vim -c :%d example.txtvi和vim编辑器有很多强大的编辑和操作功能包括插入、删除、复制、粘贴、搜索替换、分割窗口等。您可以使用快捷键和命令来完成各种编辑任务。详细的操作和命令信息可以通过vim的帮助文档:help来获取。总结在 Linux 中我们经常需要查看和编辑文件的内容。下面我们总结了一些常用的命令。查看文件内容catcat命令是一个简单而常用的文件查看工具。它可以显示整个文件的内容也可以将多个文件连接在一起显示。lessless命令是一个更加强大和灵活的文件查看工具。它可以按页浏览文件支持前后搜索、向上向下滚动等功能。moremore命令和less类似也是用来分页显示文件内容的工具。文件搜索和过滤grepgrep命令是用于在文件中搜索指定模式的工具。它可以根据正则表达式来匹配和筛选内容并将匹配到的行输出。findfind命令用于在指定目录下搜索文件和目录。可以根据不同的条件来搜索文件如按名称、大小、时间等进行过滤。awkawk是一种强大的文本处理工具在文件中逐行扫描并进行各种操作。它可以根据自定义的规则提取、转换和处理文本数据。文件编辑nanonano是一个简单易用的文本编辑器在终端中使用。它支持基本的文本编辑操作和快捷键适合初学者使用。vi/vimvi和vim是强大的文本编辑器广泛用于终端环境下进行编辑。它们提供了丰富的编辑和操作功能适合有经验的用户使用。以上是对 Linux 文件内容查看和编辑的一些常用命令的总结。根据不同的需求和使用场景我们可以灵活选择合适的命令来处理文件。记住熟练掌握这些命令将使你在 Linux 系统上更加得心应手