• 每天一个linux命令(13):less命令


    1、命令简介

    less(less)  命令可以对文件或其它输出进行分页显示,与moe命令相似,但是比more命令要强大许多。应该说是linux正统查看文件内容的工具。

    2、用法

    less  [选项]... [文件]...

    3、选项

    ---------------------------------------------------------------------------
    
                               OPTIONS
    
            Most options may be changed either on the command line,
            or from within less by using the - or -- command.
            Options may be given in one of two forms: either a single
            character preceded by a -, or a name preceeded by --.
    
      -?  ........  --help   显示帮助
      -a  ........  --search-skip-screen
                      Forward search skips current screen.
      -b [N]  ....  --buffers=[N]
                      Number of buffers.  设置缓冲区的大小
      -B  ........  --auto-buffers
                      Don't automatically allocate buffers for pipes.
      -c  -C  ....  --clear-screen --CLEAR-SCREEN
                      Repaint by clearing rather than scrolling.  先清除屏幕后再显示内容
    
      -d  ........  --dumb
                      Dumb terminal.
      -D [xn.n]  .  --color=xn.n
                      Set screen colors. (MS-DOS only)
      -e  -E  ....  --quit-at-eof  --QUIT-AT-EOF
                      Quit at end of file.  当文件显示结束后,自动离开
      -f  ........  --force
                      Force open non-regular files.强迫打开特殊文件,例如外围设备代号、目录和二进制文件
      -F  ........  --quit-if-one-screen
                      Quit if entire file fits on first screen.
      -g  ........  --hilite-search
                      Highlight only last match for searches.不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
      -G  ........  --HILITE-SEARCH
                      Don't highlight any matches for searches.
      -h [N]  ....  --max-back-scroll=[N]
                      Backward scroll limit.
      -i  ........  --ignore-case
                      Ignore case in searches that do not contain uppercase. 忽略搜索时的大小写
      -I  ........  --IGNORE-CASE
                      Ignore case in all searches.
      -j [N]  ....  --jump-target=[N]
                      Screen position of target lines.
      -J  ........  --status-column
                      Display a status column at left edge of screen.
      -k [file]  .  --lesskey-file=[file]
                      Use a lesskey file.
      -L  ........  --no-lessopen
                      Ignore the LESSOPEN environment variable.
    -m  -M  ....  --long-prompt  --LONG-PROMPT
                      Set prompt style.  显示类似more命令的百分比

      -n  ........  --line-numbers
                      Don't use line numbers.
    -N  ........  --LINE-NUMBERS
                      Use line numbers.   显示每行的行号

    -o [file]  .  --log-file=[file]
                      Copy to log file (standard input only). 将less 输出的内容在指定文件中保存起来

      -O [file]  .  --LOG-FILE=[file]
                      Copy to log file (unconditionally overwrite).
      -p [pattern]  --pattern=[pattern]
                      Start at pattern (from command line).
      -P [prompt]   --prompt=[prompt]
                      Define new prompt.
      -q  -Q  ....  --quiet  --QUIET  --silent --SILENT
                      Quiet the terminal bell.
      -r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                      Output "raw" control characters.
      -s  ........  --squeeze-blank-lines
                      Squeeze multiple blank lines. 显示连续空行为一行
      -S  ........  --chop-long-lines
                      Chop long lines.
      -t [tag]  ..  --tag=[tag]
                      Find a tag.
      -T [tagsfile] --tag-file=[tagsfile]
                      Use an alternate tags file.
      -u  -U  ....  --underline-special  --UNDERLINE-SPECIAL
                      Change handling of backspaces.
      -V  ........  --version
                      Display the version number of "less".
      -w  ........  --hilite-unread
                      Highlight first new line after forward-screen.
      -W  ........  --HILITE-UNREAD
                      Highlight first new line after any forward movement.
      -x [N[,...]]  --tabs=[N[,...]]
                      Set tab stops.
      -X  ........  --no-init
                      Don't use termcap init/deinit strings.
                    --no-keypad
                      Don't use termcap keypad init/deinit strings.
      -y [N]  ....  --max-forw-scroll=[N]
                      Forward scroll limit.
      -z [N]  ....  --window=[N]
                      Set size of window.
      -" [c[c]]  .  --quotes=[c[c]]
                      Set shell quote characters.
      -~  ........  --tilde
                      Don't display tildes after end of file.
      -# [N]  ....  --shift=[N]
                      Horizontal scroll amount (0 = one half screen width)

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

    4、支持的操作

    1、MOVING
    ---------------------------------------------------------------------------
    
                               MOVING
    
      e  ^E  j  ^N  CR  *  Forward  one line   (or N lines). 下移一行
      y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines). 上移一行
      f  ^F  ^V  SPACE  *  Forward  one window (or N lines). 下移一屏
      b  ^B  ESC-v      *  Backward one window (or N lines).  回退一屏
      z                 *  Forward  one window (and set window to N).下移一屏 
      w                 *  Backward one window (and set window to N).回退一屏  
      ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.下移一屏
      d  ^D             *  Forward  one half-window (and set half-window to N). 下移半屏
      u  ^U             *  Backward one half-window (and set half-window to N).  回退半屏
      ESC-)  RightArrow *  Left  one half screen width (or N positions).           
      ESC-(  LeftArrow  *  Right one half screen width (or N positions).
      F                    Forward forever; like "tail -f".
      r  ^R  ^L            Repaint screen.
      R                    Repaint screen, discarding buffered input.
            ---------------------------------------------------
            Default "window" is the screen height.
            Default "half-window" is half of the screen height.
     ---------------------------------------------------------------------------
    2 SEARCHING
    ---------------------------------------------------------------------------
    
                              SEARCHING
    
      /pattern          *  Search forward for (N-th) matching line. 使用一个模式进行搜索,并定位到下一个匹配的文本
      ?pattern          *  Search backward for (N-th) matching line. ? : 使用模式进行搜索,并定位到前一个匹配的文本
      n                 *  Repeat previous search (for N-th occurrence).查找下一个匹配的文本
      N                 *  Repeat previous search in reverse direction. 查找上一个匹配的文本
      ESC-n             *  Repeat previous search, spanning files.
      ESC-N             *  Repeat previous search, reverse dir. & spanning files.
      ESC-u                Undo (toggle) search highlighting.
      &pattern          *  Display only matching lines
            ---------------------------------------------------
            Search patterns may be modified by one or more of:
            ^N or !  Search for NON-matching lines.
            ^E or *  Search multiple files (pass thru END OF FILE).
            ^F or @  Start search at FIRST file (for /) or last file (for ?).
            ^K       Highlight matches, but don't move (KEEP position).
            ^R       Don't use REGULAR EXPRESSIONS.
     ---------------------------------------------------------------------------
    3、JUMPING
    ---------------------------------------------------------------------------
    
                               JUMPING
    
      g  < ESC-<        * Go to first line in file (or line N). 跳到第一行 
      G >  ESC->        *  Go to last line in file (or line N).  调到最后一行
      p  %              *  Go to beginning of file (or N percent into file).
      t                 *  Go to the (N-th) next tag.
      T                 *  Go to the (N-th) previous tag.
      {  (  [           *  Find close bracket } ) ].
      }  )  ]           *  Find open bracket { ( [.
      ESC-^F <c1> <c2>  *  Find close bracket <c2>.
      ESC-^B <c1> <c2>  *  Find open bracket <c1> 
            ---------------------------------------------------
            Each "find close bracket" command goes forward to the close bracket 
              matching the (N-th) open bracket in the top line.
            Each "find open bracket" command goes backward to the open bracket 
              matching the (N-th) close bracket in the bottom line.
    
      m<letter>            Mark the current position with <letter>.
      '<letter>            Go to a previously marked position.
      ''                   Go to the previous position.
      ^X^X                 Same as '.
            ---------------------------------------------------
            A mark is any upper-case or lower-case letter.
            Certain marks are predefined:
                 ^  means  beginning of the file
                 $  means  end of the file
     ---------------------------------------------------------------------------
    4、CHANGING FILES
    ---------------------------------------------------------------------------
    
                            CHANGING FILES
    
      :e [file]            Examine a new file.进入编辑模式,使用配置的编辑器编辑当前文件 
      ^X^V                 Same as :e.
      :n                *  Examine the (N-th) next file from the command line. 浏览下一个文件
      :p                *  Examine the (N-th) previous file from the command line. 浏览前一个文件 
      :x                *  Examine the first (or N-th) file from the command line.
      :d                   Delete the current file from the command line list.
      =  ^G  :f            Print current file name.
     ---------------------------------------------------------------------------
    5、MISCELLANEOUS COMMANDS
    ---------------------------------------------------------------------------
    
                        MISCELLANEOUS COMMANDS
    
      -<flag>              Toggle a command line option [see OPTIONS below].
      --<name>             Toggle a command line option, by name.
      _<flag>              Display the setting of a command line option.
      __<name>             Display the setting of an option, by name.
      +cmd                 Execute the less cmd each time a new file is examined.
    
      !command             Execute the shell command with $SHELL. 执行命令
      |Xcommand            Pipe file between current pos & mark X to shell command.
      v                    Edit the current file with $VISUAL or $EDITOR.
      V                    Print version number of "less".
     ---------------------------------------------------------------------------
    6、LINE EDITING
    ---------------------------------------------------------------------------
    
                              LINE EDITING
    
            These keys can be used to edit text being entered 
            on the "command line" at the bottom of the screen.
    
     RightArrow                       ESC-l     Move cursor right one character.
     LeftArrow                        ESC-h     Move cursor left one character.
     CNTL-RightArrow  ESC-RightArrow  ESC-w     Move cursor right one word.
     CNTL-LeftArrow   ESC-LeftArrow   ESC-b     Move cursor left one word.
     HOME                             ESC-0     Move cursor to start of line.
     END                              ESC-$     Move cursor to end of line.
     BACKSPACE                                  Delete char to left of cursor.
     DELETE                           ESC-x     Delete char under cursor.
     CNTL-BACKSPACE   ESC-BACKSPACE             Delete word to left of cursor.
     CNTL-DELETE      ESC-DELETE      ESC-X     Delete word under cursor.
     CNTL-U           ESC (MS-DOS only)         Delete entire line.
     UpArrow                          ESC-k     Retrieve previous command line.
     DownArrow                        ESC-j     Retrieve next command line.
     TAB                                        Complete filename & cycle.
     SHIFT-TAB                        ESC-TAB   Complete filename & reverse cycle.
     CNTL-L                                     Complete filename, list all.
    ---------------------------------------------------------------------------

    5、示例

    1、查看文件
    [root@oracledb log]# less  boot.log
    2、查看命令历史使用记录并通过less分页显示
    [root@oracledb ~]# history|less
    
    
    
    
        1  yum update
        2  vi /etc/sysconfig/network
        3  vi /etc/sysconfig/network-scripts/ifcfg-eth0 
        4  service network restart
        5  ipconfig
        6  ifconfig
        7  clear
        8  yum update
        9  clear
       10  yum update
    3、less -s file 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。
    [root@oracledb study]# less 
     -s test.log 
    2016
    2017
    
    2018前面有两空行

    4、less进行中执行命令!ifconfig

    [root@oracledb ~]# history|less
    eth5      Link encap:Ethernet  HWaddr 08:00:27:60:11:C4  
              inet addr:172.17.22.31  Bcast:172.17.23.255  Mask:255.255.254.0
              inet6 addr: fe80::a00:27ff:fe60:11c4/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:61468 errors:0 dropped:0 overruns:0 frame:0
              TX packets:23800 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:67329469 (64.2 MiB)  TX bytes:1645628 (1.5 MiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:16 errors:0 dropped:0 overruns:0 frame:0
              TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:1584 (1.5 KiB)  TX bytes:1584 (1.5 KiB)
    
    !done  (press RETURN)
    5、根据模式查找字符串,输入斜杠 /模式字符串 回车进行查找,n和N控制向上和向下查找
    # Mandatory: no
    # Range: 60-3600
    # 上面为more的显示内容
    
    /Hostname=Zabbix server

    查找出的结果在最上面显示

    ...skipping
    # Hostname=
    
    Hostname=Zabbix server
    
    ### Option: HostnameItem
    #    Item used for generating Hostname if it is undefined. Ignored if Hostname is defined.
    #    Does not support UserParameters or aliases.
    6:浏览多个文件
    正在浏览一个文件时,使用 :e 打开另一个文件。
    [root@zabbix zabbix]# less zabbix_server.log
    30473:20160419:202118.691 active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)
     30473:20160419:223818.547 active check configuration update from [127.0.0.1:10051] is working again
     30473:20160423:152419.606 active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)
     30473:20160423:153119.727 active check configuration update from [127.0.0.1:10051] is working again
    Examine: zabbix_agentd.log

    7:  浏览多个文件

    [root@zabbix zabbix]# less zabbix_server.log zabbix_agentd.log
     20911:20160417:041935.968 slow query: 3.220461 sec, "commit;"
     20913:20160417:041935.982 slow query: 3.092948 sec, "commit;"
    zabbix_server.log (file 1 of 2)

    输入:n后,切换到zabbix_agentd.log

    [root@zabbix zabbix]# less zabbix_server.log zabbix_agentd.log 
    30473:20160419:223818.547 active check configuration update from [127.0.0.1:10051] is working again
    30473:20160423:153119.727 active check configuration update from [127.0.0.1:10051] is working again
    
    
    zabbix_agentd.log (
    file 2 of 2) (END)

    输入:p 后,切换到zabbix_server.log

    8 less 版 tail –f  动态查看日志文件

    使用 less file-name 打开日志文件,按 F 可以实现类似 tail -f 的效果。按ctrl+c退出。

    [root@oracledb ~]# 
    less
      log.txt

    按F,出现 Waiting for data... (interrupt to abort)

    2014
    2015
    2016
    2017
    Waiting 
    for data... (interrupt to abort)

    在另一个窗口更改文件内容

    [root@oracledb ~]# echo "2018" >> log.txt

    less 动态输出新增的内容

    2014
    2015
    2016
    2017
    2018
    Waiting for data... (interrupt to abort)

    ctrl+c 退出

    2014
    2015
    2016
    2017
    2018
    Line numbers turned off  (press RETURN)
  • 相关阅读:
    设计模式之迭代器与组合模式(三)
    设计模式之迭代器与组合模式(二)
    设计模式之迭代器与组合模式(一)
    设计模式之模板方法模式(一)
    设计模式之模板方法模式(三)
    设计模式之模板方法模式(二)
    Spring Cloud微服务初探
    设计模式之适配器模式与外观模式(二)
    设计模式之适配器模式与外观模式(一)
    设计模式之命令模式(三)
  • 原文地址:https://www.cnblogs.com/xqzt/p/5424866.html
Copyright © 2020-2023  润新知