查看: 8112|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
! I0 W/ @: w) v0 ^+ \  [: m0 G
! K. k: ?6 l- O1.命令格式:
; V  q$ ~3 q! a9 d+ N' u4 c& A( a1 r$ @( R+ U& T9 z
cat [选项] [文件]...
+ F1 X* l* r4 T: P. {3 m  n9 Y
* R: J! w+ A: o2.命令功能:- z9 M0 ?1 w- w+ m3 V7 _2 a2 R" A

3 H0 w6 g0 E& F; rcat主要有三大功能:4 R% e8 Z) J- h! ]

! K" W# @! T0 v1.一次显示整个文件:cat filename
/ [7 [2 q! n* b: u, |4 j. `
8 L1 g% X9 e  ]1 P1 l- l3 L2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
& o: [1 @& [* U. [  g' T4 A1 A2 f0 Y) t6 u( ?2 S2 `
3.将几个文件合并为一个文件:cat file1 file2 > file( o# D$ U1 l9 y) B2 {' s
" W  a$ R+ O$ y* G) S
3.命令参数:
' r6 o( \2 Z# B4 M# ]+ Z2 i7 H3 E; S6 e# w- w: H
-A, --show-all           等价于 -vET$ r) J& P/ }$ a% I2 \/ n3 D+ u* E

+ _; ~: v( E7 B4 V; G$ v, P-b, --number-nonblank    对非空输出行编号# c5 z0 ~! M5 R% H% F4 v6 g$ A

7 I( J' T3 d/ |-e                       等价于 -vE
& ^: }3 z% @9 R& X" v* ^$ A
& Z  Z0 H( h0 ?' m! \% L$ `  t-E, --show-ends          在每行结束处显示 $' l. d* _; b$ l0 z2 a

  T: l, A$ _$ Q( O-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号3 h0 ?4 k' g0 A. R% N
! z! p+ k; W! `* o
-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
, _; B8 u8 |4 |5 @+ D( m1 L
; N5 N* \2 L. m. t# e-t                       与 -vT 等价
; G$ ?5 P+ K7 r8 _0 i3 M1 g7 C2 i
-T, --show-tabs          将跳格字符显示为 ^I
% d, _) o4 [8 ~: G( b; T. }' r0 j9 e! w' G' w
-u                       (被忽略)
8 t$ b5 Q; F, N0 r  `& N: u9 x
-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外3 }$ c' J) E4 s- r( A( J
% _. g8 Q2 v/ S1 l
4.使用实例:
; `6 K' L% L6 L) H, ~: g! i$ K, d
, F1 Q, a- s7 Q5 u; O4 N实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
3 E. I1 v5 K* ^8 h. s
4 f. Y- Y* E6 b: w& @命令:
+ v4 ]  B6 u; B% n+ z0 @7 m, f& ^# W5 @* J. ~7 f
cat -n log2012.log log2013.log
4 Z! ~% `9 l3 \* D7 j+ R2 M) W, b, i* ~7 @1 A. n  _: n( c
输出:( E& a& ]  U! O3 {, q1 d

) f! {* ^. b! |[root@localhost test]# cat log2012.log ! k! O4 N0 c5 z  n- Y. q, ?9 G
! b* V! W9 ]' V2 D# \4 H5 K* E' |9 v
2012-01+ H% V. O( i/ E% j8 j% h6 ^! W- e
' \3 m1 Z- K: V4 Q0 l
2012-02
! B& n8 q1 ^, o& a1 ?5 g* t- \0 L6 r0 z9 C$ Q, J. u* \" W
' Z, O0 F- y" f- b4 Y9 l

6 p2 `3 s3 k$ B# O5 i======[root@localhost test]# cat log2013.log
! t9 n$ T! ]" v7 ~) Q
2 }, c. ?+ a1 D& T2013-01+ r0 V9 b3 F$ i. c
9 F$ L. T! e% u9 Y3 M3 c" w
2013-02( E3 j1 x6 l2 f$ d- N* h7 X+ h: g
9 c* W- h' G- Z. q. M) d

6 M- L! Q# a: L! e3 q
7 c9 f) i! }! S( X% Y# B. k* h2013-03( W5 J3 H0 R# Q& ~) e
5 {2 }7 X& s: q/ u% z
======[root@localhost test]# cat -n log2012.log log2013.log & f  W2 U1 J# l8 M1 p9 m: b
8 e1 l* P8 Z% S, I+ q
      1  2012-01( F7 \5 Y7 |5 G( O9 e

$ ?0 `$ f: b9 n- b4 u; }( j0 R      2  2012-024 \7 Y- O- M6 j$ ]' s
$ L1 \' g' p; ^7 N
      3; p& L( {  y, l# w

* Q6 q6 I! ]4 U* S* N      4
4 ~( G! ^6 j4 N% P
. B# s3 d+ g$ w3 t: |      5  ======8 D/ ]* `( }7 [( h4 I  ^- H  u  x

  H4 s2 N4 q" h/ U- M  K# s9 f      6  2013-01" H+ U/ t( p# v, S9 U3 _1 h. b8 _
$ C1 L9 A: \, n7 W5 x- c
      7  2013-02
4 R8 v) p7 g" x  v- {% h" n( @: S/ L: H7 N# E. S6 e" w1 H+ R' R! y
      8& U! U0 _+ z6 h+ Y8 U  c) w
1 T1 ]" D3 B  M8 R2 Y( V- H' ]2 r) v
      9( Y4 i, h: M( h
1 o3 Q+ b6 j5 F- i% `8 e
     10  2013-03
" |7 r1 F3 E; p2 V
* e+ C/ j9 \; g     11  ======[root@localhost test]#
$ P9 U% r$ ]; [% K' g( k! o8 a

" Z: d  M2 b8 a0 }- p+ W. L$ G说明:
- [7 @& E" m. g, r7 V% }( m- u3 }3 n, W" @: Q' I/ Y
' w. |3 Q" @* S/ K
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
/ m  Q, g0 T5 J  a% W2 C. E+ o( q, m
命令:
/ b. @% r- x: ~
( r: q2 m9 H. vcat -b log2012.log log2013.log log.log( Z& l/ z/ X, P6 L& m( [; @  V" t

9 i& z  Y' W0 I0 K2 {输出:
0 F! N: p5 _5 r) B) i' n( Q5 n4 D$ z- [0 e
[root@localhost test]# cat -b log2012.log log2013.log log.log: e6 R+ K" j. U+ L) t

3 K) q, Y2 z9 p: _     1  2012-01. `- y  A& J7 F* I  u+ @$ r

# @& W0 }" Q* j+ Q1 j4 ^$ ?4 B1 E* [     2  2012-02% J* `, t2 z  T- W2 E5 W" H
1 ]& @  y$ ~/ o9 b: r0 W$ X7 E% N
: U: P8 v: n1 N$ `3 i" v4 {
/ M, l, q' B/ l+ b% _5 k: M& d: ]
     3  ======) M6 c# U) B  f" ?, a/ V% `) }# ]
4 w6 k4 |  T- J3 k5 C
     4  2013-011 u: }& C; D  i: A5 c; N3 U  L6 y, e

7 F3 G) i$ N; Q, G     5  2013-02& M6 |. i0 L8 p, Q  ]

$ l; ?! t' y3 g6 c9 w4 g4 u
( w3 U$ z  v8 P6 X
1 ]; N3 X2 [' e& a( R  U" G& T     6  2013-03
/ T$ D4 s' M- c0 v& Y4 p7 A+ D, [
8 o) h" L& w% b% o/ J( `     7  ======[root@localhost test]#7 x' b+ z/ |' b$ [! Z
; W9 b, V2 B0 _$ n4 @8 o5 V

( V" o: G0 C( Z1 M+ X$ L/ u- n实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里 6 g& N1 c- E5 [% I. l+ ]* c
4 Z4 x: Q* L8 t/ a7 Q8 U7 z' a1 J
命令:* {& a$ Q$ ?) Z

  q: p) _7 V# S/ Q4 g输出:% j0 I' ^' d; L
' `: k5 ]' f1 u
[root@localhost test]# cat log.log 3 U6 W& j1 z$ O& p0 {
( D; v/ L: c, x! \4 f) L( D9 T
[root@localhost test]# cat -n log2012.log > log.log9 _/ v$ K: D$ O2 I# G9 Y- z

. M, y3 v% t" _! \4 K[root@localhost test]# cat -n log.log
4 ~, r4 h% C5 \$ q0 T8 |$ X
- _% u/ I5 k6 d3 G9 c4 l     1  2012-01
5 }5 q  R6 }2 d8 F. w$ t/ R
. H" a* _! J9 Y4 t, Y     2  2012-02, h  i! X% \1 x$ u
. e/ i& \# t1 o& e, N
     3
" Z# E. Z) u" S/ A! U& B  \9 h7 P8 K) u
     4
% C1 ]" @7 C6 G: X' Q6 V5 o: o+ B3 M3 t' P* u9 A
     5  ======
, n! Y4 H" T# s: r7 {. ?- M6 J* V: G1 x; N' x6 P
[root@localhost test]#
  ^6 w9 L4 m. K* _) _  `4 y" q/ z# _, w

8 T% z  d6 G) |2 D& N实例四:使用here doc来生成文件' P. r0 t4 b& @1 Q+ F( Z0 a

/ ?( v) U" g, y7 G1 a  ~输出:
: e+ v. d9 Z/ P5 Q; O' G" r( V, h, [1 L
[root@localhost test]# cat >log.txt <<EOF/ p$ [: T( Q2 ?0 d% w
" D" L: H# A8 I( y9 H; k4 `1 S( |' a6 V
> Hello
' P: Q2 U( N+ Z2 }' }/ Q
2 y0 C* o* F6 r% v> World
' Z: o0 j9 r" g# ^4 q! r( e* C% i, D1 x. Q( N$ Q$ U
> Linux9 ~5 F3 \; ^4 N

- ~7 U7 {, J, P' s> PWD=$(pwd)
' m6 n6 v5 X& @% d# l; ]
# p. y% v# v: y( x; q> EOF; g! \: s+ O9 _& M8 {0 {

+ M( }" J, M. s7 V4 e[root@localhost test]# ls -l log.txt : h! R( y8 A# o. l# |( [

  a( d! M& }4 p9 t5 Z, ^-rw-r--r-- 1 root root 37 10-28 17:07 log.txt" L7 B) J1 H3 }( u+ A! ~3 G

3 i! Y7 w" B6 }% g: J5 j[root@localhost test]# cat log.txt 6 s. K4 I5 i* p0 Z1 Q5 d; n

( |* D" z; J. c% B( zHello
0 ~* i; V% B% n* J5 f7 F
& ?- a! t9 _, f" fWorld# M- W$ O, \' B% l3 U+ l$ G

' T$ l: Q9 o. ?0 ^+ yLinux1 X4 T/ v& ~9 Q/ b! k

5 A1 ]9 g1 t+ Z: S3 nPWD=/opt/soft/test  j7 g% d2 H  U* Y! e

; M9 P/ N& M: l. }3 w2 O. P[root@localhost test]#
$ v2 P6 p1 B) @# h6 ~: k3 t8 h) W  t6 C, u, O

( |. o( ^. `* p+ W  v! S: ^说明:
$ r4 j  G1 O$ \6 v- J* {- I0 s7 `! L! N* }
注意粗体部分,here doc可以进行字符串替换。  n) S( j: g7 k: |' h# l( [

9 [4 i0 W& V) A) o9 D1 A! C, e- v
; e5 p3 Z! ?# y2 ]( N( n备注:2 p; R' h1 W8 ?, H

: e) g3 C8 w" m- L7 Ntac (反向列示)
# @2 P  m# L8 M
- L8 k" G: [3 a* a7 B  Y命令:9 j0 f0 C4 d  B+ s# Z3 B

5 J" W! f2 m8 w: r/ E) Jtac log.txt
+ [' `& R& c0 F4 j9 v3 P4 G; J' V. ^& E4 P6 ?
输出:
0 S2 ]' E, {5 q+ M: y: [% s
) J* a* |4 \# g) ]: o2 L, q[root@localhost test]# tac log.txt $ a4 q' b' N; P: B8 P" }- X1 n9 g6 ?

+ }3 Z7 [5 f  pPWD=/opt/soft/test2 l3 o! ~- @" }& ]

6 j# |+ K8 L# N& [* \Linux
4 I+ f/ n2 v1 N  E) g6 }+ d" t9 N+ Z7 Y! j$ y; ?2 \/ V
World
+ }9 I* J* b8 [6 l  J2 c- M* i" M7 |0 j9 m( |# e' P
Hello
! m* I5 U1 ^! f. i( Y; {: d4 u: D" r1 q1 p/ ?' K) m
说明:
+ i( a: I1 s) c4 H
8 ], l& ^+ y" A5 vtac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!  z3 o+ v. K0 U7 V

* m  l8 M1 Y3 b, m
6 A& }6 l/ x' C+ w5 N8 p8 @% b/ j
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 7 q8 U) a1 z3 U4 x
8 ?$ C6 Y: V: @9 @( b
谢谢超级版主分享了!
发表于 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( \, O2 j: {* H' v# {* h0 q% _
我只会cat /proc/mtd

% w+ y$ x5 D1 X$ y, j7 u多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
' K8 _1 Y* A/ s. J, I7 ?/ u9 Techo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs- C0 N( K1 V& J! H% A" b* L
echo WScript.Sleep 100 >>shua.vbs
) X( M, {  k/ f% }3 I$ V# \5 ?2 mecho sh.SendKeys "root{ENTER}" >>shua.vbs
4 H/ w! s5 ?) necho WScript.Sleep 100 >>shua.vbs
0 x) R8 i, ~0 A; d; fecho sh.SendKeys "Zte521{ENTER}" >>shua.vbs  x0 v2 C( j; I& k2 x, y% I  Z4 S
echo WScript.Sleep 100 >>shua.vbs' [. r0 @3 E$ B% X0 v9 S
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs9 p: ?9 e+ g$ H2 P+ P
echo WScript.Sleep 100 >>shua.vbs
3 D& F, e/ b  O# u6 W/ A9 B4 decho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs+ W  X1 ^* ^: C+ X
echo WScript.Sleep 300 >>shua.vbs
2 ^/ }/ C% z. V8 zecho sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
+ [+ e! l8 B/ C7 qecho WScript.Sleep 300 >>shua.vbs$ A5 A6 I0 Q# F  [; C# n+ ]
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs6 ~6 Z# S+ ?7 @: Y, k, l; V
echo WScript.Sleep 300 >>shua.vbs
* V8 M% d: E9 Decho sh.SendKeys "sync{ENTER}">>shua.vbs
' V# o$ ~4 m( b. p; E4 B* wecho WScript.Sleep 1000 >>shua.vbs
- }- x& _) R# k) [9 k$ r& Secho sh.SendKeys "reboot{ENTER}">>shua.vbs
1 M- U* I/ }# g* S% D, zstart telnet
  I. O8 j, F2 ?. ?cscript //nologo shua.vbs
+ g$ m0 u5 N, z. o3 U7 adel shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
# U4 k4 g+ K9 D; c( o5 qecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
* e% Z1 w8 I" Kecho WScript.Sleep 100 >>shua.vbs
/ K& ]% s/ w+ `2 g; gecho sh.SendKeys "root{ENTER}" >>shua.vbs* e% l; ^* m; {  h7 E" K
echo WScript.Sleep 100 >>shua.vbs* {. F+ U% b1 q% y( _; C
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
/ M/ V0 y& [' O( ~echo WScript.Sleep 100 >>shua.vbs
1 V. e  O2 a# f+ C' I% @, y1 D. mecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
3 ~  T$ Z) m( }: J/ vecho WScript.Sleep 100 >>shua.vbs& |/ y! r3 n- L/ u/ i/ C
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs+ _0 ?! ^: I9 J7 k; d
echo WScript.Sleep 300 >>shua.vbs- u7 _) Y0 ~$ m% `' {! J7 [
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
5 M7 ]1 y1 E/ ^echo WScript.Sleep 300 >>shua.vbs
6 O' G# X5 m5 O7 kecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs. j" O1 a# r0 \# l/ H  D9 F
echo WScript.Sleep 300 >>shua.vbs4 G2 o$ a) x, d4 x6 |, A- N
echo sh.SendKeys "sync{ENTER}">>shua.vbs
( ?; \' Y/ P; F. z( xecho WScript.Sleep 1000 >>shua.vbs# r: c% J/ r' j. E
echo sh.SendKeys "reboot{ENTER}">>shua.vbs
4 T7 N2 ^3 {" @: B1 n% L& ustart telnet
8 ~8 E& b; c: g7 M7 b) K2 G1 B# y; ucscript //nologo shua.vbs
- T0 E, S; w3 I* d9 v7 P# D, h5 V* edel shua.vbs; p$ A2 [* [8 B# D, k4 M+ |% Z3 T; @
: v; {) w! _; g: k
; j% ]. D$ n$ Y: A8 k% F. R4 x1 p
怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

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

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