Contents

在Linux中查看文件使用CAT , MORE和LESS

1. 简介

Linux 提供了许多用于查看文件的命令。在本教程中,我们将了解最常用的catmoreless命令

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文件上使用这个命令:

/uploads/files_cat_more_less/1.png

请注意输出末尾的文本“–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

这应该向我们显示文件的第一页,并在末尾显示提示:

/uploads/files_cat_more_less/3.png

请注意文件名在提示符下的显示方式。

more不同的是,如果文件内容适合屏幕,less仍然会显示提示。要覆盖它,我们必须指定*-F选项。 像cat一样,可以对文件中的行进行编号。为此,我们必须指定-N–LINE-NUMBERS*选项。

就像more一样,我们可以在查看内容的同时执行一些命令。这里列出的太多了,所以让我们看一下最常见的。

4.1. 移动文件

SpaceEnterbq的工作方式与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”*命令。