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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
5 m3 O3 ~) j9 C3 K3 e8 M
9 A& H8 I% u% o1 ^5 }. }0 HLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
- ?) v1 Q+ L8 R! [6 |全文本显示--cat
4 H6 `3 S) `9 f) w' ]- b- W
% V$ D) P* C, E0 J  I: qcat可能是常用的一个文本查看命令了,使用方法也很简单:
9 V! f7 {( l8 p' icat file  #全文本显示在终端& R( Y4 m3 _% U# O' H
cat -n file #显示全文本,并显示行号, v( [& X' ?$ h" E* t
另外,cat也可用作合并文件:
: |7 x3 P! S1 N3 m" Wcat file1 file2 >file3+ e$ T! Z0 }; u7 ^, w" u2 ]* b
该命令将file1 file2的内容合并写到file3中。' [4 W7 c7 T) U6 q8 U# T
倒序显示全文本--tac
$ a3 X. E- L8 K) }7 q9 M- o! y1 @) {$ ]
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
; J- H) U) e9 ]7 t  j( Xtac file
: {1 x; k( @; k  P3 w2 B: w; k分页显示文本--more
! l, \3 O% A" d3 W, p! L' R# ]* N/ ^, n+ q2 [
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。, g. e+ i; G# w/ S5 a
1.显示内容
  L/ i7 I. J# c$ T& a2 P" V
more file- u. `  f+ b4 Y  [4 B6 X/ Q
之后,就可以使用按键来查看文本。常用按键如下:
  c8 B9 d! _4 I( M" U回车    #向下n行,默认为1行
4 L1 W; {0 f; a  |. l空格    #向下滚动一屏
0 B% i1 P4 i7 T! U5 _b      #向上滚动一屏, m' Q- T. V5 `( l+ D8 {
=      #输出当前行号+ N+ G8 q1 H6 \$ g6 z
:f     #输出当前文件名和当前行号
0 v8 U& K, N3 F* ]q      #退出4 m. A" U1 v) {! ]6 K) f0 J* P* ?
2.从指定行开始显示
) b0 F3 M5 b* Z% f" Ymore +10 file& q3 {: }2 {% q! K  S: R
该命令从第10行开始显示file的内容。
6 e0 P8 ?# W  u; l3 e+ j: ^3.从匹配的字符串行开始显示
0 r% F+ {3 M" {) vmore +/string file4 t2 M0 r$ s. V
该命令从有string的行的前两行开始file的内容。
. Y! c4 A/ F4 U% z7 x任意浏览搜索文本--less
2 G/ ~3 Q/ ?" M- |: o) K4 Y$ G8 j; d9 z
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。* d) {6 u8 _- P- f0 n% Q' F2 N1 |1 @: r
常见使用方法:

$ s( ]8 p( y( F1 [4 L! uless file     #浏览file0 V) h( G6 ^  ^' f6 Y' c$ ~( D' g
less -N file  #浏览file,并且显示每行的行号
% y0 _; C% b4 d/ ~# d2 U, q2 tless -m file  #浏览file,并显示百分比
' `% V" b  ?! F# U% n6 a常用按键如下:: K8 Q: i* g" F% Q9 V
f        #向前滚动一屏
: R0 f) [5 L3 o5 x- ?6 x2 zb        #向后滚动一屏. H$ O/ M( {0 |
回车或j   #向前移动一行
/ {/ N' _9 A& d( @+ {k        #向后移动一行
7 z9 F3 h5 K! |( y! X: XG        #移动到最后一行9 W1 [/ T7 K; r4 s0 q. J: t8 L' \
g        #移动到第一行- `0 q: O8 t' t0 N) p% P
/string  #向下搜索string,n查看下一个,N查看上一个结果, p; R- [7 r/ c1 y: r' R
string #向上搜索string,n查看下一个,N查看上一个结果
+ H! `  ~: [. ?0 o( M6 |q    #退出
* b3 Q+ ~# u) v2 R相比more命令,less命令能够搜索匹配需要的字符串。& T2 G1 @( Q  A$ o& I' m- u) o! e; H
另外,less还能在多个文件间切换浏览:

% ?! }: }/ k' Eless file1 file2 file3
  O" p' `/ b, e  f6 `" P:n     #切换到下一个文件3 t. }/ {" C/ }/ `$ b
:p     #切换到上一个文件9 H' I  |5 ~! N$ H
:x     #切换到第一个文件% x3 I4 q' H. z; S6 s/ }. h
:d     #从当前列表移除文件) A) V, q9 D1 a- x' c
显示文本头部内容--head
3 b2 e6 c* _% N7 e
5 m3 U# [4 J. i4 `" p2 vhead命令的作用就像它的名字一样,用于显示文件的开头部分文本。
7 K) i, N( u7 n5 a常见用法如下:
( V' a. y. S7 j" ^' W
head -n 100 file #显示file的前100
: Y  U/ r4 w" D& _head -n -100 file #显示file的除最后100行以外的内容。  
" j- P% e' Y1 p显示文本尾部内容--tail
+ ~& G) H& [$ d; K  C$ ~% v
* ~0 u" w" z: ]& u和head命令类似,只不过tail命令用于读取文本尾部部分内容:" _/ z9 k" k3 t% G0 b3 e3 O3 N
tail -100 file  #显示file最后100行内容
& }9 b( k) N& \- K/ S8 @# u! Ktail -n +100 file  #从第100行开始显示file内容   
! k  v& ~0 |( etail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:4 K3 v  T. W# K
tail -f logFile
  o. X2 B$ h+ U# Y: d对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
6 v. S1 W7 V5 v" p- n* b- C% d" {指定顺序显示文本--sort
( R& b4 q' q, r3 G0 A) o+ W% s" ]* r6 O* @4 E# t8 B+ C
sort可用于对文本进行排序并显示,默认为字典升序。
: B- t/ C' p$ A; e0 X+ P5 [8 w0 z; R例如有一段文本test.txt内容如下:
7 F" o# X: O! `0 u8 k) S3 `
vim$ y* b8 f4 d2 q7 ~6 J! _
count  E5 m8 ~7 s" c' X; x  c
fail
& o' h2 u- b% |5 d7 q- \help
' i7 c. z! j! E( ^( J+ F" |- B" |: Xhelp' k2 S% b# [& Z: S9 g1 I5 _) f
dead
: x; o4 F4 D) G1 q$ V8 fapple
$ o1 v* B3 r; d- R) Q1.升序显示文本4 z$ `) Z$ X& r2 b
使用命令:
( Y2 |  K* i( G- G. E: z8 ~
sort test.txt% F& E5 @4 U+ \+ |
apple
9 X; I& J% j& X8 u8 {& @count
" P7 Z/ k% @( Z3 I  E: Wdead4 C4 w+ H+ E3 T4 ~# B
fail
3 W$ a* J$ l' v) {2 l* Mhelp
! C1 d6 R: j4 U' zhelp3 R5 P9 w+ ]* _1 k) d
vim
" ~2 J  [$ y8 x6 S5 k$ M文本内容将以升序显示。
1 c" }2 [- _1 \7 J4 K2 y4 ^2.降序显示
5 B. y) F4 C6 A+ B* _相关参数-r:
# C% K+ I( L8 W( A, t& S
sort -r test.txt
, d% c9 W# s% ?1 f- c4 Yvim
2 U% t+ [# ~2 j* yhelp" T5 @7 R, D  t. G2 s
help
4 f7 _3 X+ k: V8 W6 ufail
$ @% A9 W% ?0 O+ a! Adead
6 w0 t1 K$ J! R& c: n% i2 y# Ccount
3 o5 ]9 ]- W5 z$ U5 \4 K& z) mapple, Y7 Y% \) y* f* L% g( A* t8 q. V- J7 P
3.去掉重复的行) i2 m3 t! X; Y" I  w, @
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
. r7 p* f4 Q! _
sort -u test.txt
. x+ s3 v9 r8 ]apple
  u* G/ s# P3 @. ?( Ucount
0 U2 U( B. v( v3 d  l' odead, E( T! O( }' M, o. J, F! A) w2 i
fail
4 \! T7 C, Z5 H4 Fhelp
# P, F; @* G( _; f: t9 nvim
' v) u# D/ Z# m2 j可以看到help行不再重复显示。
) A0 b9 W; d' @/ v  G7 P8 z) C4.按照数字排序
/ H. _+ B- D$ \3 Z, S% }/ ?2 V如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

( {  T' }7 v9 w( c' u  Jsort -n file/ T4 r, F+ e  d/ j' E
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。4 I8 J; u" R' A' Q
过滤显示文本--sed
: n: d1 E, Q2 @" U5 \
' Z5 k& z& y! Ised是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。, E; f5 ]# U! E( i- @5 Y" e
1.显示匹配关键字行
  I+ ]2 g- M9 q2 D3 C3 Y有时候查看日志,可能只需要查看包含某些关键字的日志行:
  k8 N: B0 E; d0 J0 w
sed -n "/string/p" logFile
4 m9 v" |. p& _( Z$ l' V上面的命令表示打印包含string的行。
7 M# n& D+ u) I8 A7 \, v( O( B- g+ h8 |2.打印指定行0 Q% A+ g5 E. G( S  V
sed -n "1,5p" logFile #打印第1到5行. a8 |. [3 g( x+ S5 b0 q
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号* @7 j0 C" V3 a5 F- G
sed -n "10p" logFIle  #打印第10行
8 i2 M- p+ A* e7 s; P! L$ M, @去重显示文本--uniq
3 ?4 X8 A3 b3 _3 E) G  Z* o3 l- x7 o) s& A( V7 h$ n( K. e
常见用法如下:  a. c0 N( T& q/ ?/ V
uniq file  #去除重复的行
) l. Y& Q: S; K- }uniq -c file #去除重复的行,并显示重复次数
3 }1 _2 z6 ]- Runiq -d file #只显示重复的行
9 I" @  o5 z! L% [) J- v, g8 [4 Auniq -u file #只显示出现一次的行
8 B5 J& \/ h: E! a; L+ R) ]uniq -i file #忽略大小写,去除重复的行
, n" d6 k3 K8 g3 |. W. t( S! Juniqe -w 10 file #认为前10个字符相同,即为重复0 N1 ^7 \$ R* |: _! P
文本编辑查看--vi
- {7 a' O! W* v  |+ {# p5 v( J7 |2 o) e; I; l/ x
查看文件也很简单:
8 @( l' A- E% \& Gvi file
$ I; G, r& `4 h' F而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
' y$ c$ G8 _- j+ D% f% O总结5 O$ l! P5 C9 ~; u: n2 l4 [. T

) Y& Q: ^' \" v- j+ M- w文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。3 S5 a( ~% ?. n) f- ^

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-15 17:06 , Processed in 0.058283 second(s), 32 queries , Redis On.

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