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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言
' I2 i) t- [6 w% l0 P' M
9 i0 c/ {4 W# iLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
# P9 r0 w, k3 F8 |0 \全文本显示--cat7 y: M6 H& j+ c2 c1 y0 o7 p% `

4 C1 x* h' p7 o8 {' Mcat可能是常用的一个文本查看命令了,使用方法也很简单:
) Z, e# r- v! n3 l+ n6 J# J' `) tcat file  #全文本显示在终端
2 A  m% `( t& g. H2 @0 @cat -n file #显示全文本,并显示行号+ O/ t( e, f  `1 h
另外,cat也可用作合并文件:# S9 B5 B, q( i: J# X* R
cat file1 file2 >file3
) T" [+ h; k# a' W. @9 y该命令将file1 file2的内容合并写到file3中。
# [9 U' D% L, e9 v' W5 N2 q倒序显示全文本--tac
; y) s+ G, x/ Y, C5 Z. m5 y/ l
- ~2 }! @$ I$ [7 j* R: R  M0 Btac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
2 R$ u$ l/ A$ x- w$ btac file# \2 `4 m. Y  P- u8 ]1 T
分页显示文本--more" ^- N* J0 E- I" G2 H

& K5 a+ \$ p& B4 K; rcat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。. G# {6 y, `5 }9 E  r
1.显示内容
$ [3 o% d  D* S0 J7 s
more file
) r$ I# _4 \& J) u: n* ]之后,就可以使用按键来查看文本。常用按键如下:( [/ V* ]/ w/ m4 m6 r) ~
回车    #向下n行,默认为1行
1 V) C9 h! z5 b0 {% Z$ a2 D8 [空格    #向下滚动一屏0 \; l  n5 @! Z3 J
b      #向上滚动一屏
4 B: X* f' G" A7 M4 O8 ?9 N5 d=      #输出当前行号
; w  S5 f3 n7 ~% I% b/ c" X2 P6 \:f     #输出当前文件名和当前行号
- A+ P+ I; A! Q% o9 lq      #退出6 s2 l1 j1 J9 q" ]
2.从指定行开始显示3 ], F# d6 {* z3 T' Y
more +10 file
1 a+ f+ {* J* f3 t. _- `该命令从第10行开始显示file的内容。- j  S& M; W4 ?* g' Y8 k0 c- Q
3.从匹配的字符串行开始显示4 G/ T* Y7 v- p) T
more +/string file' F8 ^; \3 W8 `# z- g9 [2 W
该命令从有string的行的前两行开始file的内容。
6 U& [3 {/ @. m! y  d任意浏览搜索文本--less
- `* C0 i! }0 z) Y. c2 }1 K) t
  @& P% e# I1 k8 f6 O5 s) }  `" _less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
! }; V$ L6 ^7 e; y$ J3 w6 e常见使用方法:

& Z4 o" R# o/ z2 M9 q' |less file     #浏览file" I: y7 w4 b' t. e  P
less -N file  #浏览file,并且显示每行的行号
" l  m2 `# l' Yless -m file  #浏览file,并显示百分比
2 L( ]: k) ~6 W! I常用按键如下:
% l, B. a5 U( t- H/ ff        #向前滚动一屏
8 n: t6 G$ P8 q' d6 B# O# N% x1 [b        #向后滚动一屏
8 h  S* Y3 n8 j- E( x( k5 n# R回车或j   #向前移动一行
9 N9 m, G+ G: y. E1 Fk        #向后移动一行7 W8 U: S! s. I" l
G        #移动到最后一行
/ G$ e( e" k; q+ F8 S1 c6 p% gg        #移动到第一行1 W. n; O9 k. i1 r& [
/string  #向下搜索string,n查看下一个,N查看上一个结果  i9 i: d! y/ {0 G# Q& L0 g
string #向上搜索string,n查看下一个,N查看上一个结果
, G) ~& ?9 U; A& t" kq    #退出, J9 L9 y& A" [5 G" i3 G' R( Q
相比more命令,less命令能够搜索匹配需要的字符串。
, G' u. F4 H9 k! O另外,less还能在多个文件间切换浏览:
# ?3 V0 E* y) P' U0 a( b+ A
less file1 file2 file3
. U& B! y7 |! X% U:n     #切换到下一个文件& Q2 A* Q* X' x3 O4 X% b$ Q
:p     #切换到上一个文件
% m6 E* ?/ Z; V0 }:x     #切换到第一个文件9 ^- Z( n' L4 z. }
:d     #从当前列表移除文件# [- i/ C2 G/ O8 y/ I( G5 P2 t
显示文本头部内容--head
! q6 \$ f& ~% ^/ c% |
. N$ {- D1 @+ l5 s/ Q1 shead命令的作用就像它的名字一样,用于显示文件的开头部分文本。  y1 |& I8 j$ @7 q' m3 k' v; i$ g& h
常见用法如下:

0 P+ F5 j" J# s. {head -n 100 file #显示file的前100
* p7 z' n/ n. b1 O6 i4 Ghead -n -100 file #显示file的除最后100行以外的内容。  
- R7 j  o) q1 ]& X6 e1 K: L% C) s显示文本尾部内容--tail
0 ~  E% f. \# g
" v- T% C5 p/ @( f$ H( e和head命令类似,只不过tail命令用于读取文本尾部部分内容:
3 X2 |4 w  M/ ?1 k, ?tail -100 file  #显示file最后100行内容
' f3 u- ^/ y  R, Y( ^tail -n +100 file  #从第100行开始显示file内容   , g. V0 X$ U$ p/ {/ S3 m7 |
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:, {' S+ R2 D- W
tail -f logFile) `' T' v3 k+ F# M. |$ u
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。9 O* l. p% V9 l8 H
指定顺序显示文本--sort0 t" j, a- d6 U4 C) M. t
' a8 P# ^* ?' T" K
sort可用于对文本进行排序并显示,默认为字典升序。
1 ^( D& f  j* @7 j例如有一段文本test.txt内容如下:

  ?! z  I0 Y( D2 n% h, z" Evim7 r) {! W6 ?! o  N
count9 _1 {2 X0 \" Q7 p7 ]) V$ X! [+ |
fail
8 {  C; ~. k; `, Rhelp# l2 v( o$ q$ T0 q% T4 P" S
help6 K  ?, a4 S1 p( |* K$ A! X
dead
! N9 L+ l1 |' ?3 Kapple3 k! G1 G& r- Z% D" p- q$ c" k
1.升序显示文本! F+ h6 }0 i1 M( Q" u; D
使用命令:

# s# W0 _/ ~6 R+ ^2 c3 fsort test.txt
4 l$ b. P2 j1 p7 U% M( ~  Capple
# r: g4 w3 P/ O; Fcount
; I2 ~3 C$ ^3 m- Bdead! e. w  c* G& \' t  s, |
fail
! H. L# A0 L! d0 Ihelp
2 C3 _8 a/ E1 f4 u/ Whelp' l+ `( @2 h9 @% z& v
vim
/ x5 V7 |2 O/ y7 T4 x5 l4 m. c& Q文本内容将以升序显示。
3 L% F; D' V, N4 M, R# U, `: S5 m1 J2.降序显示
: O5 t, c9 s% o) e% q8 \2 T相关参数-r:

, q! \4 K9 N, S6 c0 m' fsort -r test.txt% t3 }% X" @: Y9 X# Q
vim' q& B1 K. I! Y! y
help
; W  O, c: a$ g- zhelp! S$ l7 |* z0 y1 u3 [
fail
3 u5 l/ d2 u6 y" Jdead
# \3 t+ }$ x2 H) t7 z; N  c8 |count* p* V' h7 T  G9 W0 D
apple3 h) ~- ~4 g0 ~
3.去掉重复的行: [0 C' o' V, r  }) l
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
0 g( K7 L- P1 w9 Y
sort -u test.txt
  ^4 K# ^1 |5 k6 P, g6 @* V- g* {apple
" ~  g. D5 {3 Kcount
5 a. b- S; o% F+ T- w; N; ldead0 p" B9 L& b1 p. ~+ ^# r! y  N
fail
- U4 c' ?4 x0 ]; ~help  F6 ^# o8 Y5 d/ Z4 j
vim. R1 ?# D( `8 ]; w2 Q
可以看到help行不再重复显示。
4 m  u4 i. p0 q4.按照数字排序0 c( t. A. d3 W! e: u, F
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
) w% K) Z) G% x+ J8 o6 f
sort -n file
- ~7 }/ ?4 R5 H( H. C由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。7 y' S+ m/ F1 p! q* Q
过滤显示文本--sed
* x2 [6 \$ v; f0 S  K  h7 j& s! S+ k2 W: q/ Z# [% N$ @
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
; b6 U: E9 m8 {, f# Z1.显示匹配关键字行) u% S( F$ a: Q8 C# S, ]" W. g
有时候查看日志,可能只需要查看包含某些关键字的日志行:
+ g; U: M% _  ], y2 Z
sed -n "/string/p" logFile7 ~6 c2 u6 W7 ~8 f, U0 X# n
上面的命令表示打印包含string的行。
) x; V  y. ], a+ N# v) s2.打印指定行9 Q- I/ A& P9 p2 k. X. W' [  }
sed -n "1,5p" logFile #打印第1到5行
" H: n$ R& ^8 x) L/ Rsed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号, l6 o( d% f  r  k
sed -n "10p" logFIle  #打印第10行
4 ?- t3 G/ X- a6 p5 v7 x去重显示文本--uniq# O; Q) g* h5 f

  h5 Y/ D5 R8 U' I6 b, X: g常见用法如下:; D- J$ ~, B- w, J$ Y
uniq file  #去除重复的行% ]( h* I9 y6 W; _/ c
uniq -c file #去除重复的行,并显示重复次数, i: v: u3 K8 |) Q0 G
uniq -d file #只显示重复的行
4 L' o. H; t' x( G- O" cuniq -u file #只显示出现一次的行" G: n1 q6 o$ S- u0 @! c
uniq -i file #忽略大小写,去除重复的行
  d- `" k) Z, g. i4 u' R$ ~uniqe -w 10 file #认为前10个字符相同,即为重复  D2 V4 @5 H2 Q7 z* r. s
文本编辑查看--vi! S3 K1 [. a7 F7 Q) C  c8 z
& }5 i- d; x7 t
查看文件也很简单:  y: Z# }5 o7 m1 `6 o9 `
vi file
  k5 l3 n% m+ r* g4 n! N而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
9 q& x9 N& n: q" j5 [总结3 v9 n4 j) g  E+ {6 b" c+ _$ Z0 A) W

; n! i. N/ A% k7 c0 ?8 H) S文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。; t% [$ |, P# G, y2 O9 k

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-22 07:50 , Processed in 0.040170 second(s), 32 queries , Redis On.

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