如何在Linux上使用less命令

时间:2020-01-09 10:39:54  来源:igfitidea点击:

" less"命令可让我们分页浏览文本文件,每次都显示一小段文本。乍一看,这似乎是最简单的Linux命令之一,但还有很多不足。

less命令的历史

Linux和Unix中的所有内容都有历史,没有双关语。较少程序基于"更多"程序,该程序最初于1978年在伯克利软件发行Unix(3.0BSD)的3.0版中发布。 "more"可让我们逐步浏览文本文件,一次显示一屏文本。

必然是发明之母,正是"more"的早期版本无法向后滚动浏览一个文件,促使马克·纽德曼开发了"less"并克服了这一特定问题。这项工作始于1983年,第一个版本在1985年供职的公司之外发布。截至2019年10月,他仍然是less的维护者。

我想知道是否有没有使用过less的Linux用户?即使他们没有使用它来翻页所选的文本文件,也有可能他们使用了man命令。并且man在后台调用less以显示man页面。

这是一条带有很多技巧的命令。

为什么少胜于多

多年来," less"已稳步增加。它具有数量惊人的命令行选项和应用程序内命令击键。快速比较手册页中的内容较少和手册页中的更多内容,我们将开始看到"更少"绝对比"更多"更重要。

"更多"克服了最初无法通过文本向后翻页(仅用于文件)的失败。它无法通过管道输入向后翻页。你可以用less做到这一点。

凭借其在文件导航,查看多个文件,搜索文本,拖放并返回书签以及处理管道输入的灵活性,"少"可以胜任。使用less代替more

减少读取文件

要将文件加载到less中,请在命令行中提供文件名:

less Dr-Jekyll-and-Mr-Hyde-001.txt

加载并显示文件。文件的顶部(或者开始)显示在终端窗口中。我们可以使用鼠标的滚轮在文本中前后滚动。

在键盘上,使用空格键或者"向下翻页"键一次向前浏览一屏。

Page Up将在文件中向后移动(向文件的开头)。Home和End键分别将我们直接带到文本文件的开头和结尾。

文件名显示在显示屏的左下角。当我们开始在文件中移动时,将清除底行。它用于向我们显示消息,并供我们输入命令。

按q退出less

显示行号

要为文本文件的行编号,请使用-N(行号)选项。

less -N Dr-Jekyll-and-Mr-Hyde-001.txt

行号对于引导我们返回日志文件和其他非标准散文文件中的特定行或者节很有用。

搜索更少

要搜索文件的文本,请按/,然后键入搜索短语。搜索区分大小写。搜索短语将显示在显示屏的底行。点击Enter执行搜索。

在此示例中,搜索词为Enfield,这可以在显示的底部看到。

搜索从当前页面到文本文件的末尾。要搜索整个文件,请在搜索之前移至文件顶部。

如果没有匹配项,将会告诉我们。如果找到匹配项,则显示屏将移动以显示找到的项目。

要查找下一个匹配项,请按n。要搜索上一个匹配项,请按N。

要从文件中的当前位置向文件开头向后搜索,请按?。键并输入搜索字词。要查找下一个匹配项,请按n。要搜索上一个匹配项,请按N。

请注意,当我们向后搜索时,下一个匹配项(用n找到)是更靠近文件顶部的下一个项,而上一个匹配项的N将查找更靠近文件底部的匹配项。文件。换句话说,当我们向后搜索时,n和N会反转其搜索方向。

打开带有搜索词的文件

我们可以使用-p(模式)选项来使less遍历文本文件并找到第一个匹配项。然后,它将显示其中包含匹配搜索项的页面,而不是文件的第一页。当然,除非在文件的第一页上找到搜索项。

注意,-p和搜索词之间没有空格。

less -pEnfield Dr-Jekyll-and-Mr-Hyde-001.txt

将显示文件,并突出显示第一个匹配的搜索词。

更少浏览:最有用的键

使用这些键在文本文件中移动和搜索。

  • 向前移动一行:向下箭头,Enter,e或者j

  • 向后移动一行:向上箭头,y或者k

  • 向前移动一页:空格键或者下一页

  • 向后移动一页:Page Up或者b

  • 向右滚动:右箭头

  • 向左滚动:向左箭头

  • 跳到文件顶部:Home或者g

  • 跳转到文件末尾:End或者G

  • 跳至特定行:输入行号,然后按g

  • 跳转到文件的百分比方式:键入百分比,然后按p或者%。 (我们甚至可以输入十进制值,因此要在文件中跳至27.2%,键入27.2,然后按p或者%。为什么要使用十进制?

  • 向前搜索:按/并输入搜索内容(例如/ Jekyll),然后按Enter

  • 向后搜索:命中?并输入搜索内容(例如/ Hyde),然后按Enter

  • 下一个匹配的搜索项目:n

  • 上一个匹配的搜索项目:N

  • 退出:q

挤压空白行

-s(压缩空白行)选项删除一系列空白行,并用单个空白行替换它们。

示例文件中有几行连续的空白行,让我们看看使用-s选项时less如何对待它们:

less -s Dr-Jekyll-and-Mr-Hyde-001.txt

在每种情况下,所有的双(或者更多)空白行均已替换为单个空白行。

查看多个文件

less可以为我们打开多个文件。我们可以在文件之间来回跳动。"少"会记住我们在每个文件中的位置。

less Dr-Jekyll-and-Mr-Hyde-001.txt Dr-Jekyll-and-Mr-Hyde-002.txt

文件被打开,并显示第一个文件。系统将显示我们正在查看的文件以及已加载的文件数量。这在下面突出显示。

要查看下一个文件,请按:,然后按n。

显示将更改为显示第二个文件,并且最下面一行的信息已更新为显示我们正在查看第二个文件。这在下面突出显示。

要移至上一个文件,请键入:,然后按p。

使用标记

" less"可让我们放下标记,以便轻松返回标记的段落。每个标记由一个字母表示。要在最上方显示的行上放置标记,请按m,然后按想要使用的字母,例如a。

当我们按m时,显示屏的底行会显示一条提示,提示我们等待按字母键。

按下字母后,提示即被删除。

从文件中的任何其他位置,我们可以通过按撇号(或者单引号)然后按要返回的标记字母轻松返回标记。你想去。

按下要返回的标记字母,文本文件的该部分就会显示出来。

使用更少的管道输入

"更少"可以显示作为管道文本流的信息,就像显示文件一样容易。

dmesg命令显示内核环形缓冲区消息。我们可以使用以下命令将dmesg的输出传递到less:

dmesg | less

显示dmesg的输出。

我们可以分页并在管道输入中搜索,就像文件一样。要查看最新消息,请单击"结束"以转到文件底部。

随着新消息的到来,我们必须继续按End键以强制"更少"显示文件的底部。这不是很方便。要使less始终显示在文本的底部,即使在添加新数据时,也可以使用+ F(forward)选项。注意使用+而不是-作为选项标志。

dmesg | less +F

+选项标志告诉less对待选项,就好像我们在less中使用了该命令一样。因此,如果我们忘记使用+ F选项,请在less中按F。

" less"显示文本的底部,该文本显示来自" dmesg"的最新消息。它显示一条消息,表示它正在等待更多数据。当出现更多内核消息时,显示滚动,以便我们始终可以看到最新消息。

我们无法在此模式下滚动或者翻页;它专用于显示管道文本的底部。要退出他的模式,请按Ctrl + c,我们将返回到通常的"较少"交互模式。

少编辑文件

我们可以用"少"的方式编辑文件。该命令无法编辑文件,但是如果我们在查看文件时键入v,则文件将被传输到默认编辑器。离开编辑器后,我们将返回" less"。

less中查看文件时按v:

该文件被加载到默认编辑器中,在本例中为" nano":

当关闭编辑器时,将变为" less"。