找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6998|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
: J4 }1 z2 ]9 b7 e+ ]' M0 w5 w- u" \1 j: Y
1.命令格式:3 R* z9 d; M4 x9 |

# Q% G, t! r# ]cat [选项] [文件]...
/ l! p# s2 K+ G8 w( c. _; w1 _
0 B6 q; M" Y, s; R! f8 q2.命令功能:
* r5 N- B- q& p7 T5 ], E4 o) m% {- w" }2 Z; `" I
cat主要有三大功能:
+ \) l$ A9 e1 m) ]: m  P% ~6 [* R; K5 B9 B5 I) u, L) R
1.一次显示整个文件:cat filename' H: E5 L% B/ F7 d+ Q

$ Q& z, C$ ?7 U2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.4 k! Y0 v2 z: c! M2 N

- E2 l# {/ @6 l: H, z3.将几个文件合并为一个文件:cat file1 file2 > file
: c+ T9 X$ A9 {0 m* c' I$ H7 ?0 `" Q' `/ P! s1 E$ M
3.命令参数:
- _. ~2 C: ?1 U4 ]8 |8 S9 u/ o6 C+ b, [1 v3 R- U7 _
-A, --show-all           等价于 -vET- [8 z' e' q0 |

0 W7 O9 b& Z) c1 v: B7 N! t-b, --number-nonblank    对非空输出行编号9 d/ v3 P9 D5 R% z6 C) r

- g  e9 H3 i  H-e                       等价于 -vE/ K% I8 @) M- g2 @

" y, f- e2 X, j  O) h7 B* V-E, --show-ends          在每行结束处显示 $% T. X7 ?' \8 B

: T+ M! `' U& \) V& x-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
+ t" ]! |# V( x. W1 u0 A# h0 N
: p; B7 n% p( c! n# i6 p$ i-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 $ B$ Z" T( U6 A  V6 ~$ Y" _2 r
) `1 [' C, A$ B. `4 N
-t                       与 -vT 等价
+ a. U: r0 V) ~0 X8 `5 m* C( q
$ R% ~; l* H3 _% ^0 i8 t-T, --show-tabs          将跳格字符显示为 ^I- O/ n2 A4 K6 f; _5 C
, M# u5 y) Y1 i3 n& o( t0 V
-u                       (被忽略)% K4 X7 a8 e0 T* N

3 N+ p' h4 [! ~8 Z" U0 m-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外3 M5 X6 g( ~/ D1 `8 `

: ]% T" q2 l5 d2 B9 [4.使用实例:; }2 s( f* T$ I! f
- B% R  t1 u7 _6 S: E! m- }
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
/ n; r' G* R7 Z/ g" V9 {. l' V2 L2 K( M$ p( g9 j6 ]( q" a  q
命令:) ]" i+ D9 b! q2 W7 I0 Q/ T! H- k

7 a7 `& W3 T2 i6 ?% D& x, S1 ycat -n log2012.log log2013.log ( n8 D7 C9 o- w8 C6 I
8 ]1 z2 I2 ^" V# c
输出:
$ M9 k4 U4 u  A& E) C! J  q
& n2 F" F4 ~. `9 I8 o/ [1 x& ][root@localhost test]# cat log2012.log * |  |$ d2 t4 N

  T- E! T" ?. B% |0 D' E0 w2012-01% I7 ^) p9 L: G

# Q% Q% O6 V6 ~' z$ l2012-02
- ~* G, Y2 W$ S
; z9 ^& u+ X. B3 a
" [9 B! e: c+ ?. c* m9 h2 c
. Q& W2 G; K5 G6 `+ y======[root@localhost test]# cat log2013.log
& P- w. S0 z( {: c: {, G0 i! Q; e: [) q. h  V  C' }- d
2013-01- {( _0 I. O* i  c# ?

: h( F% F' ~- Q. G$ v- z1 Z7 t2013-024 V# l1 g: ?' N2 V2 }6 D& u# t

, p4 x9 S4 h0 A% _) ^6 S' f5 j- h6 D! p0 u

9 T0 S$ H4 @. a$ l2013-03& [) g4 o" v/ j5 e) i
2 q- P6 U* X) D3 V0 P
======[root@localhost test]# cat -n log2012.log log2013.log + a+ n5 j+ I% ]/ z% ~; S' \. U7 I

6 K- G. T% `! r) j, {9 f! {8 q5 v      1  2012-01
9 L) {6 F3 Q+ F2 ~3 S* j* p; D/ n6 Y# [4 n7 P+ E7 C+ L+ s; G
      2  2012-02
; ^+ [2 N3 z! T# ]  r& `  S, g$ q( r$ v3 ?! f" ]& x9 P
      3
* T7 U& B$ u+ I9 g
" V9 A* F. g- i( I      4
# O. ?% h3 M1 t' {6 q; W
- j, R# f" \& N( ~& B$ W      5  ======% l  c! C; ^( E3 q/ d
9 j" r" n- i) ?6 _/ W' e- o
      6  2013-01
1 Z2 ]) q4 B# |* G" U9 g8 Y) s6 a7 v/ b' t
      7  2013-02# o' A/ f, y3 l& Q5 E
0 i5 I& z" E3 f2 i
      8, Y6 z& j- b" E: n# p2 r
5 O3 M. s  D' h, b5 J+ T
      9
$ u4 l& e0 u4 C$ _7 |
% ~4 a( E4 M& X3 G& s: s     10  2013-03; Z4 |# n+ D9 b. ?( v4 x
+ N" b0 U. S2 w
     11  ======[root@localhost test]#' X. B% M4 l  H- I8 ]9 Q  b! o

: A1 L! }0 [9 c
. \6 S$ |3 ~( c- t8 i6 U说明:% q" i! D5 z8 \" @3 ^& S+ A) V2 K
6 Q7 S+ Z5 b) n% f' I. S4 a: c+ u

, x- t1 y% H3 I0 T实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
* i/ f& \9 M, f0 f: h7 r' u0 s( Y3 @! [( M
命令:
% {. g5 `- A) Z) S% |9 H0 @6 W" y' e6 F+ T7 o, K4 A$ g
cat -b log2012.log log2013.log log.log5 s  l0 }1 t" b' ]1 N

- B4 c5 W' N$ X( D" R% k+ i% B. `; y! T9 `输出:
8 m9 w- `& _  `7 E/ b" k+ L2 c; A- ?5 ^
[root@localhost test]# cat -b log2012.log log2013.log log.log5 {" x3 ^* ?, g; M4 A3 o5 |  V. Z" `7 e

& Q- [- {3 m/ q     1  2012-01
, {7 }0 T. q# N
- F7 h- j( @% X, W4 w) s     2  2012-020 S1 @: k! Q; Z
3 ?$ H1 L* i- Q" h1 X  \
1 X2 P6 w3 r2 ~- z; y( ^6 u" I
" `! {4 Q; n: z* t8 q3 I
     3  ======
2 s  M# L8 z$ K4 y' t
4 Z, b- Y" |; i- |     4  2013-01
5 ~7 E' o1 s2 P/ \( P9 R# l4 ~4 d, V4 E
     5  2013-02
. t/ ^( K# Z6 H" Z5 v; k0 J! Q  Y. G3 i/ Z- m8 X
* @- {! ?2 `( B) ?, `, b

, p9 ?, a" P1 @2 b     6  2013-03
" k7 Y" d) N1 P( U, \& X, O9 O' ?. x6 S7 E
     7  ======[root@localhost test]#
% X0 W2 d1 r* w: P$ k" v3 |. L
/ m+ e) Y- e6 n* v' g, L
0 D+ x2 u" H. B) m实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
1 i1 `8 [* u3 k& c& R5 W' g3 ~9 \# T& \, q: E
命令:( e, t0 ?8 v8 P* a/ [  J
* _; g) o" d' k
输出:
# h5 z0 p$ `+ H# U- z& E+ J  v2 i3 I  {, |
[root@localhost test]# cat log.log
4 A% e  l& Z- I% b3 b
! k' ]+ U& g& i[root@localhost test]# cat -n log2012.log > log.log
+ A' v4 ^6 W0 W; a8 H$ y* x6 ~* `' X) C  s8 w- C+ y  x- O2 L
[root@localhost test]# cat -n log.log
9 V: q/ M+ J- h9 v/ N2 ]) N& l( G
4 ?+ j& l1 K9 T' M, K     1  2012-01
; H- f& R7 z" A' ~
# j6 f. \2 |3 ~- J* A- g     2  2012-02/ k/ e- H& S3 q2 J. ]8 ]0 [: G

0 k( }9 D0 ~1 ?; \     3# w. L' |* c, }8 h9 F
9 [" q/ F6 S2 [  M* P
     4, A$ E/ ^) x& _" F- Q
$ V  X4 m0 O' k
     5  ======, \* \6 Q8 n( D  b- P: J& K

3 l8 g" u9 @1 H; z; L# j5 q[root@localhost test]#0 K; c* d! G! x3 Q. M& r+ L
& o$ o2 I& M5 a! N8 @: ?% a
6 h4 G* w- _/ n  w# B( w2 W' a
实例四:使用here doc来生成文件
$ l2 h7 D# d) r. f: Z4 T' \0 Y" _0 ]  d8 w2 f$ j) x' `
输出:; v; ?. \& k9 u  H2 y, H

1 I6 z( U, Y6 U" B, ^9 D[root@localhost test]# cat >log.txt <<EOF" |% N4 U, d  x2 c" g% G9 J3 e

7 M# t4 G( n) Y; B( Y7 d# J+ {> Hello# j* b6 N* |2 Y8 g) [3 o

6 X1 t" z2 l/ H3 l9 t2 F* b% O> World
$ _' K, B  ^$ E6 E
& X$ M! p* e! H2 d> Linux
' A; P. m  Z7 C4 U0 G
, ~* n3 ?( v* |& c9 m0 G- Z" \# ^> PWD=$(pwd), p6 B1 m5 ?4 z* p0 L$ \
6 X7 s9 C9 X, Q2 g* d4 S! M- ~! r
> EOF# e( \! n  Z4 S9 Q6 R# N: t8 A% `/ X3 O
) S9 G) \( w; c+ w; O
[root@localhost test]# ls -l log.txt
+ k  T- ~5 k$ c" Y
8 D, d3 f/ k% ?$ C( h+ t1 t-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
" {  n' |: W: p, s: G) _" o% w8 d/ U# g$ `% e  j1 C& ~0 m! N$ s) N
[root@localhost test]# cat log.txt 6 _5 n$ V5 c# _. I' c) @2 ~1 M

' G7 {; }: n/ \Hello
6 ^+ Y3 J' D: K3 v9 e# l. y5 s9 I
World
4 k$ [$ p3 E3 `/ q
. g: ?: }2 u( q3 {3 q" X% ?# C4 ALinux
& H% u8 Q& i  }& ~
) ]/ o! s+ V- U4 _& J! @  U1 zPWD=/opt/soft/test6 g' y& y5 Y9 H( G3 g% W/ m
8 V: i( ]: F; a2 h
[root@localhost test]#0 u, k  m7 v0 y4 d2 c9 p2 \
" Q4 t& [( ^" F" A
, H! c; k6 L' ?6 T0 N9 Y' h: r
说明:
' ?% `. T  T( b) v$ u( Y3 j) J2 H! G% [3 D% m" \( j4 S
注意粗体部分,here doc可以进行字符串替换。
7 w8 o: z" m: i  C. a0 {/ Y" K* h( l8 P  r. W

" E2 Z( W: }. M0 J备注:) f) @' e: @+ F

5 I+ X/ Z; K2 i0 Etac (反向列示)) N3 f& m; r/ b) c
( z( T% Z7 b1 G% d% o2 G; p) _$ `- C
命令:. M/ T8 r" T! n4 ]8 H

9 E8 h" I# F% |* Y9 btac log.txt0 z& m, p" }- J( l+ J& B7 _2 P8 s0 u

9 k3 _# ~, h8 @; [5 r. Z- n+ X9 d输出:- w# Q3 G/ K  M& P0 r8 ~% C

7 F: T8 ?( C$ ^- T; J# l  Y% E, {[root@localhost test]# tac log.txt
& l6 F2 O0 \2 I0 j. V3 U1 j; E4 L2 r) {2 }2 J
PWD=/opt/soft/test
/ ]0 X9 D* v1 T5 x$ M; ]
* R6 \* [9 T8 y2 ?# QLinux
0 U" K* ]! Z( a0 x( H  K- b- A0 W
World1 q! i6 {1 a, Q: g" h
; \- D' u4 l8 N/ D& i) b2 K/ d1 W
Hello: {& h( l9 D1 w( j( k

' R' F( J. o# S6 ?说明:( P  K6 q* P( j7 D
' L9 r* l* l4 Q
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
- Z4 ?& o' ~; W9 O$ H$ F' f7 W
" |& Z$ I# L: x: \" {
5 ?8 @. X6 }, o2 Q) n
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 # b$ z5 P" }1 o* c# ~; w" L
& p  B. ]7 x- ^0 N1 F4 U
谢谢超级版主分享了!
发表于 2018-11-10 11:19:14 | 显示全部楼层
不错不错,来了就坐吧。
发表于 2018-11-10 13:52:12 | 显示全部楼层
我只会cat /proc/mtd
 楼主| 发表于 2018-11-10 14:00:08 | 显示全部楼层
邪恶海盗 发表于 2018-11-10 13:52/ j0 u! m; V. Q. ]9 ?
我只会cat /proc/mtd

& r% C+ y$ y9 u# c多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
! d* ]4 N# k* R3 q0 hecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs; M( v# v, h  j" D( M. M7 h
echo WScript.Sleep 100 >>shua.vbs  Q/ m3 D( Z5 Q" J6 B
echo sh.SendKeys "root{ENTER}" >>shua.vbs
* f; R9 e& l- L, ?+ H$ ?" Oecho WScript.Sleep 100 >>shua.vbs
0 }& g. ~+ C1 i% k% j1 F! ?+ \9 W. q, Necho sh.SendKeys "Zte521{ENTER}" >>shua.vbs& P$ l4 q: ?$ a- C
echo WScript.Sleep 100 >>shua.vbs
( ]4 k+ g" K3 _: _3 N0 }# c/ Iecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs* L) T$ W6 @& U- N6 N  k
echo WScript.Sleep 100 >>shua.vbs
; S2 h7 Y1 C/ P7 ^! techo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs; t9 N# {& ?! `/ m: a
echo WScript.Sleep 300 >>shua.vbs4 @( ~* g3 g# x
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
+ i0 w& d. A, K! Vecho WScript.Sleep 300 >>shua.vbs: F0 y( V: N) {! K; A2 q' @
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs( t' _3 e) h$ p6 I$ ~( \* u: i& z& o
echo WScript.Sleep 300 >>shua.vbs' l0 Z# W7 }( q* \5 P9 Z
echo sh.SendKeys "sync{ENTER}">>shua.vbs/ \/ ]! ~* a  G) {. {! R
echo WScript.Sleep 1000 >>shua.vbs
. c4 I% [9 w+ jecho sh.SendKeys "reboot{ENTER}">>shua.vbs1 r+ l4 J1 J5 ~, }0 J1 n
start telnet
: ~# p* E5 S' n" e9 B6 `3 zcscript //nologo shua.vbs
5 S3 D5 W- h3 d9 [% k* N  q: y7 o' Ndel shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
3 Y; H' e3 k+ _9 k# K" Qecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs( ?% h/ u7 w- m1 }; e& ^" g
echo WScript.Sleep 100 >>shua.vbs1 g! V: t% B6 F9 {, h
echo sh.SendKeys "root{ENTER}" >>shua.vbs; J7 I5 n) D4 N) z  [1 q7 R' e: X# ?/ {
echo WScript.Sleep 100 >>shua.vbs
1 K% L) {2 q% F. U) ^) ~4 decho sh.SendKeys "Zte521{ENTER}" >>shua.vbs8 H, D- a. R9 S. v( G% b
echo WScript.Sleep 100 >>shua.vbs
4 c) k9 E3 }+ [5 Z0 Oecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs( H: \7 O8 X# i
echo WScript.Sleep 100 >>shua.vbs
6 `% Y1 q4 d. e# G% ?( Zecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
/ g9 b9 `0 \# p4 z4 y- u: ~9 uecho WScript.Sleep 300 >>shua.vbs
2 T+ [3 T' K/ W& |8 D% e* Fecho sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs; V3 ^3 D  j! Z# [& g) x
echo WScript.Sleep 300 >>shua.vbs
8 g4 I! B- M" v6 {+ v4 H1 n6 Gecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
) }: L' Y3 n; q# [+ Lecho WScript.Sleep 300 >>shua.vbs
5 U" G' M  N6 I% Secho sh.SendKeys "sync{ENTER}">>shua.vbs
( {2 B& \1 e8 ^9 Yecho WScript.Sleep 1000 >>shua.vbs
8 }/ F9 U# w+ Aecho sh.SendKeys "reboot{ENTER}">>shua.vbs
3 P6 B+ F( S* v. e) r4 f9 a  ~/ sstart telnet
) j& c4 i  L0 W7 z6 acscript //nologo shua.vbs" [" f8 Z7 J% ]6 D. T3 R
del shua.vbs
' m; s/ t0 K+ G: |5 a8 r
. e+ v! v, T2 l1 z7 e. P" A8 U
$ \8 g& k3 v) N+ }怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-11-8 08:06 , Processed in 0.023207 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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