less命令的的选项与命令参数很多,所以这篇文章会稍显臃肿。不过我会尽可能的阐述的清晰一些。
less(1)是类似于more(1)的程序。 另外,在启动之前,不需要读取整个输入文件,所以对于大型输入文件,启动速度比文本编辑器(如vi)要快。
less命令使用termcap(或者某些系统上的terminfo),所以可以在各种终端上运行。
对硬拷贝终端的支持甚至有限。(在硬拷贝终端上,应该在屏幕顶部打印的线是用插入符号固定的。)
命令格式
less -?
less --help
less -V
less --version
less [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~] [-b space] [-h lines] [-j line] [-k keyfile] [-{oO} logfile] [-p pattern] [-P prompt] [-t tag] [-T tagsfile] [-x tab,...] [-y lines] [-[z] lines] [-# shift] [+[+]cmd] [--] [filename]...
选项
命令行选项如下所述。大多数选项可以通过“-”命令在运行less时更改。
大多数选项可以用以下两种形式之一给出:一个破折号后跟一个单字母,或两个破折号后跟一个长选项名称。
只要缩写是明确的,则长选项名称可以缩写。
例如,--quit-at-eof
可以缩写为--quit
,但不是–qui,因为–quit-at-eof和–quiet以-qui开头。
一些长选项名称是大写的,例如-QUIT-AT-EOF,与-quit-at-eof不同。这些选项名称只需要首字母大写;这个名字的其余部分可以在任何情况下。例如,–Quit-at-eof相当于–QUIT-AT-EOF。
less命令的选项也会从环境变量LESS中获取,为了避免每次使用less时都输入“less -options …”,你可能会告诉csh: setenv LESS "-options"
或者 sh: LESS="-options"; export LESS
,
在MS-DOS上,不需要引号,但是应该用双百分号来替换选项字符串中的任何百分号。
环境变量在命令行之前被解析,所以命令行选项会覆盖LESS环境变量。如果LESS变量中出现一个选项,则可以通过使用“ – +”开始命令行选项,将其重置为命令行的默认值。
有些选项(如-k或-D)需要在选项之后接一个字符串。 当遇到美元符号($)时,该选项的字符串被视为结束。 例如,您可以在MS-DOS上设置两个-D选项,如下所示:LESS =“Dn9.1 $ Ds4.1”
如果–use-backslash选项出现在选项的前面,那么美元符号($)或反斜线()可以包含在一个选项字符串中,方法是在前面加一个反斜杠(\)。 如果 – use-backslash选项不起作用,则反斜杠()不会被专门处理,并且没有办法在选项字符串中包含美元符号($)。
选项 | 解释 |
---|---|
-? or –help | 该选项显示less接受的命令的摘要(与运行less时的h命令相同)。 (根据您的shell解释问号的方式不同,可能需要引用问号,例如:“ – \?”。) |
-a or –search-skip-screen | 默认情况下,向前(这里应该表述为往文件末尾)搜索从显示屏幕的顶部开始,向后(往文件首部)搜索从显示屏幕的底部开始(除了分别在“目标”行之后或之前开始的n或N个命令调用的重复搜索外,请参阅 -j选项 以查看更多关于目标行的信息)。 -a选项会使向前(往尾部方向)搜索从屏幕底部开始,向后(往首部方向)搜索从屏幕顶部开始,从而跳过屏幕上显示的所有行。 |
-A or –SEARCH-SKIP-SCREEN | 使所有向前搜索(不仅仅是非重复搜索)在目标行之后开始,所有向后搜索在目标行之前开始。 因此,向前搜索将跳过显示屏幕的一部分(从第一行到目标行并包括目标行)。 类似的向后搜索将从最后一行直到并包括目标行跳过显示的屏幕。 这是441之前版本的默认行为。再次强调,向前代表去往尾部方向,向后代表去往首部方向 |
-bn or –buffers=n | 指定每个文件在less命令中的缓冲区空间量,单位为kb(1024 bytes)。 默认情况下,每个文件使用64K的缓冲区空间(除非文件是管道;请参阅-B选项)。 -b选项指定应为每个文件使用n千字节的缓冲区空间。 如果n是-1,则缓冲区空间是无限的; 也就是说,整个文件可以被读入内存。 |
-B or –auto-buffers | 默认情况下,从管道读取数据时,会根据需要自动分配缓冲区。 如果从管道中读取大量数据,可能会导致大量的内存分配。 -B选项将禁用此管道的缓冲区的自动分配,因此管道仅使用64K(或由-b选项指定的空间量)。 警告:使用-B可能会导致错误的显示,因为只有最近浏览过的部分管道数据才会保留在内存中。 任何较早的数据都将丢失。 |
-c or –clear-screen | 导致从最上面一行向下绘制的全屏重新绘制。 默认情况下,全屏重绘是通过从屏幕底部滚动来完成的。 |
-C or –CLEAR-SCREEN | 与-c选项相同,只是为了兼容老版本命令。 |
-d or –dumb | -d选项可以抑制终端无法正常显示的错误信息。也就是说,缺乏一些重要的能力,比如清屏或向后滚动的能力。-d选项不会改变这些终端上less 的行为。 |
-Dxcolor or –color=xcolor | 仅限于[MS-DOS] 设置显示文本的颜色。 x是单个字符,用于选择正在设置颜色的文本类型:n =正常,s =突出,d =粗体,u =下划线,k =眨眼。颜色是由句号分隔的一对数字。第一个数字选择前景色,第二个数字选择文本的背景色。单个数字N与N.M相同,其中M是正常的背景颜色。 |
-e or –quit-at-eof | 设置 less 在第二次到达文件结尾时自动退出。默认情况下,退出的唯一方法是通过“q”命令。 |
-E or –QUIT-AT-EOF | 设置 less 在第一次到达文件结尾时自动退出。 |
-f or –force | 强制打开非常规文件。 (非常规文件是一个目录或一个设备专用文件。)当打开二进制文件时,也禁止警告消息。默认情况下,less会拒绝打开非常规文件。请注意,即使设置了-f,某些操作系统也不允许读取目录。 |
-F or –quit-if-one-screen | 如果整个文件可以显示在一个屏幕上,会自动退出less。 |
-g or –hilite-search | 通常情况下,less 会突出显示与上一个搜索命令匹配的所有字符串。 -g选项改变了这种行为,只突出了上次搜索命令找到的特定字符串。这可能会让运行速度比默认情况稍快。 |
-G or –HILITE-SEARCH | -G选项禁用所有搜索到字符串的高亮 |
–old-bot | 恢复到屏幕展示的旧底部。当向前滚动,如果在到达终端的底部时长句子没有被正确包括,这可能有时是可取的。 |
-hn or –max-back-scroll=n | 指定要向后滚动的最大行数。如果需要向后滚动多于n行,则屏幕会正向重新绘制。 (如果终端不能向后滚动,则暗示-h0。) |
-i or –ignore-case | 设置搜索忽略大小写;也就是说,大写和小写都被认为是相同的。如果在搜索模式中出现任何大写字母,则忽略此选项;换句话说,如果一个模式包含大写字母,那么这个搜索不会忽略大小写。 |
-I or –IGNORE-CASE | 跟-i差不多,但是有一点不同即使模式包含大写字母,搜索也会忽略大小写。 |
-jn or –jump-target=n | 在屏幕上指定“目标”行的位置。目标行是由任何,搜索模式串,跳转到行号,跳转到文件百分比或跳转到标记,命令指定的行。屏幕行可以由一个数字指定:屏幕的最上面一行是1,下一行是2,依此类推。该数字可能是负数,以指定相对于屏幕底部的一行:屏幕底部的行是-1,底部的第二行是-2,依此类推。 或者,屏幕线可以指定为屏幕高度的一小部分,从小数点开始:.5在屏幕的中间,.3是从第一行开始的三分之一,依此类推。如果将行指定为分数,则在重新计算终端窗口时重新计算实际行数,以使目标行保持在屏幕高度的指定分数处。如果使用任何形式的-j选项,则前向搜索将从紧靠目标行之后的行开始,向后搜索将从目标行开始,除非由-a或-A更改。例如,如果使用“-j4”,则目标行是屏幕上的第四行,因此向前搜索将从屏幕的第五行开始。 |
-J or –status-column | 在屏幕左边显示状态栏。状态栏显示与当前搜索匹配的行。如果-w或-W选项有效,还会使用状态列。 |
-kfilename or –lesskey-file=filename | 设置less打开并将指定的文件解释为lesskey(1)文件。可以指定多个-k选项。如果设置了LESSKEY或LESSKEY_SYSTEM环境变量,或者在标准位置找到lesskey文件(请参阅KEY BINDINGS),它也可以用作lesskey文件。 |
-K or –quit-on-intr | 当输入一个中断字符(通常是^ C)时,会导致less立即退出(状态2)。通常,中断字符会导致less停止正在执行的操作并返回到其命令提示符。请注意,使用此选项将无法从“F”命令返回到命令提示符。 |
-L or –no-lessopen | 忽略LESSOPEN环境变量(参见下面的INPUT PREPROCESSOR部分)。这个选项可以在less中设置,但是它只适用于随后打开的文件,而不适用于当前打开的文件。 |
-m or –long-prompt | 设置less以冗长的百分比的形式提示位于当前文件中的位置(跟more命令一样)。默认情况下,less用冒号提示。 |
-M or –LONG-PROMPT | 设置less的提示甚至比more的详细。 |
-n or –line-numbers | 禁止行号。在某些情况下,默认(使用行号)可能会导致运行速度减慢,尤其是在输入文件非常大的情况下。用-n选项抑制行号可以避免这个问题。使用行号意味着:行号将显示在详细提示符和=命令中,v命令将当前行号传递给编辑器(另请参阅下面的PROMPTS中对LESSEDIT的讨论)。 |
-N or –LINE-NUMBERS | 设置行号显示在显示屏中每行的开头。 |
-ofilename or –log-file=filename | 在查看时,会将其输入复制到指定的文件。这只适用于输入文件是管道而不是普通文件的情况。如果文件已经存在,less会覆盖它之前要求确认。 |
-Ofilename or –LOG-FILE=filename | -O选项与-o相似,但会覆盖现有文件而不要求确认。如果没有指定日志文件,则可以在less内使用-o和-O选项来指定日志文件。没有文件名,他们只会报告日志文件的名称。 “s”命令相当于从less中指定-o。 |
-ppattern or –pattern=pattern | 命令行上的-p选项等同于指定/ pattern;也就是说,它告诉less从文件中第一次出现的模式串的地方开始。 |
-Pprompt or –prompt=prompt | 提供一种根据自己的喜好定制三种提示样式的方法。这个选项通常放在LESS环境变量中,而不是用less命令输入。这样的选项必须是LESS变量的最后一个选项,或者以美元符号结尾。 -Ps后跟一个字符串将默认(短)提示改为该字符串。 -Pm更改媒体(-m)提示。 -PM更改长(-M)提示。 -Ph更改帮助屏幕的提示。 -P=更改=命令打印的消息。 -Pw在等待数据时更改打印的消息(在F命令中)。所有提示字符串由一系列字母和特殊的转义序列组成。有关更多详细信息,请参阅PROMPTS部分。 |
-q or –quiet or –silent | 设置适度的“安静”操作:如果尝试滚动文件末尾或在文件开始之前,终端不会响铃。如果终端具有“视觉响铃”,则用它代替。铃声会在某些其他错误,例如输入无效的字符时响起。在所有这些情况下,默认是响铃。 |
-Q or –QUIET or –SILENT | 设置完全“安静”的操作:终端从不响铃。 |
-r or –raw-control-chars | 设置显示“原始”控制字符。缺省值是使用插入符号显示控制字符;例如,control-A(八进制001)显示为“^ A”。警告:当使用-r选项时,less不能跟踪屏幕的实际外观(因为这取决于屏幕如何响应每种类型的控制字符)。 因此,可能导致各种显示问题,例如长句子被错误地分割。 |
-R or –RAW-CONTROL-CHARS | 类似-r,但只有ANSI“颜色”转义序列以“原始”形式输出。与-r不同,在大多数情况下,屏幕外观是正常显示的。 ANSI“颜色”转义序列是以下形式的序列:ESC [ … m 其中“…”是零个或多个颜色,指定字符为了跟踪屏幕外观,ANSI颜色转义序列被假定为不移动光标。您可以让less认为“m”以外的字符可以通过设置环境变量LESSANSIENDCHARS方式作为可以结束颜色转义序列的字符列表,来结束ANSI颜色转义序列。而且你可以通过设置环境变量LESSANSIMIDCHARS为可以出现的字符列表,让less认为ESC和m之间可能出现非标准字符。 |
-s or –squeeze-blank-lines | 设置连续的空白行被压缩到一个空行。查看nroff输出时这很有用。 |
-S or –chop-long-lines | 设置比屏幕宽度更长的行被切碎(截断)。也就是说,不显示超出屏幕宽度的部分。默认情况下是换行较长的行;也就是在下一行显示余数。 |
-ttag or –tag=tag | -t选项后跟一个TAG,将编辑包含该标签的文件。为此,标签信息必须可用;例如,当前目录中可能有一个名为“tags”的文件,这个文件以前是由ctags(1)或等效命令构建的。如果设置了环境变量LESSGLOBALTAGS,则将其作为与global(1)兼容的命令的名称,并执行该命令以查找标记。 (请参阅http://www.gnu.org/soft-ware/global/global.html)。 -t选项也可以在less内指定(使用 – 命令)作为检查新文件的一种方式。命令“:t”等同于在less内指定-t。 |
-Ttagsfile or –tag-file=tagsfile | 指定要使用的tag文件而不是“tag”。 |
-u or –underline-special | 设置退格和回车被视为可打印的字符;也就是说,当它们出现在输入中时,它们被发送到终端。 |
-U or –UNDERLINE-SPECIAL | 设置退格,制表符和回车被视为控制字符;也就是说,它们按照-r选项的指定进行处理。默认情况下,如果既不指定-u也不指定-U,则与下划线字符相邻的退格将被特殊处理:使用终端的硬件下划线功能显示带下划线的文本。同样,两个相同字符之间出现的背景空间也会被特殊对待:使用终端的硬件黑体字能力来打印超重文本。其他退格与前面的字符一起被删除。回车后马上跟着换行符被删除。其他回车按照-r选项的指定进行处理。如果-u和-U都不起作用,那么可以搜索超出或加下划线的文本。 |
-V or –version | 显示less的版本号。 |
-w or –hilite-unread | 暂时的高亮向前移动之后的第一个行,第一个“新”行是紧接在屏幕底部的行之后的行。还会突出显示g或p命令后的目标行。当有新的移动命令时,高亮将被清除。整个行被突出显示。(除非-J选项有效,在这种情况下,只有状态列被突出显示。) |
-W or –HILITE-UNREAD | 类似于-w,但只在大于一行的向前移动命令之后暂时高亮新的第一行。 |
-xn,… or –tabs=n,… | 设置制表位。如果仅指定了一个n,则制表位将被设置为n的倍数。如果指定了以逗号分隔的多个值,则在这些位置设置制表位,然后以与最后两个相同的间距继续。例如,-x9,17将在第9,17,25,33等位设置选项卡.n的默认值是8。 |
-X or –no-init | 禁止发送termcap初始化和反初始化字符串到终端。如果去初始化字符串做了一些不必要的事情,比如清除屏幕,这有时是可取的。 |
-yn or –max-forw-scroll=n | 指定要向前滚动的最大行数。如果需要向前滚动n行以上,则屏幕将被重新绘制。如果需要,可以使用-c或-C选项从屏幕顶部重新绘制。默认情况下,任何向前移动都会导致滚动。 |
-[z]n or –window=n | 将默认的滚动窗口大小更改为n行。默认是一个屏幕。 z和w命令也可以用来改变窗口大小。为了与更多版本兼容,可以省略“z”。如果数字n为负数,则表示比当前屏幕尺寸少n行。例如,如果屏幕是24行,则-z-4将滚动窗口设置为20行。如果屏幕大小调整为40行,则滚动窗口将自动更改为36行。 |
-“cc or –quotes=cc | 更改文件名引用字符。如果您要命名包含空格和引号字符的文件,这可能是必需的。后面跟着一个单个字符,这会将引号字符更改为该字符。包含空格的文件名应该被该字符包围,而不是由双引号包围。随后是两个字符,将开引号(左引号)更改为第一个字符,并将第二个字符的引号更改为关引号(右引号)。包含空格的文件名应该以开引号字符开头,后跟关引号字符。请注意,即使在引号字符被改变之后,这个选项仍然是 – “(一个破折号后跟一个双引号)。 |
-~ or –tilde | 通常文件结束后的行显示为一个代字符(〜)。该选项使文件结束后的行显示为空行。 |
-# or –shift | 指定在RIGHTARROW和LEFTARROW命令中水平滚动的默认位置数量。如果指定的数字为零,则将默认位置数设置为屏幕宽度的一半。或者,可以将数字指定为屏幕宽度的一小部分,从小数点开始:.5是屏幕宽度的一半,.3是屏幕宽度的十分之三,依此类推。如果将数字指定为分数,则在窗口大小重新改变时,将重新计算滚动位置的实际数量,以便实际滚动保持在屏幕宽度的指定分数处。 |
–follow-name | 通常情况下,如果在执行F命令时重命名输入文件,那么即使更改了名称,也会继续显示原始文件的内容。如果指定了–follow-name,则在F命令期间,less会定期尝试按名称重新打开该文件。如果重新打开成功,并且文件是与原始文件不同的文件(这意味着已经创建了与原始文件(现已重命名)文件同名的新文件),则会显示新文件的内容。 |
–no-keypad | 禁止将键盘初始化和反初始化字符串发送到终端。如果小键盘字符串使得数字小键盘以不希望的方式表现出来,则这有时是有用的。 |
–use-backslash | 这个选项改变了这个选项的解释。在–use-backslash选项之后,选项字符串中的任何反斜杠都将被删除,并且从字面上取下列字符。这允许美元符号被包括在选项字符串中。 |
— | “ — ”的命令行参数标志了选项参数的结尾。之后的任何参数都被解释为文件名。这在查看名称以“ – ”或“+”开头的文件时非常有用。 |
+ | 如果一个命令行选项以+开始,该选项的其余部分被认为是less的初始命令 。例如,+G 告诉less 在文件的结尾处开始,而不是从开始处。 +/xyz 告诉 less 从文件中第一次出现“xyz”的地方开始。作为一个特殊的例子 + |
命令
less运行时的命令基于more和vi。 命令之前可能会有一个十进制数字,在下面的描述中被称为N。
N代表的数字,出现在命令之前,所以想手动指定N的值得话,需要在命令之前输入K的值
在下面的描述中,^ X表示control-X。 ESC代表ESCAPE键; 例如ESC-v意味着两个字符序列“ESCAPE”,然后是“v”。
命令 | 解释 |
---|---|
h or H | 显示以下命令的帮助信息摘要,如果你忘记了所有其他的命令,请记住这一个 |
SPACE or ^V or f or ^F | 向前滚动N行,默认一个窗口(请参阅下面的选项-z)。如果N大于屏幕尺寸,则只显示最后一个屏幕。警告:某些系统使用^ V作为特殊的文字化字符 。 |
z | 类似 SPACE, 但是如果指定了N,它将成为新的窗口大小。 |
ESC-SPACE | 类似 SPACE,但滚动一个完整的屏幕,即使它在过程中到达文件的结尾。 |
ENTER or RETURN or ^N or e or ^E or j or ^J | 向前滚动N行,默认为1。即使N大于屏幕尺寸,也会显示整个N行。 |
d or ^D | 向前滚动N行,默认为屏幕大小的一半。如果指定了N,它将成为后续d和u命令的新默认值。 |
b or ^B or ESC-v | 向后滚动N行,默认一个窗口(请参阅下面的选项-z)。如果N大于屏幕尺寸,则只显示最后一个屏幕。 |
w | 类似于ESC-v, 但是如果指定了N,它将成为新的窗口大小。 |
y or ^Y or ^P or k or ^K | 向后滚动N行,默认为1.即使N大于屏幕尺寸,也会显示整个N行。警告:某些系统使用^ Y作为特殊作业控制字符。 |
u or ^U | 向后滚动N行,默认为屏幕大小的一半。如果指定了N,它将成为后续d和u命令的新默认值。 |
ESC-) or RIGHTARROW | 水平向右滚动N个字符,默认为屏幕宽度的一半(请参阅 – #选项) 如果指定了数字N,它将成为未来RIGHTARROW和LEFTARROW命令的默认值。当文本滚动时,它的行为就像-S选项。 |
ESC-( or LEFTARROW | 水平向左滚动N个字符,默认为屏幕宽度的一半(请参阅 – #选项)如果指定了数字N,它将成为未来RIGHTARROW和LEFTARROW命令的默认值。 |
r or ^R or ^L | 重绘屏幕。 |
R | 重绘屏幕,丢弃任何缓冲的输入。如果文件在查看过程中发生变化,该功能很有用。 |
F | 向前滚动,并在到达文件结尾时继续尝试读取。通常情况下,这个命令将在文件结束时使用。这是一种监视正在查看的文件尾部的方法。 (该行为类似于“tail -f”命令。) |
ESC-F | 类似于 F, 但只要找到与上一次搜索模式串匹配的行,终端就会响铃,并停止向前滚动。 |
g or < or ESC -< | 转到文件中的第N行,默认1(文件开始)。 (警告:如果N很大,这可能会很慢。) |
G or > or ESC-> | 转到文件中的第N行,默认文件的结尾。 (警告:如果N很大,或者没有指定N,并且正在读取标准输入而不是文件,则这可能会很慢。 |
p or % | 移动到文件中的N%处。 N应该在0到100之间,并且可以包含一个小数点。 |
P | 移动到文件中包含字节偏移量N的行。 |
{ | 如果在屏幕上显示的第一行中出现左花括号,{命令将转到右花括号。右边的大括号位于屏幕的底部。如果顶行有多个左花括号,则可以使用数字N来指定行上的第N个括号。 |
} | 如果在屏幕上显示的最后一行出现右括号,}命令将转到匹配的左括号。匹配的左大括号位于屏幕的顶行。如果顶行有多个右括号,则可以使用数字N来指定行上的第N个括号。 |
( | 类似于 {,但适用于括号”(“而不是花括号”{“。 |
) | 类似于 },但适用于括号”)”而不是花括号”}”。 |
[ | 类似于 {,但适用于方括号”[“而不是大括号”{“。 |
] | 类似于 },但适用于方括号”]”而不是大括号”}”。 |
ESC-^F | 后面跟着两个字符,类似于{,但是分别使用两个字符作为打开和关闭的括号。 例如, "ESC ^F < >" 可以用于前进到与顶部显示的行中的 < 匹配的 >。 |
ESC-^B | 后面跟着两个字符,类似于},但是分别使用两个字符作为打开和关闭的括号。 例如,"ESC ^B < >" 可以用来返回到与底部显示行中的 > 匹配的 < 。 |
m | 随后是小写字母,用该字母标记当前位置。 |
‘ (Single quote,单引号) | 随后是小写字母,返回到之前用该字母标记的位置。 紧接着另一个单引号,返回到执行最后一个“大”移动命令的位置。 接着是^或$,分别跳转到文件的开头或结尾。 检查新文件时会保留标记,因此可以使用该 ‘命令在输入文件之间切换。 |
^X^X | 和单引号一样。 |
/pattern | 在文件中向前搜索包含模式串的第N行。 N默认为1.模式串是一个正则表达式,由系统提供的正则表达式库所识别。搜索从显示的第一行开始(但是当出现-a和-j选项,这改变了这一点)。如果在模式串的开始处输入某些特殊的字符;他们只修改搜索的类型,而不是成为模式串的一部分:^N or ! :搜索与模式串不匹配的行。^E or * :搜索多个文件。也就是说,如果搜索到达当前文件的END而没有找到匹配,则搜索将继续执行命令行列表中的下一个文件。^F or @ :无论当前在屏幕上显示什么或者-a或-j选项的设置如何,都可以从命令行列表中FIRST文件的第一行开始搜索。^K :高亮当前屏幕与模式串匹配的文本,但不要移动到第一个匹配项的位置去,保持当前位置。^R :不要解释正则表达式元字符;只做简单的文字比较。 |
?pattern | 在文件中向后搜索包含模式的第N行。搜索从显示顶行之前的行开始。某些在/命令中是特殊的字符:^N or ! :搜索与模式串不匹配的行。^E or * :搜索多个文件。也就是说,如果搜索到达当前文件的开头而没有找到匹配,则搜索将继续执行命令行列表中的前一个文件。^F or @ :无论当前在屏幕上显示什么或者-a或-j选项的设置如何,都可以从命令行列表中最后一个文件的最后一行开始搜索。^K :类似向前搜索中的^K 。^R 类似向前搜索中的^R 。 |
ESC-/pattern | 与 “/*”相同。 |
ESC-?pattern | 与 “?*”相同。 |
n | 重复之前的搜索,包含最后一个模式串的第N行。如果先前的搜索被^N修改,则搜索不包含该模式串的第N行。如果之前的搜索已被^E修改,如果当前文件不满足的话,则搜索在下一个(或前一个)文件中继续。如果之前的搜索已被^R修改,则搜索不使用正则表达式。如果以前的搜索已被^F或^K修改,则无效。 |
N | 重复以前的搜索,但方向相反。 |
ESC-n | 重复之前的搜索,但跨越文件边界。效果就好像以前的搜索串是*。 |
ESC-N | 重复以前的搜索,但是在相反的方向和跨文件的边界。 |
ESC-u | 关闭高亮搜索匹配项。关闭与当前搜索模式串匹配的字符串高亮。如果由于先前的ESC-u命令而关闭高亮显示,则重新打开高亮显示。任何搜索命令也会重新变成高亮显示。(也可以通过切换-G选项禁用高亮显示;在这种情况下,搜索命令不会再次高亮显示)。 |
&pattern | 只显示与模式串匹配的行,不匹配的行不显示。如果模式串是空的,也就是说你在输入&之后立刻回车,那么所有的过滤都会被关闭,并且显示所有行。在过滤生效时,在提示的开始会显示一个&符号,提示文件中的某些行可能被隐藏。某些在/命令中是特殊的字符:^N or ! :仅显示与模式串不匹配的行。^R :不要解释正则表达式元字符;只做简单的文字比较。 |
:e [filename] | 检查一个新文件。如果缺少文件名,则重新检查命令行中文件列表中的“当前”文件(请参阅下面的:n和:p命令)。 文件名中的百分号%,代表当前文件名。 #号被替换为之前检查的文件名。 两个连续的%%会被替换为一个%,所以这允许你输入文件名中带%的文件。同样的两个连续##会被替换为一个#。 将文件名插入到文件的命令行列表中,以便后续可以看到,:n和:p命令。 如果文件名由多个文件组成,则它们全部插入到文件列表中,并检查第一个文件。 如果文件名包含一个或多个空格,则整个文件名应该用双引号括起来 (请查阅 -” 选项). |
^X^V or E | 与 :e相同。 警告:某些系统使用^ V作为特殊的文字化字符。在这样的系统上,您可能无法使用^ V。 |
: n | 检查下一个文件(从命令行中给出的文件列表)。如果指定了数字N,则往后检查N个文件。 |
: p | 检查命令行列表中的前一个文件。如果指定了数字N,则往前检查N个文件。 |
: x | 检查命令行列表中的第一个文件。如果指定了数字N,则检查列表中的第N个文件。 |
: d | 从文件列表中删除当前文件。 |
t | 如果当前标签有多个匹配项,则转到下一个标签。有关tag的更多详细信息,请参阅-t选项。 |
T | 如果当前标签有多个匹配项,则转到上一个标签。 |
= or ^G or :f | 打印关于正在查看的文件的一些信息,包括其名称以及显示的最后一行的行号和字节偏移量。如果可能的话,它还会打印文件的长度,文件中的行数以及最后一行显示的文件百分比。 |
– | 接下来是一个命令行选项字母(参见下面的OPTIONS),这将改变该选项的设置并打印描述新设置的消息。如果在”-“之后立即输入^ P(CONTROL-P),则会更改选项的设置,但不会显示任何消息。如果选项字母具有数字值(如-b或-h)或字符串值(如-P或-t),则可在选项字母后输入新值。如果没有输入新值,则会打印一条描述当前设置的消息,不会有任何更改。 |
— | 类似于- 命令一样,但需要很长的选项名称(请参阅下面的选项),而不是一个选项字母。输入选项名称后,必须按ENTER或RETURN。当^P 在”–“之后立即输入时则不会显示任何描述新设置的消息,类似-命令 |
-+ | 随后是其中一个命令行选项字母,这会将选项重置为其默认设置并打印描述新设置的消息。 (“ -+X”命令与命令行中的“-+X”执行相同的操作)。这对于字符串值选项不起作用。 |
–+ | 类似于-+命令, 但需要较长的选项名称而不是单个选项字母。 |
-! | 随后是其中一个命令行选项字母,这会将选项重置为默认设置的“相反”,并打印描述新设置的消息。这对数字或字符串值选项不起作用 |
–! | 类似于-!命令, 但需要较长的选项名称而不是单个选项字母。 |
_(下划线) | 随后是其中一个命令行选项字母,这将打印一条描述该选项当前设置的消息。该选项的设置没有改变。 |
__ (双下划线) | 类似于_命令, 但需要较长的选项名称而不是单个选项字母。输入选项名称后,必须按ENTER或RETURN。 |
+cmd | 设置每次检查新文件时执行指定的cmd。例如,G会导致从最后开始显示每个文件,而不是从开始显示。 |
V | 打印less正在运行的版本号。 |
q or Q or :q or :Q or ZZ | 退出 |
以下四个命令可能有效或无效,具体取决于您的特定安装。
命令 | 解释 |
---|---|
v | 调用编辑器来编辑当前正在查看的文件。如果定义了编辑器,则从环境变量VISUAL中获取编辑,如果VISUAL未定义,则编辑器从EDITOR中获取;如果VISUAL和EDITOR都未定义,则编辑器默认为“vi”。请参阅以下关于PROMPTS部分的关于LESSEDIT的讨论。 |
! shell-command | 调用一个shell来运行给定的shell命令。百分号%,代表当前文件名。 #号被替换为之前检查的文件名。 “!!” 代表重新之前之前的命令 “!” 没有shell命令只是调用一个shell。在Unix系统上,shell是从环境变量SHELL中获取的,或者默认为“sh”。在MS-DOS和OS/2系统上,shell是普通的命令处理器。 |
| |
|
s filename | 将输入保存到一个文件。这只适用于输入是管道而不是普通文件的情况。 |
命令输入编辑
在屏幕底部输入命令行时(例如:e命令的文件名或搜索命令的模式串),可以使用某些键来操作命令行。这就是所谓的line-editing
。
大多数命令在[括号]中有一个替代形式,如果特定键盘上不存在某个键,则可以使用该形式。(请注意,以ESC开头的命令形式在某些MS-DOS和Windows系统中不起作用,因为ESC是行擦除字符。) 这些特殊键中的任何一个都可以通过在字面上输入字符来输入,即^V或^A. 反斜杠本身也可以通过输入两个反斜杠直接输入。
命令 | 操作 |
---|---|
LEFTARROW [ ESC-h ] | 将光标向左移动一格|。 |
RIGHTARROW [ ESC-l ] | 将光标向右移动一格。 |
^LEFTARROW [ ESC-b or ESC-LEFTARROW ] (也就是CONTROL和LEFTARROW同时按下。) | 将光标向左移动一个词。 |
^RIGHTARROW [ ESC-w or ESC-RIGHTARROW ](也就是CONTROL和RIGHTARROW同时按下。) | 将光标向右移动一个词。 |
HOME [ ESC-0 ] | 将光标移到行首。 |
END [ ESC-$ ] | 将光标移动到行的末尾。 |
BACKSPACE | 删除光标左侧的字符,或者如果命令行为空,则取消该命令。 |
DELETE or [ ESC-x ] | 删除光标下的字符。 |
^BACKSPACE [ ESC-BACKSPACE ] (也就是CONTROL和BACKSPACE同时按下。) | 删除光标左侧的单词。 |
^DELETE [ ESC-X or ESC-DELETE ] (也就是CONTROL和DELETE同时按下。) | 删除光标下的单词。 |
UPARROW [ ESC-k ] | 检索前面的命令行。如果你先输入一些文本,然后按UPARROW,它将检索以该文本开头的前一个命令。 |
DOWNARROW [ ESC-j ] | 检索下一个命令行。如果你先输入一些文字,然后按下DOWNARROW,它将检索以该文本开头的下一个命令。 |
TAB | 完成光标左侧部分的文件名。如果它匹配多个文件名,则第一个匹配被输入到命令行中。重复的TAB将循环输入其他匹配的文件名。如果完成的文件名是一个目录,则在文件名后附加“/”。 (在MS-DOS系统上,附加“\”。)环境变量LESSSEPARATOR可用于指定不同的字符以追加到目录名称。 |
BACKTAB [ ESC-TAB ] | 就像TAB一样,但是通过匹配的文件名反向循环。 |
^L | 完成光标左侧部分的文件名。如果它匹配多个文件名,则所有的匹配都被输入到命令行中(如果它们合适的话)。 |
^U (Unix and OS/2) or ESC (MS-DOS) | 删除整个命令行,或者如果命令行为空,则取消该命令。如果您已将Unix中的删除语句字符更改为^ U以外的字符,则使用该字符而不是^ U。 |
^G | 删除整个命令行并返回到主提示符。 |
按键绑定
您可以使用程序lesskey(1)创建一个lesskey文件来定义您自己的less命令。该文件指定一组命令键和与每个键相关联的操作。您也可以使用less键来更改line-editng(命令行编辑键)(请参阅LINE-EDITING(行编辑)),并设置环境变量。
如果设置了环境变量LESSKEY,则less使用它作为lesskey文件的名称。否则,less在lesskey文件的标准位置查找:在Unix系统上,less寻找一个名为“$ HOME / .less”的lesskey文件。在MS-DOS和Windows系统上,less查找名为“$ HOME / _less”的lesskey文件,如果没有找到,则在PATH环境变量中指定的任何目录中查找名为“_less”的lesskey文件。在OS / 2系统上,less查找名为“$ HOME / less.ini”的lesskey文件,如果找不到,则在INIT环境变量中指定的任何目录中查找名为“less.ini”的lesskey文件,如果没有找到,则在PATH环境变量中指定的任何目录中查找名为“less.ini”的lesskey文件。有关更多详细信息,请参阅lesskey手册页。
系统范围内的lesskey文件也可以被设置为提供按键绑定。 如果在本地lesskey文件和系统范围文件中都定义了一个键,则本地文件中的键绑定优先于系统范围文件中的键绑定。 如果设置了环境变量LESSKEY_SYSTEM,那么使用该变量作为系统范围的lesskey文件名称。 否则,less在全系统lesskey文件的标准位置查找:在Unix系统上,全系统lesskey文件是/usr/local/etc/sysless。 (但是,如果less是使用与/usr/local/etc/不同的sysconf目录构建的,则这个目录就是sysless文件应该被找到的目录)。在MS-DOS和Windows系统上,系统范围的lesskey文件是c:_sysless。 在OS/2系统上,全系统lesskey文件是c:\sysless.ini。
输入预处理
您也可以为less 定义一个“输入预处理器”。 在less打开一个文件之前,它首先让你的输入预处理器有机会修改文件内容的显示方式。 输入预处理器只是一个可执行程序(或shell脚本),它将文件的内容写入另一个文件,或者称之为替换文件。 替换文件的内容然后显示在原始文件内容的位置。 但是,对于用户来说,就跟打开原始文件一样。 也就是说,less将显示原始文件名作为当前文件的名称。
输入预处理器接收一个命令行参数,即用户输入的原始文件名。 它应该创建替换文件,完成后,将替换文件的名称打印到其标准输出。 在正常情况下,如果输入预处理程序不输出替换文件名,则less使用原始文件。 查看标准输入时不会调用输入预处理程序。 要设置输入预处理器,请将LESSOPEN环境变量设置为将调用您的输入预处理器的命令。 这个命令应该包含一个字符串“%s”,当输入预处理器命令被调用时,这个字符串将被实际的文件名替换。
当less关闭以这种方式打开的文件时,它会调用另一个程序,称为输入后处理程序,它可以执行任何所需的清理操作(例如删除由LESSOPEN创建的替换文件)。 该程序接收两个命令行参数,由用户输入的原始文件名以及替换文件的名称。 要设置输入后处理器,请将LESSCLOSE环境变量设置为将调用输入后处理器的命令。 它可能包含两个字符串“%s”; 第一个替换为文件的原始名称,第二个替换文件的名称由LESSOPEN输出。
例如,在许多Unix系统上,这两个脚本将允许你保持压缩格式的文件,但让less得以直接查看它们:
lessopen.sh:
#! /bin/sh
case "$1" in
*.Z) uncompress -
if [ -s /tmp/less.$$ ]; then
echo /tmp/less.$$
else
rm -f /tmp/less.$$
fi
;;
esac
lessclose.sh:
#! /bin/sh
rm $2
要使用这些脚本,将它们放在可执行的位置,并设置LESSOPEN =“lessopen.sh %s”,LESSCLOSE =“lessclose.sh %s %s”。 可以编写更复杂的LESSOPEN和LESSCLOSE脚本来接受其他类型的压缩文件,等等。
还可以设置一个输入预处理器,将文件数据直接传送到less,而不是将数据放入替换文件中。 这避免了在开始查看之前解压整个文件。 以这种方式工作的输入预处理器被称为输入管道。 输入管道不是在其标准输出上写入替换文件的名称,而是将替换文件的全部内容写入其标准输出。 正常情况下,如果输入管道没有在其标准输出上写入任何字符,那么没有替换文件,并且less使用原始文件。 要使用输入管道,请使LESSOPEN环境变量中的第一个字符成为垂直条(|),以表示输入预处理器是输入管道。
例如,在许多Unix系统上,这个脚本将像前面的示例脚本一样工作:
lesspipe.sh:
#! /bin/sh
case "$1" in
*.Z) uncompress -c $1 2>/dev/null
*) exit 1
;;
esac
exit $?
要使用这个脚本,把它放在可执行的地方并且设置 LESSOPEN="|lesspipe.sh %s"
.
请注意,预处理器不能输出空文件,因为这被解释为意味着没有替换,并且使用原始文件。 为避免这种情况,如果LESSOPEN以两个竖线开始,则脚本的退出状态将变得有意义。 如果退出状态为零,则输出被认为是替换文本,即使它是空的。 如果退出状态不为零,则忽略任何输出并使用原始文件。 为了兼容以前版本的less,如果LESSOPEN只以一个垂直条开始,则预处理器的退出状态将被忽略。
当使用输入管道时,可以使用LESSCLOSE后处理器,但通常没有必要,因为没有替换文件进行清理。 在这种情况下,传递给LESSCLOSE后置处理器的替换文件名是“ – ”。
为了与以前版本的less兼容,如果less正在查看标准输入,则不使用输入的预处理器或管道。 但是,如果LESSOPEN的第一个字符是破折号( – ),则输入预处理器将用于标准输入以及其他文件。 在这种情况下,短划线不被认为是预处理器命令的一部分。 如果正在查看标准输入,则输入预处理器将传递一个由单个短划线组成的文件名。 同样,如果LESSOPEN的前两个字符是垂直条和短划线(|- )或两个垂直条和一个破折号(||- ),则输入管道将用于标准输入以及其他文件。 同样,在这种情况下,短划线不被认为是输入管道命令的一部分。
预处理器有以下的默认文件设置:
/etc/profile.d/less.sh
/etc/profile.d/less.csh
这些文件将/usr/bin/lesspipe.sh设置为默认过滤器。 用户定义的过滤器可以在~/.lessfilter中指定。 这个文件应该设置为可执行,并且只接受一个代表文件名的参数。 如果用户定义过滤器处理文件,则应返回零。 否则~/.lessfilter将试图处理文件。
提示符
-P选项允许您根据自己的偏好量身定制提示。 赋给-P选项的字符串将替换指定的提示字符串。 字符串中的某些字符被专门解释。 提示机制提供的灵活性比较复杂,普通用户不需要了解构建个性化提示字符串的细节。
百分号后面跟一个单字符的情况将根据以下字符进行解释和扩展:
符号 | 解释 |
---|---|
%bX | 由当前输入文件中的字节偏移量替换。 b后面跟着一个字符(如上面的X所示),它指定要使用字节偏移的行。 如果字符是“t”,则使用显示器顶行的字节偏移量,“m”表示使用中间行,“b”表示使用底行,“B”表示使用紧跟在底线之后行,而“j”表示使用-j选项指定的“target”行。 |
%B | 替换为当前输入文件的大小。 |
%c | 由屏幕第一列中出现的文本的列号替换。 |
%dX | 由输入文件中一行的页码替换。要使用的行由X确定,与%b选项一样。 |
%D | 替换为输入文件中的页数,或等同于输入文件中最后一行的页码。 |
%E | 替换为编辑器的名称(来自VISUAL环境变量,或者如果VISUAL未定义,则使用EDITOR环境变量)。请参阅下面关于LESSEDIT功能的讨论。 |
%f | 替换为当前输入文件的名称。 |
%F | 替换为当前输入文件名称的最后一个。 |
%i | 由输入文件列表中当前文件的索引替换。 |
%lX | 替换为输入文件中一行的行号。要使用的行由X确定,与%b选项一样。 |
%L | 由输入文件中最后一行的行号替换。 |
%m | 替换为输入文件的总数。 |
%pX | 取决于当前输入文件的百分比,基于字节偏移量。与%b选项一样,使用的行由X确定。 |
%PX | 根据行号取代当前输入文件的百分比。与%b选项一样,使用的行由X确定。 |
%s | 与 %B相同 |
%t | 导致任何尾空格被删除。通常用在字符串的末尾,但也可能出现在任何地方。 |
%x | 替换为列表中下一个输入文件的名称。 |
如果有任何项目是当前无法计算的(例如,如果输入的文件大小是管道),则打印问号。
提示字符串的格式可以根据特定条件进行更改。 一个问号跟一个单个字符就像一个“IF”:根据下面的字符,一个条件被评估。 如果条件为真,则提示中将包含问号和条件字符后的任何字符。 如果条件不成立,则不包括这些字符。 出现在问号和句点之间的冒号可用于建立“ELSE”:当且仅当IF条件为假时,冒号和句点之间的任何字符才被包括在字符串中。其实熟悉C语言的同学们可以发现,这其实就是个三目运算符的变体嘛。 条件字符(跟在一个问号后面)可能是:
字符 | 解释 |
---|---|
?a | 如果到目前为止提示中包含任何字符,则为真。 |
?bX | 如果指定行的字节偏移量已知,则为真。 |
?B | 如果当前输入文件的大小已知,则为真。 |
?c | 如果文本水平移位(%c不为零)则为真。 |
?dX | 如果指定行的页码已知,则为真。 |
?e | 如果在文件结束时为真。 |
?f | 如果有输入文件名(即输入不是管道),则为真。 |
?lX | 如果指定行的行号已知,则为真。 |
?L | 如果文件中最后一行的行号是已知的,则为真。 |
?m | 如果有多个输入文件,则为真。 |
?n | 如果这是新输入文件中的第一个提示,则为真。 |
?pX | 如果已知指定行的基于字节偏移的当前输入文件的百分比,则为真。 |
?PX | 如果已知输入文件中基于行号的百分比,则为真。 |
?s | 与”?B”相同。 |
?x | 如果存在下一个输入文件(即,如果当前输入文件不是最后一个),则为真。 |
除特殊字符(问号,冒号,句点,百分比和反斜线)以外的任何字符都成为提示的字面意思。 任何特殊字符都可以通过在反斜杠之前加上字面意思。
例:
?f%f:Standard input。
如果文件名已知,此提示将打印文件名; 否则为字符串“标准输入”。
?f%f .?ltLine %lt:?pt%pt\%:?btByte %bt:-...
如果文件名已知,此提示将打印文件名。 如果行号已知,则文件名后跟行号,否则的话,判断百分比是否已知,如果已知则返回百分比,否则的话如果已知字节偏移,则打印字节偏移, 否则,打印短划线。 注意每个问号匹配的声明周期,以及%pt之后的%是如何通过用反斜杠转义来实现的。
上面的代码换一种方式:
if(文件名已知)
打印文件名;
if(行号已知)
打印行号;
else if(百分比已知)
打印百分比;
else if(字节偏移已知)
打印字节偏移;
else
打印短划线;
?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x..%t
如果这是文件中的第一个提示,则输出文件名,如果有多个输入文件,则输出消息“N of N file”。 然后,如果我们在文件结尾,则打印字符串“(END)”,后跟下一个文件的名称(如果有的话)。 最后,任何尾随空格被截断。 这是默认提示。 作为参考,以下是其他两个提示(分别为-m和-M)的默认值。 为了便于阅读,每一行都分成两行。
?n?f%f .?m(file %i of %m) ..?e(END) ?x- Next\: %x.:
?pB%pB\%:byte %bB?s/%s...%t
?f%f .?n?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. :
byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t
这里是=命令产生的默认消息:
?f%f .?m(file %i of %m) .?ltlines %lt-%lb?L/%L. .
byte %bB?s/%s. ?e(END) :?pB%pB\%..%t
提示扩展功能还用于其他目的:如果定义了环境变量LESSEDIT,则将其用作在调用v命令时执行的命令。 LESSEDIT字符串以与提示字符串相同的方式展开。
LESSEDIT的默认值是:
%E ?lm+%lm. %f
请注意,这将扩展到编辑器名称,后跟+和行号,后跟文件名。 如果您的编辑器不接受“+linenumber”语法,或者在调用语法上有其他差异,则可以更改LESSEDIT变量以修改此默认值。
安全模式
当环境变量LESSSECURE设置为1时,在“安全”模式下运行less。 这意味着这些功能被禁用:
命令 | 解释 |
---|---|
! | shell命令 |
| | 管道命令 |
:e | 检查命令。 |
v | 编辑命令 |
s -o | 日志文件 |
-k | 使用lesskey文件 |
-t | 使用标签文件 |
文件名中的元字符, 例如 * | |
文件名自动补全 (TAB, ^L) |
也可以编译成永远处于“安全”模式。
兼容more命令
如果环境变量LESS_IS_MORE设置为1,或者通过名为“more”的文件链接调用程序,则less的行为(主要的)符合POSIX“more”命令规范。 在这种模式下,在这些方面表现不同:
-e选项的工作方式不同。 如果未设置-e选项,那么表现就好像设置了-E选项。 如果设置了-e选项,那么less表现就好像设置了-e和-F选项。
-m选项的工作方式不同。 如果未设置-m选项,则使用媒体提示符,并以字符串“–More–”作为前缀。 如果设置了-m选项,则使用短提示。
-n选项的作用就像-z选项。 -n选项的正常行为在此模式下不可用。
-p选项的参数被认为是一个less的命令,而不是一个搜索模式。
LESS环境变量被忽略,并且MORE环境变量被使用。
环境变量
环境变量可以像往常一样在系统环境中指定,也可以在lesskey(1)文件中指定。 如果环境变量定义在多个地方,那么本地lesskey文件中定义的变量优先于系统环境中定义的变量,并且这些变量优先于系统范围lesskey文件中定义的变量。
变量 | 解释 |
---|---|
COLUMNS | 设置屏幕上的列数。 优先于TERM变量指定的列数。 (但是,如果您有一个支持TIOCGWINSZ或WIOCGETD的窗口系统,则窗口系统的屏幕大小优先于LINES和COLUMNS环境变量。) |
EDITOR | 编辑器的名称(用于v命令)。 |
HOME | 用户主目录的名称(用于在Unix和OS/2系统上查找lesskey文件)。 |
HOMEDRIVE, HOMEPATH | 如果没有设置HOME变量,HOMEDRIVE和HOMEPATH环境变量连接起来作为用户主目录的名称 (Windows版本). |
INIT | 用户的init目录的名称(用于在OS/2系统上查找lesskey文件)。 |
LANG | 确定字符集的语言。 |
LC_CTYPE | 确定字符集的语言。 |
LESS | 自动传递给less的选项。 |
LESSANSIENDCHARS | 可能结束ANSI颜色转义序列的字符(默认为“m”)。 |
LESSANSIMIDCHARS | ANSI颜色转义序列中ESC字符和结束字符之间可能出现的字符 (默认 “0123456789;[?!”‘#%()*+ “.) |
LESSBINFMT | 用于显示不可打印的非控制字符的格式。 |
LESSCHARDEF | 定义一个字符集。 |
LESSCHARSET | 选择一个预定义的字符集。 |
LESSCLOSE | 用于调用(可选)输入后处理器的命令行。 |
LESSECHO l | essecho程序的名称(默认“lessecho”)。 lessecho程序需要在Unix系统上的文件名中扩展元字符,如*和? |
LESSEDIT | 编辑器原型字符串(用于v命令)。请参阅PROMPTS下的讨论。 |
LESSGLOBALTAGS | -t选项用于查找全局tags的命令的名称。如果您的系统有global(1)命令,通常应该设置为“global。如果未设置,则不使用全局标签。 |
LESSHISTFILE | 用于记录less调用之间的搜索命令和shell命令的历史文件的名称。 如果设置为“-”或“/dev/null”,则不使用历史文件。 在Unix系统上,默认是“$ HOME/.lesshst”,在DOS和Windows系统上是“$HOME/_lesshst”,在OS/2系统上是“$HOME/lesshst.ini”或者“$INIT/lesshst.ini”。 |
LESSHISTSIZE | 保存在历史文件中的命令的最大数量。默认值是100。 |
LESSKEY | 默认的lesskey(1)文件名称。 |
LESSKEY_SYSTEM | 默认的系统范围的lesskey(1)文件名称。 |
LESSMETACHARS | 被shell视为“元字符”的字符列表。 |
LESSMETAESCAPE | 在发送到shell的命令的每个元字符之前添加的前缀。如果LESSMETAESCAPE是一个空字符串,则包含元字符的命令不会被传递给shell。 |
LESSOPEN | 用于调用(可选)输入预处理器的命令行。 |
LESSSECURE | 在“安全”模式下运行less。参见SECURITY下的讨论。 |
LESSSEPARATOR | 要在文件名完成中附加到目录名称的字符串。 |
LESSUTFBINFMT | 显示不可打印的Unicode代码点的格式。 |
LESS_IS_MORE | 模拟more(1)命令。 |
LINES | 设置屏幕上的行数。优先于TERM变量指定的行数。 (但是,如果您有一个支持TIOCGWINSZ或WIOCGETD的窗口系统,则窗口系统的屏幕大小优先于LINES和COLUMNS环境变量。) |
MORE | 在more兼容模式下运行时自动传递给less的选项。 |
PATH | 用户的搜索路径(用于在MS-DOS和OS/2系统上查找lesskey文件)。 |
SHELL | 这个shell用来执行!命令,以及扩展文件名。 |
TERM | less正在运行的终端的类型。 |
VISUAL | 编辑器的名称(用于v命令)。 |
实例
1、查看文件
less log2013.log
2、ps查看进程信息并通过less分页显示
ps -ef |less
3、查看命令历史使用记录并通过less分页显示
[root@localhost test]# history | less
22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
26 ls
……省略……
4、浏览多个文件
less log2013.log log2014.log
结束
呼,写到这里真的尽力了,我相信除了跟man手册相比,这篇文章已经介绍的很详细了,只不过因为不同的linux版本的区别,所以less命令的一些选项,参数,命令也会有差别。
还有一点不足之处是并未对于每一种情况都举例说明,事实上这确实很难。
本篇文章除了本地字符集,其他都有介绍到了。
如有错误还希望各位看官留言指出,求轻喷。
参考链接:
http://www.runoob.com/linux/linux-comm-less.html
http://www.cnblogs.com/peida/archive/2012/11/05/2754477.html