51fly国际课程 (51fly.win)

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
4 h/ D3 J0 h& h
3 u# c, c2 G7 G5 OLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。/ O2 T: Q* P# r8 K" ]
全文本显示--cat3 m6 Z5 X4 u3 b0 W, i

- b0 A% ^& C3 E* |) Ncat可能是常用的一个文本查看命令了,使用方法也很简单:
6 i  `- l% s8 y% K, n9 ncat file  #全文本显示在终端
; U8 x! D5 Y% N/ [# f/ c  m% l& dcat -n file #显示全文本,并显示行号
) c6 o9 _; ], X  a0 V3 K另外,cat也可用作合并文件:
4 ~; ^  N. _4 Q1 E6 _0 Fcat file1 file2 >file3$ r: `0 s8 r% w% _3 r
该命令将file1 file2的内容合并写到file3中。: E9 l, [8 [6 e7 q# e% Y9 a
倒序显示全文本--tac# H/ H* J9 d  x1 M) N
* u* D7 |/ r  F% K7 E1 N
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
  a0 i5 x- Y1 B1 v9 X+ m( |9 O7 _( etac file
6 }( S" M) ]0 D7 D" X3 F9 S分页显示文本--more5 g( P2 f9 Y4 m: S

/ F0 L. k, |% @8 D' t( ocat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。$ d% ~$ V: ?4 A, M
1.显示内容
) U7 S8 a* v3 F2 q3 \* e/ M
more file5 z  H3 G3 b" v3 {3 X" L6 r) z% p
之后,就可以使用按键来查看文本。常用按键如下:
& o0 F# c$ J8 g4 `回车    #向下n行,默认为1行
, O1 L  o  w' O1 V; ~- Q空格    #向下滚动一屏
; Y. E% E9 W) \. k: f, rb      #向上滚动一屏
. c* B  m4 ]$ q# z=      #输出当前行号
7 Y6 J, T0 e" E: E:f     #输出当前文件名和当前行号% f( E; J# t4 |$ d% `5 O  z: I2 C) N  V
q      #退出
5 }8 @8 ~' I! Q1 {3 A6 N2.从指定行开始显示
/ b' f7 y, x3 K( N- Umore +10 file9 q, J" p8 C: x; I# l# u% g
该命令从第10行开始显示file的内容。( `. ~. T* @7 k* y! I
3.从匹配的字符串行开始显示% Y  J( R: R) H
more +/string file) F$ e: l. n. B) X# w
该命令从有string的行的前两行开始file的内容。
9 o8 c! ?" ~  G2 H- }- D" C任意浏览搜索文本--less& ]/ O* l% g. W) t0 \! b0 J
' D) j- T# L) a1 v& H
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
$ J/ [. B! n  A( v* c7 P1 W) m$ t常见使用方法:
/ p& ~1 ?. D3 E5 y% N" j
less file     #浏览file3 `+ E/ m+ l% a& c8 o
less -N file  #浏览file,并且显示每行的行号
; x  I3 g1 O; E. i, a% ~+ F( Fless -m file  #浏览file,并显示百分比
7 u* f+ u. `4 t常用按键如下:
! c7 v8 Y$ m$ C" of        #向前滚动一屏/ V. r, `% q  Y6 h- g
b        #向后滚动一屏
. X! p+ l9 L& h2 F# V! T* n回车或j   #向前移动一行
- z: D' l; m9 T' }k        #向后移动一行
: U( `! [: U! t  s) ^( Y& G" jG        #移动到最后一行
8 [8 t- u0 }8 d# n/ pg        #移动到第一行
  e$ y' i- P' ^+ A% {1 Z/string  #向下搜索string,n查看下一个,N查看上一个结果0 Z3 v3 j) z$ e7 k
string #向上搜索string,n查看下一个,N查看上一个结果
& S# }4 {, ?' N8 \4 P& q0 f* Tq    #退出9 R: z. x8 |7 q- K1 J' ^
相比more命令,less命令能够搜索匹配需要的字符串。: d! e4 Q2 j, M3 ~1 j1 O
另外,less还能在多个文件间切换浏览:

7 I7 W0 `! ?( O5 F+ rless file1 file2 file3( k2 m# n* a. q4 \
:n     #切换到下一个文件
1 C9 ~/ z# k) J6 A+ q5 b:p     #切换到上一个文件
) Q' ]/ n( c* i* V9 q' d:x     #切换到第一个文件
! ~! S7 {) z: C! Z:d     #从当前列表移除文件  [2 l& {& u5 J1 o
显示文本头部内容--head$ x/ z- O4 j! |" q$ J+ h

% @# U6 w; C8 n* ^, Chead命令的作用就像它的名字一样,用于显示文件的开头部分文本。# }% L: d/ P$ |  N4 f
常见用法如下:
; n9 ^, s0 I* E( E4 U
head -n 100 file #显示file的前100* K/ f5 h* g$ O) j
head -n -100 file #显示file的除最后100行以外的内容。  
1 j& K: A5 d/ `, ]2 T9 j显示文本尾部内容--tail4 V( D, n% e& z; B% u
$ j) P& x( j% z7 c& |
和head命令类似,只不过tail命令用于读取文本尾部部分内容:& h+ \3 v; w# j/ f& [1 L6 t
tail -100 file  #显示file最后100行内容
  W6 h& ^9 a* t1 n% Ntail -n +100 file  #从第100行开始显示file内容   5 H5 B  f9 _/ l+ |" k% u. g2 r& ^
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
! O# a0 N) L7 q+ G/ m; l! O9 dtail -f logFile
0 y3 r1 b: y1 B. ~' e( p5 Z对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
- L# Y" `# z) w# V6 n5 p! {8 e指定顺序显示文本--sort* o8 a7 M& \+ O% C
- u! o! i2 }9 E$ Z
sort可用于对文本进行排序并显示,默认为字典升序。8 E- C0 _8 v2 p: y/ W2 {' ?: f
例如有一段文本test.txt内容如下:

  l2 }: t# k0 yvim  ?% F6 a7 X5 w+ h
count  a) B: P$ p! }# n2 m! Y& v. q$ W7 u
fail
) V7 s6 t, a) R' ^help3 c: K; o8 X) t$ [& F; [  j
help
+ c1 M3 {) A, N  ~1 S3 ^7 q6 A- G# k& Ddead
  \' u& I! o9 A! r2 B  Dapple
& r( P, u* y$ Q  |5 Z- F1.升序显示文本/ k6 j; n- O) \- X* {( G
使用命令:

1 [1 |' K8 C# o: |: I4 Jsort test.txt& P5 @9 P) P7 M4 R, H$ t# S
apple
/ H/ G; m4 ]: ?: V" ~$ Tcount
" _& r7 v+ d! ]% Z( s9 @8 ]7 Vdead
5 {; Z) U8 X& c8 y# f" Efail4 ]' r/ T* l: q% d. {& w: C
help
" V. f/ j! M/ q. A; ?8 Thelp' B$ V+ g! O" A2 H5 _
vim: z  u/ [7 Z  x) V
文本内容将以升序显示。4 |: U9 r$ P, G, q  Z
2.降序显示4 Z& a' P1 G' C, u# Q. L
相关参数-r:

3 C$ j: M, g% U5 y( Y0 D* H$ ^, a/ wsort -r test.txt% _: o8 p$ w0 D/ P3 ^5 D1 c, P; B4 M
vim
0 B; z+ }% w% D7 ]help  i' \9 N5 r" ^- z, I
help" c8 R; o" n. f$ o. Q2 F
fail  {" V& x" R# w# ~5 C2 r* ~
dead
# t" ]' I" F9 s6 Q% e( x! ncount, {7 p" u% _2 T1 X) B
apple
- Y# o3 u* i& B* A3 D- Y3.去掉重复的行3 T6 m7 K. ?  n
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
1 d  }9 S8 Z$ e
sort -u test.txt
1 B: L# E; V! \1 A, Sapple
. |7 [: K2 ^5 e9 Ncount' x" x3 P3 i/ ^; s3 u: n3 u
dead5 S/ X6 [5 ]4 c8 q4 o* f% @; q
fail
( a: T, X! U6 `4 D$ i8 A5 u3 x8 shelp0 |7 y4 G- x* x) S& @) g8 o
vim
) a1 X5 s# O! i2 Y0 g# ]" I, c( G可以看到help行不再重复显示。
& T5 z' O7 m8 Z5 \9 ?' G4.按照数字排序$ q& D; }5 K& v
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
$ k/ [& r. i; r& b; t
sort -n file
  f; y7 y( Z- ]9 S由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
" k$ H) a) J  _/ I# @过滤显示文本--sed6 v6 Z; e. P, l/ z* T% H6 x" o  R' V

3 q: M( ]- d4 Osed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
' |. e1 E. C' s8 s! z/ e1.显示匹配关键字行8 |; t0 m( G9 \: P
有时候查看日志,可能只需要查看包含某些关键字的日志行:

6 X# F- }0 V* _* Z- U8 J2 |sed -n "/string/p" logFile
; z) `1 b1 }3 k1 Z6 |上面的命令表示打印包含string的行。* p: ?0 }: t7 X/ P9 A( W1 A
2.打印指定行
" m. h7 ~+ \1 I5 c* `sed -n "1,5p" logFile #打印第1到5行/ l/ @. L: b8 T0 _
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号6 u' {- h& k- S
sed -n "10p" logFIle  #打印第10行# ?2 y" n1 T- l% u( E5 s
去重显示文本--uniq, [- @  U  |. O. L9 g
1 p! u  y; N$ d  P% l# t% a4 i
常见用法如下:: s0 ~. g% l% `
uniq file  #去除重复的行6 i1 f5 l* h! \+ N# H
uniq -c file #去除重复的行,并显示重复次数
: i4 T1 @! u1 z  v. Vuniq -d file #只显示重复的行
2 P; f# e3 ]! q& Iuniq -u file #只显示出现一次的行% V. {, O6 U" ^+ ^# E, y
uniq -i file #忽略大小写,去除重复的行
# V8 K# J6 G; l! o/ I) m$ xuniqe -w 10 file #认为前10个字符相同,即为重复0 r4 w! I, T1 s9 F& ]6 M; H
文本编辑查看--vi
3 j- n! _6 O6 u9 F, i3 }1 c4 K3 O7 }7 k; J* J" u5 f9 u
查看文件也很简单:
5 M6 h, C" l; P5 \7 g2 nvi file6 {  ?2 n2 l6 F% ]& q; ?3 Q5 Q
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
/ L* G! q" X, a: S/ C9 J' d总结5 Y2 W1 G4 j, X8 \' ?+ C( |  ?

; [1 F" [) o( w文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。- A7 E4 Q+ Y% h5 j- H

微信扫一扫,分享更方便

回复

使用道具 举报

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

本版积分规则

浏览记录|手机版视频|手机版试卷|使用帮助|51fly国际课程 (https://51fly.win)

GMT+8, 2026-4-17 07:46 , Processed in 0.053958 second(s), 32 queries , Redis On.

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