查看: 8789|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
5 t5 V7 g/ k- b3 W
5 }. I# v3 p" Z8 h1 `1.命令格式:
$ V7 Z- Z* U4 [# T. g  N8 L( L! S( a7 K; w5 o
cat [选项] [文件]...
7 V* [1 U  Y3 P; }& N& S
; s* G# e! x0 P3 ~3 p3 r2.命令功能:+ B, ]/ T  o  l0 K. J  j1 `
" O" I: F9 m0 s% e1 `1 G
cat主要有三大功能:
8 S. m8 w- O% Y8 X: W
+ i( p7 k0 ^: @3 p  O- C! n1.一次显示整个文件:cat filename
* z: U' i. {" i+ v* [# a# q2 m3 D- x* I4 n; p
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
! \: R5 T1 t# y3 B3 y0 ?9 z3 e  r0 m9 G
3.将几个文件合并为一个文件:cat file1 file2 > file
, Q) b& u4 J" C/ x) [/ J& W" h& l" D; N; M
3.命令参数:
% P8 D6 h: s& L6 w$ \; P, C! B, I, u( v, f6 t9 K9 z
-A, --show-all           等价于 -vET
# ~! C- h2 `( d( A. c0 Y
& O% j4 D7 I; t/ K9 @+ i-b, --number-nonblank    对非空输出行编号
, R) z4 q5 O) v
* Y( c& z; @5 @/ d, g2 \-e                       等价于 -vE1 N* ~. T0 L: c/ e; M, g5 D
# \: }0 x. B0 B2 @5 l$ D) H% A
-E, --show-ends          在每行结束处显示 $
) B& v5 U6 U; ?2 m7 o, k$ D; E7 W' c$ V
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
/ j. c5 _+ d/ @# v4 ^0 o' z; x! a
- g- B# i* {, t+ m7 p. P2 w1 N-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 5 g9 c2 C9 P. f1 y

( S3 L7 f7 v* _) [4 T2 J1 s. o) d-t                       与 -vT 等价/ J3 u, \, Z& ?* ~1 Z8 q

) v9 S& ~' K1 f' L" ^4 R, r5 s-T, --show-tabs          将跳格字符显示为 ^I
- J/ N2 F" t& m' r% _: _5 K
' J! k7 u" T' i-u                       (被忽略)
  X' W* X& f6 M5 y+ A" C0 I4 M6 D7 c
4 D" {1 C6 k" Q# v( ?-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外2 K% w0 e+ v; f% R/ t! o/ p
, r* V: o4 a* Y
4.使用实例:# k; g* ^* l1 }+ h: H8 |) ~- R5 p8 n
" q% w* G9 W+ k0 v
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
0 [# c( T; u5 r( [# [5 U) |7 t. V1 S6 z! Z2 Q/ `
命令:
3 z& C% E8 r  f! O% e* k$ M/ F3 q  W0 u2 L) h8 F" h' p/ a
cat -n log2012.log log2013.log 8 U. H* C! O. v4 m  _2 r1 e) S
% G7 B- q  i# ]& t5 f
输出:7 f# y+ ]0 A! u4 \" M: W4 y. m. Y

% D9 }7 `, x/ ?, V9 ~5 p; z[root@localhost test]# cat log2012.log   k; C2 W% e' }# _7 o; D

6 S& U, O7 N. v8 |( S. w2012-01! x5 F; m! i4 }" R" Q) b5 S2 b
# y+ P" q( Q4 u8 {  F* a
2012-02
  ~5 R8 X6 @2 U
- n7 }1 t4 R+ A6 W' x
6 `3 h' v6 p. E7 F& P  K, C9 y( Y9 z; p3 V+ R' [
======[root@localhost test]# cat log2013.log ( @7 L' y0 X' F

3 X: ^; \/ o) C5 f; I) h2013-01
! n7 Q5 x0 n) N' c1 |! l0 A% p/ O
  a6 O( s0 u( ~0 ^/ c0 K2013-022 E( L+ }8 `  [# e1 K  B# [

  d$ Y' }/ y/ y5 ^8 f6 F2 V2 a% J
+ U. J9 V* ]; m3 F7 q+ z
: o2 _. [. ]) w$ C  }5 t- u* r8 G2013-03
' w( r( z, k1 k% ]# R- ?4 d
! m% `+ E0 ?6 C; q. J! x======[root@localhost test]# cat -n log2012.log log2013.log
* n; p$ P$ v5 z2 M4 G
: k6 @: c- H0 ^      1  2012-01
3 j; Q" T4 U6 U- |% [8 c7 u; X/ O4 |  e+ v
      2  2012-02
# ^( l( a0 O( b. y, W
2 \: F2 _) g) b0 s& b; {  L      3
2 K9 B; |& l! g- A' t$ r. M6 E7 b( T; {
! G( @) E! k6 g2 s      40 L  F. {5 U# e( D2 x

* _/ R6 l3 C' {( G7 I% Y+ u0 q      5  ======
; o: g1 W5 T3 _+ U8 @# S2 [- @( k- t) u+ v3 T! M
      6  2013-01$ q) N4 Y) ?; R  U; Z7 H+ ^9 n
, [: p/ H4 t( P5 I1 K8 w  S$ `2 G
      7  2013-02
. S) f  h* p# Y! v! K
1 j( E3 Q- K% t5 K3 d      8! u! k/ n7 H0 J

* I" P" ?/ B! c/ O6 x. \1 o  S4 d      9
) S) Q7 \8 F# J! a; [$ B. }/ `) ^: v+ N7 ~
     10  2013-03
0 o/ a' Z5 i, _# t3 ^$ _- z1 c
. G# j$ [; G( L) h  v2 V7 }     11  ======[root@localhost test]#; i' e5 u4 h" u5 M5 w- @& B
. r3 ^' Y7 b' i/ t2 @! Q+ P2 u

, n+ a- _9 O% Q/ R说明:9 f! N' e. d) p% K6 r( {
# r9 E* C- \. ]6 p  w0 z! T# \: p0 @4 A

6 x& d( U, |, q" M- W实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 & K0 [7 n  S& M+ H5 N

: s( s4 R6 n' K! T1 _8 D" X) d! B命令:/ N1 F* n2 C( w5 ]) p# D/ C

- E6 V, {% _: M9 q, G+ y. l" r0 ?) F, ]cat -b log2012.log log2013.log log.log& m5 m" z* m7 w: D# c3 [7 x8 q
% E' A$ G# |7 j' @% k2 s7 t9 p
输出:, |" k& `3 }9 J5 N

/ J  ~) M! t! D[root@localhost test]# cat -b log2012.log log2013.log log.log
# ^5 Y( a9 @* M+ f# A
* p8 ]0 B) ^% q     1  2012-01! f9 v# }. A8 B
8 m8 I" B7 l4 K. @  q
     2  2012-02' ~6 l5 x$ [3 I; {5 }1 ~, M

3 s6 t1 y2 A/ Q. t( r8 Z! J% f3 q1 ]: q! y$ t/ C& g
/ L$ i3 L6 |9 O7 T' T
     3  ======
$ ~- F  ?6 y6 k
2 y" M$ I4 C, }. V     4  2013-01
3 M8 I( o4 r/ l1 ?9 r- Z; ]/ c* y) Q: c) r& `; _2 Y
     5  2013-02
7 r0 [( K1 X; o5 t: x
1 W; G3 X: m; u7 q* ?+ Y# ~) ?% y" J0 T' u2 @# q# j
) o/ x$ I0 V/ f; n
     6  2013-03# t  ~; m$ M* i$ y6 Q% ^

% o' C: H& p; T5 J     7  ======[root@localhost test]#  X  J+ {( E2 ?0 X0 I
, D) N( I1 o7 B& W" x" E! j4 D

8 k5 s$ F, M$ S9 B# r实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
0 U- r- B: h! P6 ]5 V- I( r, D7 j, w& O, X. X9 G: Z
命令:0 @! U" [6 b' {5 y

% l! p" L! y) S6 ~, U. U7 }) p输出:
4 f8 B  u$ Q) ~9 H8 X8 x
& x- i5 F3 ]( g, S4 h) t: B[root@localhost test]# cat log.log
2 f: `: n5 @. M& x/ e* Y9 |: g0 ]' j& A# \6 E5 L
[root@localhost test]# cat -n log2012.log > log.log
1 R) n7 a4 M3 y1 H# \) d0 V# p+ k% g! T9 u3 n
[root@localhost test]# cat -n log.log
; a/ S* t' M0 V/ [/ n4 |0 h$ G/ q% M- r% |. _+ x. v) @1 Z; M/ i- _* O
     1  2012-01
. C9 Y9 f2 x$ P! E8 `5 B
# s& Q2 `8 @* m3 O4 K' K8 B  d     2  2012-02
& c% Z& E. k& y5 C, z& i: g- N
9 {3 K2 n1 b$ \2 V: Q& `" M     3
- [4 @2 @! z+ `2 x6 i, |5 E% V7 `; A0 e) ^$ W) m; Q0 T; l
     42 |) s# w/ N, r! @" `% L! R$ N

1 u4 ?# D. t) e) O6 y2 M     5  ======
( Z$ O9 X; w$ D6 R: m, F
6 C" S6 [0 x& C: X& J1 y' {& [[root@localhost test]#
+ w1 X4 H, ]2 |- n" X5 k, @" U
+ u' [4 ^9 R- I4 a
* k' i) j: W  |实例四:使用here doc来生成文件/ O3 ]2 o% m3 s/ ?$ V

: Z/ D2 V! r1 y( x7 p输出:  @, a! `, ~% S8 P% L1 L! E+ f
' M. a, F2 x( w" y3 r2 b# w
[root@localhost test]# cat >log.txt <<EOF: I+ X2 T8 l: p
( X8 A7 N. `2 o3 n# f, D( a
> Hello
- k. S; |7 V5 z% ?
* G3 w9 X" P  J  t# |> World
0 v5 A7 O& j1 c& H/ f
8 a' X3 \! [9 B- V/ H* V  [3 `$ m> Linux
- Y* C8 G0 m' F7 w1 x1 d- y. Z5 X% K7 ]0 B& P. b$ `' L
> PWD=$(pwd)* `5 q) ~* i7 N7 u
+ i  ~3 W, {: D4 M& \6 d
> EOF2 h3 Z4 X% y  @4 `
/ R; b6 |* o; b2 J" Q5 E$ W
[root@localhost test]# ls -l log.txt % s8 d8 m* j9 d0 c- @+ d3 ]6 f
6 ^! C! c8 ]0 ]. _& x5 ]
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
2 f  \! N. H( I2 _( X2 ~- k; S6 B; {% |7 @& ^
[root@localhost test]# cat log.txt 2 F( v. P9 Y5 C2 n% h' l" d" `
; p& `7 {4 a: s6 g7 A4 G9 a
Hello5 W6 O) _% j1 P
0 m" t, K5 ~' I
World
  A& ?$ S4 I7 V& K/ m2 S( B- }- U" F8 C3 S$ J5 {
Linux
/ p0 {" M& T+ e" m: Q9 u- u
0 t8 v, i8 Q* qPWD=/opt/soft/test* d. V; e: `$ L; t$ r# g( T3 F
0 t: C9 K0 l' W( T: n7 f* T
[root@localhost test]#
. C7 O5 J$ X1 {: @, `( @+ \2 `& u2 B, W7 ]) N1 g- p

8 r- ]) @- q9 k. {* E7 o5 @说明:/ }1 p# W4 e2 R, G1 o) G
5 S) \% p4 ^+ F& ?. e1 P
注意粗体部分,here doc可以进行字符串替换。
0 g+ c( }7 P" A: Z* x/ j: ]( p: F7 ?' K) Z- y3 n
' L( X6 ?; K4 Y( T4 g
备注:
5 Q/ q  l8 K' [3 C; a
" W) k( G' o) ^3 \tac (反向列示)
+ k5 E$ Y1 |/ n: s( p% b, d  A- \8 I$ c6 a
命令:
; j* K# Y( t0 @& \8 O% ~  i4 D* W* T
tac log.txt
  a4 S  w  ~6 Q) ~- i! e) ~. t3 q- ]% K4 a; s; v% t
输出:
* F7 ?! z& R" O3 x" ?
8 J& T. v3 s. _& U0 z  b2 D* I[root@localhost test]# tac log.txt $ C  L& a, S6 _; Q

4 _. o2 k" d; c2 Q+ P2 k0 G- sPWD=/opt/soft/test
( p# f. U- I  r$ B( J' |& {2 T0 [2 p! D8 B
Linux
3 v# ]. s* S7 j" u/ }' b' s. r$ u$ \  M
World
) J: [5 D' @3 Q# e8 P. F' T! J- R. X! p" W! ]8 o
Hello
  C. [8 b7 C3 _* P
( ?* J) B/ _+ K9 z  r说明:; a# w- I4 a* M7 t/ |" V

8 F, ]. ?# q! r3 Q/ w. vtac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
4 P; T- p3 D) T! [
8 \( d9 C/ r3 y0 `6 A: m/ Z7 i
' i. Q4 ~" P) I
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑
2 U& i6 I& i2 r! o7 T' E7 W4 m# I+ i* S
谢谢超级版主分享了!
发表于 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  c, ?) s* x; S' J
我只会cat /proc/mtd

: R$ p  s5 B9 z8 V多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
$ ?, S/ @; ~/ L  N# Vecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
! U9 f, W9 Y$ v9 a3 n7 P/ C# becho WScript.Sleep 100 >>shua.vbs
" x2 P3 E, S$ C6 i3 y' {7 |0 ]7 recho sh.SendKeys "root{ENTER}" >>shua.vbs% J5 Z2 W$ P3 K5 |  G9 g
echo WScript.Sleep 100 >>shua.vbs
+ H' b; P5 J- {echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs: m1 v2 T' R4 p# n  R$ o& |2 }
echo WScript.Sleep 100 >>shua.vbs2 i2 I9 q' A0 {# G6 F6 z/ k4 K2 a
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
" O+ v  X7 q5 `0 e3 k( L1 qecho WScript.Sleep 100 >>shua.vbs
, l0 N- k) A* I+ Z8 @3 i! R4 lecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs' v. t9 j5 r9 b
echo WScript.Sleep 300 >>shua.vbs% k* w. p& e6 c5 M% G0 G: z
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs  ]  i7 a! t, ~2 c1 i
echo WScript.Sleep 300 >>shua.vbs
, I5 j2 D1 ~# W# X# |/ fecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
% X& n* p" ~, S. j: techo WScript.Sleep 300 >>shua.vbs
! i. Z# a+ s7 s, ~9 @2 I  Vecho sh.SendKeys "sync{ENTER}">>shua.vbs1 P8 [/ ?+ q+ B5 [2 l3 S0 F( H
echo WScript.Sleep 1000 >>shua.vbs
# r4 ~* V( B, |; S. Q3 o; _echo sh.SendKeys "reboot{ENTER}">>shua.vbs+ M. [" w* `# {" [( |' L
start telnet
/ h% W* d+ l- l) o& @* Ncscript //nologo shua.vbs
- S  ^2 b" D( ^5 ?( [; o; [del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
: i4 B! W; V/ Uecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
( p7 N+ M  s# U6 ]echo WScript.Sleep 100 >>shua.vbs
6 j; B% b9 r( [# u. g; o/ kecho sh.SendKeys "root{ENTER}" >>shua.vbs
& y% e7 z3 t9 [$ l: \6 `0 xecho WScript.Sleep 100 >>shua.vbs5 }# R' m2 h7 P) R1 X6 L4 Y
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs% L! L* t; i3 }% X7 e- E) v# v% t
echo WScript.Sleep 100 >>shua.vbs2 ^! J$ K( j6 Z9 \+ ]& j$ J
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs) A7 n6 y, S  H, f% N
echo WScript.Sleep 100 >>shua.vbs$ o7 ]$ E4 Q, q- f2 E+ e, O! z
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs" c$ b( [' x' |
echo WScript.Sleep 300 >>shua.vbs9 @* ^. i, w) j& [1 W3 v8 V9 ~# o9 e
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
6 I' @- L9 E, K! E" {* l+ E, [; Vecho WScript.Sleep 300 >>shua.vbs) k. I5 x* x, N
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
2 t5 P9 z) l* ^  y7 {echo WScript.Sleep 300 >>shua.vbs
) t4 m5 R! {( n0 Y& v/ t! vecho sh.SendKeys "sync{ENTER}">>shua.vbs7 Q  s3 j( c) h; e* t2 R# G# o
echo WScript.Sleep 1000 >>shua.vbs
! D4 _( \! _; a- ]echo sh.SendKeys "reboot{ENTER}">>shua.vbs  h9 m& g0 z5 D) I
start telnet
- A% f8 {( `. ]; T9 Bcscript //nologo shua.vbs
' H+ j9 v8 P( }8 `* h& zdel shua.vbs
7 |/ @: t* R! q8 q
" |3 B" u7 X7 F+ G2 K! c9 b. V. X& p% O8 d& R
怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

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

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