查看: 8116|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 " x" Y3 g7 A  Z' r* m2 h+ b5 N* o0 z

3 |! t3 V, Z: r' z& T, m& a, Z1.命令格式:
* j: b5 ^) u* b- ?# ~8 n
- U6 ~0 }* X! a% ?: Pcat [选项] [文件]...
  z) E% T2 M  T2 E7 `! w8 a5 N0 N) ~9 Y, N4 r
2.命令功能:
& V+ Q. M5 L. y% c' n( Y
/ R* g' l) h* W. J1 |# Wcat主要有三大功能:" d- l8 h; Y& {

# |, W  f, |( A1 E% k1.一次显示整个文件:cat filename7 j+ M9 X7 p! ~9 p: c1 A
  ?$ q. Z$ D0 G( y. U& P  x
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.' L! I0 S; \8 Q5 p, x% {! C: ^+ m

/ }5 G+ O$ T$ a' F6 s3.将几个文件合并为一个文件:cat file1 file2 > file1 m1 e3 h* ?; v

& P/ |0 z1 v4 {# c# k3.命令参数:/ E' ?# _4 l7 ^( y" h, B& x3 g2 `( p

$ r; k9 u' V# g% v/ N-A, --show-all           等价于 -vET# U4 V5 l& X  @5 N
- k  q8 a% v3 O8 w9 P& K* E
-b, --number-nonblank    对非空输出行编号
! y  B9 R. }5 W3 @0 n4 t
) V9 `' ~5 H5 t! i% [-e                       等价于 -vE$ i0 [3 L4 X6 M5 W6 q1 s- V
) ~: H) b5 K0 t( e6 m9 ]( ^
-E, --show-ends          在每行结束处显示 $2 Y# X* V! J1 I6 y) s

( B& n( m2 w5 ^6 d-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
0 P6 D+ C8 [0 P
+ n! l; b2 I/ ~, M-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
1 n1 j& t' _2 T  a, A0 z8 F7 ?+ C) }9 \. m$ i( a+ ]
-t                       与 -vT 等价
, k% o( h; ~  ~" |. v- D1 T8 V+ O
4 Y! ^2 B; t/ U4 k0 C$ O' J: a-T, --show-tabs          将跳格字符显示为 ^I' J) v2 P- u9 ]

4 h" d6 C: z8 N: s% K- M- F5 N-u                       (被忽略); a" h; v& g# X8 B3 s" |
* Z8 v9 N9 W$ P) S; J: Z, t3 L1 h% x
-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
! d* C2 q1 \: a) @9 a, W
' ?% p' Z& Q: o4.使用实例:  p+ c) f8 S! i+ w" [% |9 l
' r, Q* {% ~* @; ]) R+ y6 N- q2 j
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里6 a6 y1 Z8 K; w( H3 u6 N- H
! z" d  e$ ?. L3 j% T' d" v
命令:" Q' D3 V! T4 J
& n/ {' V1 S8 f; d
cat -n log2012.log log2013.log
* n' J% E/ c$ v3 E; h6 W( g( ]! P% Q: Y1 i% Q9 M
输出:
' A1 S; O, \) I8 d4 t
' o8 q7 @: c9 [" J8 h: J[root@localhost test]# cat log2012.log
! b  X3 b" B/ |, {+ w! I9 }7 \- U. a# q% t
2012-01
' ~$ [% P3 F7 T; ]7 z/ \. v! F6 A" u9 N- x0 B
2012-02  Z5 s, t+ W6 ^! K' [/ K: Y

, v1 f8 \1 W- l* z4 T
$ g6 ]$ V1 i. a% i6 _2 J0 q
* K* [8 {) q* L+ E$ n4 u======[root@localhost test]# cat log2013.log 1 N2 x  f3 I% K  X) A

5 o  j8 M3 T1 \; h( l2013-01+ w' P8 N+ e! ~% ~- @
2 ^/ z6 S/ J" ^; i6 Q' h
2013-025 x* I! ]) ^! D: W- J0 E
, g: z! C" d9 K0 o% u+ }8 |! I; e0 ~
2 {! t) f( o8 a: y1 {+ y
& I) z8 v" f; r3 x1 E
2013-03' e4 s" f- i8 i8 A: q* R! N3 E
, d0 o# l  _2 E2 s2 ^
======[root@localhost test]# cat -n log2012.log log2013.log ' M1 {* `4 d( L. i

1 W, T$ H- A0 F, {1 y      1  2012-01
$ w' b; a' k7 |1 r# d& B
/ |" K6 N. h! p3 X7 i! w      2  2012-02' a3 Y! A9 J4 H" g8 `
) t0 N7 z0 f1 D% Q: c# C" l( R: \
      32 V- t9 H1 {  K* W( _3 s% ]
( T0 K8 {4 `$ y' W- U8 e9 I2 J7 y
      45 ?4 q& E" R4 t) l' {3 S: Q$ P1 x

4 s! C4 m% _: O      5  ======
! m8 D* S( P+ A4 M3 y
" K) {1 x  B+ ?" d( Y0 Z( }      6  2013-01
0 o3 J' m( C) N2 b1 ^9 f, d( D0 m
% \6 g3 R0 f/ r# N) F      7  2013-02
) o' i1 r9 r% `) f: F3 W; L8 A' w9 Q9 [
      8
  L! b# p0 ^+ C" ^, J7 w# W
; k2 t; H. b3 A* G! \# O) U      9  P/ L0 e/ C% _1 t' }6 F! R+ t

$ f6 N: U( m2 m8 k# P/ r2 ]     10  2013-03
! k+ r9 [' b9 M# Q
  U. m6 v+ G* d8 f& H     11  ======[root@localhost test]#6 `9 L' A) n# e- g# c0 Z9 k- i
6 A8 e5 B* l& f, N
4 v8 O- |! r9 q# Q& m- h
说明:
- z; m7 y) L+ H( [7 j, j
: _: K' e$ M) x5 g5 u; [
+ q( G) w% a) A  L, m! z实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 : ~( Q4 [' a" T4 Q
# W1 _4 x8 v6 Y; |& a
命令:
5 J, c/ [  _3 V" y/ u( N9 u9 m4 y( k7 A/ u9 r& E$ W
cat -b log2012.log log2013.log log.log
  z) X  r5 M/ V8 k) M/ c  D7 D# N- |
输出:( v' e1 f# s6 \. k

9 a+ k4 U7 A- {# @$ D5 X! j[root@localhost test]# cat -b log2012.log log2013.log log.log' L* O0 W' P* u  X" P
. x# {6 ?* ]# V. O7 i: u% F
     1  2012-01
) P5 {# Y6 B) C: ^8 v( C# e
6 n4 K( W5 v  a* P  E2 p# G; ^8 r, i     2  2012-02- Y: z, u0 J1 K

/ t4 y, `% S% y0 M6 t' W3 {- V8 t+ X2 K/ P$ p% B. C& m$ d
4 Q3 j( P3 N% @; Q- m0 z
     3  ======
3 |* r2 M9 Z$ A; L* Z* [: m+ ^+ q
     4  2013-019 n, E  N4 C5 m; x4 v* e

0 b& K# @3 |+ T2 s+ z* N2 b# K% G: j- Q     5  2013-02
8 d! X# S3 G* q% l/ g7 `- z% e& W0 f7 `# }% X- g
3 y7 r9 [' [. H1 \
6 y  G/ p/ l4 V, U9 t7 P
     6  2013-03
9 @3 J3 r% y) o* m' A/ i
; k0 p) ]) Y/ o: o& ~9 Z( \& [1 I$ T     7  ======[root@localhost test]#/ m# f- o: O$ w6 M' c
- P4 L& N( [1 D
) T$ [7 d2 P1 A% d$ Z
实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
' C, R- i) [% H2 Q# I  l/ `( c3 t9 l7 T# o, _
命令:8 ]8 a% n. K' U# k9 F0 b: f

( S; M: E9 ~2 G! y" z- X2 Y输出:
. }3 g* f" W: P2 [9 n/ q7 y) ^# P7 l7 \: v8 ]
[root@localhost test]# cat log.log
- S4 V0 V1 l& a8 U% l1 f' k" D+ b: u" ?! U0 ^7 ~+ h
[root@localhost test]# cat -n log2012.log > log.log* K, ?( J- B' |' p
0 w% \! w) B0 b8 i
[root@localhost test]# cat -n log.log
1 e5 }' j% R* A; x9 Q% G
  |( J; e8 G" m+ @! ~6 W     1  2012-01
4 r0 h% W: n) b8 ^
2 Y7 ~' ^5 \* b% N     2  2012-027 z6 J- y. U0 S. o+ q  \

4 K; c8 C+ A; j5 H# `8 T. [& Y! n     32 Y1 |2 |. K7 t+ t3 X

2 K% k; ]$ ?9 E6 ~     4
4 X  w' Z% \' I
/ N3 |4 I: U* p6 q5 x     5  ======, m  E( y. d* I# _+ y3 {( ?

) J3 v& l& S$ o. a/ j[root@localhost test]#5 _6 z4 m$ k8 M$ ~! I

+ H8 K' f+ {+ F. A3 h) Q
9 }. e6 h5 u1 v( `; b. v9 r实例四:使用here doc来生成文件
) v: q' t7 S9 X, v8 J; \# s
* t* y$ N2 h8 K3 t/ c/ Y4 s输出:
4 G2 H' K" H+ f; a7 \1 r9 w7 S  @6 S4 M9 p1 Z# q+ ~" i
[root@localhost test]# cat >log.txt <<EOF
% m) P& \) i3 W$ Z: t
+ |/ g) O3 Z" k> Hello) u, \3 x4 y# K( `
7 U: W/ t: e2 W
> World
2 v9 n4 F  d9 r( ^/ ^7 K; D6 m! p5 n$ H
> Linux8 i8 J# Y* h& P+ k4 x9 x

5 h# u; V) d5 M> PWD=$(pwd); q, r# {& r) n+ Y8 {

2 w. u: X6 T! J$ E' U) u> EOF2 h4 v4 z' t1 I8 p

: O8 a# C( R$ R- W3 J9 p[root@localhost test]# ls -l log.txt
* W, [0 Q0 s: f3 i! H6 }
# M0 N) t6 {) g/ j/ j-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
. w9 Q; C/ S, b8 b: r$ m6 B9 L( |# _$ q6 _& B4 V
[root@localhost test]# cat log.txt . `3 s3 ]1 a( Z5 ~8 R
# x/ M  P! \, L  Q
Hello
# V% L, E; Y7 r2 Z. ^$ L0 \, S+ \4 A5 c- N/ d# E
World& }: h0 [# `# |1 J2 a( L

; g. X9 L" k( H, _1 m- ^4 X0 [Linux
/ ]+ R  V3 M* A5 l! l7 y) e2 G9 M% g7 W- ]3 J2 }% X" g
PWD=/opt/soft/test
4 u- }. _/ N# F8 }) r7 d& Y# g- y3 m/ F8 P$ \
[root@localhost test]#3 b" R5 x+ ?# B& m, g/ E" ]+ V

1 }; I" C2 u3 z
3 P5 W6 @' {# }; b9 r* ?8 n说明:' F6 H7 d3 ^. @. c7 W2 u, E
0 ~+ w1 s5 G: x: {8 m3 N
注意粗体部分,here doc可以进行字符串替换。
4 t- S& F4 j$ k+ Z+ v
0 O- P7 l9 S+ y% Z( z7 x! n/ q* e) E
备注:
3 t% [5 A6 X1 A- a8 D7 Z6 A: y" A! M3 t5 J4 l
tac (反向列示)( v. o$ L+ F" v

5 m3 c- p+ e# D, Q" t/ x9 b$ @5 ]命令:
' b" \  E# u: A# `
1 f8 \+ l6 z! S% X* w' [) Atac log.txt3 F* R6 @; W% S- V0 Q: z

9 P  R/ Z- s9 ^3 {输出:5 c2 y& C' U6 ~# f+ i

7 }" H, T2 ^& G, g[root@localhost test]# tac log.txt
+ j# q# D! x% O* B+ d  U3 f# r3 `3 b3 u5 a$ n! b
PWD=/opt/soft/test8 A( f$ k' u3 s$ f- V( N$ {
6 {/ y# X$ D- W2 C. |& \; [
Linux. Y; w1 }, c& d: A* @
, K& V" ]- b4 f  d
World5 f$ @) ^; {4 V6 {/ u4 c+ f6 r

* G; L( A3 l6 ~. gHello* q$ k3 I' Z: z3 e$ R
/ C% r2 _+ |$ h6 i+ k
说明:; q' l" w1 ]! V* L

7 T0 ~! ^0 M8 ~# p! _  ]. Htac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
/ K3 c( ]: I6 X& Q; x4 T& z4 Q+ j3 j2 ?+ S/ ~

  E: M5 P% ^& O9 y( a9 }% }% S; U
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑
% N# Y5 _6 [0 f$ J; J5 x
  A' E2 u2 Q& w, I& `谢谢超级版主分享了!
发表于 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
* {" [8 v! }: L! R1 c  F( T我只会cat /proc/mtd
% w" _4 D1 \5 l+ ~2 G1 f7 C2 P
多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
7 j6 [  E8 n/ m- necho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs' a: s2 n& G8 d: P" b) V. {
echo WScript.Sleep 100 >>shua.vbs
. \$ p. \  @7 A7 b. m  x1 ?4 X5 ]echo sh.SendKeys "root{ENTER}" >>shua.vbs
% ^' t3 m& p5 |% |( ]7 yecho WScript.Sleep 100 >>shua.vbs1 A  n. t" R4 N8 Z2 p/ R+ A  G+ t
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
3 t" r% o5 `5 e6 R+ i7 r# Aecho WScript.Sleep 100 >>shua.vbs! i7 d& E6 g5 e/ o2 J9 [
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs/ q/ k+ Y/ a: k' j  L# K% i- S8 e
echo WScript.Sleep 100 >>shua.vbs
% N; r6 R; C5 {& Uecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
0 {2 Z  E9 r7 _# c/ ?& x+ Decho WScript.Sleep 300 >>shua.vbs, V" Q) j( [8 H8 L
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs0 q$ y8 v/ O1 h4 O) f
echo WScript.Sleep 300 >>shua.vbs$ L0 n6 A$ d4 G+ b
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
1 R6 e9 ~1 a0 Decho WScript.Sleep 300 >>shua.vbs% M; ?* b5 N: P7 G  e/ ?
echo sh.SendKeys "sync{ENTER}">>shua.vbs
8 }( [1 ~1 Q1 {  S+ [echo WScript.Sleep 1000 >>shua.vbs; X6 O1 z, W3 l4 p; E
echo sh.SendKeys "reboot{ENTER}">>shua.vbs
& G6 |6 ^" b; w8 B; hstart telnet
$ z) v, n6 y: b# ncscript //nologo shua.vbs- Z, e1 L/ x$ @% z. V5 Z
del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
" D+ t7 Y9 _0 f/ G8 R& Techo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
) Q  ]' |# o* C! Xecho WScript.Sleep 100 >>shua.vbs
7 o& Q+ e1 j4 U* Q0 d+ mecho sh.SendKeys "root{ENTER}" >>shua.vbs& R4 y/ B% c, \0 q. E0 q
echo WScript.Sleep 100 >>shua.vbs/ F1 C$ M2 t# B; H" X4 I  G) W; n  l) p
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs# C0 q% n- R3 g: Z( E
echo WScript.Sleep 100 >>shua.vbs
3 W* T3 `% G' [: [: Mecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs! O7 e/ ]( m# Y6 ~+ \
echo WScript.Sleep 100 >>shua.vbs; \& F- D6 e) w- e4 [
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
- F6 n. i$ C4 s7 Z& i1 wecho WScript.Sleep 300 >>shua.vbs+ I+ H6 E" N* N+ t
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs2 X. M  E4 y" P1 A
echo WScript.Sleep 300 >>shua.vbs
8 [/ z  ^1 J, K! v8 e/ Oecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs( p" u' Y0 M8 p4 J3 r. ~% P
echo WScript.Sleep 300 >>shua.vbs' e, j6 G0 D0 R9 A6 `, F
echo sh.SendKeys "sync{ENTER}">>shua.vbs" l! _9 i$ m) w7 P# A; v
echo WScript.Sleep 1000 >>shua.vbs
: h) K# _5 ]% cecho sh.SendKeys "reboot{ENTER}">>shua.vbs
9 `8 R1 A' ~* \start telnet
7 I, c" }. v8 n0 ncscript //nologo shua.vbs
/ d3 x' X1 ~3 q8 ^  C# N* edel shua.vbs
8 a' F+ Y7 u  {; F: i- U  y% M% K; x4 x5 d5 ^

+ s1 P$ @  ^" r8 G怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

相关侵权、举报、投诉及建议等,请发 E-mail:yesdong@qq.com

Powered by Discuz! X5.0 Licensed © 2001-2026 Discuz! Team.44152102000001

在本版发帖QQ客服返回顶部