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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言, h4 R4 ~  a" @5 ~1 o3 n  S4 |
0 r, M# C" y  ?' ^  {. w+ v/ a
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
6 R0 [/ T* F. b! k2 `- r; \0 m全文本显示--cat, i+ P& L, `( @$ Q5 b7 ?( g
. D" y2 z$ y& N/ f% j0 {9 b
cat可能是常用的一个文本查看命令了,使用方法也很简单:  w( V0 ^, ]) s9 Y; I* K
cat file  #全文本显示在终端
- ~4 ^; n4 N) e& I  U  @cat -n file #显示全文本,并显示行号
1 m" e' l1 s8 y: o7 h, g0 ^* b3 O另外,cat也可用作合并文件:" L- w" @. a  J0 _9 T: V
cat file1 file2 >file3* D+ [" q2 k- C8 I" U6 y
该命令将file1 file2的内容合并写到file3中。
2 S- i& C) _/ |- c' u倒序显示全文本--tac$ h& F5 c! U! C3 r& v8 _1 d' C

  y$ D2 P8 _# j# G) c) ctac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。
7 e0 U( O' A, A2 }; D% p4 ktac file
4 |5 h( A: E6 v分页显示文本--more
, h8 `1 ?0 O. A; r3 K" l, n* K! ]) A. E4 m4 t) B# \
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。  F" v: |5 S5 L$ F4 H' X
1.显示内容
4 i" \& y" b4 C9 Z2 n
more file+ y" l+ g+ {2 C' Q! L% z) f* e
之后,就可以使用按键来查看文本。常用按键如下:
% P+ @3 U3 C6 M) a3 v1 w回车    #向下n行,默认为1行- @" c! Q6 R( X# @+ m
空格    #向下滚动一屏5 s# a! \0 ?, H; V& g" B. X) R, K) t
b      #向上滚动一屏* L0 k& o, A9 W1 \: {: s: y: o
=      #输出当前行号
) J9 t7 t% s7 S# L8 g; S/ r5 f/ y1 i:f     #输出当前文件名和当前行号0 K6 ?- M+ L  c, ]- U( n
q      #退出  E6 b; Z+ z  T5 ]2 @
2.从指定行开始显示
" S& f1 q& v5 u) {  nmore +10 file$ u  R$ i$ b0 r5 i) T
该命令从第10行开始显示file的内容。( W4 N# a$ p4 ?
3.从匹配的字符串行开始显示
& q3 J( @5 _0 P3 g, o: V( pmore +/string file
: Z) A, S/ W8 c+ {  v8 _该命令从有string的行的前两行开始file的内容。% ]# q, W) R1 O  ^) J
任意浏览搜索文本--less
/ d; t4 x5 v& A  I$ c) `+ T: t/ s3 W4 I) K
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
( z+ P9 q; r$ x) r常见使用方法:
, ~9 V3 |  o8 [1 p& x! j
less file     #浏览file0 O% O) \; b5 ?) M! F
less -N file  #浏览file,并且显示每行的行号
: B% k- ]# X  `6 U! }4 u0 W/ rless -m file  #浏览file,并显示百分比
  E& v! t2 H3 ]( W/ P- U! x常用按键如下:
" e1 w3 O* S" G- N- k8 Xf        #向前滚动一屏, q% {& q4 W, p) g2 S+ ]
b        #向后滚动一屏
& L4 k: w% B- v+ \& P) a回车或j   #向前移动一行& e! F4 l4 t3 _) Q
k        #向后移动一行
& x  S3 \6 _$ [" |7 fG        #移动到最后一行
* z7 }! c- Z( U! C4 B% W: b" dg        #移动到第一行
0 l$ ], D+ e9 h. G1 w/string  #向下搜索string,n查看下一个,N查看上一个结果- }% ^' _4 Q0 A
string #向上搜索string,n查看下一个,N查看上一个结果
: w/ w3 l9 ^0 k# X9 x  J* u0 Z& Yq    #退出+ g! u& G$ ^; w: L" I
相比more命令,less命令能够搜索匹配需要的字符串。
5 i9 N. L( O9 t* O% H另外,less还能在多个文件间切换浏览:
6 p# p0 g2 w8 A5 e: B. `2 a
less file1 file2 file3
* X+ `  q) n7 ]/ j, g# x/ [/ ]1 r! e:n     #切换到下一个文件1 F0 K4 T9 i/ D; _. r0 ^$ b. X& |
:p     #切换到上一个文件
, R" v2 S1 v) z6 Y8 \:x     #切换到第一个文件
$ J! d6 B. w# l0 i' n: A:d     #从当前列表移除文件
8 |! T& ^- K+ g. p: h显示文本头部内容--head2 s! N. W- w& y; A& R* Y. H1 T9 i' n
4 d* G# P% {4 A+ H' v/ q  p( g
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。
8 n3 E% F0 F! P8 l2 c7 g% i常见用法如下:
2 j# {' P) r. e
head -n 100 file #显示file的前100
% T! B" ?; P. \& o) Uhead -n -100 file #显示file的除最后100行以外的内容。  
0 K- T. |9 N& g+ n7 F+ a- \% v显示文本尾部内容--tail8 D* C. x$ v: }" J: j

: y, d5 f8 `8 l7 Y1 W7 d) L! J! A和head命令类似,只不过tail命令用于读取文本尾部部分内容:
9 {/ a1 _# n% s" c+ ytail -100 file  #显示file最后100行内容: s  T, V' ?' U# q1 u1 J
tail -n +100 file  #从第100行开始显示file内容   5 I8 A$ @* ?# H  D9 f
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:1 Y: u/ Z6 |! d: V4 n! L+ U) b
tail -f logFile2 o" x& f: ~# O3 F5 B! c) U
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。# w( I: C+ D6 S- N0 G8 N# E
指定顺序显示文本--sort
" K! G. ]: H7 X9 S% j9 ^/ H; w$ a; V5 p# e
sort可用于对文本进行排序并显示,默认为字典升序。+ H, h  T" v. X% Q% \$ T
例如有一段文本test.txt内容如下:
: J  f. [# y( Q  }: A) G
vim+ H# J6 A( g2 Q& c; a' {6 L
count
# C$ z- L. {  u; i$ K* kfail
5 N: k' P9 T9 M2 P6 r4 @, i5 v2 Hhelp* b) V1 |7 h: x) O5 r9 I
help
( A% y; M& K( g4 \$ I* `dead
/ k6 @3 ~/ D2 x" }* g% D6 v" tapple' h( ]5 J8 f" o9 S7 o
1.升序显示文本# a3 M2 [" ^5 @% ?8 U& X* T; V3 {
使用命令:
/ y4 c* T5 p7 s) G" }1 [
sort test.txt5 }. _# v# V* _1 @: v1 d
apple
/ m1 q% G; R; n' L" f$ ?count
; H* g7 y& {0 D6 I! F) `dead
# f; O6 ~$ w! `/ ?2 Ffail
* f% _$ r" M5 R) ~9 Bhelp# O6 O  K9 \' }2 t" w
help7 S9 h3 R1 t, c3 |
vim
4 i0 F! @9 g0 M' t( u" h4 z文本内容将以升序显示。% m' q. j+ T- ]" }7 N! b
2.降序显示, ]: {1 T7 L8 g' d% v
相关参数-r:

& l, s, m+ T: W' o, H! `  I6 Msort -r test.txt3 I3 x4 @, P4 G9 o/ N
vim5 l  q. X& m. a' h9 Q, d3 w2 e
help7 p: |0 N9 c7 s# H8 d
help7 [, s8 @" b, m, t0 q
fail
2 ?9 K2 `$ a# h) }6 }0 m/ sdead
" }- z4 ^0 |7 k8 k! H4 \count+ b( }& }, D, n$ \( a
apple
* \- Y% M; m+ m9 p5 I8 h3.去掉重复的行
& \' ?3 L* j4 z我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:

# M$ `3 j  m7 A4 b- q. P1 lsort -u test.txt& V; v% M. t3 T/ i$ q% u/ ^' h. L
apple
" M+ q& j4 O% a7 `. pcount
7 _- ?9 W" p& cdead! w0 F3 c6 e7 Q
fail3 u5 E; ?1 P' C& K. e! a
help6 }! }2 W/ e6 w& k. @1 j. k6 Z
vim
# N+ {4 i, I- D% X可以看到help行不再重复显示。' q, K3 \& `) M9 V2 z  {4 O
4.按照数字排序0 P$ i- Y( H4 `4 D2 m+ t
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

# S: ?3 Z& d+ n+ E* wsort -n file
) b7 z6 A. R  S; G0 d6 q* ~5 [由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。( H$ U" c5 I; d7 x. g) f$ t
过滤显示文本--sed9 m, y3 u6 O9 A6 ^& K7 v" Z" m

/ \4 s3 m) \; m! r9 @: Vsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
  N: _5 P. M& T+ ]/ s1 y0 [1.显示匹配关键字行4 m$ c% @# y/ F0 k
有时候查看日志,可能只需要查看包含某些关键字的日志行:
0 F7 j8 W/ f0 j& Y! I3 k
sed -n "/string/p" logFile
4 X: V' O4 U" }1 i, N; d* ^上面的命令表示打印包含string的行。
+ r6 B! Q9 j: R* y9 r$ p' c# s! S& d2.打印指定行* N" J) L6 R1 a/ `- W/ [
sed -n "1,5p" logFile #打印第1到5行. g. M1 {- l) @. T( l* K
sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
& I4 J2 ?% r( s/ a1 {7 f: {; ssed -n "10p" logFIle  #打印第10行
8 u, X! }' t: O$ U去重显示文本--uniq
9 \$ N! O) o- S' v; ?! J7 d
. c( `, R/ A# ?. w0 n+ [  y常见用法如下:; l- a; a* Q1 X( W% Y" y  n  t, S/ ]0 ?
uniq file  #去除重复的行8 T: l: t% h: d4 T
uniq -c file #去除重复的行,并显示重复次数, d6 M- K* ?: E% j3 r6 i
uniq -d file #只显示重复的行1 J# L0 }( I0 o5 H
uniq -u file #只显示出现一次的行: `2 r" N$ ~, Y1 }; \
uniq -i file #忽略大小写,去除重复的行
; k, i* q& D) Q7 O- B5 ?uniqe -w 10 file #认为前10个字符相同,即为重复
$ ?5 Z0 a% L! \# [) e; Q+ F- h( v文本编辑查看--vi9 l" Z4 ~, G- w3 [/ |3 u
$ f( F' Y: Z6 ?( ^' E/ M- l- m
查看文件也很简单:
. r( ^# I% v6 X* yvi file
' q6 z) h* {9 h4 r. A" t3 C而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。% E3 a) N5 h2 E, C' v( g
总结8 B; x3 K- _+ K: C3 j+ a

% @% Y) R( h8 {6 x! d1 ^. }& t  L文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。" F7 G! F0 W, s, y8 K/ ^

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

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

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