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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
7 K) C3 O, j7 R6 B2 t* O7 z8 G2 S. S
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
) h- z" {3 a- o1 F: n& V3 ^6 g* n全文本显示--cat  F% _3 ]4 }* u! i4 P) u) Z0 I

( w# e0 R6 R' \5 n# hcat可能是常用的一个文本查看命令了,使用方法也很简单:7 T! k4 s* @1 w2 r$ C5 j2 j. M& h
cat file  #全文本显示在终端. V1 Q* |/ z3 y( f6 v
cat -n file #显示全文本,并显示行号+ P8 }! b7 U6 j! r! f
另外,cat也可用作合并文件:
/ h, M2 U# ^+ p9 A: `cat file1 file2 >file3+ V- T" C. k: I
该命令将file1 file2的内容合并写到file3中。
  N& \$ p/ T- N8 y  `8 S! `$ M- t倒序显示全文本--tac: ^9 s. k' y% _2 f
, y% Y/ Q3 J1 o# N  f
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
0 L5 }0 n  \) i# J+ S8 Rtac file( d. u8 T& O3 g
分页显示文本--more
1 o' K  |6 z' a7 N3 |! t( C# P* f1 u
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
' R/ p0 F6 g: C5 s+ Z& v1.显示内容
. d' |  B2 v8 w! H$ ^/ i9 t
more file9 N/ o- s; J: w, Z2 d' J
之后,就可以使用按键来查看文本。常用按键如下:! I, m2 a& g2 W$ [9 m  V& o1 }# T
回车    #向下n行,默认为1行' U1 g; [( u# }, ^& }
空格    #向下滚动一屏
3 ^( y' ?5 _( Lb      #向上滚动一屏2 O! w  D/ F1 f" D6 u4 b
=      #输出当前行号
/ Y7 {+ W6 |; O# v$ Z8 o:f     #输出当前文件名和当前行号2 P, E% n. Y. C8 p5 |; {
q      #退出2 [7 I' B3 ^8 d. J* X0 n+ j
2.从指定行开始显示
" W( {7 d2 x  x, Xmore +10 file) G2 I5 g* `  W4 {6 J% a
该命令从第10行开始显示file的内容。. d. I, K! w/ ~' E; @
3.从匹配的字符串行开始显示
( V6 Y9 [9 K5 g5 ?5 Q3 c, bmore +/string file- o! Y2 y" x. J0 j( I1 t
该命令从有string的行的前两行开始file的内容。
: d; C8 h8 D; s2 b/ c: n# [) H任意浏览搜索文本--less/ l5 m* d/ r4 O" n( k- O

( ?/ v7 G1 y8 Z& {; Q" w6 Y/ pless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
6 }. W# x9 D4 [常见使用方法:

3 Y/ w; i# n. n% c* u$ Yless file     #浏览file4 w; L3 k/ N% I" \1 r8 R
less -N file  #浏览file,并且显示每行的行号% W0 \6 T* U6 V# A2 S
less -m file  #浏览file,并显示百分比
' {+ {3 ^7 r3 }! Y7 @常用按键如下:
: q6 @* Q7 A. l9 R$ ef        #向前滚动一屏
% o; G# p2 Q) _3 c! }" M( nb        #向后滚动一屏7 a9 W1 A  [& \0 v' U0 u
回车或j   #向前移动一行
" R. n) |$ n4 s) z0 |3 M! R  n0 mk        #向后移动一行
( p4 W: G# S2 i4 }( r- r! U7 @G        #移动到最后一行
: g( I3 V( {* X/ Q( k  [: D6 P* Jg        #移动到第一行8 q5 z' w4 ?5 p1 b
/string  #向下搜索string,n查看下一个,N查看上一个结果
1 i9 ?$ }" Q4 d+ ~3 Ystring #向上搜索string,n查看下一个,N查看上一个结果- @% \4 T6 _' S' h1 P/ Q4 k  P5 Z
q    #退出: h1 ^9 `* D5 C+ v: @
相比more命令,less命令能够搜索匹配需要的字符串。: m4 q. d; U! @. v8 O+ S
另外,less还能在多个文件间切换浏览:

+ s3 |- _( W3 R; \" A) K  S8 N6 D9 T. Vless file1 file2 file34 ]+ c2 ?8 p: e4 ?9 X6 c
:n     #切换到下一个文件
# _3 ]+ D1 c6 B  c; P" M$ @5 e:p     #切换到上一个文件6 S/ f5 z! C6 I# E+ ?. g
:x     #切换到第一个文件
) \% B5 S3 r8 I: G# v% q1 `:d     #从当前列表移除文件4 t$ \4 m# ^+ g  j8 m+ F; i
显示文本头部内容--head
% P9 @0 J1 `) W- X% k% o. O; P3 ^8 @% y" C1 v# v6 |: B, |& f5 x
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。! X4 U" B) S2 Y% I" w$ ]
常见用法如下:

  `  v2 C+ v' }' Chead -n 100 file #显示file的前100
. Q5 T& w; p" ^' Ahead -n -100 file #显示file的除最后100行以外的内容。  " x+ l6 c) Y) C
显示文本尾部内容--tail$ |( F1 S1 g# O9 c( W

1 h: z8 q* K/ `8 b5 m和head命令类似,只不过tail命令用于读取文本尾部部分内容:1 l& @4 ~* B) \9 W1 q: A2 L$ _
tail -100 file  #显示file最后100行内容" N$ y, Q/ u: Q' T. g7 q
tail -n +100 file  #从第100行开始显示file内容   % ~; I6 Y! k# V. D1 g4 \
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
$ J" q- C$ S4 s% Q' m/ o3 ytail -f logFile
. O  O$ s6 l1 k& h) d5 }, R对于更新的日志内容,会实时打印到终端上,方面查看实时日志。% @0 r. i! a4 n) b+ j
指定顺序显示文本--sort
3 b4 t& O( }; @( m) s4 L6 v4 l  }! [2 g
sort可用于对文本进行排序并显示,默认为字典升序。
( `$ v+ G3 i8 Y8 J" S' U例如有一段文本test.txt内容如下:

0 J! `, ~( a5 \& y# M* A6 `vim2 J- t) T; V4 W$ r! w# j- B
count( B2 a$ Q( z% f4 K* L0 x% e: }
fail
. x0 H9 j6 V# m8 v2 l/ M8 b( J; Thelp
) e! U+ t1 J6 S% {% n# F8 h, ~- a' Zhelp
4 ~) V7 D3 {+ j. H& F- Tdead, p: i8 y6 P3 w- \
apple" B0 V5 R! Y4 G- ?9 y( I. b/ q
1.升序显示文本
' I( V; ~( n  j0 o; }使用命令:

7 d) T0 c. Y7 y$ j" h1 E* j- R! bsort test.txt
( S7 b4 G( z$ S. N1 A5 t& @+ Gapple
1 q3 e, E  A/ q  Z! dcount% b2 M% K* M3 v& M
dead
4 K8 N) ]/ x  ^# q/ m, Xfail
- F% S- d0 ^- o5 P+ w. [+ _9 ]help+ t7 o2 Q- ^& Q/ }- L7 d8 y
help/ T8 m3 {6 v( k& I
vim
. u" \. J5 d  T( I3 \) a! u% U* ?文本内容将以升序显示。* e! }+ i7 M: q* \! k9 n, W
2.降序显示
+ {( q  i+ U7 A# Z相关参数-r:
' }# b' l; u- A/ L5 q' N5 K
sort -r test.txt! r6 X4 J0 k8 ^- ^* ^7 h- r- s5 Z! ]
vim
& o( ~. Z* }( _: bhelp4 _& {& \3 B+ e3 c! F8 u* U
help
6 O$ d, _- S9 A- G& y0 Qfail$ W5 s) z5 B2 X( K
dead" o& A$ C4 I7 t
count' M/ n2 ]1 N9 ~$ R; B( ?
apple0 \( ?1 z3 v* G7 W0 _# Y
3.去掉重复的行, j1 @7 i+ p' r# t- z9 @
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

# W( E, Y- @9 [$ y9 Msort -u test.txt
/ m- T& N7 W0 K+ l- ?! U# c  p" japple7 Z& U4 A1 N. v
count
: [, w5 k3 b9 p2 z. Edead
* J$ O' y2 R6 A5 z  Y" v" J: G9 F1 u# nfail
( \8 D/ g# I$ d; V8 v/ G' o1 _2 thelp7 S( u) O3 S" ?7 E# |- O
vim* t5 B2 Q+ Y& A' V# {
可以看到help行不再重复显示。
  j1 b$ L- T5 }( B' s* s/ z0 ]4.按照数字排序* r, d9 v  {" w# ^
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

8 b; g, c- F  q; ^7 Hsort -n file5 T1 X0 H0 N4 f: J; I
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
& s# Q/ {6 D6 U6 f* U5 n& h过滤显示文本--sed
" y" r9 \& r/ L8 i7 Y! p8 I  q4 z  e, e  h
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。, X  d; T% t8 {  c% N& N
1.显示匹配关键字行1 P  R7 ?. ~4 z7 H9 h
有时候查看日志,可能只需要查看包含某些关键字的日志行:
; y( D) A2 k0 ?) C$ n6 r; t
sed -n "/string/p" logFile; M% Y$ d, V( r6 j$ ^
上面的命令表示打印包含string的行。
7 K$ K* f. L- w7 y( b0 ?( Y2.打印指定行
% k3 T* g/ i3 g3 {+ x3 Csed -n "1,5p" logFile #打印第1到5行0 H! J1 y* p* m( j. K1 {
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
3 S$ r; h+ v: d: b7 Fsed -n "10p" logFIle  #打印第10行
) P6 Q! T" }' }去重显示文本--uniq1 J- i7 q5 s4 r
& C" g% `/ d/ \' C
常见用法如下:, y1 U( j; G# D. D: @5 r! Z( F5 ]1 }
uniq file  #去除重复的行
( M+ N6 ^  z' ^. F- E; funiq -c file #去除重复的行,并显示重复次数
# J9 p; r$ i  ^  f$ ?uniq -d file #只显示重复的行: D8 R4 j9 O6 {1 j7 M5 o' p/ ]4 ~
uniq -u file #只显示出现一次的行) |) U9 c% a' P) r" u
uniq -i file #忽略大小写,去除重复的行
4 o* Z* t3 |5 _5 v- m7 yuniqe -w 10 file #认为前10个字符相同,即为重复
& h/ P# b8 H% N, _9 ~: C- P, y文本编辑查看--vi
& W$ G1 ]5 d) }4 C* t  Y, n1 s1 K2 R2 z
查看文件也很简单:
: w" @! w) ^- X9 R/ F1 }vi file& o  o% N% ]; \6 |2 A
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。5 Z. S* M$ _, h/ m) J
总结% K$ j9 O3 w2 M; r9 I, m# N
1 u% y8 R6 w; P
文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
2 e  F: w. V# k+ F* V7 V# e

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 05:12 , Processed in 0.064167 second(s), 33 queries , Redis On.

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