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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言% d/ _  c0 |8 S4 w1 q" T7 q  F* ^

" \2 N! j( i' }& ~# z* G$ zLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。4 |) V" \5 ]2 t1 R% d7 ?7 R
全文本显示--cat! R8 p/ A4 f  d4 n4 z% B8 c5 _
. N% j0 A( y9 P; O5 G7 ?8 U/ b
cat可能是常用的一个文本查看命令了,使用方法也很简单:
, Q3 m, M6 r$ ~" H7 e! V5 ?5 v/ Jcat file  #全文本显示在终端
+ K( v7 D. q; G* O/ N3 G( kcat -n file #显示全文本,并显示行号
9 z4 }1 `: B: R9 a! Y( ^; U+ c另外,cat也可用作合并文件:6 v, ?6 x6 K. u) x6 `0 V- K* c
cat file1 file2 >file3
. V+ g8 z2 J, G/ {该命令将file1 file2的内容合并写到file3中。6 e6 r: u9 k6 R6 [: r
倒序显示全文本--tac
; p5 w+ A% e7 ?
* [8 X+ @% j7 H# J$ [" qtac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。; m% D( G2 m9 R. {0 U" B
tac file
, W" {" Y' v; Y  d/ ?3 h分页显示文本--more2 a$ ~; g3 A' A# ^6 I, _) K: ?. N
! I6 ]5 n% e0 x0 C4 E
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
8 t5 l; ~# x. F# V1.显示内容
6n:E6Y6|6Y9X:  v
more file
! g+ f+ j8 }- [9 [$ n6 g) u* V% U之后,就可以使用按键来查看文本。常用按键如下:. l4 v6 h' V* b9 E3 p/ d' t
回车    #向下n行,默认为1行  e( C" m1 K, ~! I: J
空格    #向下滚动一屏
- ^1 o$ t6 N& p8 k' rb      #向上滚动一屏5 j4 Z7 H. y( W: a7 A
=      #输出当前行号# V* @4 w; \: y& q, _  l
:f     #输出当前文件名和当前行号1 {! r5 Y5 {- e  Y/ X0 ?
q      #退出3 M4 d# v, I0 ^( [9 W  W
2.从指定行开始显示
3 c/ S3 p" `7 N0 bmore +10 file
( ?0 k8 M) `6 C% q  I' k该命令从第10行开始显示file的内容。
$ t: n% R! h+ W" h, [! ]3.从匹配的字符串行开始显示
3 c6 T; T! h3 O6 L: {3 o  gmore +/string file
9 Z7 s$ J( Q# O+ P& w该命令从有string的行的前两行开始file的内容。
) S7 S. J1 ~& U' a- W1 H. F9 m! W任意浏览搜索文本--less5 O- ^4 R3 \2 Z+ W

0 b# b5 ~* ?7 B! rless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
/ d7 t) Q; G  B' Q" r常见使用方法:

6 Y; Y; a2 u, ?3 |4 Vless file     #浏览file; b; b8 H8 u6 D9 D  V) I3 ^
less -N file  #浏览file,并且显示每行的行号9 x9 n/ S, X' T6 [- R6 l% y: K. i
less -m file  #浏览file,并显示百分比/ c, @! k' y! }+ I' {4 q' Z
常用按键如下:
. K) o5 U: t0 `  }f        #向前滚动一屏
; Q; M% s7 _! y1 c5 gb        #向后滚动一屏4 S) Q( M+ ^5 u: X
回车或j   #向前移动一行6 z7 X: A/ @) y* G  d/ ~
k        #向后移动一行- r: ]% z% }( C; U0 ?6 O
G        #移动到最后一行
. W$ d8 O6 j9 M/ Ug        #移动到第一行6 J7 T3 Q, d  V  Z
/string  #向下搜索string,n查看下一个,N查看上一个结果
7 f% J$ \# G' xstring #向上搜索string,n查看下一个,N查看上一个结果) A3 u& h5 v+ i  d# v
q    #退出
8 P) r/ P( ]: q# a相比more命令,less命令能够搜索匹配需要的字符串。" A/ E9 ]6 G+ p& z4 n
另外,less还能在多个文件间切换浏览:

8 @* N; Y0 c* A/ c! G! _; a/ g1 oless file1 file2 file3
9 [7 l9 v4 Y. t+ l:n     #切换到下一个文件
4 \+ V) v5 @+ x, d8 M% ]. P:p     #切换到上一个文件# S; h! @8 [* f2 i( A/ g
:x     #切换到第一个文件
1 G6 E0 v& b" _; |, F* @6 R* `:d     #从当前列表移除文件
1 H/ J+ \3 M+ v- D6 e" z  z3 v显示文本头部内容--head
* o4 O5 _6 r1 r/ C- @
1 q4 ?; u1 K7 khead命令的作用就像它的名字一样,用于显示文件的开头部分文本。5 _; Y. P! G) P- y
常见用法如下:
7 R/ O; F: u& b
head -n 100 file #显示file的前100! a) _. I  h, x/ F
head -n -100 file #显示file的除最后100行以外的内容。  2 A6 q' g  }! H: b
显示文本尾部内容--tail6 ?( a9 i* a3 T" z% h
5 A( C0 K5 I- g
和head命令类似,只不过tail命令用于读取文本尾部部分内容:
, g8 N2 G7 }9 Y" O5 q4 V# [- M- ctail -100 file  #显示file最后100行内容2 E1 H. }' |8 H. s% G+ f
tail -n +100 file  #从第100行开始显示file内容   - Q8 U# g; B# n2 N& I7 r
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:% F8 U# g" _+ Z9 ~
tail -f logFile
+ r& c: _$ v. p7 [: k* R( w' ^对于更新的日志内容,会实时打印到终端上,方面查看实时日志。# y! B; ~. M9 }0 H4 C" E9 w
指定顺序显示文本--sort/ ^3 q8 K/ [( p: A( ]/ F
( }5 ^. G' H  K) t5 \
sort可用于对文本进行排序并显示,默认为字典升序。$ s% [6 t! n, s3 i
例如有一段文本test.txt内容如下:

- i( t8 b/ P# A: `( {3 N) Jvim
; [S c" C" v- |' `& P# Y; dcount
( H* P. _2 @9 ?4 V% g. b  c0 Bfail* n& p# z& ~; @5 \- Y( M
help
" ~3 I. A; M& A' _# z+ z! |help8 t" K! y4 o% y; f! k+ @
dead
2 e% L( D. A" V* r8 ^% s# xapple. E% a1 `" P- |" B9 c. V& \6 q$ d5 s' ?
1.升序显示文本
: }, N) c, [5 b$ Q9 `使用命令:
( e) e5 A3 z: Q
sort test.txt* J5 y- n7 K7 g$ |  |
apple! R$ y% `( }/ `/ z
count
# X& f. O$ G5 C# @dead3 t& f5 Q; S, R$ u; J
fail5 I" l* m, j+ `* F
help- C; A& O( U/ Z/ {& B0 v# K7 _
help
: L% J# ~$ A- X3 fvim
5 ]4 [# z, K; Y/ F3 g8 m文本内容将以升序显示。! q; H+ Q0 m3 q) F+ b1 U
2.降序显示
" {( v; \2 m- \' [( Q$ b相关参数-r:

/ j6 x5 X3 {! e& W5 f8 o( lsort -r test.txt
: Y0 D) K" R3 j# I. u) q, rvim6 L. C) ]" x% }( ?: ~1 c, \
help1 v8 u/ h( I6 M; ]
help" |+ `$ Z2 l4 o; ?/ `
fail9 q; A7 g& J- J3 G0 T
dead
& k, `: j4 A& g7 c$ C4 t6 vcount
1 U0 ]. w: w: t" [) q  G+ \apple
3 ~1 D# E, M6 W+ i, l3.去掉重复的行4 u, @8 k. e" C. s9 l2 P; ~
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

- ~Q D. u5 _5 H; F% Esort -u test.txt
6 \/ x5 S3 o- Z. p$ W5 Happle
% T3 T! b" m; j& h6 jcount
8 [& A* a/ ?1 $ A% B- Tdead
0 J4 b2 d0 b& r+ J" ufail
2 \8 X# p, `1 O! Mhelp
5 D1 X) h& s: {- @$ Uvim
$ ]; Y  G. g8 p4 n可以看到help行不再重复显示。: H3 J2 ~7 M% W' k
4.按照数字排序
7 w  K% D% X3 z如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
$ }; _1 \3 ~( d2 m! X
sort -n file: y- u' c$ i1 Q- P
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
3 I  `. x  ?! p. F' J9 N4 D2 G过滤显示文本--sed8 v( A4 }4 }7 z2 W

4 q; P, d1 h3 j  Ased是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。3 b& l& r9 W- T+ r7 k, ?" [
1.显示匹配关键字行" r. H. _3 c2 x! h
有时候查看日志,可能只需要查看包含某些关键字的日志行:
0 a  x' ^  _9 Z5 g" A7 U
sed -n "/string/p" logFile. N" z# |4 r- ]$ x
上面的命令表示打印包含string的行。
9 v6 R" G& H2 I/ s" J% h  Y* T2.打印指定行% u8 b0 z  S, h# p* ~, L4 L; N
sed -n "1,5p" logFile #打印第1到5行: ^9 x' ~6 P$ o, G: \
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号! s1 C9 [: V: k( t- B
sed -n "10p" logFIle  #打印第10行
: Y9 Q, F  s+ O$ }* X" q" B) v% \" h7 D去重显示文本--uniq0 ~' _: p7 i4 Y; \& k4 K

0 j2 S% F. _  R3 u8 \# c常见用法如下:
1 O4 P# h7 m7 i, g( Q' @& Nuniq file  #去除重复的行$ l, a7 s0 K, h( h1 o
uniq -c file #去除重复的行,并显示重复次数
2 r& j( s' {" E9 ^$ x- Zuniq -d file #只显示重复的行( u1 v! m7 b! q( x
uniq -u file #只显示出现一次的行0 c, U( \3 S; \+ d3 z
uniq -i file #忽略大小写,去除重复的行
1 e" D9 v$ e" K- s- D# V! s9 Suniqe -w 10 file #认为前10个字符相同,即为重复! o  a. y3 y6 t2 x( C; ^
文本编辑查看--vi; \9 M% R& d! W& I9 _6 G0 v
$ X* N, L6 K" L2 }
查看文件也很简单:$ A1 E% [" q4 I( ?- m* t
vi file
5 ]4 d( _( P, R, V. H9 {& Z6 ~" e2 C而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。6 @# P2 l9 f. T+ O9 H: j) T
总结6 h7 |5 m  S2 W& I) g: y
7 o: I$ U% C, u( u+ I
文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。- a  N5 p& h) J

微信扫一扫,分享更方便

帖子地址: 

回复

举报

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

本版积分规则

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

GMT+8, 2025-9-19 06:24 , Processed in 0.065828 second(s), 33 queries , Redis On.

帖子
快速回复 返回顶部 返回列表