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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言1 e% D. b2 `7 H& e

3 k6 ~' h) F! \4 a  C# nLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。/ i* [3 Z/ n' w  n
全文本显示--cat
7 E; m% H3 W) c: m( j5 Q* D: o6 T2 _
cat可能是常用的一个文本查看命令了,使用方法也很简单:
0 t7 u/ l5 g  S3 `) f- h) g. ocat file  #全文本显示在终端
8 x2 w$ |- W  \6 @  F8 Jcat -n file #显示全文本,并显示行号/ p0 R5 c% `2 p! a3 z
另外,cat也可用作合并文件:
) M0 Y# Q) Q1 \  mcat file1 file2 >file3
, ]  m& b+ H; C- X该命令将file1 file2的内容合并写到file3中。: i# L& e+ c  e" b7 Y
倒序显示全文本--tac
6 h6 }0 ]0 \  ?+ V( {( U# ^, ^
* @5 _2 _' t7 B/ Z# btac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。+ q8 ~5 |: l: j0 ]$ w) M1 E
tac file
$ y9 e/ x9 \9 b* z. @' p) `' A1 k4 O分页显示文本--more
: i) I: J4 K# q
: ]4 Z6 `) h, O. h. @1 S( @0 Ucat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。2 I# m# m/ _' k+ w
1.显示内容

# ^8 K2 l( k" j, Ymore file
0 I5 u" ~4 a8 N8 V之后,就可以使用按键来查看文本。常用按键如下:
1 \, r% L; j1 W, V: r) ?: c回车    #向下n行,默认为1行! Z+ j2 s; V' Y, R* U5 Z
空格    #向下滚动一屏7 C' N2 H$ y4 d) a8 L$ S
b      #向上滚动一屏" R! O; _( R- Z' ~+ u
=      #输出当前行号
9 E0 }( ~+ P, }0 Z0 F% b( U  }:f     #输出当前文件名和当前行号) a+ M0 y" f8 c# u
q      #退出* u; l4 a, c7 G9 L! V# h
2.从指定行开始显示- R9 O, M( Q. \: e! E
more +10 file# ]) f; D8 d: F6 L& [- Z. }
该命令从第10行开始显示file的内容。
$ f, R" K0 s  x% @3.从匹配的字符串行开始显示
* h" y) P# f5 K5 X" [6 dmore +/string file
1 d. q7 m" K- X5 h, x$ S该命令从有string的行的前两行开始file的内容。
% y6 ]+ A( _/ L" [/ @3 A4 e, q任意浏览搜索文本--less0 x& O- ^+ K2 d. g
+ `0 J# R( Y. p+ f# p+ f% ]' W6 C7 V
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
) a: e7 r% q  m& b4 d. @' a常见使用方法:
8 Y" ?( w9 G' _# t
less file     #浏览file# `4 Z7 f9 m$ [2 _5 H3 P' f& j
less -N file  #浏览file,并且显示每行的行号
; o1 U( q7 D1 M8 Mless -m file  #浏览file,并显示百分比0 E9 ?& ?% k/ G) ?  e, d4 N
常用按键如下:6 b' `, a+ }" U5 J8 w& O: G+ I: N
f        #向前滚动一屏' R; R) {) A7 Z) ]1 E
b        #向后滚动一屏& q: m! q3 h2 s$ s0 \
回车或j   #向前移动一行
6 P6 z2 E( ]$ S! O4 `+ |" Tk        #向后移动一行# A% ^7 w7 b3 W; P
G        #移动到最后一行
/ c8 s2 }0 A" g9 v0 k2 ug        #移动到第一行
) @9 P8 I0 A& B/string  #向下搜索string,n查看下一个,N查看上一个结果9 k) i0 u, @( w! u1 y* K$ t
string #向上搜索string,n查看下一个,N查看上一个结果
$ I8 T# i( ^! f% {6 aq    #退出+ I$ m3 Y0 b6 g3 V2 r) U  m
相比more命令,less命令能够搜索匹配需要的字符串。$ O3 q5 y; D0 q2 G- C
另外,less还能在多个文件间切换浏览:

. J3 [/ J) F3 _. }: Y6 Pless file1 file2 file3
: @* G8 `4 z+ V* d9 T9 T& C) r. h% {:n     #切换到下一个文件* ~* j$ E7 n+ W, Z  `
:p     #切换到上一个文件
- ], t" t1 [5 t2 e; c1 @5 B:x     #切换到第一个文件, k( J% q2 ~# q. O2 O
:d     #从当前列表移除文件& ?! Z" q$ j2 s. |
显示文本头部内容--head* B) S% u' R) O  V( m
# h  m& t* C! X/ |" S& ]4 M( Q
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
6 G5 p1 H/ G. ^5 h( D常见用法如下:

* P/ X- a- t0 dhead -n 100 file #显示file的前100
+ f( Y8 \" H: ~head -n -100 file #显示file的除最后100行以外的内容。  
  b4 L8 B) p1 n, o5 }显示文本尾部内容--tail
4 K! f5 _/ o9 o& F, Y" j5 ~/ k2 i$ h0 @1 W4 A, |0 w' R
和head命令类似,只不过tail命令用于读取文本尾部部分内容:
1 a, ~% V) C$ W& j4 C. @6 M% Q* N5 }tail -100 file  #显示file最后100行内容
: g0 ?+ y- s6 u3 w5 R. Ptail -n +100 file  #从第100行开始显示file内容   
- h" ^* S  n7 h( k4 H1 ?" _tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
& h5 k& l5 o0 [- v( J7 x) q0 Wtail -f logFile3 p8 ?3 ]4 N% r- Y* X- E
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
3 E/ H  }4 {% a+ f0 G指定顺序显示文本--sort
* v  u. S3 O! |5 S4 r6 s4 C' O/ d& Y' Q: ^) D! X/ ~: |1 F
sort可用于对文本进行排序并显示,默认为字典升序。5 T2 L' ?& T7 B9 N" Z0 D( z
例如有一段文本test.txt内容如下:
: O/ K! Q3 @; N' I2 Y, t1 s; F8 t+ c
vim3 E6 S/ K/ r* ~8 c4 i8 y. p0 T' d
count8 u. ]" D0 N5 M2 Z
fail# k$ F7 p) r- L7 T$ s& g3 @0 G6 m2 b
help1 _7 {/ ^" J& d, p1 M  f$ L$ N5 V
help
; O' G/ E: k0 Z3 [0 p1 @6 U" V7 tdead
4 t6 N3 p- v$ Q( ]9 E# U, Dapple7 z: D% o% u8 h( \# F
1.升序显示文本& T. |9 _3 x* I0 V5 Q5 f" \
使用命令:
. K! v+ P. g, ~# K. A! m
sort test.txt* L% P" d; J; _9 P6 n+ s. F" u6 E
apple$ m- ]9 F3 l& @3 A
count- p) Y$ w* W2 m+ E
dead
. R) i5 j* ?/ W0 e# H6 V: ?fail
4 T2 E" G  R# J' F* H# K  whelp8 _# G- H% p9 @! N# o3 b5 P7 l
help
  d0 E+ `+ x% x5 E7 z2 ~vim
1 X; g; F  x4 l; R) M: e文本内容将以升序显示。
7 x  U8 G$ h( g" N8 y2 ^( F2.降序显示
( K. d" G- V3 {5 Q0 n相关参数-r:

; u( n" c7 f  r1 i8 u+ xsort -r test.txt& |8 x4 z  j# Y) {2 T
vim
6 Z1 o/ ?7 F* ]( }2 f! j4 f- hhelp! N* I% l* H, t( _5 F4 x; Z! r, R
help
; D: j# }% @0 m$ V! zfail
( t8 i1 v; e; {$ p4 _# `/ P4 t5 ydead; x5 B2 P& |/ d) K& O
count
  D; ^, ^' x5 P! I1 Z  N' _  e' r. Mapple4 h3 y' W! Q2 N$ B
3.去掉重复的行2 {% s% x* @$ W
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
' ]+ p# [; v: _! \* S
sort -u test.txt
, P( i6 Z% p4 l& F8 fapple- ?, n: e! \/ ~: c5 B
count7 ]( A) h0 U: c8 X7 d' j, J0 }
dead6 p! a$ D, G* H$ ]" U; x
fail2 {2 I, c0 T. m: Q+ m7 M# X; Q
help
/ T$ }5 d, \2 Wvim7 i8 J* D# J$ Y* r5 Y
可以看到help行不再重复显示。; t2 `7 z" e/ q6 z
4.按照数字排序
+ |* V2 h6 l: S如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

4 a: E7 c' F; d" x( \' lsort -n file7 f9 n2 H" u1 `8 P
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
. p# t3 @* ~0 R" _过滤显示文本--sed
: v: f( s' s. J# j# S, D
% b1 N! K! f1 r! A2 N* Fsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
# u1 o* S# I7 @% j1.显示匹配关键字行2 X. r( V1 S& ], f
有时候查看日志,可能只需要查看包含某些关键字的日志行:

" I- r: |9 m6 R! \& Xsed -n "/string/p" logFile& c. i' W  Z4 E. O- p: R9 E  ~
上面的命令表示打印包含string的行。
- `) j8 `! z$ o8 P2.打印指定行
: J/ Z; @; N* h+ Fsed -n "1,5p" logFile #打印第1到5行
& N. a* v# w" P4 C1 L; J( v2 d& Xsed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
* l9 ?% n& i& `6 a2 h6 s; |! o; Qsed -n "10p" logFIle  #打印第10行
. G' m& z8 ^  L( g去重显示文本--uniq  y7 m- N$ {/ T- v. o6 c
4 S( U/ C+ I$ C5 a5 \0 N, |  s
常见用法如下:
$ z( _5 x7 c1 m0 V: Muniq file  #去除重复的行7 o7 _5 q5 ?% h6 h) g; w3 k
uniq -c file #去除重复的行,并显示重复次数
% s" u6 T7 E6 I# Suniq -d file #只显示重复的行
. o% p! Z1 g) Z$ b; Q* a: p' Luniq -u file #只显示出现一次的行: {; ]- z5 h# k; A0 k
uniq -i file #忽略大小写,去除重复的行8 [/ D  M9 E) n, ]' |( u
uniqe -w 10 file #认为前10个字符相同,即为重复) D( M! H6 b/ @# M& ?
文本编辑查看--vi
, `& K. @- F) d" [2 Z8 u( `5 ?( t* O
查看文件也很简单:. t% s9 H0 n, A! R  V" `' {. V0 J, P2 K  O
vi file
. ~% z( B4 h0 ^% @6 z& r/ D0 \而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。/ p% Z, c7 W7 e+ J/ S0 v: T
总结  C( m0 ^* ~2 F: b

( y8 |3 _& z6 t' k5 ~0 q; Z文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。& t9 {) z& q6 t9 X6 a0 D! n

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 21:10 , Processed in 0.050614 second(s), 32 queries , Redis On.

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