查看: 9546|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 |湖北| 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
" S' a! c4 e( N0 w/ d; I5 h( u% J# \9 k* ^8 c* v+ I% p* j
1.命令格式:
( u" z3 e, s& h2 Y; j4 b8 B3 a1 U. M. N, U
cat [选项] [文件]...
  T& F6 V* u1 m, A( U7 [8 I/ r: D4 u. a5 k& L: j3 u2 x
2.命令功能:
  |: m" K/ x1 B7 O9 ~. z; t  j+ O+ {& [$ H& @: J1 N5 @1 B
cat主要有三大功能:
. G1 @+ l5 F; G: \: Q+ R( @8 |. x6 ~3 L
1.一次显示整个文件:cat filename4 y( p) L+ L6 o  k
3 o' z/ y3 k) q
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
: P; |4 L: a8 \# I# u" M) z- O
8 X" F; n7 t) \3.将几个文件合并为一个文件:cat file1 file2 > file
7 D  S& M3 a7 O( n
. m, X! J* ~" y6 @3.命令参数:2 o# a/ \" P! J
/ c( y* W$ F  B7 l! P
-A, --show-all           等价于 -vET
% z: o$ y' j6 ?8 d
. s* n/ R& f5 x( c6 G. R- B# Q, S# W-b, --number-nonblank    对非空输出行编号
. X( @8 k) e9 Y' J' V4 r4 [  Y2 T
. S- k& h, K& [) ~-e                       等价于 -vE! B8 l- X, }' w
: c; l# T* X# L2 P' Z" P7 w
-E, --show-ends          在每行结束处显示 $+ W* ^5 c$ a: q0 m. h" k
% z  d* O2 i& B/ Q4 P0 x. u' j% x
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
- `& O9 I+ @+ e
* Y; \: X/ e4 {7 Q9 q% @! ?-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
& ~3 t2 g  d$ B6 o( p/ o
" I" q9 G4 g  C5 n. z-t                       与 -vT 等价
4 e* K* c3 @+ ]% B% ~( }6 y9 t# X4 D. x6 V
-T, --show-tabs          将跳格字符显示为 ^I& k. ~+ ~5 }2 Q/ w

  V' z# _) A9 S5 U2 N3 g/ f) s-u                       (被忽略)+ _0 L/ N# |4 r# k, D* T' P; p
% k5 K6 @5 r* |) W! L/ J% N9 G
-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
0 S  a; I! d5 w+ b2 q( ]  k
& w* e5 `9 r  W( }2 O; i/ \: ~( N! D4.使用实例:# d% ^! J, w" q6 k
  D& Q- [& ~$ G# t5 @) p
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里( p5 V3 [1 J" }8 H* z' t* B
! G$ v/ C1 z2 Q8 J9 @
命令:) A3 `4 P4 d4 A: |8 v
8 I4 A3 o/ G0 q4 i6 f8 }3 O4 C2 N
cat -n log2012.log log2013.log 7 M% E/ u" U" u5 C; u* ?

" ^0 w4 L& V, w, o输出:' w4 N) r* B9 v  T' D  f8 A' |
/ Q5 c# H! K* N1 ]1 H
[root@localhost test]# cat log2012.log
3 N' v4 }& f) ^5 e3 W+ {, Q( L3 h1 ^2 P; H0 h; b6 l% @* t5 [% K
2012-013 T5 e, y! i. P0 g: i' p9 k: Y

4 g! _" U# b1 E" `& O2012-024 ]. D( ^, I) e6 Y' L  w1 S+ ^
" X: a- N  K3 e( d$ Q: j

4 p7 p1 F" T3 k' d) c# \1 B$ b6 ~8 C* X4 c3 C* f: A
======[root@localhost test]# cat log2013.log * `$ v0 ~5 Z( F+ a7 _4 B/ u

) F! g8 a4 z+ c2013-01/ ^  }" N9 Q( H" B
+ ]6 ?4 a. g) f' T, }. o( w: [: A
2013-02
5 F' A3 b! o4 D. h' N( r6 u: L+ L0 G3 @7 i% @; p
' D+ J4 ]3 T$ z9 D
' \7 g$ Q+ C6 z3 ]; Q. r
2013-03
0 ^/ Z  P2 o) @7 U( W; f% W* F8 _. J
0 D, V( A& X8 c- Z. [$ Y======[root@localhost test]# cat -n log2012.log log2013.log 4 `0 \9 h: c1 |+ i

  y/ @3 Z  e* K  T- }! n8 J" \3 _: K      1  2012-01
! W" z1 f) V" x4 Y1 M+ K2 m7 q$ ~' }- V
      2  2012-026 t  \3 c; Z- u
8 `. X5 x8 g; }4 x* H
      3. @# q, K3 R; H3 J$ I4 B3 K) W
- S" r* ?0 Y- m9 g" A7 O2 M( q
      41 s" J( u" ^3 ~: ]
) d% F1 Q' m1 ~; S7 G: ^7 m
      5  ======7 I& N1 U; B& ^, S! d  j# P( E
  l; g/ D, }, O% R* ]
      6  2013-012 ?6 p; F2 C4 r& @9 l1 _
/ f9 ?; W! S# B" V/ R; p0 g  s
      7  2013-02
0 J+ L/ N: P. Q1 U6 R
* Y# S  ^) y2 M0 m0 B/ Y- n      8
! Q! M3 E2 I: w5 }% g9 f4 y
; i0 w* E# e2 q5 L4 b: u, m2 x# f      9
3 D* v( G& m% E* u  T7 U$ }* H" c9 g0 w& R3 G2 a3 c
     10  2013-039 B" z+ I! y8 m" L0 T3 v8 ?

4 }/ b6 P0 j; ?& |0 r     11  ======[root@localhost test]#/ a% [/ X) t- l2 m* E: s

1 f/ K# c  @) l
( i; |0 g- t# G0 |8 p2 m说明:& t9 Y4 z/ v+ q# H

+ d+ k# s5 X, J; o+ E1 m
$ T) H5 o6 ]" |7 O: s+ I实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
# i. Z, }- k9 g) C3 i
! m, Q5 M  y+ F$ e命令:6 z. U1 ~. |4 E: Y9 K4 [3 i

9 y6 |7 t+ Z; T7 a- r/ zcat -b log2012.log log2013.log log.log; t3 u4 Z/ i0 S# |" i; M7 f; l9 C5 E

9 _5 Y, j  L; p7 Z2 k$ A输出:
# a% L* T5 }7 D+ T) o. X/ b. |  i; p2 ~, b" `) @+ p7 Q
[root@localhost test]# cat -b log2012.log log2013.log log.log  y+ _( |. r% o, P9 }

  ^" J. O# ~  k/ H5 }     1  2012-01
$ d0 D( ^! Z! m% @/ J- P9 Q" |* n
     2  2012-020 e0 R& z# j$ N* n6 n' M$ f4 g  Z, n2 q

- d# Z2 S- k, P9 y% E
; W3 x7 J! g5 ?) v' i! W5 ]& y1 W& l; ?! o6 j2 t4 l
     3  ======
. {2 I- D9 [' n- `
* U/ ~. L5 E! m: f* C; Q5 @9 d     4  2013-01. N+ f/ ^+ J" l" p; C( b

+ l# _' C8 C% U     5  2013-02
. g2 T; D2 Y7 N$ i4 p7 [# P! w" z4 a$ c: D8 n

! @1 k, k8 W9 l2 |6 p$ R
9 X: k3 J) N. u5 k6 F     6  2013-03
* b7 f; Q: L+ H/ O1 D% C0 w3 M8 K) H9 d% S' J( y( b9 r
     7  ======[root@localhost test]#
  D4 o0 `" t: L6 `
. \: J- C" l! F9 C7 {2 ^( @1 O
- h# `: }8 z, X% o8 D7 i3 z实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
3 y. Z6 @/ m2 J4 ^8 C- w' x* f% T% o8 \2 x! b( t0 P/ o
命令:# \# P4 ~0 l# e

" N# U8 A3 {, s/ I: R0 `! X0 L2 ^' B输出:# y' O( n' R! R; }) }* ^
7 O- \  t: R" K* y( c; H1 ?
[root@localhost test]# cat log.log
+ |0 N2 x2 Z- v0 f
; K) X# d) b; J( z7 h( H/ J7 F" T- M[root@localhost test]# cat -n log2012.log > log.log% D9 c: s( ^& T7 U

; z, q( I% q5 d- j1 Y$ o[root@localhost test]# cat -n log.log ' u% B/ {. u! o8 e6 R  m& }; U0 \( d

$ ]. l2 N$ h/ E2 X9 S     1  2012-016 ~5 u% S% C& S$ _- m& _! c6 A* O
3 t7 E+ }/ Q) T. E: y% |: q
     2  2012-023 n) j" y$ i# _
7 g# ~! C7 D- |0 O9 i
     3
) Q3 l5 F! R# v# V4 Z; z8 U" Z* S" u( Q6 X' ]
     4
' {( h3 K, ?! @8 z8 q2 e
% _. l8 F" |0 d% r     5  ======
3 Z6 y6 Y* S1 S4 M# v2 G7 K9 v$ V* p4 {
; d1 n  Z7 i  G- [: L1 J[root@localhost test]#1 o& o4 m. _/ B0 m/ f$ r  T
3 K3 A4 `4 E8 Q8 H  A3 r
8 x1 U* L* k4 v3 W$ Q
实例四:使用here doc来生成文件
3 l- l+ p+ }+ ?7 b. E& J
' h6 i. J. _! M5 t输出:
$ m. H# r. Q. b) M( [
1 V6 c5 U( ?5 J) e" ?[root@localhost test]# cat >log.txt <<EOF
4 _3 V: m9 @: U: O/ L7 a7 E1 N9 w
* E+ c, C: N% J0 I> Hello
9 O& a* g! q/ y$ M3 ]$ ~: ^1 b$ b# Y) j" q7 F; `
> World
3 Z1 [6 D! H0 g1 O0 [- x# p4 C1 q, r6 {; Z
> Linux
5 V7 i+ v3 H* q
, T" O1 g" X2 _0 c: ^> PWD=$(pwd)
. C7 q- W) s3 c9 E/ y+ D0 ~- }" \' l& ^+ x9 F
> EOF
' w9 x; N. y. P4 e' v. m1 X
0 W) M4 q, G/ a3 {: ?' J8 V[root@localhost test]# ls -l log.txt 8 X% w2 @1 x$ L1 K
! t( C/ _+ U2 W& q1 G# ]$ p8 m
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
% I7 T9 S# _5 n, Z! j0 ^. \% |7 r% |9 X1 ^
[root@localhost test]# cat log.txt
2 _" j% _% ]( j" a: j, e5 ~
) O$ ?: U, k! Y2 a0 H. i0 Y; c4 AHello
. X# ^8 E% D6 Y; H& V+ T
; A& B* ~7 Q# e" s, wWorld
, m2 U6 `  E! R- `( K2 s2 ~# j. b5 N* G/ F2 J" O8 \7 t8 K  v
Linux" _6 e$ n  I  h6 X

6 h: M. v% E+ }6 H" SPWD=/opt/soft/test' K4 d8 q& v6 U
7 p$ G7 b' p8 R# y1 i, t
[root@localhost test]#1 ^8 r. I9 u8 H# @" H( L

5 f/ v  B( \5 C- n% B, Q1 O0 h3 E* \  ^2 a( W. P
说明:( v5 |( Y& ^1 N2 M+ b5 L
7 T' V" v! Q, X2 c# Q. e
注意粗体部分,here doc可以进行字符串替换。5 s3 r; `( T" p7 H1 [

+ |  F8 F" m+ f) M( h  P( W( x* C4 `& S' ^, p; N, T
备注:) y: \) y2 X# Z5 t$ f4 f9 S1 W( i

9 a$ s) z$ }$ U, ^- etac (反向列示): O* N- D$ R2 K3 O& G' ^
1 N0 `6 c/ C. a- L4 W
命令:
. Z% Z; D- f4 a! g+ E3 l# c1 C  ~+ w( o, m
tac log.txt
4 W" A: k. J3 a6 p, E; t( c- Z
9 x# P8 O0 B* W! `8 m- x7 x输出:1 w5 `2 I2 z3 t2 F
5 _* E% t# Q; `$ w6 m3 q
[root@localhost test]# tac log.txt
+ ~# ]- B& O1 ], x( e
8 Z1 Y2 w# F- Y8 {5 VPWD=/opt/soft/test0 m9 _8 Y5 h; p$ P0 ?( s& Z2 Q
& s7 E, u$ G, }* D5 _4 B
Linux
3 [: D7 h) K' @' D! X3 O0 \) q4 A' A7 Q: e6 c  c! {9 M  W
World+ _' Y2 M) `! v  K( G6 h
; s8 x* ^. |+ a+ _* _  q
Hello/ m, b, l7 E1 A. N1 A

8 E: A- r: p! K% F# e2 Q说明:' k' H3 a' p9 h" S+ d/ m- ?
! e0 f" T# l9 e/ Z
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!$ H/ h1 v( b/ B. ]: [
, [7 Y; g! T; G: Z  p

3 F; a1 r6 H% d7 f' ?
发表于 2018-11-10 05:44:55 |山东| 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 |中国| 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 1 R, [: {: T+ V' g
* R1 G% A* e, w
谢谢超级版主分享了!
发表于 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
$ [4 W$ U0 \, w  |& m8 T我只会cat /proc/mtd

. T+ r. V( B4 {* n7 B/ [) q) g多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 |河南| 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
1 L2 u1 Y: n0 @! Jecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
- T; t# w6 e! i: P; c, {( Techo WScript.Sleep 100 >>shua.vbs- e. h9 @7 e* a' O0 l3 N) z
echo sh.SendKeys "root{ENTER}" >>shua.vbs
2 @% y) R7 N) e7 w7 cecho WScript.Sleep 100 >>shua.vbs
& w6 `( l3 ~" h, m6 O* k& _: Gecho sh.SendKeys "Zte521{ENTER}" >>shua.vbs
8 F. u" n3 A) [+ B$ i' Xecho WScript.Sleep 100 >>shua.vbs- k: w3 C" z. {8 S9 i: w9 v
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs" C& j- L! c$ P( N
echo WScript.Sleep 100 >>shua.vbs6 y. ~( f: Q* {/ `* Z! r3 n
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs( R( E% M" q& I; ]$ q0 R( |/ F* y1 U
echo WScript.Sleep 300 >>shua.vbs- {! j; y7 a1 p  N: _2 m
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs- \% b/ b& [; l9 R5 }  n
echo WScript.Sleep 300 >>shua.vbs
  o- N$ B1 l+ X8 c, B( becho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs. B% I5 c1 ?; [1 j% q
echo WScript.Sleep 300 >>shua.vbs
& ^' w6 S9 @2 P8 }! h9 `echo sh.SendKeys "sync{ENTER}">>shua.vbs
8 W4 @# |) E/ Qecho WScript.Sleep 1000 >>shua.vbs
& A% L9 ^% h9 B, F9 Eecho sh.SendKeys "reboot{ENTER}">>shua.vbs
' H+ ^- N3 |& N9 k! N# f( |! G4 Nstart telnet: A) h2 Y9 l' A- O7 p/ N
cscript //nologo shua.vbs( ^- T7 V3 _$ d2 g; N& ?9 Z9 p  u
del shua.vbs
发表于 2018-11-16 19:15:04 |河南| 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs0 Y- z# d( G3 t9 q- o1 _' c
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
$ A0 f) Q, {' P: }% ]5 {echo WScript.Sleep 100 >>shua.vbs) B3 s2 x4 t* V$ h) c* h+ y7 j+ r( ~
echo sh.SendKeys "root{ENTER}" >>shua.vbs
4 ]) }: G& S" Mecho WScript.Sleep 100 >>shua.vbs: b% \6 u& y2 @% m- r! P( d
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
( y0 h/ S0 b1 g6 V( b, O3 _0 x" Wecho WScript.Sleep 100 >>shua.vbs4 w, N) @# e5 G
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs6 j) ^0 n# f, }
echo WScript.Sleep 100 >>shua.vbs$ q9 r4 [9 o6 P3 D  R7 O
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
/ a" S9 c6 p* V3 techo WScript.Sleep 300 >>shua.vbs5 M+ Q" o( o% W# o9 y/ w( O
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
  p2 f5 Y6 S% G) g5 F1 f/ [echo WScript.Sleep 300 >>shua.vbs; Y  ]; A) [* k
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
. A! m+ W) ^; f& D4 i0 B2 cecho WScript.Sleep 300 >>shua.vbs
. u/ Z# _4 `. b. D& Recho sh.SendKeys "sync{ENTER}">>shua.vbs
" w/ N2 C. D( `echo WScript.Sleep 1000 >>shua.vbs( A5 h9 n8 \2 n' N0 E/ t
echo sh.SendKeys "reboot{ENTER}">>shua.vbs
' h5 n: q( s  e, f+ f6 ~start telnet
7 g0 S7 w& A9 ]& pcscript //nologo shua.vbs+ g4 n( c6 O2 B
del shua.vbs# G. H+ G5 Q6 a- h. g- ~
6 }) r# D- o9 I; g. j) [7 T

0 F7 E8 [& B+ L" O5 `4 q怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 |江苏| 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

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

在本版发帖返回顶部