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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
7 V6 v0 E& b" B' b& t  G  }7 Y5 ~, Q" w8 \
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。6 i3 P- I, O0 U8 D
全文本显示--cat+ w+ y0 H, f: Z! R6 j% j

6 t% H+ H1 h' c; O4 W. O# H) \* @cat可能是常用的一个文本查看命令了,使用方法也很简单:; [9 @& }3 e6 X0 Q; m/ f$ z
cat file  #全文本显示在终端! u- D, E2 V( t  L; s! B
cat -n file #显示全文本,并显示行号+ e" ?0 N* V  B( x9 W% g# U
另外,cat也可用作合并文件:) J: L! n) G4 @" v1 g' J, B  H
cat file1 file2 >file3* Q; {! E* M+ S
该命令将file1 file2的内容合并写到file3中。2 B1 s0 ]. z7 w
倒序显示全文本--tac# ^* ~- A7 f( s! G- \% Z0 d# F; v

* ~+ ~) b7 h$ D5 ]3 ?, v- e9 z  Ytac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。/ J1 G1 c/ [/ k0 R$ t
tac file+ H# u: Q' \8 C: n( r* W) n
分页显示文本--more; O7 d+ a8 R8 l% ]1 P2 r
: `4 p, d3 ~3 l9 u, M
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
% Z1 J5 ~& h6 v, s1.显示内容
# R6 g  [( r0 p
more file
$ ^! O/ J8 Z7 c- I之后,就可以使用按键来查看文本。常用按键如下:
2 H% l. ?# Z2 @+ A: a回车    #向下n行,默认为1行
/ E0 |8 P- A" c: u1 v5 J空格    #向下滚动一屏
' q1 p6 D1 @* S+ vb      #向上滚动一屏5 @; A6 k& @7 p- W* [( H. w% H. b
=      #输出当前行号
7 j1 w7 d; O* g1 y:f     #输出当前文件名和当前行号; @" d0 _) Z' q( B1 R8 u; J4 H
q      #退出2 D$ I. h% |* b. f- |
2.从指定行开始显示
/ U! g& o# h+ @; c" h8 V; ?! ^$ {more +10 file2 u( d7 Y7 m6 i* k5 G6 Y2 @* l% F
该命令从第10行开始显示file的内容。; p- W5 b  R3 U/ R' Q" k
3.从匹配的字符串行开始显示
1 S! y& M6 o. s/ \; O1 W# Smore +/string file; _' i. o  M- k
该命令从有string的行的前两行开始file的内容。8 z# t# p& V. l- i, p
任意浏览搜索文本--less
! s# Z- R4 \& _0 q+ s9 d3 c! O) {# k4 c* U2 k" h4 U) m9 t$ D7 C/ T
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
* K. H; T) ^8 ?4 V常见使用方法:

/ }% h, n# ]9 q# t& Vless file     #浏览file
+ o# d- ]( R' d4 x; V+ Z1 Eless -N file  #浏览file,并且显示每行的行号  ~# J+ S" z; i$ k
less -m file  #浏览file,并显示百分比
9 ?( H' z+ P+ y7 j" x# `6 o, X常用按键如下:
) y" O/ }' t6 z$ F: b  Yf        #向前滚动一屏
& R4 u! K* S9 n' h% a: ob        #向后滚动一屏
0 D' s) x; N1 G7 A8 y0 `/ e! @回车或j   #向前移动一行
' A8 d# U* h- B. Z* g& Tk        #向后移动一行, v" Y# [6 l  {7 C
G        #移动到最后一行
. J7 D! U/ B, k/ {) b4 Gg        #移动到第一行
; s( t/ \, a1 E8 n/string  #向下搜索string,n查看下一个,N查看上一个结果
9 @! a) [9 ]3 P: J  B+ [5 H3 ^string #向上搜索string,n查看下一个,N查看上一个结果0 p1 A0 ~& t" M! n
q    #退出
; H% w, J$ f& _0 |, ~相比more命令,less命令能够搜索匹配需要的字符串。& v& u; F* D; G+ n
另外,less还能在多个文件间切换浏览:

5 J( X! `$ \# c  [- u3 cless file1 file2 file3
8 L0 M! l' z) ?3 a( K" ?:n     #切换到下一个文件! \& T. E3 P: Y: M
:p     #切换到上一个文件
/ ^8 g1 s8 a, T$ k:x     #切换到第一个文件5 _. C) S1 s7 x  U
:d     #从当前列表移除文件
$ h) Y' W( p2 P显示文本头部内容--head0 t! K5 P- Q4 \' `8 X# o

! H0 o, b/ @) l- c/ `head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
/ r5 F' X' V4 z9 r7 a& C常见用法如下:

7 X8 X2 N$ j$ R) e& [  y$ b) t& ohead -n 100 file #显示file的前100! s; N, m! o5 r/ }4 U9 q1 A
head -n -100 file #显示file的除最后100行以外的内容。  
$ |& v/ M0 w0 i显示文本尾部内容--tail
4 s6 D7 B7 W: \" r3 ?
) X& Z# S# D; U+ n  D& E和head命令类似,只不过tail命令用于读取文本尾部部分内容:) b& V* }8 I+ L# x9 \3 k  Q
tail -100 file  #显示file最后100行内容
5 H5 w' u9 P- {; G* A  Ltail -n +100 file  #从第100行开始显示file内容   
, y; ~$ S1 t; @7 M6 |tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
7 w( ], h; b8 t: V/ ~8 n& d! C' H/ `+ Wtail -f logFile4 ~+ i0 N2 R5 ]1 l) O0 r
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。6 F! l1 N* t" z1 l4 Q
指定顺序显示文本--sort: Y9 c( e* v$ C6 }. I

# F, k" _+ F$ T; {sort可用于对文本进行排序并显示,默认为字典升序。
) e" M- t" o' Z3 k9 h) o例如有一段文本test.txt内容如下:
& U- n# c5 S3 c' ^
vim
' }/ g1 P  K0 E$ C& e( {count
2 n9 u+ @5 u9 O6 u* Kfail7 C% Y+ T% A: N4 \+ l1 D0 p1 D( ]
help
7 [6 ~6 F# P9 dhelp
$ T( D: t4 A. p9 k- \7 U3 wdead
$ H' F9 w% Y& S+ i; g* lapple$ C3 T6 v0 n9 Z) G
1.升序显示文本- x/ i9 @4 i; b' u" ?
使用命令:
& Z! M0 j7 D# a' u4 w, g, k1 t
sort test.txt
' j. t. Y2 h6 m) h/ M) E- h& japple" P' g: X+ @# L) B. [& \8 |' f
count
0 V: e. f. {8 \5 ydead  E2 X, j2 J0 `3 l
fail# v+ G" `! Q* y  W: M* L8 A
help
: `4 p  i8 ~, vhelp
2 W+ |9 K. _: S- O6 Q$ dvim" i- n, t1 |' a6 A2 l3 I3 h3 n  I
文本内容将以升序显示。6 R: X) \6 f" M1 X' u/ a4 s
2.降序显示
4 j/ _( z+ t. _# h: h( J相关参数-r:

$ E. L7 ?- J8 E% T2 [- ^sort -r test.txt
% t* V; V3 V1 C/ C% O# [/ L& ovim
# R- W( s; {6 x+ l% s$ D$ q. xhelp
- N( O1 M5 g6 |. Ihelp% a, }2 k( H8 q6 F" J
fail2 g$ t& h! J9 [+ [  o0 w
dead
4 f" \1 O  D  R- Ccount' V) A/ w4 C1 [( k
apple' I4 R/ q0 P/ b2 y2 s
3.去掉重复的行* T: A5 x5 l, i9 N* j1 d) J
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
) m" O" m$ X* q+ r/ ~: ~
sort -u test.txt- v1 p% P3 \0 n/ i- a3 [
apple
5 U/ f& @: ?0 Kcount4 p% S2 A3 ^0 \2 a
dead3 O+ {/ Q5 i, ^5 x. [5 J
fail
6 ?4 s: T& W; Y( c/ f5 thelp
3 d: @. N$ @* N) A. {vim
' T" M5 ~* P  y3 m1 c# _可以看到help行不再重复显示。
/ A* s  c* C0 i# R: V( s+ e4.按照数字排序
& m+ s+ @4 g! D5 @% A如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
( C6 ^( [* f# y, c# ^
sort -n file
% ~" }4 |1 _% X; S" }9 p, Q5 j. [& K由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
' {7 r2 m8 c- g1 \* L$ }过滤显示文本--sed+ z/ r3 W6 u; d, e% R; y2 `
' q0 z$ H% B$ r/ O: c
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。/ x5 M! X" @6 C7 _" H
1.显示匹配关键字行
" D* P3 @% y* p& J5 a! h8 o有时候查看日志,可能只需要查看包含某些关键字的日志行:
' A/ C, h! m  X9 y9 G
sed -n "/string/p" logFile
; `/ o9 I* r; Z上面的命令表示打印包含string的行。
6 d, s; r7 N- [0 j! u% {+ c( I2.打印指定行9 q! b0 z9 N' u, P5 N
sed -n "1,5p" logFile #打印第1到5行
) b# L( \6 _9 K6 A# psed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
/ l7 F. d& X0 ?' V$ Z: P; Z' b, Zsed -n "10p" logFIle  #打印第10行
) }7 z; ]0 n. e, m6 N去重显示文本--uniq: _0 h; s, V' L& F# h, L

; G1 S! U( F/ v3 n( Y常见用法如下:) b3 W/ w4 H/ c0 x% P+ s' }% y# R
uniq file  #去除重复的行, g1 D; s! \8 }% D9 r: B
uniq -c file #去除重复的行,并显示重复次数
, f2 D2 W7 I+ m3 buniq -d file #只显示重复的行+ }1 X# G& X% e: d" Q
uniq -u file #只显示出现一次的行: l: C9 f" Q) `9 u2 I
uniq -i file #忽略大小写,去除重复的行$ G6 h  K3 ]6 A. j9 h/ w1 g% d
uniqe -w 10 file #认为前10个字符相同,即为重复" L/ s1 ^5 z9 v" M. x4 `
文本编辑查看--vi
! a' d. _! H; o+ j: M+ f; F( B1 a1 `3 L# [" Z: F- }5 e3 y
查看文件也很简单:# Z4 I4 R- U7 l
vi file7 u1 m. ]' n8 f; t; S! K
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
9 }$ p( M$ C  Z. u  O& A6 o4 N总结
9 x+ A4 p  A0 k5 D; z
% b9 l- s3 r" u+ Z文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
) q* U, w: v* i' w# {

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-5 16:59 , Processed in 0.051100 second(s), 33 queries , Redis On.

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