有测试问题请微信联系作者,备注来意(点击此处添加)
240
一名普通的测试打工人;专注自动化测试技术研究、实践、总结、分享、交流。
用我多年的经历,给大家带来更多实用的干货。
人若有志,就不会在半坡停止。

【Linux基础】less命令查看日志

Less 命令简介

less 命令源于 more 命令,但是增加了反向导航和查找等功能。最重要的是,与 more 和 cat 不同,less 不必一次性读取整个文件。这对于大文件非常有用,因为用户可以立即开始浏览文件,而不需要等待文件完全加载。

基础用法

语法:less [参数] 文件

参数说明:
	-b <缓冲区大小> 设置缓冲区的大小
	-e 当文件显示结束后,自动离开
	-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
	-g 只标志最后搜索的关键词
	-i 忽略搜索时的大小写
	-m 显示类似more命令的百分比
	-N 显示每行的行号
	-o <文件名> 将less 输出的内容在指定文件中保存起来
	-Q 不使用警告音
	-s 显示连续空行为一行
	-S 行过长时间将超出部分舍弃
	-x <数字> 将"tab"键显示为规定的数字空格

基本导航和浏览文件

文件内操作:
	/字符串:向下搜索"字符串"的功能
	?字符串:向上搜索"字符串"的功能
	n:重复前一个搜索(与 / 或 ? 有关)
	N:反向重复前一个搜索(与 / 或 ? 有关)
	b 向上翻一页
	d 向后翻半页
	h 显示帮助界面
	Q 退出less 命令
	u 向前滚动半页
	y 向前滚动一行
	空格键 滚动一页
	回车键 滚动一行
	[pagedown]: 向下翻动一页
	[pageup]: 向上翻动一页

高级用法

显示行号和百分比

如果你希望在less命令中显示行号,只需使用"-N"选项:
less -N 文件名
示例:使用less命令打开文件时,加上"-N"选项,将显示行号。

要显示当前浏览位置在文件中的百分比,只需使用"-m"选项:

less -m 文件名
示例:使用less命令打开文件时,加上"-m"选项,将显示当前浏览位置的百分比。

快速跳转到指定行

如果你知道文件的某一行号,可以直接跳转到该行。只需按下"g"键并输入行号,然后按下Enter键即可。

示例:在打开的文件中,按下"g"键后输入行号"10",然后按下Enter键即可跳转到第10行。

定位并标记文本

使用less命令,你可以通过定位和标记文本来快速跳转和查找内容。只需按下"m"键,然后输入一个标记字母,再次按下"'"键加上该标记字母,即可跳转到该标记处。

示例:在浏览文件时,按下"m"键后输入标记字母"a",然后再按下"'“键加上标记字母”“a”,即可跳转到该标记处。

编辑文件时使用less命令

有时候,你可能需要在使用less命令浏览文件的同时对文件进行编辑。你可以按下"v"键来编辑文件,less命令将会调用你配置的文本编辑器来打开文件。

示例:在打开的文件中,按下"v"键即可进入编辑模式。

使用过滤器来查看特定内容

使用less命令时,你可以使用过滤器来查看特定内容。只需按下"&"键并输入过滤条件,然后按下Enter键即可。

示例:在打开的文件中,按下"&“键后输入过滤条件"keyword”,然后按下Enter键即可显示符合条件的内容。

自定义less命令

修改默认的less命令行为

通过修改less命令的配置文件,你可以自定义less命令的默认行为。配置文件通常位于~/.lesskey。

示例:使用文本编辑器打开~/.lesskey文件,修改其中的配置项来定制less命令的行为。

设置环境变量来自定义less命令

你还可以通过设置环境变量来自定义less命令的行为。例如,你可以使用LESS环境变量来设置默认的选项和标志。

export LESS="-i -R"
示例:在终端中运行上述命令,将会设置LESS环境变量为"-i -R",以更改less命令的默认行为。

使用别名简化less命令的使用

如果你发现自己经常使用某些特定的选项和标志,你可以通过创建别名来简化less命令的使用。只需在/.bashrc或/.bash_profile中添加别名定义即可。

示例:在~/.bashrc文件中添加别名定义,如下所示:
alias l="less -N"
这样,你只需在终端中运行"l 文件名",就相当于运行"less -N 文件名"。

其他相关命令和技巧

使用grep命令结合less更高效地搜索

如果你想在文件中进行更高效的搜索操作,可以结合使用grep命令和less命令。例如:

grep 搜索关键词 文件名 | less
示例:在终端中运行上述命令,将会在文件中搜索符合条件的内容,并使用less命令来进行浏览。

将less输出保存到文件

有时候,你可能需要将less命令的输出保存到文件中。你可以使用重定向操作符">"将输出写入文件。

less 文件名 > 输出文件名
示例:在终端中运行上述命令,将会将less命令的输出保存到指定的输出文件中。

使用less命令查看压缩文件

尽管less命令主要用于查看文本文件,但它也可以用来查看压缩文件。只需使用"-f"选项来强制less命令查看非文本文件。

less -f 压缩文件名
示例:在终端中运行上述命令,将会使用less命令查看指定的压缩文件。

less命令的其他实用技巧和选项

less命令还有许多其他实用的技巧和选项,你可以通过查看less命令的帮助手册来了解更多内容。

示例:在终端中运行"man less"命令,查看less命令的详细使用说明。

附加备注

全屏导航

ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏

单行导航

j - 下一行
k- 上一行

其它导航

G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令

其它有用的命令

v - 使用配置的编辑器编辑当前文件
h - 显示 less 的帮助文档
&pattern - 仅显示匹配模式的行,而不是整个文件

标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处

less命令使用文档

下面是LESS命令的摘要:
      标有 * 的命令可能前面会有一个数字N。
      括号内的注释表示如果给出N,行为将如何改变。
      前面有插入符号的键表示Ctrl键;因此^K表示ctrl-K。

  h  H                 显示这个帮助。
  q  :q  Q  :Q  ZZ     退出。
 ---------------------------------------------------------------------------

                           移动

  e  ^E  j  ^N  CR  *  向前移动一行(或N行)。
  y  ^Y  k  ^K  ^P  *  向后移动一行(或N行)。
  f  ^F  ^V  SPACE  *  向前移动一个窗口(或N行)。
  b  ^B  ESC-v      *  向后移动一个窗口(或N行)。
  z                 *  向前移动一个窗口(并将窗口设定为N)。
  w                 *  向后移动一个窗口(并将窗口设定为N)。
  ESC-SPACE         *  向前移动一个窗口,但不停在文件结束处。
  d  ^D             *  向前移动半个窗口(并将半窗口设定为N)。
  u  ^U             *  向后移动半个窗口(并将半窗口设定为N)。
  ESC-)  RightArrow *  右移半个屏幕宽度(或N个位置)。
  ESC-(  LeftArrow  *  左移半个屏幕宽度(或N个位置)。
  ESC-}  ^RightArrow   移到最后一列显示。
  ESC-{  ^LeftArrow    移到第一列。
  F                    向前永远;类似于 "tail -f"。
  ESC-F                类似于F,但在找到搜索模式时停止。
  r  ^R  ^L            重绘屏幕。
  R                    重绘屏幕,丢弃缓冲输入。
        ---------------------------------------------------
        默认的“窗口”是屏幕高度。
        默认的“半窗口”是屏幕高度的一半。
 ---------------------------------------------------------------------------

                          搜索

  /pattern          *  向前搜索(N-th)匹配行。
  ?pattern          *  向后搜索(N-th)匹配行。
  n                 *  重复上次搜索(N-th出现)。
  N                 *  反向重复上次搜索。
  ESC-n             *  重复上次搜索,跨文件。
  ESC-N             *  反向重复上次搜索,跨文件。
  ESC-u                撤销(切换)搜索高亮。
  &pattern          *  仅显示匹配行
        ---------------------------------------------------
        搜索模式可能以一个或多个以下符号开始:
        ^N 或 !  搜索不匹配的行。
        ^E 或 *  搜索多个文件(通过文件结束)。
        ^F 或 @  在第一个文件(对于/)或最后一个文件(对于?)开始搜索。
        ^K       高亮匹配,但不移动(保持位置)。
        ^R       不使用正则表达式。
 ---------------------------------------------------------------------------

                           跳转

  g  <  ESC-<       *  跳转到文件的第一行(或第N行)。
  G  >  ESC->       *  跳转到文件的最后一行(或第N行)。
  p  %              *  跳转到文件的开头(或文件的N%位置)。
  t                 *  跳转到下一个(第N个)标签。
  T                 *  跳转到上一个(第N个)标签。
  {  (  [           *  查找关闭的括号 } ) ]。
  }  )  ]           *  查找打开的括号 { ( [。
  ESC-^F <c1> <c2>  *  查找关闭的括号 <c2>。
  ESC-^B <c1> <c2>  *  查找打开的括号 <c1>
        ---------------------------------------------------
        每一个"查找关闭括号"命令都会向前找到与顶行中的(第N个)打开括号匹配的关闭括号。
        每一个"查找打开括号"命令都会向后找到与底行中的(第N个)关闭括号匹配的打开括号。

  m<字母>            使用<字母>标记当前的顶行。
  M<字母>            使用<字母>标记当前的底行。
  '<字母>            跳转到之前标记的位置。
  ''                 跳转到上一个位置。
  ^X^X               同 '。
  ESC-M<字母>        清除一个标记。
        ---------------------------------------------------
        标记可以是任何大写或小写的字母。
        有些标记是预定义的:
             ^  代表  文件的开头
             $  代表  文件的结尾
 ---------------------------------------------------------------------------

                        切换文件

  :e [file]            检查一个新文件。
  ^X^V                 同 :e。
  :n                *  检查命令行中的下一个(第N个)文件。
  :p                *  检查命令行中的上一个(第N个)文件。
  :x                *  检查命令行中的第一个(或第N个)文件。
  :d                   从命令行列表中删除当前文件。
  =  ^G  :f            打印当前文件名。
 ---------------------------------------------------------------------------

                    其他命令

  -<标志>              切换命令行选项[见下面的OPTIONS]。
  --<名称>             通过名称切换命令行选项。
  _<标志>              显示命令行选项的设置。
  __<名称>             通过名称显示选项的设置。
  +cmd                 每次检查新文件时执行less cmd。

  !command             使用$SHELL执行shell命令。
  |Xcommand            将当前位置和标记X之间的文件通过管道传输给shell命令。
  s file               将输入保存到一个文件。
  v                    使用$VISUAL或$EDITOR编辑当前文件。
  V                    打印"less"的版本号。
 ---------------------------------------------------------------------------

					选项

        大多数选项可以在命令行上更改,
        或者在less中使用-或--命令来更改。
        选项可以有两种形式:一个是前面带有-的单个字符,
        另一个是前面带有--的名称。

  -?  ........  --help
                  显示帮助(来自命令行)。
  -a  ........  --search-skip-screen
                  搜索跳过当前屏幕。
  -A  ........  --SEARCH-SKIP-SCREEN
                  搜索开始于目标行之后。
  -b [N]  ....  --buffers=[N]
                  缓冲区数量。
  -B  ........  --auto-buffers
                  不为管道自动分配缓冲区。
  -c  ........  --clear-screen
                  通过清除而不是滚动来重绘。
  -d  ........  --dumb
                  哑终端。
  -D [xn.n]  .  --color=xn.n
                  设置屏幕颜色。(仅限MS-DOS)
  -e  -E  ....  --quit-at-eof  --QUIT-AT-EOF
                  在文件结束时退出。
  -f  ........  --force
                  强制打开非常规文件。
  -F  ........  --quit-if-one-screen
                  如果整个文件适合在第一屏显示,则退出。
  -g  ........  --hilite-search
                  仅高亮显示搜索的最后一个匹配。
  -G  ........  --HILITE-SEARCH
                  不高亮显示任何搜索匹配。
  -h [N]  ....  --max-back-scroll=[N]
                  向后滚动限制。
  -i  ........  --ignore-case
                  在搜索中忽略大小写,前提是搜索不包含大写字母。
  -I  ........  --IGNORE-CASE
                  在所有搜索中忽略大小写。
  -j [N]  ....  --jump-target=[N]
                  目标行的屏幕位置。
  -J  ........  --status-column
                  在屏幕左边缘显示状态列。
  -k [file]  .  --lesskey-file=[file]
                  使用lesskey文件。
  -K  ........  --quit-on-intr
                  响应ctrl-C退出less。
  -L  ........  --no-lessopen
                  忽略LESSOPEN环境变量。
  -m  -M  ....  --long-prompt  --LONG-PROMPT
                  设置提示样式。
  -n  -N  ....  --line-numbers  --LINE-NUMBERS
                  不使用行号。
  -o [file]  .  --log-file=[file]
                  复制到日志文件(仅限标准输入)。
  -O [file]  .  --LOG-FILE=[file]
                  复制到日志文件(无条件覆盖)。
  -p [pattern]  --pattern=[pattern]
                  从命令行开始于模式。
  -P [prompt]   --prompt=[prompt]
                  定义新提示。
  -q  -Q  ....  --quiet  --QUIET  --silent --SILENT
                  静音终端铃声。
  -r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                  输出“原始”控制字符。
  -s  ........  --squeeze-blank-lines
                  压缩多个空白行。
  -S  ........  --chop-long-lines
                  切除(截断)长行而不是包裹。
  -t [tag]  ..  --tag=[tag]
                  查找标签。
  -T [tagsfile] --tag-file=[tagsfile]
                  使用备用的标签文件。
  -u  -U  ....  --underline-special  --UNDERLINE-SPECIAL
                  更改处理退格符的方式。
  -V  ........  --version
                  显示“less”的版本号。
  -w  ........  --hilite-unread
                  在前向屏幕后高亮显示第一条新行。
  -W  ........  --HILITE-UNREAD
                  在任何前向移动后高亮显示第一条新行。
  -x [N[,...]]  --tabs=[N[,...]]
                  设置制表符停止位。
  -X  ........  --no-init
                  不使用termcap初始化/反初始化字符串。
  -y [N]  ....  --max-forw-scroll=[N]
                  前向滚动限制。
  -z [N]  ....  --window=[N]
                  设置窗口大小。
  -" [c[c]]  .  --quotes=[c[c]]
                  设置shell引号字符。
  -~  ........  --tilde
                  不显示文件结束后的波浪号。
  -# [N]  ....  --shift=[N]
                  水平滚动量(0 = 半个屏幕宽度)
                --follow-name
                  如果输入文件被重命名,F命令更改文件。
                --mouse
                  启用鼠标输入。
                --no-keypad
                  不发送termcap键盘初始化/反初始化字符串。
                --no-histdups
                  从命令历史中删除重复项。
                --rscroll=C
                  设置用于标记截断行的字符。
                --save-marks
                  在less的调用中保留标记。
                --use-backslash
                  后续选项使用反斜杠作为转义字符。
                --wheel-lines=N
                  鼠标滚轮每点击一次移动N行。


 ---------------------------------------------------------------------------

                          行编辑

        这些键可以用来编辑在屏幕底部"命令行"上输入的文本。

 右箭头 ..................... ESC-l ... 光标向右移动一个字符。
 左箭头 ...................... ESC-h ... 光标向左移动一个字符。
 ctrl-右箭头  ESC-右箭头  ESC-w ... 光标向右移动一个单词。
 ctrl-左箭头   ESC-左箭头   ESC-b ... 光标向左移动一个单词。
 HOME ........................... ESC-0 ... 光标移动到行首。
 END ............................ ESC-$ ... 光标移动到行尾。
 BACKSPACE ................................ 删除光标左边的字符。
 DELETE ......................... ESC-x ... 删除光标下的字符。
 ctrl-BACKSPACE   ESC-BACKSPACE ........... 删除光标左边的单词。
 ctrl-DELETE .... ESC-DELETE .... ESC-X ... 删除光标下的单词。
 ctrl-U ......... ESC (仅MS-DOS) ....... 删除整行。
 上箭头 ........................ ESC-k ... 检索上一条命令行。
 下箭头 ...................... ESC-j ... 检索下一条命令行。
 TAB ...................................... 完成文件名并循环。
 SHIFT-TAB ...................... ESC-TAB   完成文件名并反向循环。
 ctrl-L ................................... 完成文件名,列出全部。
posted @ 2025-03-02 00:04  三叔测试笔记  阅读(478)  评论(0)    收藏  举报
返回顶部 跳转底部