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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
  G# u- J; R0 j) v  U/ E3 N; {0 b  l  _$ ^+ `
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。6 _9 S2 h+ a( v
全文本显示--cat
# T6 }8 ~% Z  W+ ?
  w2 I! M! j7 R1 y* _! s) R+ mcat可能是常用的一个文本查看命令了,使用方法也很简单:
% z- q6 y% Z2 }" t: z, \# x/ @cat file  #全文本显示在终端. E2 {% G! I) V! a! l' J
cat -n file #显示全文本,并显示行号& u4 ~, N. z  P
另外,cat也可用作合并文件:
- v' C% o# B6 e% e3 E: _5 ~cat file1 file2 >file33 N& I: a) z7 U
该命令将file1 file2的内容合并写到file3中。
/ s7 S  m  V; p) H倒序显示全文本--tac
* ~8 n$ M1 a* t! |* N/ z/ e2 G0 P" H$ {; ~8 Y4 }8 L' L
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。0 B2 b, q( R+ m
tac file
; Y3 h5 K0 y2 o8 E分页显示文本--more# d0 n9 Z5 I' w" q2 R

( c; r* g, C# q5 }8 ^: a, _- U+ mcat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。1 p8 t9 h# p7 N  Q  m4 e9 O7 t
1.显示内容

1 f0 d1 J+ ^& c9 U( Cmore file
8 E* v" O* d$ A+ T之后,就可以使用按键来查看文本。常用按键如下:
8 N5 O% ~) O/ r9 I回车    #向下n行,默认为1行! f& a" x0 K( U4 W
空格    #向下滚动一屏
" j0 }6 q% M) m3 zb      #向上滚动一屏! n  i# ~9 r2 ]  P
=      #输出当前行号
! v* X; x  q2 k1 z6 I$ Z1 S; z:f     #输出当前文件名和当前行号* h9 b7 Y9 k% M  p
q      #退出
& v% H: |* q4 v) V2.从指定行开始显示
" I! T% B* j/ ?more +10 file1 C/ u  K! u5 F/ i2 h5 ^
该命令从第10行开始显示file的内容。
7 q. L5 J9 ~# I# ?5 d) a3.从匹配的字符串行开始显示
1 ]% a' ?5 _8 n% o3 ]" Omore +/string file
( d5 E- s. ^5 j# H* k! `该命令从有string的行的前两行开始file的内容。+ B0 e, I# {" a" n
任意浏览搜索文本--less/ h: Y; z3 }: R* X9 j; N# K5 q: L. y

2 k: j0 X- z0 R+ P. {less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。% Q1 j" @& r1 F+ K
常见使用方法:
; @. ~8 ~1 ]! T# u4 ~
less file     #浏览file# n  f) K! b; ?. E  O
less -N file  #浏览file,并且显示每行的行号
! @* ]* h. c5 @+ @$ w; Sless -m file  #浏览file,并显示百分比; O# d3 O! d5 A7 Y
常用按键如下:
' K$ e5 K9 b1 I: V9 K5 a. u! u- gf        #向前滚动一屏4 V  g2 M/ z8 |& R- D: g" k# Z
b        #向后滚动一屏
7 E7 C2 M- I6 i4 L* I回车或j   #向前移动一行. o. h# t5 T/ d% G# Q
k        #向后移动一行5 _6 w$ {) y7 @$ w
G        #移动到最后一行
4 ]& x7 s# D) \* Z/ ~g        #移动到第一行
6 A6 D1 Y( W  N8 F' k+ N- ~6 b/string  #向下搜索string,n查看下一个,N查看上一个结果% J$ |  V( o/ A
string #向上搜索string,n查看下一个,N查看上一个结果5 E1 r+ x& U) l7 \% T* t
q    #退出
  L2 ^' ?, x2 e) `$ @相比more命令,less命令能够搜索匹配需要的字符串。
( q( T* u5 S; A另外,less还能在多个文件间切换浏览:

% j5 G3 b0 Y+ m/ o- ^less file1 file2 file3
, V/ D7 B1 ~6 A, R+ ]3 ?:n     #切换到下一个文件* p9 t" ]$ ?9 O' p2 z$ ^
:p     #切换到上一个文件
- S$ n. ^& C, S  m: E:x     #切换到第一个文件
" n- o. X  S2 X0 r4 h:d     #从当前列表移除文件
. m0 t" V( u0 Y) c& E2 L显示文本头部内容--head
3 N8 R  y8 M0 [( P
/ v' X% h1 F: ]. u% c/ Khead命令的作用就像它的名字一样,用于显示文件的开头部分文本。
2 F7 _1 G/ X" p; x: t; K* }2 D5 d+ Y常见用法如下:

) _9 H- S1 q5 Q; Rhead -n 100 file #显示file的前100
1 F! s; m* t, v7 e; {head -n -100 file #显示file的除最后100行以外的内容。  0 Q3 Y& s+ M$ ^* f6 I
显示文本尾部内容--tail; @% ?0 ]" s. H3 }9 C2 Q

# p/ G0 H: L# e, B6 N7 u和head命令类似,只不过tail命令用于读取文本尾部部分内容:
9 h% Q# z; f; S* vtail -100 file  #显示file最后100行内容
& ^$ C. |3 S, N% W! Stail -n +100 file  #从第100行开始显示file内容   & Z0 t6 I, a  m3 _* }+ I
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:8 J9 g8 G1 x8 O! {6 u) y$ i
tail -f logFile+ p5 E$ p9 B5 r$ C; k
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。5 q7 Q% g, ~8 i; G/ i8 n0 n7 e( |
指定顺序显示文本--sort4 |+ r, W+ Z, e& i3 l) E+ f7 M3 ?

4 g$ R4 ], D, p8 j' V2 S5 M% w: R# Vsort可用于对文本进行排序并显示,默认为字典升序。' O8 G0 O7 l: W
例如有一段文本test.txt内容如下:
4 h* p* h5 O3 c, m0 K5 ?8 }
vim( b8 m4 }5 ~) U8 X4 I
count
3 S5 E3 @: Z9 \* s0 E1 L# e0 jfail
/ b9 d" N' T. j, f1 Ghelp+ E- S4 ~0 s5 @
help
6 g: s6 W( e6 ~* X- K) Idead
# j( \6 t" U- E( G7 Dapple
0 c) t/ C# r* G' C/ J! Z1.升序显示文本
9 t7 M. `# m. D0 F使用命令:
. |4 k, ~% Z$ p& Y1 Q+ }
sort test.txt
6 y$ g* b$ G: m8 kapple. A4 I8 ]/ |4 ?3 A& k: @
count
& l- ^& H3 K" \  B8 W% Edead
+ ]& t4 l4 o4 n' j/ Zfail& g9 Z3 G% n: b9 w/ h) B
help  I& C5 r. K! \5 r
help
4 H! [' j9 _& r2 X, ^vim
7 C7 _& K3 e  d' b  K( D7 @. {& |, U文本内容将以升序显示。
3 D7 ~/ }, w  y! l+ L. ?2.降序显示/ l4 U6 {- z8 Y: a) Q; w. {  G
相关参数-r:

* S: T6 x+ I% z# Vsort -r test.txt5 |- K: {& H' l, @+ }+ B+ i
vim4 W4 v# J" `/ ], H2 p# j$ z
help. x1 ?: {$ m) B: z  w: V. w( S/ a
help
* F8 G) d* v9 }2 R# `fail
, e8 q% P7 u% B0 {+ z7 }) Q8 P6 i! o/ kdead0 Z& t6 P' S: `
count- q( P% x" d5 z& h: R, ]. Y, e- s
apple
3 a6 z& @5 f+ D- P+ P( s3.去掉重复的行
& s( I# y8 O# n% C  l/ J) _2 D. F我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
. Z& g8 S( N2 d7 _3 {
sort -u test.txt
5 e. M* P) p! `/ r4 Rapple
5 `; @  w" N; acount
# f$ X( N- W# ^6 I; Ldead, f4 n* p+ _1 {8 n) w. i
fail& w2 }: _% r: u! [. _9 ^
help9 ^4 n7 G# n: C; z
vim5 K+ r2 K# ~# t9 H' B, q2 x
可以看到help行不再重复显示。
1 R, k5 Q) ?* S/ F$ M" ?4.按照数字排序+ |/ U9 }1 S- Y0 {; E3 L
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
  K' ]1 N* _8 S) W# G0 F- s
sort -n file
0 `0 L7 w/ `7 V0 z, v由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
. X. w' j2 Y" w0 Y5 n8 ~过滤显示文本--sed
: a8 y; @+ ~& F! N& p6 B
9 I: `# Z& h( e1 osed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。4 q. y2 k" z: W5 F
1.显示匹配关键字行
1 d) J# A. y" D8 c有时候查看日志,可能只需要查看包含某些关键字的日志行:
- B4 ?' ]% E4 ^# C9 q
sed -n "/string/p" logFile
  U$ [6 A3 i' m9 x上面的命令表示打印包含string的行。
1 U2 U' B) l3 r/ I2.打印指定行
/ a! P# {5 Z( ased -n "1,5p" logFile #打印第1到5行, \& m/ x& b6 D/ F, V0 J, s
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
; M# `  ~0 d" G+ ~/ G: Osed -n "10p" logFIle  #打印第10行, l2 |8 A+ D- z9 u
去重显示文本--uniq
# p2 Q! ~5 b. k" ~3 S$ S
) [3 K! w( v) i- G6 v+ d常见用法如下:
# O. H. c9 C9 ]$ @uniq file  #去除重复的行) a+ I# \" B! m. D8 t
uniq -c file #去除重复的行,并显示重复次数
. e/ W6 ^: `1 H$ O. yuniq -d file #只显示重复的行( h+ `/ B! H0 Z/ _3 C  j
uniq -u file #只显示出现一次的行! ]- q0 q- |9 ^
uniq -i file #忽略大小写,去除重复的行
6 W  k6 \/ [# q, Runiqe -w 10 file #认为前10个字符相同,即为重复
, w9 E4 b1 ?" y% T( @. k文本编辑查看--vi7 `3 Y; K* Q" N

! D' B. Q9 V" F9 q查看文件也很简单:! ~+ ~9 ?; n$ Q4 Q- c& U
vi file
0 C# r5 F0 Z5 E3 ~: ?1 v* T4 U& W而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
9 d# l7 L5 c, E- \0 g总结- G. t% J( E0 O. e; Y% ?4 ~

% |4 m5 u! |  o2 j4 ~文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
: Y  Y- P6 E! o: ]

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-15 14:39 , Processed in 0.069464 second(s), 44 queries , Redis On.

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