每天一个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)
上一篇:RxJS之BehaviorSubject


下一篇:commons.fileupload简单应用