每天一个linux命令(12):more命令
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似) 。more命令从前向后读取文件,因此在启动时就加载整个文件。使用中的说明文件,请按 h
1.命令格式
1
more [-dlfpcsu ] [-num ] [+/pattern] [+linenum] [file ... ]
2.命令功能
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
3.命令参数
1
2
3
4
5
6
7
8
9
10
11
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-l 取消(忽略)遇见特殊字符 ^L(换页)时会暂停的功能
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-c 不通过滚屏来显示,先显示内容在清除之前内容
-s 把连续的多个空行显示为一行
-u 把文件内容中的下划线(underlining)去掉
-<number> 定义屏幕大小为n行 -5
+<number> 从笫n行开始显示 +5
+/<string> 在每个档案显示前搜寻该字串(string),然后从该字串前两行之后开始显示 +/querystring
后面可以跟文件列表
4.常用操作命令
1
2
3
4
5
6
7
8
9
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
5.命令实例
实例1:显示从指定行起的内容
1
more +3 log2012.log
实例2:字符串查找
从文件中查找第一个出现”day3”字符串的行,并从该处前两行开始显示输出
1
more +/day3 log2012.log
然后,如果要在文件中继续搜索下一个,只需要按下/
按钮,后面跟有关键字dhclient。
实例3:设定每屏显示行数
1
2
3
4
5
6
7
8
9
10
11
12
$ more -5 test.txt
this is line 0
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
this is line 6
this is line 7
this is line 8
this is line 9
--More--(54%)
说明:
如上所示, 最下面显示了该屏展示的内容占文件总行数的比例,按 Ctrl+F 或者 空格键 将会显示下一屏5条内容,百分比也会跟着变化。
实例4:用more来分页显示
列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来
1
2
3
4
5
6
7
8
9
10
11
[root@localhost test]# ls -l | more -5
总计 36
-rw-r--r-- 1 root root 308 11-01 16:49 log2012.log
-rw-r--r-- 1 root root 33 10-28 16:54 log2013.log
-rw-r--r-- 1 root root 127 10-28 16:51 log2014.log
lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log
-rw-r--r-- 1 root root 25 10-28 17:02 log.log
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 14:47 test3
drwxrwxrwx 2 root root 4096 10-28 14:47 test4
说明:
每页显示5个文件信息,按 Ctrl+F 或者 空格键 将会显示下5条文件信息。
实例5 提示信息
我们知道,more命令会在显示区域的左下角提示当前内容所占的百分比。对于第一次使用more命令的人来说,他或她可能会想知道怎么才能往下翻页。为了避免这种情况,我们可以在执行时增加-d参数,这样就会额外显示一行用户信息“[按空格键继续,‘q‘推出.]”
1
2
3
4
5
6
7
xxx@ubuntu:~/test$ more -5 -d test7.txt
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
--More--(17%)[Press space to continue, 'q' to quit.]
如果用户按了‘空格‘或’q‘之外的按键,more会显示一行帮助信息“ [按‘h’键查看提示。]”
1
2
3
4
5
6
7
bobo@ubuntu:~/test$ more -5 -d test7.txt
this is line 1
this is line 2
this is line 3
this is line 4
this is line 5
[Press 'h' for instructions.]
如果按下h键,会显示一个帮助信息, 将附录
一个有意思的指令是b按钮,b按钮允许你退回到前面的页面。换句话说,b按钮可以允许向前翻页。
你可以通过左上角的...
前1页信息来确认当前显示的是前面的页面。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
this is line 8
this is line 9
this is line 10
this is line
this is line
...back 1 page
this is line 2
this is line 3
this is line 4
this is line 5
this is line 6
this is line 7
--More--(24%)[Press space to continue, 'q' to quit.]
实例6 二进制文件
不能显示二进制文件. more命令会提示这样的信息,例如:
1
2
3
[ubuntu@ubuntu:~/]$ more /bin/cat
******** /bin/cat: Not a text file ********
[ubuntu@ubuntu:~/]$
6.与less区别
1、操作
more不可以回去,就是不可以向前,只能向后,况且只能使用Enter和Space向后翻动。(版本问题,现在已经可以向前翻动)
less使用vim中的j,k键盘可以上下翻动,还可以使用上下箭头。
2、速度
less不必读整个文件,加载速度会比more更快。
3、内容
less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
7.附录
more 参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
xxx@ubuntu:~$ more --help
more: unknown option -help
Usage:
more [options] <file>...
A file perusal filter for CRT viewing.
Options:
-d display help instead of ringing bell
-f count logical rather than screen lines
-l suppress pause after form feed
-c do not scroll, display text and clean line ends
-p do not scroll, clean screen and display text
-s squeeze multiple blank lines into one
-u suppress underlining
-<number> the number of lines per screenful
+<number> display file beginning from line number
+/<string> display file beginning from search string match
-V display version information and exit
For more details see more(1).
more操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Most commands optionally preceded by integer argument k. Defaults in brackets.
Star (*) indicates argument becomes new default.
-------------------------------------------------------------------------------
<space> Display next k lines of text [current screen size]
z Display next k lines of text [current screen size]*
<return> Display next k lines of text [1]*
d or ctrl-D Scroll k lines [current scroll size, initially 11]*
q or Q or <interrupt> Exit from more
s Skip forward k lines of text [1]
f Skip forward k screenfuls of text [1]
b or ctrl-B Skip backwards k screenfuls of text [1]
' Go to place where previous search started
= Display current line number
/<regular expression> Search for kth occurrence of regular expression [1]
n Search for kth occurrence of last r.e [1]
!<cmd> or :!<cmd> Execute <cmd> in a subshell
v Start up /usr/bin/vi at current line
ctrl-L Redraw screen
:n Go to kth next file [1]
:p Go to kth previous file [1]
:f Display current file name and line number
. Repeat previous command
-------------------------------------------------------------------------------