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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
# |' |3 L; I2 K4 e0 ^9 L
1 w0 o' Y' b6 D; z, |Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。1 ]# i. G! A& {" ~$ x+ e
全文本显示--cat
( z/ n! O8 v4 C: g4 ]0 K$ k1 S7 B2 i! @
cat可能是常用的一个文本查看命令了,使用方法也很简单:
& j& H- _- k1 K9 G3 i) hcat file  #全文本显示在终端
$ L/ P- L6 s, Q6 Y: B/ ?. dcat -n file #显示全文本,并显示行号
$ M5 n3 Q7 ?% X* D1 k; V另外,cat也可用作合并文件:
4 |8 V- Z% K  K; I5 mcat file1 file2 >file3+ m  Q0 ^+ B- a" P
该命令将file1 file2的内容合并写到file3中。: q, j) ^; P  A6 E/ g
倒序显示全文本--tac
; \* A( X+ Z& F9 s# g3 K$ ~, q, @" q0 e9 d/ M1 O
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。5 d7 V- n% R6 r9 K
tac file
6 X& T' I( ^+ y# q分页显示文本--more8 `& e( x; F* k2 c# E3 @+ |; W5 g+ b
; ?+ U8 ?. j4 d! r
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。, A- L$ w! R, e3 J! }3 R
1.显示内容
$ D7 b: x+ A% r, H: p
more file
: B# x  ^8 ?7 r. w之后,就可以使用按键来查看文本。常用按键如下:0 m5 d4 r9 k0 i- d5 Y
回车    #向下n行,默认为1行
5 ]- J; J7 B2 x/ y5 c空格    #向下滚动一屏
! j! v; a2 u8 X% I1 p7 ]8 Nb      #向上滚动一屏. I3 ~8 Y- D( {; ]& X
=      #输出当前行号
/ s# T  V3 k( \2 m; d( [  ]# F:f     #输出当前文件名和当前行号- a% N+ V$ Y6 |: H
q      #退出+ f; X- a+ ~- `4 K2 g" R. @
2.从指定行开始显示
  j+ }8 O/ C; j6 Pmore +10 file$ j# j& k9 V8 z; G
该命令从第10行开始显示file的内容。4 U0 C: G, v$ E) g' {- o% t
3.从匹配的字符串行开始显示( s' g4 R; E8 n" a! _2 B! g
more +/string file7 M# r2 [+ R2 {
该命令从有string的行的前两行开始file的内容。
* ]8 K, T8 r6 N' ~3 I6 Z任意浏览搜索文本--less4 W% ]3 q% p$ r; ~% C0 t3 g

; Z# H+ Q0 D" T, Fless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。, o+ @, S8 I' m$ d6 B
常见使用方法:

) ^8 h& }& l: yless file     #浏览file
* u; f. P" J2 F" L# q' Sless -N file  #浏览file,并且显示每行的行号- u6 r$ a* B8 E5 L) v) Z( d
less -m file  #浏览file,并显示百分比
" A8 y8 N- z7 v/ l' c9 Q4 b" X常用按键如下:
  c& N. g4 ?2 gf        #向前滚动一屏
% E) b: Q- w0 z0 E2 jb        #向后滚动一屏
1 ^! D  M9 u0 T1 J/ w. O回车或j   #向前移动一行
9 i3 Q+ K; {( r3 \. ik        #向后移动一行
1 M% }. K8 S* [" Y" W1 |+ [G        #移动到最后一行  i& z3 i) `( n2 G* r; s
g        #移动到第一行
6 J/ \  y, Z( f& ?/string  #向下搜索string,n查看下一个,N查看上一个结果
# D4 @8 @# i2 gstring #向上搜索string,n查看下一个,N查看上一个结果' F% d# Z, G7 t. ^4 @4 y
q    #退出
3 r7 p0 ^: P: K' U1 i. x* n8 }* L6 M相比more命令,less命令能够搜索匹配需要的字符串。" Q& V9 B3 P4 y7 l6 R
另外,less还能在多个文件间切换浏览:
" }- N3 Q- i+ Q' ~, c
less file1 file2 file3! ^" q+ |& z7 ~$ l. d
:n     #切换到下一个文件
* n/ \4 i. C6 o1 V:p     #切换到上一个文件$ h+ Y6 z! a0 S( w" [
:x     #切换到第一个文件* n. Z1 B  `, Z' W1 Q9 s
:d     #从当前列表移除文件' W3 W' @: C% C, W, ?8 G' k
显示文本头部内容--head
4 H1 x. Y- p+ D. X1 b0 B6 [9 {& H  M0 P# w9 H! ?0 m" ^8 f
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。7 O0 D7 u/ E) o3 |
常见用法如下:
% p% @7 r9 M. y$ R' Q+ p3 U
head -n 100 file #显示file的前100  n2 x9 |  c- s( D% u
head -n -100 file #显示file的除最后100行以外的内容。  
) }" A. R) D+ Q5 v( g. K+ X. u2 B显示文本尾部内容--tail4 ]. ^8 L8 T* A% ]: a4 t" }3 b, w
, a. }7 I# }1 v- o. Z1 p" O$ \
和head命令类似,只不过tail命令用于读取文本尾部部分内容:
5 d1 L3 Q6 c  Q5 h, h9 p6 ?6 Ftail -100 file  #显示file最后100行内容, ?: `& E/ Y; k" `8 y5 ~9 }
tail -n +100 file  #从第100行开始显示file内容   
6 P( h- M6 G* f- m. h  n/ t3 e0 Utail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:8 W& I+ i9 z; g6 E1 p& i9 r
tail -f logFile
' e6 j: Q; o" b) H' J& G对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
; ?8 W  U6 p* A: |9 E指定顺序显示文本--sort% g, s- V( G' o: r! M6 V# [
4 [' V8 [/ Q' T# K: A" }9 _3 {
sort可用于对文本进行排序并显示,默认为字典升序。
; N0 {& v0 `- X* F. A7 W5 Z例如有一段文本test.txt内容如下:
' U! |% c: R5 |! a% U9 r) B
vim+ d- U. d6 H7 H: w- Z2 ^9 P
count
4 k3 F" f' @* a: b% A6 D9 ~fail; a1 _4 b6 K7 y" |, p. {. z
help
6 j9 u/ j1 w- d9 q8 F% ?help2 G" l  ^2 U5 C0 I+ Q+ s* I2 @
dead+ N! Y$ u$ A6 \- N' p3 F# Z
apple
5 j$ u) v- `, h3 i; g# ~1.升序显示文本
  u# t+ ?+ U6 p1 L使用命令:
) S" c8 Y* v+ K
sort test.txt; \: D6 t; s! E6 J6 A, P1 p' d* o
apple
4 G; N0 @' r* b5 V; P; _count
$ J  e$ @3 ^5 @. I/ cdead  J5 J6 D& i  e( A7 ]: u
fail
5 n" ^4 @& l6 [/ X- a* xhelp
7 j# h; W5 p6 C5 a8 B. p7 G4 ^help
% Q) M$ Q- b% o( lvim- y- N* o" q7 \
文本内容将以升序显示。/ N, f0 @. r! _; \
2.降序显示/ N" e9 G; {9 `% E* i+ W( {
相关参数-r:

- q+ L( @9 Z; b* H4 Q2 k; M2 y- d2 Rsort -r test.txt. _& D% J1 ~: i
vim3 `& y5 W$ T) b2 Z0 @* J
help
9 v0 \" z& H5 J" Hhelp
2 v8 h8 Z4 y- efail
3 [7 \* ?3 F' ^$ Ydead
* I: ~7 @$ u6 @" p! Y/ s' ?count
  E  R, K5 X8 Y( U6 Tapple
: u) r; i5 u3 ]' r- j3.去掉重复的行
- R3 e4 A" [2 j6 p4 Z我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

- f0 o, u; O. H. S& `: Nsort -u test.txt
; o7 h! ~0 |# N6 Bapple
9 q; @) r5 A! ~# h1 wcount
; g0 E* X2 e$ V- Jdead, K! @% o* l$ Y" P' j% f
fail
* d' ^; d1 d( Y. x% o$ Hhelp
8 x2 B% U, N5 A+ j3 Mvim
5 W6 P% p7 Y4 u- |. |2 E! \可以看到help行不再重复显示。
8 Z; x. F1 \6 I0 J. O3 ?* M# X9 w# S7 d' L4.按照数字排序
% w& D; J$ A2 `; @5 k* m' d如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
3 ^, ]- y. O2 I* r# O6 T3 C& R0 k8 f; c
sort -n file6 P; h/ L: q+ l4 s
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。$ Q( H& a$ \/ |# N! O
过滤显示文本--sed9 K8 `( l& S- A9 G+ f
+ h; j3 I' U* L0 [  K' Y4 g
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。' t# E* E. j4 s( K9 m
1.显示匹配关键字行
0 u. K# \+ @* q% E7 G- [有时候查看日志,可能只需要查看包含某些关键字的日志行:
, z, X. a: A2 I, f  I, E$ x
sed -n "/string/p" logFile
( I) ]3 o2 J) I! ^' V* w上面的命令表示打印包含string的行。
; j$ A( l9 O7 Y7 Q' [  C" b, w% V7 E2.打印指定行
  H' n2 }3 q( l9 ]0 z2 ]  [" M0 nsed -n "1,5p" logFile #打印第1到5行8 Z3 l/ X  B+ q# V6 H3 o% B
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
+ h5 ^( ~3 k8 l" o# w/ Z! Csed -n "10p" logFIle  #打印第10行7 }$ z% R2 a4 x$ x4 x
去重显示文本--uniq
: e5 y( r, |& R1 V3 ^1 r+ g6 J. n
常见用法如下:! r, X' F+ B1 B: m1 x4 p# H
uniq file  #去除重复的行
& H2 j/ w! I+ E" E5 @uniq -c file #去除重复的行,并显示重复次数
+ N# z" C. p0 A: \9 auniq -d file #只显示重复的行. c. p, |. O9 v0 L8 r0 }4 t
uniq -u file #只显示出现一次的行
+ I5 z8 q' m. \) C4 C) luniq -i file #忽略大小写,去除重复的行
$ N7 ^9 @1 X: b7 duniqe -w 10 file #认为前10个字符相同,即为重复
: r8 c  {: B2 @3 Q6 V. [文本编辑查看--vi
# e5 H' f6 b* H+ S: O5 E) u- F8 X# h) j
查看文件也很简单:. g, t, A5 U: ~& [6 r# w4 Z
vi file
' c! p+ h+ V  |5 E而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。/ Z; H" J# l7 Q, v
总结- \( }  [. y0 w4 E/ K
& R( H& ?  R" Z$ Y) M& Q) S$ I( O0 o' e
文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。; z$ @% S! L) ?4 F

微信扫一扫,分享更方便

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-17 07:45 , Processed in 0.052952 second(s), 33 queries , Redis On.

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