less 命令: 查看文件内容

  • less 命令: 查看文件内容已关闭评论
  • 199 次浏览
  • A+
所属分类:linux技术
摘要

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。而使用 more 命令浏览文件内容时,只能不断向后翻看。


less 命令: 查看文件内容

概念

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。而使用 more 命令浏览文件内容时,只能不断向后翻看。

介绍

  • 用法:

    less [OPTION]... [FILE]...

  • 常用参数:

    1. 常用选项及含义

      Key Value
      -N 显示每行的行号。
      -S 行过长时将超出部分舍弃。
      -e 当文件显示结束后,自动离开。
      -g 只标志最后搜索到的关键同。
      -Q 不使用警告音。
      -i 忽略搜索时的大小写。
      -m 显示类似 more 命令的百分比。
      -f 强迫打开特殊文件,比如外围设备代号、目录和二进制文件。
      -s 显示连续空行为一行。
      -b <缓冲区大小> 设置缓冲区的大小。
      -o 将 less 输出的内容保存到指定文件中。
      -x [num] 将【Tab】键显示为规定的数字空格。
    2. 交互指令及功能

      Key Value
      /pattern 向下搜索 “pattern” 的功能。
      ?pattern 向上搜索 “pattern” 的功能。
      n 重复*前一个搜索(与 / 成 ? 有关)。
      N 反向重复前一个搜索(与 / 或 ? 有关)。
      h | H 显示帮助界面。
      q | Q | ZZ 退出 less 命令。
      G 移动至 “首行”。
      g 移动至 “尾行”。
      j | e 向下移动一行。
      k | y 向上移动一行。
      d | Ctrl-d 向下移动半页。
      u | Ctrl-u 向上移动半页。
      f | Ctrl-f | z 向下移动一页。
      b | Ctrl-b | w 向上移动一页。
      v 使用配置的编辑器编辑当前文件。
      F 永远向前;像 "tail -f"。
      m letter 用 letter 标记当前顶行。
      'letter 转到一个先前标记 letter 的位置。
      '' 转到之前的位置。
      ESC-M letter 清除一个标记。

栗子

  1. 查看文件

    less log1.log

    Tips:

    • 可以按大写 F,就会有类似 tail -f 的效果,读取写入文件的最新内容, 按 ctrl+C 停止。
    • 可以按 v 进入编辑模型, shift+ZZ 保存退出到 less 查看模式。
    • 使用参数 N 可以显示行号;
  2. 分页显示“进程信息”或“历史记录”

    ps -ef | less
    history | less

  3. 浏览多个文件

    less log2.txt log3.txt

    Tips:

    • :n: 切换到 log2.txt
    • :p: 切换到 log3.txt
    • :e log3.txt 打开新文件log3.txt

less 参数大全

UMMARY OF LESS COMMANDS(Less命令的摘要)

标有*的命令可以在前面加上一个数字,N。

括号中的注释表示如果给定了N的行为。

前面有一个圆点的键表示Ctrl键,因此^K是ctrl-K。

h H                   显示此帮助。 q :q Q :Q ZZ          退出。 

MOVING(移动)

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                    重新绘制屏幕,丢弃缓冲输入。          ---------------------------------------------------         默认的 "窗口 "是屏幕的高度。         默认的 "半窗 "是屏幕高度的一半。 

SEARCHING(检索)

/pattern          *  向前搜索(_N-th)匹配的行。 ?pattern          *  向后搜索(第_N次)匹配的行。 n                 *  重复之前的搜索(第_N次出现)。 N                 *  以相反的方向重复之前的搜索。 ESC-n             *  重复先前的搜索,跨越文件。 ESC-N             *  重复先前的搜索,反方向搜索,并跨越文件。 ESC-u                撤销(切换)搜索高亮显示。 ESC-U                清除搜索高亮显示. &pattern          *  只显示匹配行。          ---------------------------------------------------         一个搜索模式可以以下列一项或多项开始。         ^N 或 !  搜索不匹配的行。         ^E 或 * 搜索多个文件(通过文件末尾)。         ^F 或 @ 从第一个文件(对于 /)或最后一个文件(对于 ?)开始搜索。         ^K 突出显示匹配的文件,但不移动(保留位置)。         ^R 不使用常规表达式。         ^W 如果没有找到匹配,则进行WRAP搜索。 

JUMPING(跳转)

g  <  ESC-<       *  转到文件的第一行(或第N行)。 G  >  ESC->       *  转到文件的最后一行(或第N行)。 p  %              *  转到文件的开头(或文件的N%)。 t                 *  转到(N-th)下一个标签。 T                 *  转到前一个标签(N-th)。 {  (  [           *  找出闭合括号 } ) ]. }  )  ]           *  查找大括号 { ( [. ESC-^F <c1> <c2>  *  查找封闭括号 <c2>. ESC-^B <c1> <c2>  *  查找开放括号 <c1>。          ---------------------------------------------------         每条 "查找括号" 命令都会前进到与顶行中(第N个)开放括号相匹配的括号处              匹配顶行中的(第N个)开放括号。         每条 "查找开括号" 命令都会向后移动到开括号              匹配底行的(第N个)封闭括号。   m<letter>            用<letter>标记当前顶行。 M<letter>            用<letter>标记当前的底行。 '<letter>            转到一个先前标记的位置。 ''                   转到之前的位置。 ^X^X                 与'相同。 ESC-M<letter>        清除一个标记。          ---------------------------------------------------         一个标记是任何大写或小写的字母。         某些标记是预定义的:             ^ 表示文件的开始             $ 表示文件的结束 

CHANGING FILES(改变文件)

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

MISCELLANEOUS COMMANDS(其他命令)

  -<flag>              切换一个命令行选项[见下面的 OPTIONS]。   --<name>             按名称切换一个命令行选项。   _<flag>              显示一个命令行选项的设置。   __<name>             按名称显示一个选项的设置。   +cmd                 每次检查一个新文件时,执行 less cmd。    !command             执行带有 $SHELL 的 shell命令。   |Xcommand            在当前位置和 标记X 之间管文件到 shell命令。   s file               将输入内容保存到文件中。   v                    用 $VISUAL 或 $EDITOR 编辑当前文件。   V                    打印 "less "的版本号。 

OPTIONS(选项)

大多数选项可以在命令行上改变。

或者在 less 中使用 - 或 -- 命令来改变。

选项可以以两种形式之一给出:要么是以"-"开头的单个字符,要么是以"--"开头的名称。

  -?  ........  --help                   显示帮助(来自命令行)。   -a  ........  --search-skip-screen                   搜索跳过当前屏幕。   -A  ........  --SEARCH-SKIP-SCREEN                   搜索从目标行后开始。   -b [N]  ....  --buffers=[N]                   缓冲区的数量。   -B  ........  --auto-buffers                   不要自动为管道分配缓冲区。   -c  ........  --clear-screen                   通过清除而不是滚动来重新绘制。   -d  ........  --dumb                   哑巴终端。   -D xcolor  .  --color=xcolor                   设置屏幕颜色。   -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   .  --lesskey-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   .  --log-file=                   拷贝到日志文件(仅标准输入)。   -O   .  --LOG-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 init/deinit 字符串。   -y [N]  ....  --max-forw-scroll=[N]                   向前滚动的限制。   -z [N]  ....  --window=[N]                   设置窗口的大小。   -" [c[c]]  .  --quotes=[c[c]]                   设置外壳引号字符。   -~  ........  --tilde                   不在文件结尾处显示蒂尔德。   -# [N]  ....  --shift=[N]                   设置水平滚动量(0=二分之一屏幕宽度)。                 --file-size                   自动确定输入文件的大小。                 --follow-name                   如果输入文件被重新命名,F命令会改变文件。                 --incsearch                   在输入每个模式字符时搜索文件。                 --line-num-width=N                   将-N行号字段的宽度设置为N个字符。                 --mouse                   启用鼠标输入。                 --no-keypad                   不发送termcap键盘初始/退出字符串。                 --no-histdups                   从命令历史中删除重复的命令。                 --rscroll=C                   设置用于标记截断行的字符。                 --save-marks                   在调用less的过程中保留标记。                 --status-col-width=N                   将-J状态栏的宽度设置为N个字符。                 --use-backslash                   后面的选项使用反斜杠作为转义符。                 --use-color                   启用彩色文本。                 --wheel-lines=N                   每点击一次鼠标滚轮,就会移动N行。 

LINE EDITING(行编辑)

这些键可以用来编辑正在输入的文本

在屏幕底部的 "命令行 "上编辑文本。

 RightArrow ..................... ESC-l ... 将光标向右移动一个字符。  LeftArrow ...................... ESC-h ... 将光标向左移动一个字符。  ctrl-RightArrow  ESC-RightArrow  ESC-w ... 将光标向右移动一个字。  ctrl-LeftArrow   ESC-LeftArrow   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 only) ....... 删除整行。  UpArrow ........................ ESC-k ... 检索前一个命令行。  DownArrow ...................... ESC-j ... 检索下一个命令行。  TAB ...................................... 完成文件名和循环。  SHIFT-TAB ...................... ESC-TAB   完成文件名和反向循环。  ctrl-L ................................... 完成文件名,列出所有文件。