查看 Linux 文件内容的 6 种方法

已发表: 2022-08-18

使用 Linux PC 的最重要方法之一是通过文件。

几乎您在 Linux 终端中直接处理的每个文件都可以作为文本文件进行操作。 这包括配置文件、有关系统中各种服务和进程的日志文件,以及与您选择的 Linux 发行版捆绑在一起或您自己编写的脚本文件。

知道如何在 Linux 终端中快速查看这些文件的内容是一项非常宝贵的技能,不仅可以节省您的时间,还可以帮助您更多地了解系统。 本教程将向您展示如何在 Linux 终端中查看这些类型的文件。

cat命令是一个简单且非常有用的命令,用于在 Linux 上查看文件内容。

您可以使用 cat 命令将文件内容快速打印到终端的标准输出中,或者连接输出。

cat 命令的语法如下:

 $ cat [OPTION] [FILE1] …

例如,如果您有一个名为simple-list.txt的文件,其中包含一些项目的列表,您可以使用以下命令查看该文件的内容

$ cat simple-list.txt

例如:

 $ cat simple-list.txt bananas strawberries grapes apples watermelons oranges blueberries lemons peaches avocados pineapples cherries cantaloupe raspberries pears limes blackberries clementine mangoes plums

也可以同时列出多个文件,一次性获取终端中所有文件的输出,如下图:

 $ cat testfile1.txt testfile2.txt these are the contents of testfilel.txt. and this is the end of testfilel.txt these are the contents of testfile2.txt. and this is the end of testfile2.txt

荷兰语

如果您希望能够查看文件中每一行的行号, nl命令正是这样做的。 您可以像 cat 命令一样使用此命令,唯一的区别是 nl 默认启用了行号。

使用 cat 命令,您可以使用 -e 选项获得相同的结果。 这是与nl相同的simple-list.txt文件输出的示例输出

$ nl simple-list.txt 1 bananas 2 strawberries 3 grapes 4 apples 5 watermelons 6 oranges 7 blueberries 8 lemons 9 peaches 10 avocados 11 pineapples 12 cherries 13 cantaloupe 14 raspberries 15 pears 16 limes 17 blackberries 18 clementine 19 mangoes 20 plums

可以使用-nln选项将行号更改为左对齐。 还有其他选项可以与nl命令一起使用,列在man nl

更多的

到目前为止,您需要使用鼠标滚轮或键盘上的Shift+Page-upShift+Page-down按钮滚动输出。

但是, more命令提供了一种更简单的方法来查看不完全适合终端窗口的较长文件。

通过更多命令查看时会显示相同的 simple-list.txt 文件:

更多命令的查看窗口中的导航可以是逐行或逐页的。 您可以使用 Enter 键一次浏览一行,或者使用 Space 键一次浏览一页。

B键用于返回上一页。 当您到达文件末尾时,更多命令也会告诉您,如下所示:

您可以随时按 q 退出更多命令的查看窗口,返回终端屏幕。 这样在不打断终端流程的情况下,可以使用更多的命令查看长配置或日志文件。

较少的

更少是对更多命令的更现代的看法。 当 Linux 生态系统中引入的命令较少时,大多数命令不支持向上滚动。

除了让用户上下滚动之外, less命令还支持水平滚动,支持更好地处理二进制文件,并且可以通过文本执行搜索。

下面通过less看一下我们的simple-list.txt文件:

 $ less simple-list.txt

除了用于更多命令的导航键之外,您还可以使用键盘上的箭头键进行导航。 当您在 less 的查看窗口中时,您可以使用 /word 在文件内容中搜索 word。

这显示在下面的屏幕截图中,用户在文件内容中搜索苹果:

Less 命令还支持更高级的功能,例如能够在特定单词第一次出现时查看文件内容。 为此,命令语法如下:

 $ less +/target-word /path-to-file

例如,要在单词 cultivar 第一次出现时打开 apples.txt 文件,将使用以下命令:

 $ less +/cultivar apples.txt

如果只想快速查看文件的前十行,可以通过

head命令如下图:

 $ head simple-list.txt bananas strawberries grapes apples watermelons oranges blueberries lemons peaches avocados

默认情况下,终端中只显示前十行,但您可以使用-n选项更改显示的行数,如下所示:

 $ head -n 5 simple-list.txt bananas strawberries grapes apples watermelons

同样, -c选项可用于将特定数量的字节从文件打印到终端。

尾巴

tail命令的工作方式与 head 命令类似,唯一的主要区别是它显示文件的最后十行而不是前十行。

 $ tail simple-list.txt cherries cantaloupe raspberries pears limes blackberries clementine mangoes plums tangerines
 $ tail -n 5 simple-list.txt blackberries clementine mangoes plums tangerines

此外,head 和 tail 命令都可以与教程中显示的其他文件查看命令一起使用,以便为用户生成更好的输出。

例如, nl命令可用于首先显示带有行号的文件。 然后可以将结果通过管道传递给less查看文件的最后三行,如下图:

 $ nl simple-list.txt | tail -n 3 19 mangoes 20 plums 21 tangerines

查看 Linux 文件的常见问题

在终端中查看文件之前,如何查看文件的类型?

通过file命令可以查看文件的类型,其语法如下:

$ file [OPTIONS] target-file

如何查看非常大的日志文件(例如 apache 或 Nginx 日志文件)的内容以查找特定行?

您可以通过管道组合多个命令,不仅可以搜索大型日志文件,还可以在组织良好的输出中显示搜索结果。

例如,将 grep 与nltail结合使用,您可以找出最近几次在您的 Web 服务器上请求特定文件的时间,如下所示:

$ nl /var/log/apache/mywebsite.log | grep target-file.jpg | tail -n 5

上述命令将显示您的 Web 服务器上请求 target-file.jpg 的最后文件时间。

如何在更多和更少命令的查看窗口中导航?

空格键用于向下滚动带有更多和更少命令的整页。

要在 less 中逐行向下滚动,请使用键盘上的 Enter 键。

要向上滚动页面,请使用 b 键。

如何在阅读时在 more 或 less 命令的查看窗口中搜索特定术语或单词?

要在您当前正在查看的文件内容中或多或少地搜索特定单词,请使用语法 /word-to-search。

如果我想通过终端打开一个图像或富文本文档文件,我可以使用什么命令?

您可以使用通用命令xdg-view或其任何变体用于您已安装的特定发行版,例如 gnome-view 或kde-view ,以打开富文本或图像文件。

$ xdg-view enwiki.png

这将在目标文件类型的默认应用程序中打开文件。