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

 找回密码
 立即注册

手机扫一扫,访问本页面

开启左侧

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

[复制链接]
admin 发表于 2020-6-28 13:05:01 | 显示全部楼层 |阅读模式
前言  M% G3 _  U) g* N4 S+ @( e

1 G4 \, u; Y- J3 rLinux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。
; L% V9 C6 G$ s( `4 h全文本显示--cat
1 a2 i: t, B( E6 M
6 x4 G0 B% E1 }9 H# P- G, X! Acat可能是常用的一个文本查看命令了,使用方法也很简单:* l* ]0 t/ h% _" i- J
cat file  #全文本显示在终端
$ a! c4 I: `2 U: b5 Z  o; Wcat -n file #显示全文本,并显示行号
3 v9 M8 o2 s' ^2 X- D, H; w2 I另外,cat也可用作合并文件:3 z; R* A" M! x) _) [
cat file1 file2 >file3
8 Z/ W, k' N, q& x' ?. b- S该命令将file1 file2的内容合并写到file3中。
2 \% ^* j4 {' `8 N+ x倒序显示全文本--tac/ k* q! {% Y2 {7 V  p* d: M

" J4 b& Y$ O6 b3 s" Ttac是cat倒过来的写法,tac以行为单位,倒序显示全文本内容。; ~, |5 d/ ~' `6 O# U
tac file
8 @4 {% h4 Y( R) k9 z# e. U, T分页显示文本--more
, e( s) B# I0 \# [
4 C( d$ C* E% Ycat将整个文本内容输出到终端。那么也就带来一个问题,如果文本内容较多,前面的内容查看将十分不便。而more命令可以分页显示。
: W8 b* z; t) e( {8 M1 d$ X1.显示内容

: H) a* r8 ], f( h" u: T  Mmore file
( x+ {' Y0 O: Z% I5 ?之后,就可以使用按键来查看文本。常用按键如下:
3 Y4 _3 p2 u  N6 j8 \: G回车    #向下n行,默认为1行6 n8 |$ d, O7 Q3 _' u7 C* q
空格    #向下滚动一屏
: ~$ q/ z; E  L5 yb      #向上滚动一屏, s; T2 b% z$ p8 R+ n1 c
=      #输出当前行号. j# i9 k# f8 k  F7 e
:f     #输出当前文件名和当前行号
1 F( c+ S# u5 A2 z9 O: w; gq      #退出) \6 K/ n0 z2 X+ Y1 g
2.从指定行开始显示( T1 |* L+ C* q
more +10 file2 @. B3 R# F0 L
该命令从第10行开始显示file的内容。
9 h: w: q( E+ W3.从匹配的字符串行开始显示$ L! a% c$ j3 Y7 u6 M
more +/string file
6 i* b' c( b" _  `4 `' W/ V4 v# c该命令从有string的行的前两行开始file的内容。
& g. g, B- f% @0 r) R0 j任意浏览搜索文本--less
, t1 Y7 D/ {# N/ o" v/ b2 ~2 {/ @+ }" y! \
less命令的基本功能和more没有太大差别,但是less命令可以向前浏览文件,而more只能向后浏览文件,同时less还拥有更多的搜索功能。
. |* J# n( I. m4 H' u+ G常见使用方法:

" y7 }; D4 m% Kless file     #浏览file& ~: \8 f2 R$ i6 m$ U) A
less -N file  #浏览file,并且显示每行的行号
, E2 f0 Q$ |. D/ Q: iless -m file  #浏览file,并显示百分比
( i, J% A5 y6 O# x2 F1 K$ y常用按键如下:
' J* e5 Z- o5 G9 q- Tf        #向前滚动一屏  K) p. G) {* i$ |2 l7 r% n
b        #向后滚动一屏! a* d$ O) _3 Z+ t: O! e
回车或j   #向前移动一行
4 B8 Q% k8 C/ Z# l9 J1 [k        #向后移动一行; D, S& l& V. U8 j$ d+ k  ~, q
G        #移动到最后一行
, ?9 ~6 u5 g, u& V- I+ Hg        #移动到第一行
( G' [1 q, ^; N/string  #向下搜索string,n查看下一个,N查看上一个结果
* C) H, J4 b! K& \/ Qstring #向上搜索string,n查看下一个,N查看上一个结果
. u1 w) W  Y' F6 bq    #退出2 m3 t: x9 L$ e# \) c0 ?
相比more命令,less命令能够搜索匹配需要的字符串。4 r( u& H# r  d+ H3 }" a
另外,less还能在多个文件间切换浏览:

2 Y; _" \8 U# X8 h' e/ h7 M' \5 C  y. }less file1 file2 file3
5 g- @, F: J# Z* L. d+ W! J# D/ U2 L:n     #切换到下一个文件1 }2 }8 X/ M6 }& b1 C
:p     #切换到上一个文件8 Y4 h8 R7 N% f* o7 S; G* {
:x     #切换到第一个文件
5 ]6 w. T( M+ x0 A:d     #从当前列表移除文件
5 b% D3 M0 g8 o4 p) o" N9 S# p) d, N$ c显示文本头部内容--head
/ t: B1 P+ l1 R; b
0 _4 W" ?6 V' c( u" uhead命令的作用就像它的名字一样,用于显示文件的开头部分文本。+ ~" W6 k4 L( x, F7 J$ x" D0 I
常见用法如下:

% {1 u0 a9 q% @' v* o0 fhead -n 100 file #显示file的前1008 m- E! A. o4 R
head -n -100 file #显示file的除最后100行以外的内容。  
9 A4 A5 i; g- |; d  g显示文本尾部内容--tail
; ?7 R4 i0 j# o9 j8 z2 r% r8 N& L/ R2 F( h  j: K+ l/ O- J. w
和head命令类似,只不过tail命令用于读取文本尾部部分内容:/ `  S$ L6 ^+ p# c% s
tail -100 file  #显示file最后100行内容/ y) ~* o- Z4 Q8 q" h
tail -n +100 file  #从第100行开始显示file内容   - y! w* {  i+ z; T1 x4 b% ^
tail还有一个比较实用的用法,用于实时文本更新内容。比如说,有一个日志文件正在写,并且实时在更新,就可以用命令:, P; P* g1 m' G: r" W+ z
tail -f logFile8 F! n; [1 D) V, {$ K% w& e
对于更新的日志内容,会实时打印到终端上,方面查看实时日志。! T+ ~) T- M/ G) o4 c8 ^% n
指定顺序显示文本--sort4 A/ n5 o8 i8 E; C" [* `8 p, `6 a
* Y3 N  y" a  z! X8 \
sort可用于对文本进行排序并显示,默认为字典升序。% h- @$ {' O: Q" b+ }3 X0 h4 V
例如有一段文本test.txt内容如下:
% h/ e% ^; L) {$ s1 H7 {' O
vim2 @$ p! i" g' G4 V
count4 z/ r% X1 Z- ]7 t! x
fail. g/ k& F  g$ F3 C" U& F$ h
help
; Y) C! z: Y( j6 [: Z' Ehelp
' _5 o9 {) g8 F6 E3 O' w: Kdead- L6 `9 C; e* J. l& G0 s$ ~( y! @/ B
apple- p$ {2 k. m& Z# j) A
1.升序显示文本# \6 b" j5 u4 R4 {' ^
使用命令:
, ~: [; ?6 J2 k/ o' f
sort test.txt
4 P; j% @7 w6 J/ H9 Z' T, Vapple
5 ?" R' D( K$ C4 hcount
* O: Y) J4 k: I( r5 G$ I/ Y2 Q4 |dead
4 m! }7 O; ]' G; t( K; Vfail
( H! ~2 e1 M$ b, l; Y9 Shelp# I7 K% x6 Z* Y! L
help
" O2 a% p' M5 n" J+ x" vvim
  a4 E" z0 h' y8 h+ W文本内容将以升序显示。
5 F2 _! q# l, q  T8 _+ `; u; o0 f# k2.降序显示5 x' K  ?1 X# b3 O9 T/ X: ?$ l6 E
相关参数-r:
4 B4 P- L  K4 }: e, K
sort -r test.txt* \% o9 r2 |/ p# N) C
vim
+ s6 k/ L7 a3 V6 l7 Ahelp0 H9 r, f# _0 R
help
2 z; Y6 y- o5 R0 D. Qfail6 _4 P4 P" `8 m0 o" U" }* X- {
dead
% f4 {! s+ ]* [; E$ j! wcount# T& l6 ?- V/ ^5 _# B; f
apple1 O2 V2 G  m* q
3.去掉重复的行* D7 E% a, y" M
我们可以观察到,前面的help有两行,如果我们不想看到重复的行呢?可以使用参数-u,例如:
, o1 `! j: h. D
sort -u test.txt
+ l$ P% P, m# {( X7 Bapple/ i6 N  H( ~, Z! k; a
count0 X# X3 U' I1 @2 |" E
dead
8 F, j* D& ]' L0 o8 xfail
3 E% A. X( ]8 `0 |# V9 J- `# ^help
0 p% J, f$ q7 Q) Z& q. pvim
' O) m1 M* o; C) R3 j/ t# o4 o可以看到help行不再重复显示。
" A9 n' a) R6 L2 Q4.按照数字排序
! v0 y2 q3 k4 {3 s如果按照字典排序,10将会在2的前面,因此我们需要按照数字大小排序:
- F" ~6 Y/ `, r- v( f  \! E9 n
sort -n file
5 A: Z+ }& v9 L. ^# {由于本文篇幅有限,不在本文展开介绍,后续将单独介绍sort命令的妙用。
; n, [. R" O7 m$ ^: L6 s- V过滤显示文本--sed1 u/ g1 Y' d7 s% }; s. N2 @% c

# K& x  _* A# }* z6 M1 I' Wsed是一个流编辑器,功能非常强大,但本文只介绍文本查看相关功能。
: U9 F4 d# h- w( P! Z1.显示匹配关键字行* g3 l( E) y  W8 p+ d' d- v) y
有时候查看日志,可能只需要查看包含某些关键字的日志行:
: D9 W. \3 N( s# [: l
sed -n "/string/p" logFile
7 o2 |& P! v0 w! t7 i, @9 J: R上面的命令表示打印包含string的行。+ x0 t4 m' [+ T; }# l
2.打印指定行
' Y- i- C: |1 S; P. u; Ysed -n "1,5p" logFile #打印第1到5行
4 N( \" M1 O' |sed -n '3,5{=;p}' logFile #打印3到5行,并且打印行号
2 {; d/ p) X3 v( _" g) n( ~' |sed -n "10p" logFIle  #打印第10行: C) N9 c" `: {& ~
去重显示文本--uniq
4 ~; B5 y% d1 ?# w3 o' y; i/ q! z9 |$ ]8 i3 \
常见用法如下:+ D2 q" D1 W' t: k" W6 M4 }
uniq file  #去除重复的行
% c) B5 f; X$ S$ suniq -c file #去除重复的行,并显示重复次数
) H# z0 h; u$ w2 |8 b! @. ^8 Vuniq -d file #只显示重复的行
/ {  `8 G1 F6 {* D5 Nuniq -u file #只显示出现一次的行
2 i6 S. y% H4 v9 B. zuniq -i file #忽略大小写,去除重复的行
0 M2 D% {1 z# B  J8 q# Kuniqe -w 10 file #认为前10个字符相同,即为重复# l0 f( S9 |+ D2 a$ |1 }
文本编辑查看--vi' v" f9 @, m0 b+ k4 d
" M; k- N+ v! ^4 B$ [
查看文件也很简单:
6 L: E  Y0 f7 I+ ]: [vi file# l1 N' L1 ?# B5 m5 |: S4 d
而从vi发展出来的被誉为编辑器之神的vim有着更加强大的功能,这里不作展开。
6 p9 l% h. m6 p总结
- M8 `! c8 v. @. }3 _" _* `' Z0 K. b; t/ Y0 H( _8 K! d
文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用man命令查看。很多命令可以结合其他命令使用,例如ps -elf|more,分页显示进程信息等等,更多用法可自行探索。8 r! N2 s. h4 O) g3 s

微信扫一扫,分享更方便

帖子地址: 

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 05:13 , Processed in 0.070801 second(s), 32 queries , Redis On.

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