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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言3 r7 H% i5 }3 t9 U3 j4 D; [+ n
1 i8 h6 [; l  @) e4 f
Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。" Q, O* Z3 G) c+ _; s4 r
全文本显示--cat- |; B, m: E; u* l

, e$ Z- u5 l: M, @4 s, U' Kcat可能是常用的一个文本查看命令了,使用方法也很简单:
* u+ c3 e8 r/ w$ Wcat file  #全文本显示在终端
% a" H1 U8 m/ V8 h+ v2 ocat -n file #显示全文本,并显示行号
2 f# u7 E! z7 y另外,cat也可用作合并文件:
3 D* B* G' q. @cat file1 file2 >file3
" k7 z( S% f$ b6 _- ]该命令将file1 file2的内容合并写到file3中。$ h9 O8 O3 z1 H( h
倒序显示全文本--tac
& H! L0 v. c- j" Z1 _2 `
9 G# \( N- s$ v8 ?" Y, rtac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。$ B+ \& u1 Q/ j' _+ e4 X
tac file7 I8 j5 E3 O) X9 A6 ]$ R% k
分页显示文本--more
3 D- B- I  J6 f. X: h7 x6 V5 q! S6 H$ n, v* e
cat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。, `7 X  }" x0 Y
1.显示内容

( m% Y8 ~4 P% M4 b  I& fmore file0 i9 _. w$ d+ b' g
之后,就可以使用按键来查看文本。常用按键如下:" `( r/ I# |6 ?# N) T3 E4 P
回车    #向下n行,默认为1行2 \* R$ z) Y" K7 m% I
空格    #向下滚动一屏
: r! z4 p9 n/ b- @. Nb      #向上滚动一屏% r& t& d% o1 k$ z
=      #输出当前行号6 W( s. W3 g  E1 N7 o4 q) h
:f     #输出当前文件名和当前行号
! [9 U0 r7 O5 S9 {) Mq      #退出' c  g5 `; u. q6 P" e# E
2.从指定行开始显示: Q9 E, U3 j# O: H
more +10 file5 O0 c$ `  h3 N9 o2 t/ M
该命令从第10行开始显示file的内容。
) O# P$ T3 k+ Z4 d0 \3.从匹配的字符串行开始显示
( E7 V4 b' I( }+ i4 u0 umore +/string file% [# y9 D1 S" `6 e  {
该命令从有string的行的前两行开始file的内容。
6 U; H# G, M% F( _2 e; U任意浏览搜索文本--less5 h) e: A# m3 _$ C  ?$ u
5 x/ j3 B3 |. e) D' v
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。+ K/ `) t5 _8 J4 g8 m: k; G
常见使用方法:
! z$ d' e' e5 i9 p+ B. g$ l% `1 M
less file     #浏览file
8 x) V9 z5 q2 D' L) M5 L  f' s+ lless -N file  #浏览file,并且显示每行的行号, k6 U& W% d" [( Z% i+ ~
less -m file  #浏览file,并显示百分比" ^( g; n; b# f' J9 q% _0 S% F
常用按键如下:" D3 W3 u1 q1 r) C( X2 P
f        #向前滚动一屏
; ?: r! B6 }+ G' \9 I9 Eb        #向后滚动一屏0 ?8 C8 q  H/ z- m( s" k5 m
回车或j   #向前移动一行
) Y: s' ?( N# L; y* l& q; D8 h& Ek        #向后移动一行
2 W/ A3 t2 `9 h7 h* @# n8 rG        #移动到最后一行
$ C. @! a- S5 [) K! m+ i1 eg        #移动到第一行
3 t4 G3 g! Z" I6 t; y/string  #向下搜索string,n查看下一个,N查看上一个结果; @$ }! f- j" X% |2 ~. P
string #向上搜索string,n查看下一个,N查看上一个结果
3 {6 X# o; w$ r3 }: ]$ H/ I5 Gq    #退出
' b* \% ]$ F* o$ R相比more命令,less命令能够搜索匹配需要的字符串。3 F7 ^5 V5 }9 ^5 C; x! C
另外,less还能在多个文件间切换浏览:
0 L+ U; E: f, x; v- X8 Z% ?) l
less file1 file2 file3& A# K1 Q  {' w
:n     #切换到下一个文件
$ ?) I% b' T- [# [6 u: c:p     #切换到上一个文件" P7 A' _( o9 b5 m
:x     #切换到第一个文件" s- @" _# g) F$ F" b0 f
:d     #从当前列表移除文件
" Y4 J$ v% J$ _显示文本头部内容--head
* d% y3 O/ I# d7 g* `
' x( m+ l: R$ k2 o$ P( e7 _head命令的作用就像它的名字一样,用于显示文件的开头部分文本。, v( H5 R% k  u
常见用法如下:

3 {& v7 s' t& N3 Z  n" vhead -n 100 file #显示file的前1000 O! ~! Z" m$ T7 t6 f5 x$ y( G
head -n -100 file #显示file的除最后100行以外的内容。  
3 J  s  O6 [: [  R显示文本尾部内容--tail
" g' Z$ s9 n7 a+ g
" s( I- O/ ~. {和head命令类似,只不过tail命令用于读取文本尾部部分内容:* G, _% M9 i7 p: h0 N
tail -100 file  #显示file最后100行内容; x/ R3 U: c& I7 W% o8 p4 j1 U" w- X& j
tail -n +100 file  #从第100行开始显示file内容   / A: X# w! ]4 ^. O' A' G8 U9 R
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:
0 h/ }' N2 d- d. X  Utail -f logFile3 R0 c- z( Z! E8 u( {3 i2 w7 e& F% b' M
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。
' x% i  r  U5 b9 I指定顺序显示文本--sort
$ o( \& N6 h6 u7 j  Y' p% C8 s# K. m) z8 z/ _. u! O" V. V
sort可用于对文本进行排序并显示,默认为字典升序。' S  u1 v: v3 S, T9 F
例如有一段文本test.txt内容如下:
7 E( K8 _+ D6 t! @! E6 \$ @( i
vim
8 c: ?$ |: n8 W8 Xcount  P" q1 _, Q9 T" N
fail
" x, E6 L$ C# ?8 t) h7 Ahelp
6 Z( Q: R& j6 Q7 T$ ?help
  d/ i& L$ G; [5 P$ Pdead
/ ~$ ^- a4 Z* v& A- Q; b' _apple
' [# a/ M, {' L1.升序显示文本
. }( X- W$ c8 E# R1 U* W使用命令:
  z% Y$ }( t" f6 a" _' T
sort test.txt2 g0 y: B2 h5 d& s, I
apple
9 @6 g% s2 B9 Zcount" W+ b0 g6 g4 v& n( j% B+ k
dead
6 m- Z7 R1 P4 U; H/ Vfail  C) T" O& f% V% g" f+ C* Z; [
help8 H  B, w9 C' B0 l0 b# Z
help
' O- G+ F- B, Q' mvim* m7 R" {8 [2 Y' _
文本内容将以升序显示。8 L$ o% m1 _5 k3 J( y( [
2.降序显示
8 A/ B& O# ]$ P. u* x) k" l8 z2 E相关参数-r:
" [- S( [1 @  i! F, r
sort -r test.txt. p: B9 @/ T% p: Z+ c- e0 ]* u
vim* ~, q% j# T/ T. W, N2 l% Q. h: v
help8 ^' ]5 J1 x/ M9 v0 y3 U
help
. x  u" Z2 x" c1 cfail  U# g5 H" l- X7 l1 A, Q
dead
, \# G; T/ ~8 X( h9 `count
2 O7 L; K$ s0 v& D) U/ R$ Q# z) c2 Rapple0 F0 }9 M- w+ K% S8 }9 z1 L5 a
3.去掉重复的行  V: t+ {1 g1 B& r1 _  W- a3 W9 i
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
3 i& K7 y- e" [/ p/ b# X! ^. Y+ X
sort -u test.txt, E; {* H, e% I* C, y
apple, G0 U3 Z4 a( ^, D" c0 W2 [' L
count  f  D" b' K2 G9 t. p
dead5 R" G# ^1 F, T/ i& a6 n, [
fail
* n: W1 w: d8 k& o4 X9 Ehelp
5 e0 u( Y8 S' evim
4 d: @$ c  \( m9 G* E可以看到help行不再重复显示。, ~7 ]3 F) T, F! `  l8 o/ z) v$ K4 d( p
4.按照数字排序
/ P) V+ \8 \, Q' v2 L如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:

' ~; W% X& ^1 g7 A( f; E! Y& Isort -n file
1 e2 ]+ s3 Z( g, A1 Y由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。  z9 D8 H6 @" E( F- U* \
过滤显示文本--sed
9 i3 n8 k- ^+ `- f1 P0 [0 M, |0 O# u9 X$ \$ E0 V2 x, o) i% J
sed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。8 T0 B; g. r( K' `) V
1.显示匹配关键字行
  R9 \1 [$ ~: \) ?: z8 e+ G有时候查看日志,可能只需要查看包含某些关键字的日志行:
# c: ~# D4 _* Y0 d& O7 _
sed -n "/string/p" logFile& M. c& ~$ l8 s6 }# i  u+ m
上面的命令表示打印包含string的行。7 Z+ R' e5 _" u: [" X* a  ~; w* V
2.打印指定行9 t  k1 _0 X+ F& y" w; q/ `7 ^# |2 Q
sed -n "1,5p" logFile #打印第1到5行
2 g% K$ o& R9 z( c( R9 A! Ased -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
9 c; i% r9 d$ r- Vsed -n "10p" logFIle  #打印第10行
% q: I4 m/ {6 a3 v- H( `去重显示文本--uniq
3 c; P- Q  c$ {. G0 G! y
$ }/ v. r% T, R+ Y4 Y8 P0 @+ Q6 A常见用法如下:3 G5 \! V2 o- a- m& B
uniq file  #去除重复的行
* e9 t/ k: `: r$ |' Vuniq -c file #去除重复的行,并显示重复次数( R1 a5 r* }$ X. \" D2 b/ o
uniq -d file #只显示重复的行
2 w# u/ l; v% |. D2 J9 X, muniq -u file #只显示出现一次的行1 N$ A3 p2 I9 ]. L
uniq -i file #忽略大小写,去除重复的行& ?  W  }: U- @$ e! b4 M  Z( B
uniqe -w 10 file #认为前10个字符相同,即为重复9 o4 ?& X& Y; d& ?% t5 G" v1 B% h
文本编辑查看--vi
, k, a8 X. [* b3 ?/ ?' J, s
2 s( z$ v5 n0 G, T查看文件也很简单:
, v, a% M; c. a: a; ^) j8 @vi file
2 _3 V+ w, i0 w9 v" f) @9 f而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。9 ^9 r8 v. f' |5 S( q, i6 ?$ I: X
总结; E5 X) k0 N/ u4 k+ z9 T

" E9 ?" D9 a' h9 [" @, P! f' E3 s文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。
7 m. C5 j5 ]6 Q- z

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-22 07:47 , Processed in 0.039507 second(s), 33 queries , Redis On.

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