在Linux中查看文件使用CAT , MORE和LESS
1. 简介
Linux 提供了许多用于查看文件的命令。在本教程中,我们将了解最常用的cat、more和less命令。
2. cat命令
cat命令是查看文件内容的最简单方法。它将指定文件的内容显示到输出终端。
让我们看一个例子:
cat a.txt
这将打印文件a.txt的内容:
A sample
file
to be used
for
cat command
examples
有时,我们可能想要对输出中的行进行编号。
我们可以使用*-n*选项来做到这一点:
cat -n a.txt
这将对输出中的每一行进行编号:
1 A sample
2 file
3 to be used
4 for
5 cat command
6 examples
请注意,行号从 1 开始。
让我们看看其他一些重要的选项:
- -e显示控制和非打印字符,后跟 $ 符号在每行的末尾
- -t每个选项卡将显示为 ^I,每个换页符将显示为 ^L
- -v显示控制和非打印字符
3. more命令
cat命令非常适用于小文件。但是,如果文件很大,内容会放大过去,我们只会看到最后一屏的内容。
解决这个问题的一种方法是使用more命令。
对于大文件, more命令一次显示一屏文件的内容。如果文件的内容适合单个屏幕,则输出将与cat命令相同。
让我们在pom.xml文件上使用这个命令:
请注意输出末尾的文本“–More–(46%)”。在这里,文本“(46%)”告诉我们文件很大,我们目前只能看到 46% 的内容。当我们遍历文件时,这个百分比会增加。
光标将停留在该文本的末尾。然后,我们可以使用Enter键滚动文件的内容,一次一行。
我们还可以使用空格键逐页滚动文件。要滚动回上一页,我们可以使用b键。我们将使用q键返回命令提示符。
** more命令也可用于查看多个文件**。我们只需要一个接一个地列出它们:
more pom.xml a.txt b.txt
稍后,我们将看到如何在这些文件之间移动。
除了文件,我们还可以将more命令与其他命令的输出一起传递:
ls -l | more
重要的是要注意more只允许向后移动文件,而不是管道。
3.1. 命令
除了上面使用的键之外,我们还可以在查看文件时使用其他一些命令。
让我们看几个重要的:
- [k]/text搜索正则表达式 text的第k个匹配项
- !cmd 在子shell 中执行 cmd
- [k]:n转到第k个下一个文件
- [k]:p转到前第k个文件
- [k]z显示接下来的 k 行文本。如果我们不指定k,则默认为当前页面大小
- :f显示当前文件名和行号
- *=*显示当前行号
此外,我们可以使用h或? 随时列出可以与more一起使用的所有命令。**
more命令还允许我们在命令行上指定各种选项来自定义输出。让我们来看看其中的几个。
3.2. 更改页面大小
假设我们一次只想查看一定数量的行。我们可以通过指定行数作为选项来做到这一点:
more -5 pom.xml
这将显示文件的前 5 行,而不是一屏内容。
随后,当我们使用空格键时,将显示接下来的 5 行。同样,b键将显示前 5 行。
3.3. 指定内容的开始
我们还可以在文件中指定我们想要开始查看内容的行号:
more +10 pom.xml
这将导致输出从第 10 行开始。
3.4. 从文本的第一次出现开始
可以在文件中搜索特定文本并从该点开始查看文件:
more +/slf4j pom.xml
上述命令将从文件中第一次出现文本“slf4j”开始输出文件内容。
除了上述之外,more命令还提供了一些其他选项。让我们简要地看一下这些:
- -d该选项用于帮助用户导航;它将提示用户消息“[按空格继续,‘q’退出。]”;当按下非法键时,它还会显示“[Press ‘h’ for instructions.]”
- -l more命令通常将^ L(换页)视为特殊字符,并在任何包含换页的行之后暂停;-l选项将阻止这种行为
- -f这个选项停止长行的换行
- -p清除屏幕然后显示文本
- -c通过重叠先前显示的文本在同一区域显示页面
- -u禁止下划线
- -s将多个空行压缩为一个
4. less命令
现在,让我们转到less命令。** less命令类似于more命令,但提供了广泛的功能**。一个重要的一点是它允许在文件中向后和向前移动,即使使用管道也是如此。
此外,由于它在启动之前不会读取整个文件,因此与文本编辑器相比,它的启动速度更快——尤其是在我们查看大文件时。
要查看我们的pom.xml文件,我们只需将more替换为less:
less pom.xml
这应该向我们显示文件的第一页,并在末尾显示提示:
请注意文件名在提示符下的显示方式。
与more不同的是,如果文件内容适合屏幕,less仍然会显示提示。要覆盖它,我们必须指定*-F选项。 像cat一样,可以对文件中的行进行编号。为此,我们必须指定-N或–LINE-NUMBERS*选项。
就像more一样,我们可以在查看内容的同时执行一些命令。这里列出的太多了,所以让我们看一下最常见的。
4.1. 移动文件
键Space、Enter、b和q的工作方式与more相同。除此之外,我们还可以使用箭头键水平和垂直移动。作为向上箭头的替代方法,我们可以使用j向前移动一行。类似地,k可用于向后移动一行。
我们可以在上面的键前面加上一个数字来覆盖默认移动。例如,5 后跟j将使我们前进 5 行。
滚动浏览大文件时,能够快速返回文件开头或文件末尾很有用。** g键将带我们到文件的开头,而G键将带我们到文件的末尾**。
4.2. 搜索文本
less命令对于查看大型日志文件特别有用。大多数时候,我们查看日志文件的原因是搜索错误或查找日志语句。 因此,要搜索特定文本,我们将使用/pattern **。这里,pattern是我们要搜索的文本,可以是正则表达式。
随后,我们可以使用n键移动到模式的下一个匹配项,使用N键移动到模式的上一个匹配项。
该命令将在文件中向前搜索模式。但是,有时我们可能想要转到文件的末尾并向后搜索文本的最新出现。G键将带我们到文件的末尾。然后,我们可以使用** ?pattern在文件中向后搜索模式**。
现在,也可以只查看文件中与 pattern 匹配的行。这样,我们将有更少的文本要通过。我们可以通过使用*&pattern*来做到这一点。
4.3. 监控文件
less提供的一项有趣的功能是监视文件的能力。因此,每次文件内容更改时,我们都可以查看更改。
我们可以通过使用 F 键来实现这一点。当到达文件末尾时,它将带我们前进并继续尝试读取。此行为类似于*“tail -f”*命令。