查看: 8109|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 0 I/ S! |* j! c6 j# ~8 u6 j$ ^

- I7 K/ K2 V( e+ K, {" b! W4 R1.命令格式:  o; ]" T% h" `

8 e* G9 p( n$ K3 U) a2 jcat [选项] [文件]...% P* t8 {9 a5 _. L, Z  D- S
* r; l& Y7 U6 U) ^$ V% ^+ ]
2.命令功能:% O7 _) {  G" S, I" o/ A

& G$ t) G! {, A& A9 Q  Q* scat主要有三大功能:
8 |' C: t5 x( U/ O2 [6 f' f# n" l1 O9 t
1.一次显示整个文件:cat filename  D( t( i# L8 [
0 b+ M: U" [2 S& j) v0 T
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
( \8 l2 |7 s/ ^: O' W7 u. |1 c" }! m* x4 `: Q1 P
3.将几个文件合并为一个文件:cat file1 file2 > file
7 E* e( [: }: C; W# P4 W( f$ h/ W. S  t, m8 C4 v
3.命令参数:
  |5 R" ?: U; O
! j2 i( y; U% q8 W8 |-A, --show-all           等价于 -vET
5 U7 X; S$ D" C
' ~) p, g  i1 e4 o% L. {-b, --number-nonblank    对非空输出行编号
0 O. G* g) I0 Q4 ~# ]  |
; k( |- N2 d* d1 v0 Y9 ?5 G- X1 e& Q-e                       等价于 -vE
( N1 [! w2 d( X; U1 n( b: J3 v+ G3 y5 {4 u
-E, --show-ends          在每行结束处显示 $
7 A: R4 k6 x2 `# E0 X$ t. Q- f  u! y' H; D* ^
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号% I. i8 H3 b& d

3 S& m% R+ A' r8 v-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行   ?9 m+ N9 W. K
: J; L  Y% |4 v5 @5 y/ {
-t                       与 -vT 等价! t/ A3 |; C9 Z2 }2 K

' {; M: P5 u' V8 ^-T, --show-tabs          将跳格字符显示为 ^I) F4 g( C, m! G
& D( X! A- O7 t& S: }) w* H
-u                       (被忽略); L' x5 T  n$ \  n' y

5 k) S& r* A& J) F! P-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
( L  H" A2 P7 u! ^; e- y
9 J; ~) o' J% K2 i  I, S  F4.使用实例:
$ |+ ?$ [* L& e0 z+ q. U( A' d! O+ @5 ?. b3 a$ x) M5 l" k  f, ?
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里: y7 E2 f& h% t$ |( J

6 q7 h. q1 C( O; [1 j! g. h+ u5 m命令:$ N( u/ B7 d5 ^7 ?4 s9 g

- N" a4 V: a8 s, m) Fcat -n log2012.log log2013.log
& o$ }) ^8 p) @2 W1 @5 p4 ~: e! M, C
输出:
  C# Q5 m5 b9 }' E/ K4 A6 B& K! _$ |% Z9 F7 N% L
[root@localhost test]# cat log2012.log
* ^; X" ~- T  H+ N. z
7 O3 S7 T& r4 {/ M) H2012-01
& q% a  f1 U  t/ }+ ?# z
" p$ D1 Q& C" ~! \0 L2012-022 n) z0 o! o" j6 i* I
4 l# z( u; \7 _/ b* H0 D, I+ P

3 i* \! D7 V, {4 e" j
+ H. j# ?' k8 V7 _" s- v5 f======[root@localhost test]# cat log2013.log
3 f5 z; l) e5 q* _
* Y' u) y. @5 h2013-01& N' ^5 Q9 \! k" b& u

& p" \$ b# S; {! I$ ?4 U, [2013-025 l" n+ b1 [: o

/ o' X' W0 C! O, x" C
( I) J( x5 t# j+ n; j( P2 O0 @
* ^8 z: q1 V, s2 r2013-03" L  Z- @4 U9 m: z  E! X6 Z! X, p5 P" F
5 B* m, G; @1 i# e) \
======[root@localhost test]# cat -n log2012.log log2013.log
6 w. d3 P/ g0 u5 [2 R4 Q: u2 E0 f8 g! w+ P
      1  2012-01/ Z2 ^& n: v& d: p9 T
, J9 e* Z' F" @4 d: @$ o
      2  2012-02- @$ u/ H: q  g( u; T2 T

9 T& e8 g8 _. M" k5 M8 ?      3! k, Q! O$ n+ M4 T

/ Y. ~0 j% z8 v, D* A. i" K      40 r2 Z2 Q/ s7 t( m- P4 P/ i2 X% h
, w7 Q9 D& ^6 j9 E9 I' M' K( L1 V4 r6 b$ y
      5  ======
9 w! N& z1 f8 A' _8 l9 b6 E
7 M6 d- h/ \2 X9 {      6  2013-01
1 l2 _* [. M; e' v$ }* t$ V8 O0 ~: ~& Q$ _, M
      7  2013-02
2 y3 I4 s  @- r) @9 \5 ^4 p6 G! b1 h3 u/ X* ^
      8
; n4 H7 q; B6 g  q( o; K9 q7 X( l0 P) j5 G* f; u
      99 i6 R# e8 _: U+ W! Q

( f! K. b4 Q* {; P8 E, L     10  2013-03
" d6 B6 }8 h1 I5 n4 {
& [) ~0 @0 l5 {  G. k. c* a( p( a     11  ======[root@localhost test]#
2 w2 o9 v, B3 O$ j; B2 I
6 Q; A3 }, X$ V; R1 i
2 Y1 }  o# j; R' p说明:
+ H4 X+ W0 D' u& Q
' B: r% p7 ?1 Y7 t, u: E2 ]: ?$ V
+ x! r& O$ n9 Z" _& e1 n$ }实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 1 _4 G- {. w. a) _2 s( y8 \% p

$ P7 L' A$ p( X! t. Q命令:7 s. U' }) P2 w
7 T$ {7 p1 t- P- b) K
cat -b log2012.log log2013.log log.log9 ^, S7 s/ ~6 y2 D, T0 r+ y8 U7 k

# m' q" _- s& m输出:
, f. u/ X6 [* o$ R  B* h$ w" H# P9 c3 S: R. b. x
[root@localhost test]# cat -b log2012.log log2013.log log.log
: F% L5 ~- G6 [' f' b' T
! D: w% c8 E, d4 q" `     1  2012-01
1 ^3 P, R( w* C) A. P( n+ e$ R. `
- v  w; g& w( T7 T     2  2012-02, m, b7 G- ~) H8 I  B

8 y5 p: Q: q6 G; n' B$ W7 L+ X' R4 Y
9 R+ Q5 m$ _) r5 u+ u: w0 v
     3  ======  T) u( M  I8 |* O$ }
: M2 p. j2 p8 ~' c- v$ P0 Y% i
     4  2013-016 i9 L/ i6 S0 M/ l- M( r& x/ b

: C7 J* |. I, n5 z* G! A     5  2013-02: n' Q; N" R0 [

: ~, p# k* H/ U) @+ J. \1 B/ h, U) j4 K  F5 j+ ~
( I$ P; J$ ^4 b. X+ N+ v
     6  2013-038 R! [2 z6 C; u5 K1 Y2 ?/ M

! c" e% y6 f3 N3 ~* z     7  ======[root@localhost test]#- H/ E! w3 R9 b% l/ M9 c

+ b- u8 g, J8 f) d) g% x4 E2 _" t
' K" A3 e! z2 P- D3 e5 ~实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
' S0 [9 C0 C2 y$ `& p+ w& U( [+ J/ o5 x0 `
命令:
. `$ A  k; P/ i0 O! b4 E! D2 [; |
输出:6 a* d1 ^+ h* b  O. Q
+ p& ^$ \! ^: Q% d8 q) s9 X
[root@localhost test]# cat log.log
7 ~/ f& ^# ^* ~
) \7 A8 J  O" ~: e, o  c[root@localhost test]# cat -n log2012.log > log.log* w2 P1 r  j% U* x& V9 `# `
3 E, Q: L; k8 T6 {
[root@localhost test]# cat -n log.log
4 X# z  G% A  `4 {, u; s; B, t; S' C- a: s7 ^' `, M& u
     1  2012-017 _  A1 X+ C" ^7 m2 d8 d) g
3 _9 y" Z6 g3 U2 G8 p
     2  2012-02
$ t) O- f! Z/ {8 \  z9 G4 o5 R9 |2 V+ Y
     3: N1 t' i( U% ]( Q7 ]1 l' ]8 ^

: ], E: J9 i" ~2 i     4
4 }5 @8 X9 l. B8 J" N9 o
( w" ~5 Y6 {9 i9 |" p9 i     5  ======
  t& p& X/ B: m
9 q/ N1 J* \2 D" q2 ]4 e# A( o[root@localhost test]#
8 J6 v2 W* Q5 o) Z" _) e
! K. f5 [: a$ B: f1 t6 x- G. l% T( j6 u
实例四:使用here doc来生成文件0 u/ q& P3 B' ]* K- U5 p3 o

8 {4 B3 J# k0 E' \输出:
) W* [: `. |$ I1 v
  v. u/ K8 D. T- B+ e$ z* d/ s[root@localhost test]# cat >log.txt <<EOF
) z, {, \, T' U7 Q' f5 M; w! O9 a+ n9 \0 q8 c  B
> Hello  O0 l% O9 G. z6 I: k
" c9 ]' _3 k3 ]1 f" b
> World
+ D$ h. f* I  O9 f8 S8 A
8 D4 B( m% d5 f& Q* P& V0 o3 M> Linux
' i3 U' l( J- V# m7 m7 l( x
: L9 M) W/ b) p/ h3 n2 Z' g4 s# S& a> PWD=$(pwd)
  [: {( T2 Z6 i8 z6 m( p8 w* T* G9 c
> EOF8 S  L3 x4 p; x& @8 N
5 ^9 g; T6 p6 x8 M
[root@localhost test]# ls -l log.txt ! _5 M* {* B& T4 ]& E

# e$ m# D+ @" h) q/ [! G& ]-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
2 l. _. m8 t$ [$ A$ ^/ v( z7 l# i! n# Y7 H" X8 S
[root@localhost test]# cat log.txt
5 o+ r, H* \* p) K3 ?
# |9 [( r6 u' _1 c, x  j+ M4 \Hello- U6 a: }  R1 [9 n# T& A; ], p
* t1 W, }& b4 w
World
+ m- N& E' O1 w5 ]# B6 v$ g+ l' K+ ]9 S
Linux5 `5 J% ^0 E( ^' {, P

# h) t1 K. q6 {0 w4 [9 NPWD=/opt/soft/test
5 p9 s3 L  Y9 w$ R, P! x
% _2 F: U- S$ t  r2 N* |[root@localhost test]#
3 p% u- e& U% g3 _+ c  _% h; A/ {! B4 Y! s. i
3 d1 H4 ?' [2 V6 I; S
说明:: y* S; r" B5 @2 x5 r) C  f- w
% x4 \, l! M" `- S3 v; y
注意粗体部分,here doc可以进行字符串替换。) C  V0 r! w) Z$ X' g, X# P

" W5 i9 }1 |# y- U$ u# u9 u: v$ Z  ^' r. @
备注:3 D4 Q, p% G- U6 m7 e9 Q- |( g
) N  s: k/ A' G2 J4 ]( {( B
tac (反向列示)
( {0 o/ E& h0 h' ?
% t7 `+ Y5 W) B  V命令:
3 A2 e( Q$ Z1 ^! C9 h) Z; I/ ]5 M: K" z
tac log.txt
' ]; X' \, Z1 i8 |) D% x6 B& I: r: v5 q- k
输出:
% {& C; n+ e+ X/ c( T2 F4 S: b! n8 ~3 Z/ V
[root@localhost test]# tac log.txt
- ]. o9 b3 g5 q2 G( `- I( z+ X) L( T% c# V
PWD=/opt/soft/test9 u) K7 m8 ?" A! V" I! d

9 x5 |2 D5 H( d* g6 `Linux9 d5 |2 X6 U! Y$ L; m

' @8 I) I- J" z. n7 tWorld
0 u- Q; l. d7 `; d+ x9 @) j9 U
: j. K3 A3 R% e5 YHello
* O) n# ]" N9 C+ e7 l, Z( h! C; ^# Y6 O% d( ^/ C
说明:8 U! i7 t  e  K, i
% Z- q  ^7 u+ }# `
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!% V" ^1 w1 z$ q: b8 V

5 H% y6 B; b* I
" n  [1 k" k5 S9 f
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 8 \5 E  S8 X1 O2 S

5 d4 D/ D+ T/ ^3 w  [( k% p9 |; A谢谢超级版主分享了!
发表于 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( J5 T  ^7 Q- W
我只会cat /proc/mtd

6 d, V( z4 m! H, }" U多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
; v. F7 C( `# A: l2 ]) Vecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
$ z. u8 ]4 {/ secho WScript.Sleep 100 >>shua.vbs; L% s6 T9 F$ x1 D( g  N2 w
echo sh.SendKeys "root{ENTER}" >>shua.vbs
- X7 U3 K2 m4 E* o- L9 iecho WScript.Sleep 100 >>shua.vbs" I& K- y5 S- {$ r* e
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
. {2 j& V7 i" Q2 T9 ]# Pecho WScript.Sleep 100 >>shua.vbs+ N7 r) k7 W# {9 [/ j$ m
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
% }1 i0 m; K, {1 l7 H+ B) J: lecho WScript.Sleep 100 >>shua.vbs
# z" T/ E8 l6 g6 f0 S% J$ e+ `echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs! A" g. Y6 M/ Q! u* r9 W! r
echo WScript.Sleep 300 >>shua.vbs
$ l1 n/ c' ?% }" g4 {* Q, aecho sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs7 f9 W" B) S: m( @3 s
echo WScript.Sleep 300 >>shua.vbs, L5 k" W0 [+ t
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs* g# |" Y# v8 L" _- L1 L9 }
echo WScript.Sleep 300 >>shua.vbs3 l. v& b& s& o2 M1 X' P, }; @
echo sh.SendKeys "sync{ENTER}">>shua.vbs
, ?0 _$ ?  S! Y: t( x6 Qecho WScript.Sleep 1000 >>shua.vbs
# l& q; S( O1 U2 m9 techo sh.SendKeys "reboot{ENTER}">>shua.vbs0 j& x5 q8 q  d! P1 |; |5 p$ U
start telnet. _7 F8 p: o2 \* t
cscript //nologo shua.vbs" ~7 ^* G( _% n. E' P
del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs. p2 Q# X3 x/ M% K! w% h
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
; M. @0 o$ o4 E2 Y9 h, Wecho WScript.Sleep 100 >>shua.vbs+ L: K  Y! L" B/ J5 h
echo sh.SendKeys "root{ENTER}" >>shua.vbs  t8 C9 Y8 A2 z1 u% I
echo WScript.Sleep 100 >>shua.vbs
+ H/ b" a* Z* D/ `echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs2 O/ J: a$ D8 V0 c: _# D
echo WScript.Sleep 100 >>shua.vbs% d5 |8 S. F! P. @3 J9 R4 s
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
; e# B; y, j0 H9 z# ]9 m0 x6 hecho WScript.Sleep 100 >>shua.vbs
; p8 D: z- o. j& o. a: M+ t# Lecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
, ]/ }4 r* I& |# cecho WScript.Sleep 300 >>shua.vbs
1 M5 K0 ^$ q3 K& r: }echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs5 i! Z  l0 o3 h8 V% L$ x1 X  K( h
echo WScript.Sleep 300 >>shua.vbs
# Q/ T% i9 \" [echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs! X% q' ^0 h6 q7 X7 E5 {( ]* q" T7 ~$ o
echo WScript.Sleep 300 >>shua.vbs
7 g1 d$ A0 n& g6 iecho sh.SendKeys "sync{ENTER}">>shua.vbs+ U( I3 b4 b( n" F+ r
echo WScript.Sleep 1000 >>shua.vbs
0 x  x# z) U8 xecho sh.SendKeys "reboot{ENTER}">>shua.vbs# X( Z) F/ o" D
start telnet
8 N% }( Q5 t$ d6 `! k9 Ocscript //nologo shua.vbs
- k( \% A  ?9 ]del shua.vbs
0 ^7 j5 y4 U  T" \1 o
4 y' W, F0 c. v/ M
8 w# J$ {2 t; e# ~7 Z7 f/ f怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

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

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