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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言9 ?) z4 z7 S( Z9 ~
: S6 \, e) W$ \, p
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。! f+ v0 \. ]; y5 i+ T( n" O  O5 k. z
全文本显示--cat" p) T: r6 i9 u. O: o' u

6 L" |6 u2 y% U/ T/ bcat可能是常用的一个文本查看命令了,使用方法也很简单:$ z0 u% A% |# Y6 [
cat file  #全文本显示在终端2 ^' }8 l% b" {/ H
cat -n file #显示全文本,并显示行号
; P8 P& d; }  {( R' h另外,cat也可用作合并文件:
/ ^4 j. I, a0 @2 D" u. U) {5 N# Icat file1 file2 >file3
  ~, M. j+ y+ E该命令将file1 file2的内容合并写到file3中。
3 c. D5 j" \( d& S. Z* M  z倒序显示全文本--tac
/ D. K0 a) _" }# \2 Y) E, h
/ R6 r* |- X* itac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。* t9 y! A* q5 S5 j1 L/ h2 G1 R
tac file: A9 L$ V4 w$ n
分页显示文本--more
/ u" S! c6 X. R# j9 i) ]5 N+ |& t, j2 P7 \# {7 Y0 U* T$ y0 m! S
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。1 E" ^7 N) H; x: i" M- I
1.显示内容

& F- d0 _2 D5 J- mmore file
9 u2 `% J4 T' d9 S- V8 q之后,就可以使用按键来查看文本。常用按键如下:- W2 c! |7 O- a* a; H' ]
回车    #向下n行,默认为1行
" h7 {! _/ c! k空格    #向下滚动一屏
2 U- k4 R  m+ Wb      #向上滚动一屏
9 W2 e: d" C* y=      #输出当前行号
5 F) [& W! r3 k' j, I% ]:f     #输出当前文件名和当前行号: Y6 H, u0 |& Y
q      #退出
: j+ {! n; h6 s2.从指定行开始显示
; V) e# W2 t/ s' U$ rmore +10 file
! @/ O* z6 }3 H& b+ T/ B该命令从第10行开始显示file的内容。1 E8 D/ K$ v- ^2 J8 M& x  g
3.从匹配的字符串行开始显示& n% y9 v) B$ w1 F, R
more +/string file7 M, S; H9 q' C9 ^. ^" K
该命令从有string的行的前两行开始file的内容。  M# k9 Q; R$ f3 r" U3 B
任意浏览搜索文本--less# }3 s( P' C# }# b3 Y. }
. v4 N( H" i. P$ [0 i
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。+ a: ?9 Y7 c7 i) Z
常见使用方法:

( r$ c/ G7 [, U8 q& eless file     #浏览file
6 ]# ~0 Z' H' r& Wless -N file  #浏览file,并且显示每行的行号
+ t4 ]2 N) I4 sless -m file  #浏览file,并显示百分比3 d; ^6 j* S6 l- Y+ M% a, E
常用按键如下:
5 `. |& a" y! N4 z1 M6 vf        #向前滚动一屏
9 j$ W( _( K! ]+ Rb        #向后滚动一屏
: S( U& V7 M! N6 F$ e0 _1 o回车或j   #向前移动一行; e) u* Z5 t# R* N- ~
k        #向后移动一行
; k5 w2 N9 c8 AG        #移动到最后一行
4 Z$ W* T2 M  ?2 H& zg        #移动到第一行
& E1 _9 U& X4 X5 B  j/string  #向下搜索string,n查看下一个,N查看上一个结果
% y" K: g  l7 V- I7 V$ j; }3 a: ^string #向上搜索string,n查看下一个,N查看上一个结果
, @/ u% c8 r# k9 ]! N, m( ]+ pq    #退出
- r2 p1 ~  v; n0 L. R相比more命令,less命令能够搜索匹配需要的字符串。" m) e  G4 \. D- A+ y
另外,less还能在多个文件间切换浏览:
( u1 v& z+ _% k# Q( v% J- B' @) \; J
less file1 file2 file3
# d2 a2 G+ W5 s1 ?( O- c$ X:n     #切换到下一个文件8 E  j5 J- e' J8 k
:p     #切换到上一个文件3 A! l5 C4 G, I9 ^. Z
:x     #切换到第一个文件1 P5 u) C( y) t9 S
:d     #从当前列表移除文件
" K# H5 v7 M2 z显示文本头部内容--head
) C2 d8 @' e* C4 Q# e2 i/ Q& x- f0 A6 J$ [3 W# e, d9 a$ _  c8 U! a1 q
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
; r9 g. F4 B6 d* F0 I常见用法如下:
2 D" ~0 L/ O1 t. r3 h) m+ @! x1 J  t
head -n 100 file #显示file的前100# X% r% N" S% U
head -n -100 file #显示file的除最后100行以外的内容。  6 ?2 G* {6 j* ]; p; }/ F
显示文本尾部内容--tail; J6 c6 n2 s. g% q6 O- O+ u, \
* [( v9 h; F/ R/ ^3 A2 P
和head命令类似,只不过tail命令用于读取文本尾部部分内容:8 [3 O* k- C2 z
tail -100 file  #显示file最后100行内容8 J8 c# b+ s8 L- t
tail -n +100 file  #从第100行开始显示file内容   : \/ r1 [6 H, A* q3 N/ p% j
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
  z; a5 ]$ s/ e/ Mtail -f logFile
8 \' i3 r3 S0 V/ N7 y4 b" H% p对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
  T7 s& L# ^. T$ B指定顺序显示文本--sort
8 \7 E& y9 [# g& v. e& P) }3 S% x, U1 F/ ?: K  _# M
sort可用于对文本进行排序并显示,默认为字典升序。( F* @2 ]$ b# v9 D: ~+ [5 U/ U5 K
例如有一段文本test.txt内容如下:

( j' z) C1 D' \: zvim# F( l1 x* \6 ^  b! X/ a
count& `2 i) U6 E% C) V% }4 \6 O3 I1 x2 t
fail! z8 p, B9 n. n
help
  G/ \* @! L, yhelp' I4 }3 ]/ n/ H( z, Q
dead
! t& I+ @9 ^4 I3 e# C. @6 c7 j. Fapple  P: w6 O4 b5 p- a* n% @( E, l
1.升序显示文本
1 J  y( L9 X1 J! p使用命令:

$ T: o! P" L" n# f, _+ D3 d2 g# Y$ |sort test.txt7 x. j5 ^" v, n1 ~
apple
- H& p/ l8 K4 K& A% @$ _- s1 M3 pcount
9 U0 H; ^0 ]4 Mdead6 F- U/ p6 y3 r+ x
fail2 U# _3 x% T2 W% R2 l6 s* G, K6 q
help
  R7 t3 ^% \) m; K+ C5 bhelp
* l. W5 _! }( Y% xvim
, f3 l; k" }, U9 ^& _$ l文本内容将以升序显示。1 H0 O9 O1 K* Z! m1 C- c
2.降序显示
* ]2 v. u( `9 ]1 s% F0 J相关参数-r:
- s/ e2 U% E  ~4 a: H7 {, ~  w
sort -r test.txt* x" g9 a/ N$ J) _
vim% {4 s( R3 f  }' g
help5 k) A" [0 g. a5 l
help. h$ u6 Q0 R. e2 M% j" z* y
fail
4 X! z* \5 R7 R, B3 B; y: b& U! ldead7 [0 r; k/ k* x
count9 d7 G1 m, c+ h! L* C% ~6 l
apple1 K) D) q4 H* U. E) W$ X% o: w) ?: K
3.去掉重复的行5 W; F+ K" I$ e; l; M, n
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
% q4 v: {2 m8 k) P3 y9 Y
sort -u test.txt- Q8 X) n7 G5 l& }% O# K1 k# k( }
apple- S) ]  Q2 U& n+ D
count9 i4 f1 T. \9 v. b* F# r; B3 X
dead
( }% {) [0 G$ D2 q  s, I& Y% r! u5 zfail
1 z+ e2 E! c/ i" P, A; K1 Fhelp! B( S" ?4 |) H
vim2 h" `2 e# a; B% p) w9 V
可以看到help行不再重复显示。
5 b+ X" L* k$ ~4.按照数字排序9 }* W! \/ v8 A! J4 w! R, N
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
. r3 Q9 y$ c" Y4 `! |9 Q
sort -n file: r+ X) T% f5 t
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。& [- l/ F5 X: N
过滤显示文本--sed
/ Y; W# l! J" Y  j. Y: k- x5 u0 ^% d  _0 I# f* @2 m3 M: `; v' U7 Y& r, S
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
) ?( ?7 n- M4 L' z1.显示匹配关键字行
+ i  l* N, ?) B. z6 H4 R有时候查看日志,可能只需要查看包含某些关键字的日志行:
% C- V/ [1 O! J! ^" d! ^. O+ g6 M9 e8 M
sed -n "/string/p" logFile$ k- C; H+ p' z$ v5 B+ U7 M6 c
上面的命令表示打印包含string的行。
5 ?* V% r3 k2 ?* w) N! p: ?2.打印指定行
& G& m. b3 V9 s# ^- W" \% h: p$ l5 esed -n "1,5p" logFile #打印第1到5行" [5 j0 y" L/ g# u* I
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号( x! [+ k$ L8 Y
sed -n "10p" logFIle  #打印第10行$ _  L6 Z; I' S* M8 O
去重显示文本--uniq+ U9 [/ ~6 d. \# |% _$ O
$ c+ H7 q1 S- W; U, h7 F% s5 n
常见用法如下:
. u7 X# _  G+ J' G3 [' Huniq file  #去除重复的行: o0 n; D+ z, H) A  m) ^* m
uniq -c file #去除重复的行,并显示重复次数. D9 E! H0 @: L: W4 b' R; }
uniq -d file #只显示重复的行
$ s5 G- N: g5 I* puniq -u file #只显示出现一次的行& c; D& q, }+ ?( t" ]
uniq -i file #忽略大小写,去除重复的行
) T; p. Y; U- ?( ?uniqe -w 10 file #认为前10个字符相同,即为重复! E# k! ~& Q" Q. ]3 N
文本编辑查看--vi
1 y( ], g; q, ~! }! x: n1 L! A- @. c9 J: V4 d
查看文件也很简单:
# T' a" Z7 f4 ]1 Dvi file
8 `) x5 ^& v1 l" g, H9 x$ n而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。5 L( a! J- A- ~$ m6 _; f
总结. R: M# m2 v) s

/ H" I; w2 Y: c* a文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。0 O  N) T: Y5 F5 y/ v- U! B( }

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-17 07:48 , Processed in 0.340042 second(s), 32 queries , Redis On.

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