找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7711|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。   K  i, b; U- u3 J9 D
& d$ S" j* y5 S
1.命令格式:
4 D/ Y$ n0 e3 X. s/ F  E% F' t3 o& q5 b
cat [选项] [文件]...
$ c. H. ^4 P3 O2 w, U
3 A) e) c' a, f2.命令功能:5 s( ~$ D, W! _" ?( q  X: T8 Q1 V
  ?3 U; R$ ?2 T1 j) Z* Y
cat主要有三大功能:
8 \7 F8 }3 K# U' m% F# ~; y; O
' b/ ]$ W2 ^/ T1 G1.一次显示整个文件:cat filename
* Q, d' w) A+ N* @/ N! r+ n
: W( Q4 @6 s* n1 m0 V! F* c2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件." v. l) I6 B. X. S$ a

6 b" P2 D8 J# w8 h8 C3.将几个文件合并为一个文件:cat file1 file2 > file' ?" G6 F1 c! [( G; y

. P) A( b; N5 \& V( q3 P3.命令参数:7 a7 R) P1 ~) w4 M4 S) l8 c0 E3 X; W2 s
5 W6 C* S9 I* n# s3 v( s& O
-A, --show-all           等价于 -vET7 U7 t! [" c; K, l  V

5 @3 e0 N  ?- Q+ {2 T) O3 a-b, --number-nonblank    对非空输出行编号
% Z8 W7 l# V: g" T, p6 Z, D7 J# Z
-e                       等价于 -vE  o, ^7 G1 V* R+ `% k- j
0 Y: @( H3 V2 Y
-E, --show-ends          在每行结束处显示 $
1 O" X+ C2 l5 v- W2 m0 h6 @
8 v9 `9 i4 z8 w-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
5 f$ @: F% O# J8 e) ?& R+ ?) z1 t& B8 z) e
-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
/ g% v9 l1 h' ?( Z$ V3 }! i8 z7 r( D# r" |" h* Y
-t                       与 -vT 等价
- a# f- |( H, T1 }& U# y4 W" p0 P8 L. L& d6 l* i
-T, --show-tabs          将跳格字符显示为 ^I
3 @" ^0 v" x8 k1 S6 b& A
2 }7 P. S  j  x& t4 }9 G-u                       (被忽略)6 U. j! @( a/ L7 A

: t6 W$ ~- O! p0 K+ U7 h. _2 ^-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外# |, D- @+ s# J3 k  u$ d4 {1 B9 t

3 l5 K3 d5 w( ?% C; ]( ~/ U# {4.使用实例:. ~- {9 N, Z3 X! y# s

% z1 F; ?3 r8 r5 M3 x1 ~2 A实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里3 W. Y( E. D- x+ y$ o. ~
4 `; c- E% j2 p& R9 H; t$ l3 G; O) H
命令:
$ {3 ^4 ]& K4 |2 d- X/ T
: @- L+ ?' a. @5 y4 Ecat -n log2012.log log2013.log 8 f, ^3 D4 L+ \- r; ~9 W4 z! P0 E

; J5 _6 Q6 o) s) q输出:
4 `0 \) O# ?- E  S# h
3 n5 \. M2 K- h2 f8 r% r[root@localhost test]# cat log2012.log 7 T2 U" ~2 \9 E5 U3 n+ i
2 t. f6 ]) ?) v3 c" ~) }
2012-01+ Y2 B1 i: t. @) I- c
% m1 E3 a9 u: h5 b4 T7 E
2012-02: d& x$ [3 {4 N( x

- ^1 G4 q7 |" u" z' e3 I4 k) w9 T; z( _: C* N! s- l+ L

% {) T# ^) b  }) E======[root@localhost test]# cat log2013.log 6 t, U$ N' w* J4 E# m' z; O
% F( e0 e9 r6 Z. ?
2013-01
: K% P- T" `3 J5 ~- |- {  d9 f7 q( x% U; G  Z
2013-02* }; k6 }* k3 k
) `$ N+ u: q9 ]5 Q& N9 L1 X9 O. @

8 Q) z! b) h* d' Q0 o; d; ~# z( {+ B, ~" b5 I! e: w3 u5 J
2013-03
' B2 Y  f! [8 I$ n  N' n
1 U/ _+ O, X0 g% J; C2 j" G; E9 P4 x======[root@localhost test]# cat -n log2012.log log2013.log % V/ _9 G$ J6 ]2 |

' Z" I$ H& ?) R, g/ Q% g! x      1  2012-01& L1 Y6 x7 s- {; f% _
8 Z& A4 X" z: i
      2  2012-02
6 I  ~. F! N/ O$ |' m  x: Z
: E' |6 P; R" c1 x# Z) A8 C  y      3* L1 m  @5 R1 ?/ v7 }! k7 ~: c
/ J# x& B, f7 _/ k8 N
      4
$ O3 `& c0 I% C& B# q- D1 f' _0 o$ H8 P
      5  ======
9 T& w" x' |; G* R* T- t$ ~, q1 e) I, s7 q# R; @
      6  2013-01
7 [$ d6 ~  z3 g: e6 {/ u7 u* K1 x& Y
      7  2013-020 d4 X7 S' `! y2 a% a/ [- ]
3 g- }! E8 i% I  N' C  \) F/ O6 l5 A
      8
1 T. J7 t; m& }/ }% F  a+ r# N
! `# g: X5 s( k8 `! }      99 K: U9 T0 }4 H8 J' D

3 b) J9 d* z$ ]) E; D) k4 z+ O$ p     10  2013-03' J1 U5 W- l, G. L" U& o0 ?- t
% @; |( n& l& B/ z0 R9 m8 _2 O7 q
     11  ======[root@localhost test]#. B2 T* l  V* ]1 C

# B0 P0 T1 t$ a9 D  L8 Z; ^
& \1 C$ w, H1 t  |说明:
* X' G- O1 J# E1 ?# Y* A* N& r$ _2 v# O* v2 k# X5 B
% d; I: d5 t& j& K
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
% g+ ~- Y. e$ ~  K* E2 c* D; f, a( W4 }: w9 z, r: @
命令:% W; a% l  w& \& [! @! m7 F

! F9 i! H4 H- vcat -b log2012.log log2013.log log.log
$ u1 t4 ]% x+ V# W0 K5 ]8 K( T1 y9 L+ [0 Y. ^, \6 H6 p) p. _
输出:- ]( P3 r/ v5 [& {$ M* r
7 a/ [$ P% O$ j1 P3 }5 J1 q
[root@localhost test]# cat -b log2012.log log2013.log log.log, ]6 w5 Z" n. B1 j. R1 T
8 D% k; x8 R; G: v
     1  2012-01& m+ D7 V. s. r1 y  i

( @6 Q+ b9 |) A# D. n( Z     2  2012-02
/ \# Y3 @& ~9 a* p& {& q( X! V# C, a" l8 q: W' N) O
$ W' a4 _; g) }: E  _: R5 ?

: x) Q. G. H( \. J7 Z3 M: [3 I     3  ======1 H, q4 N' u! v8 b
& A: \5 F7 g) ^0 W# d
     4  2013-01; U( c" x& O, R- f6 _3 T. S. |; c9 O

2 Q8 F: m) _7 m" q' Y# r' H     5  2013-02
8 c& o9 e; E# S; H$ s* P/ U
# U' F3 Y9 k/ F5 x; a9 Q$ b% ^, {* K3 [2 T1 A
- ~7 p, I' c8 a9 C! o" M% B
     6  2013-03$ z3 O8 K: d$ f& P# B0 N

+ }/ B, ~8 ?+ M" a; L7 `     7  ======[root@localhost test]#
2 Q( u: o- C2 q) `( q0 @* P
2 V, y8 z7 e$ D* }, Y4 a8 I% Z" p0 L: b7 k7 o
实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
# r5 w, m' s$ }- D4 f0 ]8 b1 A0 m! {6 b3 ?
命令:
; J0 n- c' \3 z8 m  r: [* _& }# ~: @  _; e. U' [+ Z0 Z8 r
输出:
# I  j3 F8 g  b' X. Y' Z/ [2 A3 V$ u2 ?! z
[root@localhost test]# cat log.log
) a7 \- G" m# K% }; O
; m2 w; o. _+ K* |6 \1 ^[root@localhost test]# cat -n log2012.log > log.log
3 w/ L0 A# C: l5 w1 P2 E' i0 a7 c3 L  g& ^
[root@localhost test]# cat -n log.log . t& H) e" c, a! \
1 K1 P$ E* S& [
     1  2012-01* v+ V% g* h* q5 C+ H- F
  z9 {- \! G0 L* w
     2  2012-02! V$ Y) @7 }+ c1 p1 U% @. t! u

6 e( W! U$ Y- Q" g: A4 S- o     3
5 p  Z6 ]7 Q/ w3 O0 B: ^4 @6 k8 j! [- P. e% `0 C2 V" {
     4- L- F' i% |5 P5 c' \
0 R4 }" G! w. A
     5  ======+ J$ j$ i) y% @! X7 d7 p/ m! i

8 w5 w6 y" Q, P# F; H, d) M7 z+ E" I[root@localhost test]#
, E/ y4 g- h% r. V# {3 ]9 g3 e  w) t$ M( @' ^2 R

: R7 ^" z. G6 L5 m8 P' w. E实例四:使用here doc来生成文件
, R, n" t! G5 Z! T
+ D0 o( W1 O) ]2 y& i* ~输出:
% `" A" }& h3 V' P2 j0 y3 _! M" Y: i! R; C/ ^  K
[root@localhost test]# cat >log.txt <<EOF" ^2 X9 C" ~2 U  p) h; a( K
. q! a( |# v7 }' M& O9 b0 ~
> Hello0 o2 S) r" @) S+ h5 J
0 o; U  F6 ]& y
> World
, C* V8 ~" g4 @+ F2 b7 T/ n4 v0 N; T" v: f/ X
> Linux
$ t1 x+ G/ ^* z: R
5 p  m! X& J% l  s3 R! T> PWD=$(pwd)
( b' o; J/ M* q
8 F; A. U& s. y+ t7 \! V/ x5 S  |  A> EOF
' C7 x6 K, s/ z* h" r  A
3 @& t' u( w8 F[root@localhost test]# ls -l log.txt 9 o" ~2 C7 U6 s/ `% X
3 g: |2 s( m! G: {6 s8 Q. N9 k7 ~
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt* s' z( C( k8 z# I' p6 U1 U' t2 H
- T) _. J3 F1 D, o1 t9 _
[root@localhost test]# cat log.txt
8 R, e: P8 c% j6 w) \- H
8 s7 E* y% O* d' J4 M3 }- CHello
" q0 z. ^9 ?2 r. J0 `2 o, r" @4 Q. u$ w5 y1 C: ^7 t
World
$ T% s/ u/ S7 @8 V' d0 B2 v1 w2 {$ G! d
Linux1 F6 c* h' b4 R* L
3 P, G) {* V) l( q, Q% z( h
PWD=/opt/soft/test% d" K6 B( J# N5 E$ r0 G

2 w7 T8 @/ y1 d9 }% O) p[root@localhost test]#
3 ~# |8 y) c9 j+ n, C0 A8 G2 n+ A2 J6 }; |8 w+ Q, E; H5 S

/ l# J4 D' s1 D7 p% p说明:8 f) z0 t& I+ N
2 ^! q+ a1 J1 O' Z) y  B$ x  O
注意粗体部分,here doc可以进行字符串替换。
) I% R/ `9 ]- w* Y( Z% g2 ^% z# D
. Y7 t) J' n: Z! f5 U; l
" b6 I& S- K5 {) J6 ?& _, u备注:/ a- K3 p$ v1 b) v& x& L/ k
' o# k* T" h/ ]% F) `; U
tac (反向列示)! y5 l$ O4 q4 o( I8 y6 D

2 W# q- Z6 m6 G  R, I9 Q3 K3 Z命令:
1 o1 O' S. K& p* N0 I
% A5 `( \. R& ?+ U- }$ Dtac log.txt
1 D; R/ o4 B1 I7 @: b6 H, J) ]: b" o$ J
输出:
) X. h% r$ a7 a0 _, X% ]! l. b$ }5 O3 g* l) Q! b
[root@localhost test]# tac log.txt ) u- J. ?8 k& |* S
/ _, b$ S$ G1 M# Y! E. g
PWD=/opt/soft/test6 p! B8 U; V/ l8 _% o% G

' [8 ~9 P! U$ G! N8 H7 bLinux1 a9 w3 @* H5 }2 L1 D7 Y4 c
9 _, E2 V7 ]; d# Z- ?5 ?% o
World4 T7 _  j; R3 x9 b8 l

" d( \/ O/ Q8 B& MHello7 B, i  e  d4 C3 K
' j) p, Z% k9 ~+ A
说明:( w$ x) Z# W, h$ j& }* M: s7 }+ e. w7 b

- v4 F+ e( Y, n) [tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
& U/ w! a3 A" Q% L
/ `8 q( k% b8 Y0 S+ K# x6 j5 u  O
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 , |2 W" b7 I1 F8 F% C

1 a4 u, j& O) d# A  k- b# U& H谢谢超级版主分享了!
发表于 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:527 q6 {4 r7 U1 Z! A2 ~1 G6 f" Y
我只会cat /proc/mtd
4 Q9 a  l' L1 G2 R
多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
+ R7 w6 z6 ~0 \& t* techo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs# d! p! c: W0 f
echo WScript.Sleep 100 >>shua.vbs
, l$ `; j7 l1 {echo sh.SendKeys "root{ENTER}" >>shua.vbs6 b6 j' |  c# Y! t, C
echo WScript.Sleep 100 >>shua.vbs
% i" w& U* o1 J4 ?4 I. g7 k1 o/ d0 z8 cecho sh.SendKeys "Zte521{ENTER}" >>shua.vbs
' ?/ I3 t) z( E2 r6 ~' j% ~echo WScript.Sleep 100 >>shua.vbs
' Z4 u) U, ]. h9 y; decho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs! D( i! e$ K' ^6 c
echo WScript.Sleep 100 >>shua.vbs) [% a$ H( g: l8 r, y/ q
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs+ o- i# ]. F; l; @
echo WScript.Sleep 300 >>shua.vbs  ^7 v: s  ~; N0 F/ t* |* @2 B
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
9 j; V) b3 g- v# ~& `echo WScript.Sleep 300 >>shua.vbs/ G: \+ b; _# ?/ I( u. d* Y3 q
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
8 h, G. Z1 ^3 Q9 f/ e& X- Recho WScript.Sleep 300 >>shua.vbs9 W: i' Z4 R) ?8 [. d& X) U. J
echo sh.SendKeys "sync{ENTER}">>shua.vbs# e, i8 y) a+ F, `7 |/ T# _, h
echo WScript.Sleep 1000 >>shua.vbs
" J, [( S( v3 ?+ H- Recho sh.SendKeys "reboot{ENTER}">>shua.vbs
- D7 N$ i: n& H7 W( K+ tstart telnet
: D4 O9 T+ b. k. scscript //nologo shua.vbs" L9 _: A4 Z1 j' Y% K4 U
del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs5 B& c9 |: B+ b# m* {/ g0 j$ [% C4 r
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
1 K/ x* ]7 c/ I, x( F( techo WScript.Sleep 100 >>shua.vbs( c  V& |) O& w$ V
echo sh.SendKeys "root{ENTER}" >>shua.vbs
+ S; J: h) s% p  A. ^echo WScript.Sleep 100 >>shua.vbs* y$ E$ k3 a  k8 L+ e! W
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs4 Y/ \' \. i( C! r9 i) `
echo WScript.Sleep 100 >>shua.vbs
* p  q/ W6 @' I: E$ `' }echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs$ j; V5 k4 \. j1 r1 h+ Y; ]
echo WScript.Sleep 100 >>shua.vbs* j/ h/ H% V. o8 D. y/ y
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
$ x; z( M; l+ v0 f. p1 ?echo WScript.Sleep 300 >>shua.vbs
2 A0 b; A7 a4 i' o! K5 Y' T; G3 s$ @echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
1 ~! u3 U  ?+ s3 z0 iecho WScript.Sleep 300 >>shua.vbs' U$ l0 X. n; G" g* F/ ^4 `
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
7 d8 k, F) E2 N4 zecho WScript.Sleep 300 >>shua.vbs3 A* n7 d( Q( m8 o
echo sh.SendKeys "sync{ENTER}">>shua.vbs
- l5 a% [% A8 Y; C+ ^" Uecho WScript.Sleep 1000 >>shua.vbs
; R3 O% e0 e2 U" G: M- O1 Recho sh.SendKeys "reboot{ENTER}">>shua.vbs" E# d( W# n, C3 v. A3 r, W
start telnet1 I8 |5 y/ m- w7 _+ S% p
cscript //nologo shua.vbs
% Q" D* c$ t! Ndel shua.vbs( e' q4 o: a- ^' U
7 l8 ^; O2 A$ e4 D1 X8 E

! x* Z) t- a5 {7 x怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2026-2-16 13:10 , Processed in 0.029008 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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