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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言2 w9 \( ?" g+ p' z7 \; w

. R& o+ x& {( R! }3 T7 ]% @0 }Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
5 O6 \5 K: O8 Y( |9 V: g  V, X8 j全文本显示--cat; _* D$ }3 j0 A

7 M: q8 h. v  y( M! Fcat可能是常用的一个文本查看命令了,使用方法也很简单:) v( J& l* t' x# L; ^8 ?5 p/ B! C8 h
cat file  #全文本显示在终端
; n% B2 r% D$ e/ e' {8 bcat -n file #显示全文本,并显示行号
( t- A: C3 h4 }/ }# k$ f' a另外,cat也可用作合并文件:3 c" C% x% u! y+ R7 `
cat file1 file2 >file3
7 U* ]2 C1 g5 t- k+ }- ~, j% I该命令将file1 file2的内容合并写到file3中。# T7 d6 x9 d( T9 }. |
倒序显示全文本--tac5 l$ S/ |3 ^# w# v! }' n
9 ?8 c/ L5 A, J6 E1 f
tac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
8 Z: \+ l* I* Q6 C$ ntac file  g* a) J$ S( n" P! u
分页显示文本--more! N* E/ ?# U: @# v7 ^/ n) D3 s6 p9 D

" x/ g7 S( l8 ]! r) Tcat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
2 [' p% Y$ X+ h* P( e9 \/ l1.显示内容

( `" p3 F/ I. T# P; u1 C+ tmore file. o4 g: g2 D* m5 K/ C8 v/ j
之后,就可以使用按键来查看文本。常用按键如下:
( ~8 m0 p1 f" O+ H回车    #向下n行,默认为1行4 y! i, R# F" ^5 d* |
空格    #向下滚动一屏, c- F7 v: S5 @- `
b      #向上滚动一屏
) n& m2 R; g' z: l4 t& G=      #输出当前行号" ~/ C7 G' Y7 O7 m3 v! h6 y
:f     #输出当前文件名和当前行号, ]  a6 k0 v* |) b& p3 Y4 F# w4 Q$ y
q      #退出
/ _6 `1 N/ g$ S+ o2.从指定行开始显示
- e' o0 I7 P( ~1 K; Bmore +10 file8 E. H7 L& L+ ^; V
该命令从第10行开始显示file的内容。
5 r# z' B! F- K5 W3 w3.从匹配的字符串行开始显示
- y% v  k1 d- U( L5 C8 ]- R5 `$ tmore +/string file
& r! a6 ], L- }4 J' l该命令从有string的行的前两行开始file的内容。
3 ?4 s5 S2 q9 x& T  y9 T4 M" L任意浏览搜索文本--less* K4 }& G3 O2 i% Q; e
" A! W' t  h7 \5 E+ D
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
1 c9 [, H% I" ]6 L8 h7 O- m1 T常见使用方法:

8 j+ h, S( j- ]' Iless file     #浏览file; {* I9 k8 {- R+ J
less -N file  #浏览file,并且显示每行的行号8 [, V& ?5 m( H2 S$ b  {
less -m file  #浏览file,并显示百分比
3 l( m! X. D# v常用按键如下:7 ~- N- k! ^0 `: L: P) b; _! e9 g
f        #向前滚动一屏4 U8 P% _. H& i2 G: m0 v
b        #向后滚动一屏, B1 d  p8 Z  D8 B
回车或j   #向前移动一行
7 {7 e8 s! H3 i& M6 |+ E* w8 Q$ tk        #向后移动一行
0 k3 N; ]- S4 Q2 zG        #移动到最后一行5 o/ j& O& }6 {# i' c$ {* M
g        #移动到第一行1 G; [$ T2 a5 k
/string  #向下搜索string,n查看下一个,N查看上一个结果
4 M# T9 o" ^; U4 N: m* N- estring #向上搜索string,n查看下一个,N查看上一个结果
, P. C# B* u& {+ r0 Xq    #退出0 o  T, ]7 ?# E
相比more命令,less命令能够搜索匹配需要的字符串。
8 P, ^5 G6 ^2 R( `% U另外,less还能在多个文件间切换浏览:
! y; e) u5 A' x! l) w, P3 p
less file1 file2 file3: l4 G5 O% j, f6 l/ b6 C
:n     #切换到下一个文件$ f! H5 c- w9 J3 x* h8 ^
:p     #切换到上一个文件9 u1 h0 x& S! W9 ~8 a- {' H
:x     #切换到第一个文件3 w# b/ H* y4 t' b
:d     #从当前列表移除文件
1 q6 L9 w/ |, j7 t  x显示文本头部内容--head
; ?  b7 S% m+ Y; G" Y) Y3 b  y2 b% O5 z1 R) s7 k
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。7 {4 m) T% I; h  f/ I3 Z
常见用法如下:

  N' W* Q. M3 h9 w6 f: thead -n 100 file #显示file的前100
7 A. X# t3 Z; {4 G1 e2 z5 e+ i7 Phead -n -100 file #显示file的除最后100行以外的内容。  
: r  c; e, Y% N/ o显示文本尾部内容--tail
* n3 l8 H4 Y- ~* {
9 B1 v5 j% {/ q, x4 l( C和head命令类似,只不过tail命令用于读取文本尾部部分内容:" H8 R5 x- Z, D$ V
tail -100 file  #显示file最后100行内容. a9 E* l2 E  K% Y
tail -n +100 file  #从第100行开始显示file内容   + M( n- B: \# i  Z
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:3 m) w7 Q/ v! |# m: X) n/ p
tail -f logFile
/ Q/ T: s; q. Z9 Y0 b* ^8 }5 S对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
. u# ]# b: J4 S4 s指定顺序显示文本--sort6 Y1 \  k# `0 \. _* G( ?" _) j
, ~  K0 C6 {2 G% A) |/ w' v6 X; S
sort可用于对文本进行排序并显示,默认为字典升序。
" S) S9 h, J) x9 h+ p例如有一段文本test.txt内容如下:
; ^2 f& {9 d  _  w5 J( J; ~
vim
1 X, g2 d0 b3 vcount
# P1 E1 H) f! A- u/ K9 _fail+ _3 {9 d" d& q0 B% M$ `. q% S
help
- U; S% }% w- O  u- [" Hhelp. a" B6 H) S  C6 B8 _
dead2 m& K( Y7 z* y6 w6 j8 L8 C) g: b
apple7 T. Q; A9 @, E  _. P# S" ?
1.升序显示文本# `; g4 O1 v' R' n. S, h: `
使用命令:

3 Y$ s: p* Y; r7 C9 y( A% t5 Ysort test.txt% G2 ]- o8 u3 q: L' }6 J9 u/ d
apple
6 f; m9 s8 j" ~1 Bcount
7 X; h. H# i' h. i/ Z1 [9 ddead0 g' `1 m/ @4 w5 N
fail
9 V1 `7 X$ p- P" Y) c+ @& Thelp  y/ M# J0 Q) Z8 J4 H& ?! _
help' O# j* T/ n4 `4 m/ d. U
vim
. v4 \5 ^& t0 x. E文本内容将以升序显示。8 L! c7 S: H, T; D4 E
2.降序显示
4 [$ O+ l9 K! `2 ?" i相关参数-r:
3 ]* H& C3 }) J; ^0 D3 D% N! g/ i
sort -r test.txt9 M8 R, f5 n" f7 X8 ^! L  v
vim. z9 ]2 M$ N7 G$ {
help9 y* Z& k3 x( r; Z7 C, e* k8 ?
help
6 M% C* Y8 B" P& efail
* [: x4 R$ e: K3 Z/ wdead
& J/ ?9 B3 M1 W- k" ucount
; M# S* ?) c/ ], Y% _, happle! F0 E0 D2 }$ E+ ?0 b
3.去掉重复的行
2 m. o4 ^" f3 v9 @. [6 Z9 k我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
2 m, P+ K0 b. W* x9 I, W0 r
sort -u test.txt
2 N7 C- q. t9 |8 i! `5 y  S3 Gapple: x) m" u( W1 w/ ?
count6 G; L& E* y/ U( ]7 z6 A) U/ W* b
dead9 j+ ]6 S: k  i" V# o5 W2 X# E: k
fail
1 k2 o( \' z3 \9 Z) phelp
1 N" ]( o+ d+ y% K5 X! Fvim/ k* g9 q! \! T: F3 K
可以看到help行不再重复显示。8 R" s! k- {6 ~) X3 r
4.按照数字排序! i8 @4 G* k- f( ]2 g) r6 a
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
, A# s9 S' T: J$ W1 |' R
sort -n file1 a5 K& Q+ [3 N9 ]6 a6 f2 V
由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
) T6 m8 T8 O  x, K$ o; Y7 w过滤显示文本--sed
2 |$ n6 T) i7 d
4 K3 L. p* W. j. j6 d1 @4 x( {2 vsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。" n7 b$ y& _1 E$ G
1.显示匹配关键字行8 [# b) k: K9 v8 H$ B' J) [' ?
有时候查看日志,可能只需要查看包含某些关键字的日志行:
. U7 {1 _. O3 Q8 _
sed -n "/string/p" logFile
( s+ }8 W& u: i8 j% A- N上面的命令表示打印包含string的行。
3 r+ C& ~; o* H$ D0 r2.打印指定行
  ^; Y7 R- Y3 v, R- Hsed -n "1,5p" logFile #打印第1到5行
: N4 I; [) y$ R& ised -n '3,5{=;p}' logFile #打印3到5行,并且打印行号4 Y! z1 T8 Q7 ?$ {! G; k2 |' K
sed -n "10p" logFIle  #打印第10行- u0 j8 ~! ~! I3 N) _
去重显示文本--uniq
+ F: L% Z6 c# L) k* B" z2 L* g. U  o1 y( `* [/ ~  x" k8 @# B' B
常见用法如下:7 }- y( D7 P* y( z, X9 L8 B0 K* ?- C
uniq file  #去除重复的行
; H  q. V: |5 y8 R0 tuniq -c file #去除重复的行,并显示重复次数) j0 t" W& Y% c  }* o
uniq -d file #只显示重复的行4 w0 B  V( G: X) C0 j6 Z% `, f
uniq -u file #只显示出现一次的行; v, B# k2 r' L3 P
uniq -i file #忽略大小写,去除重复的行
5 Y1 Q* r( N  t* S1 T: t$ I$ Wuniqe -w 10 file #认为前10个字符相同,即为重复! D, y1 M% ~$ i( X$ @! D$ g+ F6 K
文本编辑查看--vi. \0 G* O3 m& H: F- [! ?

7 I) U, J/ i+ Y  R7 X! G8 V7 y查看文件也很简单:9 @: X$ z6 D' ]2 r" C' M5 R
vi file
3 m9 [  ~& ?, y7 {1 |而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
! @2 a) J1 L& X& ~" y" N0 W总结
# s  s" i. M) s; i% t+ V- r" P5 `! P3 w
+ ^. r6 l' Z- _7 Y文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
) A, P9 M. U/ U: Q

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-14 15:44 , Processed in 0.061420 second(s), 32 queries , Redis On.

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