导言
今天博文讲述另一个查看文件内容的命令,这个命令是less,less和more命令很相似,但是相对强大了许多 。
less命令
作用
在linux官方说明中,把less是这么解释的“ opposite of more” ,可以说是与more命令相对,这就难以理解了,不过不影响我们对less命令的使用和了解。
具体来说,说到less就得说more,Less是类似于more的程序,与more不同,它允许文件中的向后移动以及向前移动。 此外,less不必在启动之前读取整个输入文件,因此对于大输入文件,它比文本编辑器(如 vi)启动得更快。 less使用termcap(或某些系统上的terminfo),因此它可以在各种终端上运行,甚至支持硬拷贝终端。 (在硬拷贝终端上,应在屏幕顶部打印的线条以插入符号为前缀。)
less强大而又方便,对于linux内部的man page则是调用less实现的,其实博主都感觉less不应该叫less,毕竟功能上比more更多。只能猜测可能是因为less刚开始以很少的内容载入,而more载入整个文件的原因才这么订立命令名字的。
less支持[pageup] [pagedown] 等按键,又支持搜寻字符串的上下寻找(比起昨天说的more来说,寻找后,只能往后寻找好得多)。
用法
less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
[-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 [参数] 文件
详细全选项参数解释
在以下描述中,^ X表示control-X,即快捷键ctrl+X。
短选项 | 长选项 | 含义(作用) |
---|---|---|
-? | --help | 此选项显示less接受的命令摘要(与h命令相同)。 (根据shell解释问号的方式,可能需要引用问号,因此:“ - \?”。) |
-a | --search-skip-screen | 导致搜索在屏幕上显示的最后一行之后开始,从而跳过屏幕上显示的所有行。 默认情况下,搜索从屏幕上的第二行开始(或在最后找到的行之后;请参阅-j选项)。 |
-bn | --buffers=n | 指定将用于每个文件的缓冲区空间量,以千字节(1024字节)为单位。 默认情况下,每个文件使用64K的缓冲区空间(除非文件是管道;请参阅-B选项)。 -b选项指定应为每个文件使用n千字节的缓冲区空间。 如果n为-1,则缓冲区空间不受限制; 也就是说,整个文件可以读入内存。 |
-B | --auto-buffers | 默认情况下,从管道读取数据时,会根据需要自动分配缓冲区。 如果从管道中读取大量数据,则可能导致分配大量内存。 -B选项禁用管道缓冲区的这种自动分配,因此管道只使用64K(或-b选项指定的空间量)。 警告:使用-B可能导致错误显示,因为只有最近查看过的管道数据部分才会保留在内存中; 任何早期数据都会丢失。 |
-c | --clear-screen | 导致全屏重绘从顶行向下绘制。 默认情况下,通过从屏幕底部滚动来完成全屏重绘。 |
-C | --CLEAR-SCREEN | 与-c相同,用于与较旧版本的less兼容。 |
-d | --dumb | 如果终端是dumb的话,-d选项会禁止正常显示的错误消息; 也就是说,缺少一些重要的功能,例如清除屏幕或向后滚动的功能。 -d选项不会改变dumb终端上的less行为。 |
-Dxcolor | --color=xcolor | [仅限MS-DOS]设置显示的文本的颜色。 x是单个字符,用于选择正在设置颜色的文本类型:n =正常,s =突出显示,d =粗体,u =下划线,k =闪烁。 颜色是由句点分隔的一对数字。 第一个数字选择前景色,第二个数字选择文本的背景色。 单个数字N与N.M相同,其中M是正常背景颜色。 |
-e | --quit-at-eof | 导致第二次到达文件结束时less自动退出。 默认情况下,退出less的唯一方法是通过“q”命令。 |
-E | --QUIT-AT-EOF | 导致第一次到达文件结束时less自动退出。 |
-f | --force | 强制打开非常规文件。 (非常规文件是目录或设备专用文件。)还会在打开二进制文件时禁止显示警告消息。 默认情况下,less会拒绝打开非常规文件。 请注意,即使设置了-f,某些操作系统也不允许读取目录。 |
-F | --quit-if-one-screen | 如果可以在第一个屏幕上显示整个文件,则会导致less自动退出。 |
-g | --hilite-search | 通常情况下,less会突出显示与上一个搜索命令匹配的所有字符串。 -g选项更改此行为以仅突出显示上一个搜索命令找到的特定字符串。 这可以导致运行速度比默认值快一些。 |
-G | --HILITE-SEARCH | -G选项禁止搜索命令找到的所有字符串突出显示。 |
--old-bot | 恢复到屏幕行为的旧底部。 如果长线在到达终端底部时未正确包裹,同时向前滚动,则有时可能需要这样做。 | |
-hn | --max-back-scroll=n | 指定要向后滚动的最大行数。 如果需要向后滚动超过n行,则屏幕将向前重新绘制。 (如果终端无法向后滚动,则暗示-h0。) |
-i | --ignore-case | 导致搜索忽略大小写; 也就是说,大写和小写被认为是相同的。 如果搜索模式中出现任何大写字母,则忽略此选项; 换句话说,如果一个模式包含大写字母,那么该搜索不会忽略大小写。 |
-I | --IGNORE-CASE | 与-i类似,但即使模式包含大写字母,搜索也会忽略大小写。 |
-jn | --jump-target=n | 指定屏幕上要定位“目标”行的行。目标行是由任何命令指定的行,用于搜索模式,跳转到行号,跳转到文件百分比或跳转到标记。屏幕行可以用数字指定:屏幕上的顶行是1,下一行是2,依此类推。指定相对于屏幕底部的线条的数字可能为负:屏幕底部的行为-1,底部的第二行为-2,依此类推。或者,屏幕线可以指定为屏幕高度的一小部分,从小数点开始:.5位于屏幕中间,.3是距离第一行的十分之三,依此类推。如果将行指定为分数,则在调整终端窗口大小时重新计算实际行号,以使目标行保持在屏幕高度的指定分数处。如果使用任何形式的-j选项,则向前搜索从目标行之后的行开始,向后搜索从目标行开始。例如,如果使用“-j4”,则目标行是屏幕上的第四行,因此向前搜索从屏幕上的第五行开始。 |
-J | --status-column | 在屏幕的左边缘显示status列。 status列显示与当前搜索匹配的行。 如果-w或-W选项生效,也会使用status列。 |
-kfilename | --lesskey-file=filename | 使得less打开并将命名文件解释为lesskey文件。 可以指定多个-k选项。 如果设置了LESSKEY或LESSKEY_SYSTEM环境变量,或者在标准位置找到了lesskey文件(请参阅KEY BINDINGS),则它也可用作lesskey文件。 |
-K | --quit-on-intr | 当输入中断字符(通常是^ C)时,立即退出会导致less。 通常情况下,中断字符会导致停止执行任何操作并返回其命令提示符。 请注意,使用此选项使得无法从“F”命令返回到命令提示符。 |
-L | --no-lessopen | 忽略LESSOPEN环境变量(请参阅预处理部分)。 可以从less内设置此选项,但它仅适用于随后打开的文件,不适用于当前打开的文件。 |
-m | --long-prompt | 导致less冗长提示(如more命令一样),并且显示文件的百分比。 默认情况下,less是用冒号提示。 |
-n | --line-numbers | 不显示行号。 在某些情况下,默认值(使用行号)可能会导致运行速度变慢,尤其是在输入文件很大的情况下。 使用-n选项可以避免此问题。 使用行号表示意味着:行号将显示在详细提示和=命令中,而v命令会将当前行号传递给编辑器(另请参见下面PROMPTS中对LESSEDIT的讨论)。 |
-N | --LINE-NUMBERS | 在显示屏中每行的开头显示行号。 |
-o<filename> | --log-file=filename | 使用less查看的内容输入到命名为filename的文件。 仅适用于管道。 如果该文件已经存在,则在覆盖该文件内容之前,less会要求确认。 |
-O<filename> | --LOG-FILE=filename | -O选项类似于-o,但是它将覆盖现有文件而不要求确认。 如果未指定日志文件,则可以从less内使用-o和-O选项指定日志文件。 没有文件名,他们将仅报告日志文件的名称。 “ s”命令等效于从less内指定-o。 |
-p<pattern> | --pattern=pattern | -p 选项等效于+/pattern ,意味着让less从第一个模式匹配的位置开始显示 |
-Pprompt | --prompt=prompt | 提供一种根据自己的喜好定制三种提示样式风格的方法。 通常将此选项放在LESS环境变量中,而不是在每个less命令中键入该选项。 这样的选项必须是LESS变量中的最后一个选项,或者必须以美元符号($ )结束。
所有提示字符串均由字符序列和特殊的转义序列组成。 有关更多详细信息,请参见PROMPTS”部分。 |
-q | --quiet or --silent | 导致中等程度的“quiet ”操作:如果尝试滚动到文件末尾或文件开头之前,则不会发出终端铃声。 如果终端带有“visual bell”,则使用它。 其他某些错误(例如键入无效字符)将响起铃声。 默认情况下,在所有这种情况下都将响铃。 |
-Q | --QUIET or --SILENT | 导致完全“安静”的操作:任何错误都不会让终端铃响起。 |
-r | --raw-control-chars | 导致以“raw”形式显示控制字符。 默认设置是使用脱字符号(^)显示控制字符, 例如,control-A(八进制001)显示为^A 。 警告:当使用-r选项时,less不能跟踪屏幕的实际外观(因为这取决于屏幕对每种控制字符的响应方式)。 因此,可能导致各种显示问题,例如长线在错误的位置被分割。 |
-R | --RAW-CONTROL-CHARS | 类似于-r选项,但是仅以“raw”形式输出ANSI“颜色”的转义字符。 与-r不同,在大多数情况下,可以正确维持屏幕外观。 ANSI“颜色”转义序列是以下形式的序列:ESC [ ... m 其中“ …”是零个或多个颜色指定字符为了跟踪屏幕外观,假定ANSI颜色转义字符序列不移动光标。 通过将环境变量LESSANSIENDCHARS设置为可以结束颜色转义序列的字符列表,您可以少考虑“ m”以外的字符可以结束ANSI颜色转义序列。 通过将环境变量LESSANSIMIDCHARS设置为可以显示的字符列表,您可以少考虑ESC和m之间可能会出现标准字符以外的字符。 |
-s | --squeeze-blank-lines | 将连续的空白行压缩为单个空白行。 在查看nroff输出时,此功能很有用。 |
-S | --chop-long-lines | 长度超过屏幕宽度的行被截断而不是折叠。 即,未示出不适合屏幕宽度的长行部分,通过方向键控制查看。 默认设置是折叠长行。 也就是说,在下一行显示其余部分。 |
-ttag | --tag=tag | -t选项后紧跟一个TAG,将编辑包含该标签的文件。 为此,标签信息必须可用。 例如,当前目录中可能存在一个名为“ tags”的文件,该文件先前是由ctags(1)或等效命令构建的。 如果设置了环境变量LESSGLOBALTAGS,则将其视为与global(1)兼容的命令的名称,并执行该命令以查找标记。在less命令中可以使用(- command)的方式指定-t选项作为检查新文件的方式。在less中使用-t选项等效于命令 -t |
-Ttagsfile | --tag-file=tagsfile | 指定要使用的标签文件,而不是使用包含“tags”的文件。 |
-u | --underline-special | 导致退格和回车被视为可打印字符; 也就是说,当它们出现在输入中时,它们将被发送到终端。 |
-U | --UNDERLINE-SPECIAL | 使退格键,制表符和回车符被视为控制字符; 也就是说,它们按照-r选项指定的方式进行处理。 默认情况下,如果既未指定-u也未指定-U,则会对下划线字符旁边出现的退格键进行特殊处理:带下划线的文本是使用终端的硬件下划线功能显示的。 此外,还会对出现在两个相同字符之间的退格键进行特殊处理:使用终端的硬件粗体功能可以打印出文本上方叠加文字格式(overstruck)的文本。 其他退格键以及前面的字符将被删除。 立即返回换行符的回车符将被删除。 其他回车符将按照-r选项的指定进行处理。 如果-u和-U都无效,则可以搜索文本上方叠加文字格式的文本或带下划线的文本。 |
-V | --version | 显示less的版本信息 |
-w | --hilite-unread | 向前移动整页后,临时突出显示第一行“新”行。 第一行“新”行是紧接在屏幕底部之前的行之后的行。 在g或p命令之后也突出显示目标行。在下一个引起移动的命令中将移除该高亮。 除非-J选项有效,否则整行都突出显示,在这种情况下,仅状态列突出显示。 |
-W | --HILITE-UNREAD | 与-w类似,但是在任何大于一行的向前移动命令之后临时突出显示第一行。 |
-xn,... | --tabs=n,... | 设置制表位。 如果仅指定一个n,则制表位设置为n的倍数。 如果指定了多个用逗号分隔的值,则在这些位置设置制表位,然后以与最后两个相同的间距继续。 例如,-x9,17将在位置9、17、25、33等处设置制表符。n的默认值为8。 |
-X | --no-init | 禁用将termcap初始化和取消初始化字符串发送到终端。 如果取消初始化字符串做了不必要的操作(如清除屏幕),有时这是理想的。 |
-yn | --max-forw-scroll=n | 指定要向前滚动的最大行数。 如果需要向前滚动多于n行,则重新绘制屏幕。 如果需要,可以使用-c或-C选项从屏幕顶部重新绘制。 默认情况下,任何向前移动都会导致滚动。 |
-[z]n | --window=n | 将默认滚动窗口大小更改为n行。 默认值为一屏。 z和w命令还可以用于更改窗口大小。 为了与更多版本的兼容性,可以省略“ z”。 如果数字n为负,则表示比当前屏幕尺寸小n行。 例如,如果屏幕为24行,则-z-4将滚动窗口设置为20行。 如果将屏幕大小调整为40行,则滚动窗口将自动更改为36行。 |
-"cc | --quotes=cc | 更改文件名引用字符。 如果试图命名同时包含空格和引号字符的文件,则可能有必要。 后面跟一个字符,这会将引号字符更改为该字符。 然后,包含空格的文件名应使用该字符而不是双引号引起来。 后跟两个字符,将打开引号更改为第一个字符,将关闭引号更改为第二个字符。 然后,在包含空格的文件名之前应使用引号引起来,然后使用引号引起来。 请注意,即使在更改引号字符之后,此选项仍为-“(破折号后加双引号)。 |
-~ | --tilde | 通常,文件末尾的行显示为单个波浪号(〜)。 此选项使文件末尾的行显示为空白行。 |
-# | --shift | 指定在RIGHTARROW和LEFTARROW命令中水平滚动的默认位置数。 如果指定的数字为零,则它将默认位置数设置为屏幕宽度的一半。 或者,可以将数字指定为屏幕宽度的一部分,从小数点开始:.5是屏幕宽度的一半,.3是屏幕宽度的十分之三,依此类推。 如果将数字指定为分数,则如果调整了终端窗口的大小,则会重新计算实际滚动位置数,以使实际滚动数保持在屏幕宽度的指定分数上。 |
--no-keypad | 禁用将键盘初始化和取消初始化字符串发送到终端。 如果小键盘字符串使数字小键盘的行为不理想,这有时很有用。 | |
--follow-name | 通常,如果在执行F命令时对输入文件进行了重命名,则尽管名称发生了变化,但仍会更少地显示原始文件的内容。 如果指定了–follow-name,则在F命令中,less会定期尝试按名称重新打开文件。 如果重新打开成功并且文件是与原始文件不同的文件(这意味着已经创建了一个与原始文件(现在已重命名的文件)具有相同名称的新文件),则显示该新文件的内容将更少。 | |
-- | 命令行参数“-”表示选项参数的结尾。 紧随其后的所有参数都被解释为文件名。 当查看名称以“-”或“ +”开头的文件时,此功能很有用。 | |
+ | 如果命令行选项以+开头,则该选项的其余部分将视为less命令的初始命令一部分。 例如,+G 告诉less是从文件末尾开始而不是开头,而+/xyz 告诉它从文件中第一次出现“ xyz”开始。 在特殊情况下,+ 的作用类似于+ g; 也就是说,它以指定的行号开始显示(但是,请参见上面“ g”命令下的警告)。 如果该选项以++开头,则初始命令适用于正在查看的每个文件,而不仅仅是第一个。 前面描述的+命令还可以用于为每个文件设置(或更改)初始命令。 |