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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
4 U" O# Y' F& b4 x& V! \% v" }" z0 N* n- c7 L; D. b2 g
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。2 F: i% p7 w" r* L0 I# s! B9 a
全文本显示--cat+ S- J4 y& G/ Z( n

3 p' {: q3 K. C4 N8 y, ]cat可能是常用的一个文本查看命令了,使用方法也很简单:
& _0 {6 S0 q" p% x8 n+ t: Rcat file  #全文本显示在终端$ T( V/ }  j: H+ z
cat -n file #显示全文本,并显示行号
1 b, A; p, h, Z6 H9 h* D& F) Y另外,cat也可用作合并文件:
% R; F7 B. n9 `; Y/ Vcat file1 file2 >file3" H* j: `# o3 f0 S
该命令将file1 file2的内容合并写到file3中。
3 J/ y' T2 X8 t& Q5 v4 S7 ?倒序显示全文本--tac7 G7 K* A, w" i- Y! u1 o! x  t
0 V: g$ Y; ^. y3 R3 P% {9 d& @% o9 ]
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。9 `" n" W% L$ D
tac file
8 A  U! g* x# c1 h5 Q1 e分页显示文本--more8 T6 k) O+ Y- u" o( h

: `5 [6 t1 N& R) I: Y- a* z7 xcat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。  I9 o, N1 i$ c% ~1 Q
1.显示内容
( ]; p! x0 Y! f4 G
more file% I2 H0 x9 o2 B# r1 N
之后,就可以使用按键来查看文本。常用按键如下:; K' n& S* }% z. R7 X2 E2 g" }2 T6 f
回车    #向下n行,默认为1行* U1 l9 {/ f% H" q& e
空格    #向下滚动一屏3 F( I! |4 q' H# q
b      #向上滚动一屏0 i: t+ I2 D; l
=      #输出当前行号
8 {3 ^7 M/ v$ {; Q:f     #输出当前文件名和当前行号
" [( s: M8 f4 U5 sq      #退出# g" T2 b  I1 c& |! d; ^9 X) f) `! J
2.从指定行开始显示' W: u& }% {9 q. X: `4 `/ X/ o
more +10 file8 |6 D: ^& S% W3 j$ d+ F
该命令从第10行开始显示file的内容。6 y. N+ r) J" K2 |, c
3.从匹配的字符串行开始显示9 k/ A3 Z. d/ I! E+ @3 C
more +/string file
' }% N# L4 b( }& l) ?4 f该命令从有string的行的前两行开始file的内容。
: M0 P1 J5 Q2 r" r任意浏览搜索文本--less% Q3 g2 H9 |" t4 Z" r7 `

8 u* _7 U# E# w" j' q0 H. W( z- q( vless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
  F4 ?8 F3 {/ G' ?# t$ U常见使用方法:
$ q! O) f3 d: o
less file     #浏览file
' \3 C* H* J( @less -N file  #浏览file,并且显示每行的行号
5 U' p! F: f$ m: Z9 e- Vless -m file  #浏览file,并显示百分比
5 C: `4 \& \- R0 b( B" x0 i, k常用按键如下:
) K; W  ~1 S) b0 w' J7 h+ Y4 `f        #向前滚动一屏
6 ]2 F" q9 F9 d& c1 Ib        #向后滚动一屏
6 W! l$ J5 N) s' H  J2 F回车或j   #向前移动一行
2 M- N* l# d; Q$ I2 F9 tk        #向后移动一行! h) F- ]) J6 V$ H. i2 w
G        #移动到最后一行% t, b. X' Q& P- u6 a& q6 Q$ J1 [6 p! y. m
g        #移动到第一行3 ~! C3 p) p8 o2 U1 D7 e; I
/string  #向下搜索string,n查看下一个,N查看上一个结果
& m9 H, @' I8 y% Lstring #向上搜索string,n查看下一个,N查看上一个结果
4 f' p/ q$ J$ |$ u4 Q% h3 F& ~9 h* Sq    #退出& G, H) J# P. ^6 v# \" u
相比more命令,less命令能够搜索匹配需要的字符串。
9 k2 @9 {. E1 F2 r6 G2 C另外,less还能在多个文件间切换浏览:
- L6 V: Y. ]" e' d3 q
less file1 file2 file3
0 e* e! `" }1 i6 n* q0 J9 Z:n     #切换到下一个文件
" ^. {! [. d$ O:p     #切换到上一个文件5 q& U7 z2 h! X# V
:x     #切换到第一个文件
# |3 ~: ^( w2 T) x( R% G:d     #从当前列表移除文件
; r- K) I! q5 Z1 g! m1 ^显示文本头部内容--head) W. n4 I( N' I/ R% T

% f( J# x) W- A/ _head命令的作用就像它的名字一样,用于显示文件的开头部分文本。' |0 N7 [/ w8 g& x% {7 ]! ^/ W
常见用法如下:
' V- h4 U2 f1 E3 @* J
head -n 100 file #显示file的前100; e) ~  Y# I* i" |; J7 i' r
head -n -100 file #显示file的除最后100行以外的内容。  8 ]% k- c3 T* ~0 g
显示文本尾部内容--tail: M. _9 \# i7 G! b5 f
6 g# Z% z9 \+ G! n* x$ D6 @! P
和head命令类似,只不过tail命令用于读取文本尾部部分内容:
& t; I7 i; q" P, ?) E( ~8 itail -100 file  #显示file最后100行内容
8 A* I; T" W! C8 Y: xtail -n +100 file  #从第100行开始显示file内容   
8 T4 t9 V' ?+ P, R$ E2 F5 D: _tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:9 _" z) p& z( R% X7 ~
tail -f logFile8 f! w+ Y; b9 J2 I8 X# h& P$ Y2 x
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
( R5 ^- W; @* o& O; [9 N. {# n指定顺序显示文本--sort& k+ _, a2 U! {7 l- D

' y) T$ v% Y" w1 r) E! @5 o& U' qsort可用于对文本进行排序并显示,默认为字典升序。
0 L& K1 L* ~0 F' m3 c) k, r) N3 C例如有一段文本test.txt内容如下:
4 u) ~: a% ~1 l" }- ?, n/ h1 f
vim" ~- H2 ], }9 r6 v& y5 k2 M1 h$ P2 W
count  O7 E9 h  S! k8 |3 V" t
fail. F1 W& D$ F7 h' C
help- d" Z/ m9 Z. [2 G- [
help
0 _0 P% A2 B( Y. s3 K; edead. v! p% a1 q3 v! _7 H* j
apple/ S" T7 ~9 f1 A! P' e
1.升序显示文本2 w8 Y; f2 P6 f$ Z1 V* g
使用命令:

% Q* q. r. v( s2 m2 \' y% ^( @1 Rsort test.txt
) o0 z3 E! f' Y! Papple) S4 B* A9 |$ a+ r4 I* }# x
count' ?) F: E! p( u; C, T
dead. }0 A6 f' M6 F* X
fail) u3 \% |  D( s6 R, @% u  h6 t6 a
help
' V% N& U8 B8 K/ F2 R, z- ghelp
" D; C# U$ G' x( Bvim! V8 f1 r/ {" {- g: `" h4 l6 Z
文本内容将以升序显示。% y8 v9 ~) E% A/ n; y) _) O
2.降序显示' _3 M: S$ U. g1 n. p: i$ k; w
相关参数-r:
6 ~+ F5 H3 u' [1 U- r
sort -r test.txt
: w' E  Y; @) ~# V% a1 Lvim
5 q& b8 S2 V- R6 {  V, Mhelp
% {& e) X, j, A! N6 O: b9 ?help& X7 V3 r2 q0 i' o3 r
fail7 P3 ^4 d4 X% v( K7 }
dead6 E6 n2 \# F" }( k0 ^7 E
count: k# d! j, L  j7 _; A
apple
7 V  r$ U+ L  }- [; \3.去掉重复的行
  e/ j  G, D4 U4 O1 E我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
+ U0 ?5 N- [( x+ i7 M! ]: i. }
sort -u test.txt
& j+ K# r/ H1 a& v1 {$ I5 Kapple
& l0 J& t# N* p5 Ecount; m4 w" n1 [3 \  a: K
dead$ O: ^# }% K9 _) x
fail
5 l4 V; O- [5 V  B: w# O1 lhelp& n4 ?- y, u% R% u  L- w: T
vim
$ q% Y/ r$ |; N& c. K可以看到help行不再重复显示。$ t  m+ q: {0 ]- u
4.按照数字排序
& x+ y4 a4 ~1 n# f' m: C如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
5 ?% s. `" {  s' d# A
sort -n file
7 ^9 }2 [6 s+ C# n5 E6 ?' ^由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。1 j( \- k) k3 V8 z
过滤显示文本--sed
) B, F! Q1 ~6 p6 _$ n* y$ _9 z8 w$ U
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。6 A) Y1 L- [& U( Z( W1 n$ J0 Y
1.显示匹配关键字行
2 l: N- m  q4 j' b3 \6 O有时候查看日志,可能只需要查看包含某些关键字的日志行:

) Z, D2 |' D- x* tsed -n "/string/p" logFile
1 V& q$ _4 ~& o. S- L; ?. C5 K; s上面的命令表示打印包含string的行。
; @- |4 z) I8 h) c# m3 ~2.打印指定行1 t" Z0 Y9 L4 p
sed -n "1,5p" logFile #打印第1到5行
2 q4 D/ E5 c7 Z* C0 ^sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号- b' ]$ @3 L2 e: o6 K! v  m% G
sed -n "10p" logFIle  #打印第10行1 o5 P: E4 O% S
去重显示文本--uniq- E) L% h% P4 i

  y/ C0 c0 u+ S2 F3 D- @8 [  M; k常见用法如下:. U0 h' J7 z" J) z/ n
uniq file  #去除重复的行
" v7 C6 |; H0 H4 Yuniq -c file #去除重复的行,并显示重复次数/ k% u+ @% d% c9 ?3 T
uniq -d file #只显示重复的行
. c* g; o( j6 B3 I3 i2 @uniq -u file #只显示出现一次的行
! {1 b# S% h$ z5 o, y" {uniq -i file #忽略大小写,去除重复的行
6 H7 k; Y, y7 U7 W! Y( `+ Auniqe -w 10 file #认为前10个字符相同,即为重复# H1 o: H- A+ \5 h  ?6 Z
文本编辑查看--vi
5 C7 Q# b' K" y! @* X' ^- ~" g! z2 s2 e$ j, w& U* B
查看文件也很简单:
8 x$ i& o# p9 b. Xvi file
' u- U, H" R6 Q0 I; v9 l7 P而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
) m& @6 j) O. T总结
, S) y* y; A) W3 ^
8 F; t0 ^- U/ V2 r7 B文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
# ]2 H) \" u# t* s/ f% B( `! n

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-5 17:43 , Processed in 0.058365 second(s), 33 queries , Redis On.

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