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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言# Z! {: W8 ^# s" u% @  G

) Y* \! ^+ f. g! `, ~+ g: G9 LLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
! h1 E/ b( K+ c5 ?7 J" _3 E7 H全文本显示--cat4 ]8 g: T; P; L9 J

$ g$ j  L7 l$ i6 e* u6 ]+ Zcat可能是常用的一个文本查看命令了,使用方法也很简单:
3 }2 r6 I) z$ s# E8 k% Jcat file  #全文本显示在终端) O& H! \9 o: y
cat -n file #显示全文本,并显示行号
) ?" A8 y$ s& O* {' ^; P另外,cat也可用作合并文件:
# u4 t/ H7 j; N- f0 C  `cat file1 file2 >file3
2 {; Z0 u( |9 g; b! p7 P, t该命令将file1 file2的内容合并写到file3中。
! X8 ~; U- n+ [/ J: w) h( b% @倒序显示全文本--tac
4 }# e5 p$ b5 x: Z9 p: R8 t
( M. ?. W3 a$ S7 R9 Z& Atac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。8 \$ y" y: t9 O3 H9 p; K9 e7 Z
tac file
" [% ^: v3 E4 o! d; b1 u分页显示文本--more" D& ?; J- p! @  O9 q" M3 N
% g& r' t% t& i4 c5 |7 V0 \$ X
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。- b5 ]9 m0 ^' A" }( B4 f
1.显示内容

) K- m. l" l0 Y3 _more file7 v. s8 h6 t) d9 S& {
之后,就可以使用按键来查看文本。常用按键如下:. r6 d+ o8 ^) P5 k$ o+ J% W  c
回车    #向下n行,默认为1行
- s; `- @0 k, T3 a+ j% k9 f2 r8 f空格    #向下滚动一屏  ]( b' i8 x4 _3 D
b      #向上滚动一屏
9 @2 n0 G+ G  Y=      #输出当前行号% Y8 c+ o1 z: ]. L% L
:f     #输出当前文件名和当前行号' H: W3 u9 X$ Q$ L$ l% i7 G- W7 H( J
q      #退出" i# G0 L; [5 T( a8 O1 \' G
2.从指定行开始显示
3 F4 `( ]% w/ E& [4 t  ^$ {more +10 file
7 f, {  ?8 K6 l0 }2 n该命令从第10行开始显示file的内容。/ x' T6 g7 w4 s& s3 s6 X
3.从匹配的字符串行开始显示
1 W. ^( N; Z1 n1 L; jmore +/string file
$ `. r! |5 w8 V$ j5 G该命令从有string的行的前两行开始file的内容。
1 C: u, L$ D4 O8 ~. w任意浏览搜索文本--less! Q/ q+ d6 @: \5 |) X
0 N0 O/ j# _( k
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。% {) F/ i. f; n3 h# b( `
常见使用方法:

& G; Q( m7 f6 @% Mless file     #浏览file
  O2 M4 a  O" V! o! j) fless -N file  #浏览file,并且显示每行的行号
, b9 J. R, T! D% Xless -m file  #浏览file,并显示百分比) T4 z1 @# Z  K( `
常用按键如下:$ N" L+ {) v' o9 _# x$ K- s8 L
f        #向前滚动一屏
  w$ J) E. s9 O- l( |% pb        #向后滚动一屏
* C8 a- X1 p! D/ ?* u- Y回车或j   #向前移动一行
: C8 g( \- a5 ]) v' L+ Qk        #向后移动一行8 N' h3 L7 `3 F; T+ W0 ?4 x: S# X) c
G        #移动到最后一行
9 |% a; e$ X  F9 o5 Eg        #移动到第一行) t: |5 m4 H, h) H/ l3 g5 S0 @- m. ]0 H
/string  #向下搜索string,n查看下一个,N查看上一个结果" b0 `- A+ L! G  M
string #向上搜索string,n查看下一个,N查看上一个结果6 ?9 ?8 {3 J' F1 b' V! K" ]
q    #退出: E2 l! z  Q7 v# ], E# k0 @
相比more命令,less命令能够搜索匹配需要的字符串。
3 v- @: w; {" a4 z4 f另外,less还能在多个文件间切换浏览:
1 H& _4 y) I! Q4 B& z( H
less file1 file2 file3
6 i& t2 _: k% V:n     #切换到下一个文件$ Q: A6 u" L9 E0 I1 W( s
:p     #切换到上一个文件8 {* R1 \! Y; t
:x     #切换到第一个文件
& f8 s0 @7 n4 v3 `:d     #从当前列表移除文件
6 _* Z* Z& k0 \, y) S4 Q: R! |0 Y显示文本头部内容--head0 K% b  k/ s8 ~7 w9 [/ C
7 v- _" A1 V6 D4 q1 Y
head命令的作用就像它的名字一样,用于显示文件的开头部分文本。4 A" S( R  L0 z( y; ^
常见用法如下:

3 h& e- v3 E6 ^! W6 g- yhead -n 100 file #显示file的前100; q# i! ?  l+ I5 H" d
head -n -100 file #显示file的除最后100行以外的内容。  ( `7 G& H6 j6 _: ?+ \# X
显示文本尾部内容--tail2 I5 V. G% N- ~- ?8 q9 ^+ e" e

/ b& O& |: H* z, C和head命令类似,只不过tail命令用于读取文本尾部部分内容:0 ]8 a  s5 K; \7 \5 F" P2 Q3 @/ e
tail -100 file  #显示file最后100行内容
) q6 B4 C0 `9 j% Z# ctail -n +100 file  #从第100行开始显示file内容   7 W% Q0 s8 K* W, q9 U1 G3 f
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:  p( r! H; Y' n8 ?8 u3 g0 T) M
tail -f logFile
- v  b4 E4 w( o5 l$ K对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
$ R$ u# [8 q) ~0 g4 v% T. N4 D指定顺序显示文本--sort
; l8 W# U! r+ }  J) u1 j1 z$ K8 Q5 r0 }# W
sort可用于对文本进行排序并显示,默认为字典升序。! Y6 w5 x( e+ A$ K7 n
例如有一段文本test.txt内容如下:

: F3 _2 [  r: v- K" wvim2 H# T5 J+ w9 u+ [6 y1 d
count8 `7 A* C' Y# L; l% H' K3 w
fail2 u; q/ `) @: H& L, x
help
8 t- C. P. N) ^$ ~- yhelp. P8 p2 Q; i) [3 i+ ~3 R
dead1 J% W( k' A1 ^9 m6 J0 j
apple) [6 @4 l( p( {4 n2 X0 m
1.升序显示文本
2 Y# |/ N. p* k* J1 M4 ]使用命令:
* P8 I* @3 c& a* [
sort test.txt
% J6 \3 v, y, mapple
0 v" f. ~2 l" Q" I  L# U* ^7 t5 W# Ccount
5 ^; H7 q1 ~& f& y: _dead, h/ s) v5 Q4 R- ?
fail
0 H) y4 d9 ^) b  ]) bhelp
' C/ V! V; G% L; hhelp
- Y, p) i$ ^4 o" F& D# d$ ivim1 l$ }& j% U! ^, x' J' c
文本内容将以升序显示。* w) T6 L) b, d6 O; y' W2 {3 Q" T
2.降序显示
' K% @3 i' U1 y; }7 F. z3 k6 N相关参数-r:
1 G. I% l# b, K3 U& J$ l
sort -r test.txt
, A9 h2 q5 X! e+ T: J( y7 qvim, }+ ]" n5 E- G. M  `& K
help" I' @$ c" {8 W6 D
help
4 H# b* S) B* E# y) B" gfail
7 M! b: {& e7 v1 q+ o0 edead, U' x+ ^2 m. {2 {. z# z
count
5 l9 v+ B1 k5 |apple
9 d/ ?) B! k% ]- W- s% c3.去掉重复的行
5 d. E$ ]# N2 U+ h我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
8 f3 g9 M2 T+ x. P/ I+ O) S! p9 A
sort -u test.txt, q- g, G5 D. K9 f# F9 X+ z. ]
apple
5 b( o; b1 I- y7 R. ]0 [$ rcount$ \9 j: j, ^) {- g2 K
dead- S* {* I& M1 V' o5 b8 B
fail. w' U9 a0 j1 I3 }  N) X
help
) ?- w) ^1 [; _+ ^vim
: ^& ?* _" A% n4 ?6 d. O可以看到help行不再重复显示。( e6 r8 c( }3 p: w8 G) A7 S# K# S
4.按照数字排序1 N* Q# N7 w: _6 j: D; C% u
如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

  v9 \9 K% _- K0 ?: y! t( csort -n file
; x4 N4 F! M- f: ^3 F0 v3 |由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
7 w- v. C# c* g3 g( l  r过滤显示文本--sed! g" z( c; {9 Q, E; z% W
4 N/ O8 ?2 ~* }2 @7 h
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。3 j0 i# n* E2 B3 [
1.显示匹配关键字行
6 A- T) {# K( A, e有时候查看日志,可能只需要查看包含某些关键字的日志行:

+ @. U  g& Y1 Y( msed -n "/string/p" logFile9 h  B& Z. ~4 |% M- ?" I1 R6 d
上面的命令表示打印包含string的行。$ i; D$ j' ]& }+ A5 K! i
2.打印指定行8 l" A  z( h( R5 v1 P, H  ]2 n" F
sed -n "1,5p" logFile #打印第1到5行
; }& p* G# @+ vsed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
- U/ s% k2 ^, ?2 O* M  x: d" Xsed -n "10p" logFIle  #打印第10行
5 v* f! n2 e  z0 B去重显示文本--uniq
  M' U" U* P% [4 r) O( ]1 [4 V+ S5 U$ n" B% i
常见用法如下:
4 ^- K  v% V$ n6 o& @8 t: f: W8 zuniq file  #去除重复的行  E. R& G$ [& x, u& o
uniq -c file #去除重复的行,并显示重复次数
* Z. `. D5 R. L' @uniq -d file #只显示重复的行
& i. T, o( F& E8 A) q; Juniq -u file #只显示出现一次的行: G/ c4 H( X) q3 _$ P
uniq -i file #忽略大小写,去除重复的行8 B, y( [# w" G& u
uniqe -w 10 file #认为前10个字符相同,即为重复- @$ e4 u+ O$ i& p4 N2 ^
文本编辑查看--vi/ V# Y1 j/ q2 W2 l: R
4 Z1 J3 ?: `/ A7 l1 B5 |/ r
查看文件也很简单:
7 y: s+ K' q& R4 k- I0 [4 P0 W) [vi file! g+ u' V& [; R
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
# L9 y+ p) S; L( r7 W总结9 h2 k) w3 s8 V: k: o9 U

1 V2 g. E. u% }; W0 _3 X# @文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。- w/ W  q$ c3 T. ]1 ~, ]

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-29 09:13 , Processed in 0.063496 second(s), 33 queries , Redis On.

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