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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言' G0 }* C  H  z5 j8 o3 _
5 M, W  s( W: r$ M( R
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
1 m8 i* v4 P- t- [; H全文本显示--cat* v4 b$ q2 }3 d5 R# h; @; ~

* g. X3 |* h3 g7 c; H: m% {2 g" @; Xcat可能是常用的一个文本查看命令了,使用方法也很简单:" m- X! f! g; R% E" R! C
cat file  #全文本显示在终端
  \6 d) P: i3 l( u. Hcat -n file #显示全文本,并显示行号  M/ {* ]% @0 {/ M2 T( R6 ]& j
另外,cat也可用作合并文件:
5 P# e- [$ J, y  kcat file1 file2 >file33 j: e3 i8 h' u4 g1 p0 c
该命令将file1 file2的内容合并写到file3中。: g) `* s3 a6 I7 ]4 k% z. Q
倒序显示全文本--tac8 z( N$ q% c) s/ W1 i

& S: Q+ O( f) |  e6 Stac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。% F" Z* D4 K: q/ T% Z- v& i
tac file
3 o+ {9 f, @8 z8 D6 Q分页显示文本--more
# e! h$ ]. v/ P# C+ X/ S, e1 j% f6 H) m0 A, ]
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。. q* R% O( i0 p. F- r' A
1.显示内容
8 V/ \6 {& k& z# f/ O
more file
6 N9 l% C- g- ^% d1 j之后,就可以使用按键来查看文本。常用按键如下:
4 x! ^7 ^( k2 \; D# ~3 z! d( ]回车    #向下n行,默认为1行
# G0 Y0 g) N+ X! b: ^% z空格    #向下滚动一屏- c  D# @5 I8 ?  F1 g2 a+ J
b      #向上滚动一屏" O- w* p3 a3 b8 R
=      #输出当前行号( a9 L+ Z* l$ }
:f     #输出当前文件名和当前行号/ A. t( H( o; ?/ R9 i
q      #退出
! s/ ]8 |; d* ?9 v- Q2 g' N1 @4 |- f+ E2.从指定行开始显示2 {1 {  n! a' M  a0 t+ p# k
more +10 file& v& G5 U/ d. V1 W/ {& N( K
该命令从第10行开始显示file的内容。7 \) I/ _) O5 |! B$ H
3.从匹配的字符串行开始显示
3 j0 c1 W; f- G( q5 _+ O( qmore +/string file$ q7 w/ j1 q+ s, C# C0 }
该命令从有string的行的前两行开始file的内容。+ y( t( F& f# }' E) `, j6 s
任意浏览搜索文本--less
; a6 O& E6 C4 v' p. R; q# T: w) o- R7 n# I5 d) X7 Y
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。) N0 k* P5 E: E5 ~& f$ Z3 D9 {; G
常见使用方法:

% t- U" h1 T" B  I, l' [less file     #浏览file
1 W7 M/ y8 v9 l, \7 {( l$ i! s2 c2 Yless -N file  #浏览file,并且显示每行的行号! q* b# `- v5 X# a& y7 l9 t
less -m file  #浏览file,并显示百分比
5 E( a; {% h' _4 G% ~1 i' E5 U常用按键如下:3 u$ b7 k. y. w  ]/ L' e" o
f        #向前滚动一屏
# H- [( N/ L, Wb        #向后滚动一屏
$ B1 K4 Y8 m. `4 v' o5 ]' L回车或j   #向前移动一行- J& s. H- K! [3 T# d. D
k        #向后移动一行  W- G% ]# o/ h0 F$ {/ |: ~
G        #移动到最后一行+ s" t4 l1 [- _
g        #移动到第一行
6 G; c) F+ \( A0 ^$ B% l$ x- L/string  #向下搜索string,n查看下一个,N查看上一个结果% E- h4 U6 s: g8 {- H
string #向上搜索string,n查看下一个,N查看上一个结果
9 r( c: U- |8 H$ D- G" X% dq    #退出* b% y' h/ k( w8 t
相比more命令,less命令能够搜索匹配需要的字符串。, b) Q, K$ J5 ?8 R, g7 b3 j
另外,less还能在多个文件间切换浏览:
4 z7 H5 l3 r. ?' ~6 \* u& u5 c/ h
less file1 file2 file3
  }/ Y1 d# }) h7 H:n     #切换到下一个文件
# m$ E7 ?5 c& U: d  Y:p     #切换到上一个文件
0 y  h" b7 Q& X) Z5 z:x     #切换到第一个文件  q5 `& J# N3 q* X) X
:d     #从当前列表移除文件; ~: F* z) R* `3 L% N. r
显示文本头部内容--head. R9 ]3 X4 p% y3 ]

( r# r$ D: [7 a) R1 R& Ghead命令的作用就像它的名字一样,用于显示文件的开头部分文本。
# g/ f- F: e. ^常见用法如下:

3 [) @$ F+ p2 N: q+ H# Thead -n 100 file #显示file的前1004 v0 ^1 l3 e* K8 }! }
head -n -100 file #显示file的除最后100行以外的内容。  + x3 _2 k0 j; Z$ D$ }/ }# M
显示文本尾部内容--tail
3 p- r" k  A% M6 [4 w/ j# m* k0 J0 ~$ \
和head命令类似,只不过tail命令用于读取文本尾部部分内容:' `& |  v: c2 \: D0 c- o
tail -100 file  #显示file最后100行内容
7 o4 n1 r( _' g, vtail -n +100 file  #从第100行开始显示file内容   5 C! i1 m5 j3 B4 [/ e+ ~" `3 l
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:. W) P# @4 D8 C! T; L: f
tail -f logFile
) d+ }) ^* w5 m& t对于更新的日志内容,会实时打印到终端上,方面查看实时日志。3 E3 y, ^; ?3 Q2 Y2 H
指定顺序显示文本--sort
* g9 q5 i# X& U6 d3 C# d# g1 ~' N& }7 U7 N4 b
sort可用于对文本进行排序并显示,默认为字典升序。* T" z7 ^3 L, U. [# u( C4 \
例如有一段文本test.txt内容如下:
4 [7 i  u1 l# ~0 \
vim
4 w. q5 l; Q9 l$ O  e3 @count% ?; i1 F1 I/ b0 ?. x
fail
1 \9 W9 _) h; W1 ~8 P1 X; }help
, X8 X' ~1 }/ e- P7 o( Uhelp# D4 g0 V' B; J
dead
9 I& o! }/ U( ~apple( F( _% w  r3 n* G
1.升序显示文本
/ s6 c7 J9 G6 L( j8 D$ @使用命令:
5 q& R& O$ A  L, r
sort test.txt5 I- ^, [6 e; f( A& Y0 H
apple! K1 M, ]( v% w" x" Q! k
count
  {; ^' Y0 l5 bdead
( p, s/ Y  y. dfail
, W' F9 H& _2 i, n& X9 O, H4 f7 ]help7 }: g+ l: @) T/ U! f* O( n0 g9 |' p
help
% a# N8 M- E* |/ h) Lvim7 m1 y7 [5 T# T$ \. e
文本内容将以升序显示。" i- p& E; K4 L
2.降序显示
& T+ H* L; V  r- y, q% W/ q8 Y相关参数-r:
) J' H6 |7 X. \( E. ^+ _2 m5 c
sort -r test.txt6 F1 d  X5 g! r7 o4 Y8 s) V
vim/ v- A( w" x3 r1 H
help
( X& l" T. ^2 _5 T& H7 |, \. Vhelp
# Y% L& _) x9 z2 H4 ~fail
' E& ]; [9 _" A4 ]9 Adead# Y8 l  W- k4 n& j0 V3 ~$ }6 M3 E1 r
count
  G& g! W/ v0 n6 q  S8 lapple+ r; o) t' [/ d0 g# R
3.去掉重复的行0 a) [0 b! I6 K8 ~& h, R& e& {
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

9 D# H2 }/ G8 I4 H" ?, b, {sort -u test.txt2 }" `0 Y& t2 l, v
apple2 C! Q* ]: f* X1 Q' D8 G% |, l8 q! u
count
- J; x! i% _% T  k. Q. \dead9 R; v0 c( l+ R$ |# u; R* T1 X3 w  \
fail
6 X% }9 p; g0 {0 I; Phelp
" E4 V5 ~, }9 i8 X5 L& V1 ]; O1 Zvim! [7 ?' e* y( z. j- `: n; k- c5 t
可以看到help行不再重复显示。
' e. c; u/ Y  B" i4.按照数字排序
. E8 W" ?% Y& x; [如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

* Z' B$ {) p& X) r0 ysort -n file, f+ F& u9 |3 J! x8 Y6 q& H% k# T! L
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。8 P: ~" b6 q8 E+ ^6 Q1 ]. g
过滤显示文本--sed; d4 h3 \& H  w: D; z

& z# G' p* B# G: fsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
1 M- b- ?+ b7 H& @7 I- F5 I) o8 r- j- M1.显示匹配关键字行
0 F) N! H5 I. n8 K: T. }3 P2 ?- x有时候查看日志,可能只需要查看包含某些关键字的日志行:

, x  }& u8 x4 F3 l+ O, M! O, ~5 wsed -n "/string/p" logFile
: X, `; i2 W/ h" V9 b2 v上面的命令表示打印包含string的行。
/ h% P* l& F% i' J2.打印指定行) c8 x; X( f5 h& ~
sed -n "1,5p" logFile #打印第1到5行
9 }& G* q& ^" ]# F3 D, E  vsed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
+ H- w0 Y9 D: x" G# X5 M% Ised -n "10p" logFIle  #打印第10行- d9 g; h. s4 [5 f. B+ _" V2 W8 b, a
去重显示文本--uniq
$ u/ x5 {; L( Z# f5 p2 O
+ C9 P% U7 g/ u" E( K4 Q7 o+ Z常见用法如下:
% ^/ z! [/ R/ |4 P: ^  iuniq file  #去除重复的行9 i7 T1 h, L# |
uniq -c file #去除重复的行,并显示重复次数. D' Y0 G! B) R5 l2 |
uniq -d file #只显示重复的行
' f4 r, B/ m) ]% D$ D2 iuniq -u file #只显示出现一次的行: o! {. r0 u. _$ F) @/ {& G
uniq -i file #忽略大小写,去除重复的行0 R4 s2 B# u/ p" ]4 w
uniqe -w 10 file #认为前10个字符相同,即为重复
! E: u! f: U% G+ O文本编辑查看--vi9 t8 [) p1 P& U' b: j( G9 b: x

! b/ v8 _8 b; ?6 g3 w/ |: H查看文件也很简单:; ], o( e) ?2 r$ d# Q
vi file
" L! ^0 m2 J* U' N9 J  q: [而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
0 M& F5 R" v. N5 k2 H总结
+ ?+ e; z4 F- _( o5 b% z& d4 J- z5 h, z: m* o
文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。: {; [" A; H! K$ c& Q- W3 x9 E

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-9 09:07 , Processed in 0.045787 second(s), 35 queries , Redis On.

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