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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言* z  E! x' J/ \0 H. B; {+ |& u" }
# z" o' J# w% L- L  ?! _6 K  D
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
: W& a% y" L+ A3 M0 {全文本显示--cat2 f1 I$ F6 F# X! j

6 O( m& ?2 W. A& i- [4 ]- ]- dcat可能是常用的一个文本查看命令了,使用方法也很简单:
7 V8 O% s, |0 S2 B5 s  ^cat file  #全文本显示在终端$ ~* r& n- J: U5 K, z4 j
cat -n file #显示全文本,并显示行号
' W8 `' s7 }. V8 \. ], }: N另外,cat也可用作合并文件:. B3 i$ X, h4 A+ P' ]' r
cat file1 file2 >file31 ]  A! S5 A8 \' ]( U5 r
该命令将file1 file2的内容合并写到file3中。
: U5 k! Y7 i, D1 U' I% \3 J倒序显示全文本--tac
7 i) q6 r6 O, p( _7 ~% r7 P) S" s
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
0 J1 S, W1 w; X9 T/ }" xtac file
  r% n8 x, j) q" n+ p& d分页显示文本--more
4 e1 k! J& W( F5 u! z" g; C- p9 P$ [- l9 J
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
# |  \8 B5 P& d* S% d; m1.显示内容
6 e0 A4 A" {! z: ]" w- v# H  O0 _' \
more file
/ k9 q4 M8 o4 K8 A6 h之后,就可以使用按键来查看文本。常用按键如下:: N& y2 `6 {5 c( P/ D& D
回车    #向下n行,默认为1行
& X$ m+ @2 ]* c6 f0 n: A空格    #向下滚动一屏
6 f$ k! }8 h; j- T$ ?/ u- kb      #向上滚动一屏
* H5 {3 J# ?) Q7 i& D, R* z. H) o=      #输出当前行号
2 @8 l2 h. h( i:f     #输出当前文件名和当前行号
9 y% O6 K5 T; a5 Gq      #退出
8 E0 r2 `; w7 c& S6 X. X# t) j9 U2.从指定行开始显示
0 w& |' h9 R4 _/ _more +10 file
" W' u2 c/ g* Q3 [2 A. o* L该命令从第10行开始显示file的内容。
! ?1 A4 P! k4 O" \3.从匹配的字符串行开始显示
6 d5 T; R/ E) I/ m3 rmore +/string file
! I3 c& p% U: w) K" j5 h+ X该命令从有string的行的前两行开始file的内容。
' H+ |$ P" n7 B8 G. @0 }任意浏览搜索文本--less9 k$ v8 |8 V) d: U8 U

/ M1 |! q* x) s- n' O1 c2 xless命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。4 Q( F( v! Y/ @$ S
常见使用方法:

* k" K0 I( k6 i8 K: a. j' p8 oless file     #浏览file
" e0 k1 H/ f+ P0 M* M6 gless -N file  #浏览file,并且显示每行的行号. b; O9 j) d+ ?* l; h: c; z
less -m file  #浏览file,并显示百分比& b' o9 Z7 k* _! p* U0 z% q4 U: V
常用按键如下:
! e$ W8 I* [0 \4 N2 Q. Hf        #向前滚动一屏
" I9 T1 E0 r8 c7 K5 \( e; N3 yb        #向后滚动一屏0 i, x# ?0 A# _5 A8 G
回车或j   #向前移动一行
$ S# e) s5 [% T( u' I/ Z+ Dk        #向后移动一行( [+ T; w  T  T
G        #移动到最后一行
' w$ m% V1 f) \( q- zg        #移动到第一行
! ?* C; h6 D( X# Y/string  #向下搜索string,n查看下一个,N查看上一个结果
1 D! e, a7 W6 \/ E* z' N+ T  Jstring #向上搜索string,n查看下一个,N查看上一个结果. k3 u: A( c2 N
q    #退出
1 a& h, C0 _4 r! U" {相比more命令,less命令能够搜索匹配需要的字符串。5 u- {3 h0 C; P5 I( J5 a
另外,less还能在多个文件间切换浏览:

) F& Q+ W5 R, t8 h" N# Z, y" ^less file1 file2 file3: p: |& L$ F4 b* S' o
:n     #切换到下一个文件2 D1 a. z2 {8 L& y% `9 q" H
:p     #切换到上一个文件
5 o& t% y7 J8 Y6 n:x     #切换到第一个文件
( h% ?" Y& @8 a) D$ u. d2 M/ Z: S:d     #从当前列表移除文件& r% G  c( T# [7 j
显示文本头部内容--head
% k2 P& w% D4 c, ~( O1 P
6 U* ], \# U5 z/ \0 I" ^. ~) ghead命令的作用就像它的名字一样,用于显示文件的开头部分文本。, A: K% v- }: z/ K
常见用法如下:

5 q3 g6 M( J3 s3 L) Jhead -n 100 file #显示file的前100  q1 [6 w. i  U  Z+ q
head -n -100 file #显示file的除最后100行以外的内容。  
+ q$ g$ Y# t2 B8 y: i显示文本尾部内容--tail* Z, b+ W% i/ U7 w/ q5 U

: r) M" T; w6 ]+ \5 \; E* j和head命令类似,只不过tail命令用于读取文本尾部部分内容:* b9 J7 c% I0 ]% p) N% t& `3 I
tail -100 file  #显示file最后100行内容2 a  `& w. w9 R4 X4 e
tail -n +100 file  #从第100行开始显示file内容   
/ |" |6 f( C7 F* ]  \$ G% stail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:$ l; `) Q' T: T' S
tail -f logFile7 _& [0 L- B) y% x$ q. p
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
* }4 a) N1 o" D1 N4 O6 k( C5 q5 r指定顺序显示文本--sort5 ?$ f$ J$ g5 J& `

& s+ e/ A) ]; A* ?8 M. Asort可用于对文本进行排序并显示,默认为字典升序。1 }# r% K/ U# e9 v
例如有一段文本test.txt内容如下:
* d, }, f3 O1 E3 e$ b
vim& Q+ O8 y, U& J( l4 D& y) _7 H/ Y
count
0 `$ k+ H" o2 y+ `% wfail
( A) y, @4 h! ~; I: V% L" R0 phelp
$ e% P8 x$ y" J5 j; ?" p% ~help
5 O2 v+ J2 b! P. C( p- qdead
: V1 w- `8 b7 Wapple
  L$ A" ?3 Q7 r4 z. J( r1.升序显示文本
5 h5 I; r, H. }6 i1 E使用命令:
: m/ g: D2 s1 V& m
sort test.txt
  B" Z+ T4 P4 f7 ^6 o, rapple- _/ S3 J9 I/ l7 F4 X
count
3 ?4 K* L8 P# x9 vdead
4 P! L9 |( j5 x0 U) ^0 Ofail
; g  U1 N/ _" b: F/ V+ A; k5 X( Q5 vhelp
2 X# j. b" F4 \+ Y: Phelp
6 f, h4 p3 M) Q( R6 e. m2 Ivim
. z" g! e5 e5 l1 O& Q1 X文本内容将以升序显示。. [1 W4 j% @1 v: w
2.降序显示
/ u# n3 C  X* a& p' l- H3 E相关参数-r:

% Q6 `! A: N8 H, {# J) _3 k8 Rsort -r test.txt$ n; x# c( H; J& }3 v$ F8 e
vim
; y' s* c9 l. e9 Uhelp
1 F6 n! k! W0 r% Zhelp& `' f5 t& V2 J6 A0 V3 y/ x
fail
+ Z& {# J  z7 ^  Zdead
+ \% n/ g$ O8 X. u7 Xcount
! A6 R' J0 p+ r% a- mapple
, g) Q. H* f( X: b5 ~7 k3.去掉重复的行
5 e4 i- h* m* s& K我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

" v% M1 k- p" @- h* Zsort -u test.txt
, n3 s9 H; @  x8 O& \# }apple' G0 ]; T4 H; E/ N4 x; C) Y) s
count
! ~7 k4 ]7 v( B5 J$ f, K! b9 N! y  Xdead$ o3 X' D  M' u, ~
fail
/ P/ O7 L. {) [5 o* m' x8 U. Whelp7 e8 N: H0 ]4 P) _& E7 J1 ^& A
vim) W! Y8 x5 g4 c: M1 ~) z5 |
可以看到help行不再重复显示。$ m# [1 B8 C  i$ t  h6 ~- i: I0 h
4.按照数字排序
6 H0 t9 s: x- i: U3 i8 B如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

. M. w+ W! w5 R& v0 G* V6 \- ?sort -n file1 m: N9 x6 ~1 c5 T' W
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
; \. p( N/ h; v6 \3 [过滤显示文本--sed
% Q0 W: Y/ y2 I+ X
  {3 d6 ~) |. u' C2 w( p/ Xsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
) D; [* F0 r' B. [) P5 }  Z1.显示匹配关键字行
( L! c  ?8 k/ c+ x* _有时候查看日志,可能只需要查看包含某些关键字的日志行:
' z% U- e) V  n& T& i! g4 u( e
sed -n "/string/p" logFile+ n; o: [/ u: f% D) A
上面的命令表示打印包含string的行。
: ~. w2 u  |2 T6 q; U- p. `* m2.打印指定行
! ]4 s1 J# d9 Q9 K) tsed -n "1,5p" logFile #打印第1到5行
2 z" e7 s% A+ C0 q0 X* psed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
. a7 ?- z; o6 rsed -n "10p" logFIle  #打印第10行
+ Z3 B* [7 |. y去重显示文本--uniq8 n/ l& f  O- j6 E8 E" A0 [
( S& I/ m; E8 T6 B3 s( {; k
常见用法如下:
" H5 }. S6 A$ j$ R/ f3 buniq file  #去除重复的行
( t% n/ k$ j( f' g1 Cuniq -c file #去除重复的行,并显示重复次数+ R) H( @( e  D# L( H) o
uniq -d file #只显示重复的行
9 T$ \3 f8 `- A! D0 Puniq -u file #只显示出现一次的行) D* G0 S. y- z4 P) ^, D' b! j
uniq -i file #忽略大小写,去除重复的行
; W; }9 r9 B% |. F5 r9 ?: `uniqe -w 10 file #认为前10个字符相同,即为重复$ @) V% i1 }7 w% P  \
文本编辑查看--vi" K0 u4 o7 }  r  d# ~* m% z
! ]" D0 I: [4 c" F/ Q
查看文件也很简单:" Z$ I6 w. \, H9 P; P! A
vi file
7 _0 h+ d: O. P2 l2 I1 }5 d+ g% O) h而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。! y1 c- b. k0 U! q
总结" H* k6 S# W  V

% n5 U3 J! ?9 ^文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
! ]0 V9 B0 x( U& T4 Z! q; U9 W

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-6 07:14 , Processed in 0.073728 second(s), 47 queries , Redis On.

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