无忧得胜-网上国际课程 (5edu.win)

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

Linux常用命令--文本查看篇

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
+ C% A( r" E: Z3 Q% ?
5 c, N1 q: V0 H0 ]3 j' tLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。, E' j. H( Y1 a: m* W9 G4 d
全文本显示--cat
' ^8 B4 o% g! b  b. m& ~. d  c* b  j( p  P7 H" d( e7 B
cat可能是常用的一个文本查看命令了,使用方法也很简单:8 G* t! t. w0 o8 F% B5 m
cat file  #全文本显示在终端0 f3 }& E! m9 g
cat -n file #显示全文本,并显示行号$ z$ }' e0 }, {/ ]
另外,cat也可用作合并文件:
8 S. m9 c6 k7 S! }6 N) Ucat file1 file2 >file3
6 {9 N& U9 C+ W3 @该命令将file1 file2的内容合并写到file3中。
; x* b. v) l$ P倒序显示全文本--tac
; o' V- [( h3 J6 {: V" s
/ P8 L5 z) O7 ~3 g) \tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。, Z3 H6 @9 e  J$ ]; H+ S
tac file) w- N& s( a3 i0 \* t
分页显示文本--more
$ [. d' i- ]. j7 D5 \$ [. }2 u4 x# W
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
! _9 J2 W/ D7 I& F6 F1 S; m6 H1.显示内容

& W% H- O( d+ P4 s; T8 t; Bmore file- I" K* z4 h' m
之后,就可以使用按键来查看文本。常用按键如下:
, g# p) _& y) c, ^) @回车    #向下n行,默认为1行+ Y8 X! V$ A* b) @% u  g3 u
空格    #向下滚动一屏
# J. i. N- |- y& A6 s7 jb      #向上滚动一屏* X, S" u% k. e% y+ O9 j
=      #输出当前行号) v( K- s' c  u$ u7 w. i5 `, F
:f     #输出当前文件名和当前行号
+ n) C2 ~9 B. ?; P, {! @- I$ iq      #退出5 X  K' k6 N; z  q1 P4 K- x
2.从指定行开始显示
: Z, H" ^) q7 `: r; dmore +10 file
3 u  w% s1 K& C) r  f. K- p0 l$ q该命令从第10行开始显示file的内容。
9 @4 `% d; i5 w* X$ D2 ~4 a3.从匹配的字符串行开始显示! F- O3 ]& Q& U: E  a
more +/string file
( b0 Z! y% z: B+ v该命令从有string的行的前两行开始file的内容。
! R! ]1 D( L; C任意浏览搜索文本--less
! \  I- Q" X: G
  }9 R# v+ a! s6 G5 Tless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
- u, j4 }) t# z+ o" k# u常见使用方法:

7 V4 I! V  Y6 s; m1 Nless file     #浏览file7 k0 x9 \; M/ g. \4 G
less -N file  #浏览file,并且显示每行的行号8 [2 G' c# q5 x" P
less -m file  #浏览file,并显示百分比' W7 X) X0 z* P, |# r+ v
常用按键如下:4 ~3 j, \+ E3 k8 J, i) t0 }$ v
f        #向前滚动一屏0 @! Z; ~6 ^7 b$ K1 B/ y
b        #向后滚动一屏
" L% y% a* E/ ~2 Q5 _* p回车或j   #向前移动一行
# f8 ^, J6 b& T; ]k        #向后移动一行
! ]) r1 Z- T8 u: o/ }( E! yG        #移动到最后一行4 A+ F$ A, ^5 `1 H" ~0 b3 @
g        #移动到第一行7 ?7 p( H5 C# J/ |; a0 D
/string  #向下搜索string,n查看下一个,N查看上一个结果
. w* M! w0 P- y4 r  lstring #向上搜索string,n查看下一个,N查看上一个结果+ m. ~8 ]3 R% ?2 j2 f
q    #退出
+ R7 x, @! t7 F& d( v# D相比more命令,less命令能够搜索匹配需要的字符串。5 e( E# g+ o( D- W4 }" `9 l
另外,less还能在多个文件间切换浏览:
  N5 T. g1 o6 _  }4 J; i: y
less file1 file2 file30 d4 k5 {6 u3 k9 F& e8 e1 y. }( b
:n     #切换到下一个文件
) \- x. c' }' [  e( n' c/ N* |& d:p     #切换到上一个文件
6 b" F! t6 I- v:x     #切换到第一个文件
" u, s' A- `6 \, _:d     #从当前列表移除文件+ Y8 ]  ?0 e/ K5 x( d
显示文本头部内容--head
5 Q' ~  s( ~9 e3 p9 C5 A8 x: o& N: H( f- T
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
+ |2 e1 n9 U7 {- |; g常见用法如下:

1 p! {5 I* I$ S( d# V& Hhead -n 100 file #显示file的前100
8 @! c2 D4 \4 `head -n -100 file #显示file的除最后100行以外的内容。  
& T+ w+ L8 i* h8 @& G* s$ Z显示文本尾部内容--tail. t, M( Y/ ?4 A: f2 T# Q' K

9 [! Y" U2 y- e( _7 _1 l$ a2 X和head命令类似,只不过tail命令用于读取文本尾部部分内容:. @/ ]) s, Z& N# @. I
tail -100 file  #显示file最后100行内容
% ]5 f* H! B; s8 S5 K9 C# Otail -n +100 file  #从第100行开始显示file内容   
9 z/ |& {# o4 f6 N1 ctail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
6 m3 o- P, ]* V. z0 Etail -f logFile3 ?" X5 `) T0 V2 L! f
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
5 z; K. K7 ?* K7 l3 w6 Z! o& h指定顺序显示文本--sort
# l4 X1 H/ A( O8 |- C
  I& u' a+ A$ }5 V+ Y8 l  ?, Gsort可用于对文本进行排序并显示,默认为字典升序。5 Z( b/ r7 V. E6 Q
例如有一段文本test.txt内容如下:
* V6 z, J3 }4 `: C  K5 ^* k3 ]# @) ^
vim" Y2 V0 O6 O6 k* Q
count
' K( @: ]/ s' \: O; `2 ^) H$ Afail; o2 d! C' x- n5 n2 z/ T+ z
help
9 z; ?2 T9 b! W; V. ghelp
6 Q8 j! c. v7 `6 [' Xdead+ X. X* u) H# w9 ?1 w) q9 `
apple
+ w5 _0 s% V" |/ w4 q" J1.升序显示文本
. C, t' P( N) ~5 C8 \使用命令:

$ _2 @& C) u0 |; Jsort test.txt# T9 ]: d& \4 m& M
apple
, U- ?: J" a) s- m, V! h: _! Z& dcount+ b& |" o8 C4 t% m( i4 x% b: h# ]8 P
dead+ J' T3 w* I+ S7 w1 d
fail- ~3 V* v. ]: P9 j# W7 t  q5 K0 n
help
7 d) c3 Y  [$ C; ^7 A; h8 Xhelp
1 @" N* ~+ q& b& j" Kvim
  E4 i' b3 X3 F% x1 m文本内容将以升序显示。
/ m. r% Q. `& {$ Y. s$ e: c5 e$ n+ R2.降序显示
: M, U8 p6 Q" u  M6 L6 S* ^相关参数-r:
# z! ]2 C: [) h1 |
sort -r test.txt$ U# Q0 y. [3 `. p+ f( ?
vim) l5 P6 s4 `& @; Y2 k# @2 `% s
help0 D: Y: U- ~% W1 o  ]7 e
help
6 j' z, n1 D2 Q$ lfail7 N4 `  w) \% U  S  |2 {
dead
7 R6 f& q8 }2 s: Y/ Acount3 _  e( o5 ~" d% _% D7 Q
apple
% l4 R- X4 A0 l1 M9 }$ f3.去掉重复的行
" g2 S) L- |* m# Z/ _6 ?我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
3 x$ n) z4 ^4 D+ }2 ^/ x8 @
sort -u test.txt
: L) r3 T8 p" Z$ d7 }, ~; r. F6 oapple3 i0 ^' R3 u% }( y/ n8 d
count& B% @: Z5 |- V/ V, _4 V! w. p3 R, K
dead6 ^5 t6 [  i$ [* d
fail
7 O7 a! }" f' T' Vhelp
  b1 {2 T! c* i& f: a( N" ]vim) y2 b& D( E9 M
可以看到help行不再重复显示。
* _( p; O- G0 L$ [/ E2 N4.按照数字排序3 [- U+ |/ [# j2 _0 t, m
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

! |/ D- Z: D0 ^- G3 `% W2 C; ]sort -n file
. y6 e6 j8 O1 x: k由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。: Q+ J3 d; s) P7 o  s
过滤显示文本--sed+ o" T+ G; F) w3 A/ o& p- F

% O3 p) }+ D9 _: xsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。7 v" m- U% Z2 i) J+ D
1.显示匹配关键字行$ U; ^( U0 Z- @
有时候查看日志,可能只需要查看包含某些关键字的日志行:
6 ?) H; `# z, r6 x0 ~
sed -n "/string/p" logFile- ^2 M$ _7 Q& d
上面的命令表示打印包含string的行。7 L% R& s- l3 E! y7 r; {/ ]5 R; y
2.打印指定行
/ d& ^. L' @6 {1 F& lsed -n "1,5p" logFile #打印第1到5行: B+ d! }1 u% u! K. ^
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号# i) A; U7 X" q( {4 s3 B# [# M+ f
sed -n "10p" logFIle  #打印第10行3 ~2 j, j- b/ |5 m3 N
去重显示文本--uniq
* l' f' B. g. ]( G& I! j/ i5 F1 u
/ h) R9 j: W1 V; f6 t( q" o常见用法如下:- k: N+ b" U/ Q" u
uniq file  #去除重复的行
( I/ [+ I- X$ J! U  _( q1 ^  n; u/ Euniq -c file #去除重复的行,并显示重复次数
# j5 i3 A: Q5 M/ s& h% b( e4 puniq -d file #只显示重复的行  `! k8 a8 f1 F" H
uniq -u file #只显示出现一次的行9 I3 t& n( [1 h* Y9 `' F' h
uniq -i file #忽略大小写,去除重复的行
" e( w9 T0 }7 _" Juniqe -w 10 file #认为前10个字符相同,即为重复
/ z5 {( r- ^5 {8 X, H3 z7 j* \6 D; W文本编辑查看--vi" y7 G0 s( h$ i
  b, y( Q% u, o( q% b
查看文件也很简单:
7 p0 a5 }+ n# e7 xvi file8 E7 r9 |! G8 ]& z* {8 `
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
4 Z& \$ T) Q& L% V0 f4 E( [3 a' a总结5 [2 j7 B# {2 K, ^2 P

- s! I$ R; R/ w& b) _文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。" _' S; W& i6 L, l( J; i

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

浏览记录|手机版首页|手机版试卷|使用帮助|无忧得胜-网上国际课程 (https://5edu.win)

GMT+8, 2025-12-11 22:11 , Processed in 0.069749 second(s), 33 queries , Redis On.

搜索
快速回复 返回顶部 返回列表