查看: 8619|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
) J+ \6 ~3 Y7 c1 _$ V1 D4 H* P& q% |# Q+ W" k% ]% c: s
1.命令格式:8 b, y7 f8 E4 ^; w- E

6 q8 t0 J, y: \6 Z/ }cat [选项] [文件]...
7 V; `$ @) ]! Z9 q( V  [5 b& n0 F6 L* C
2.命令功能:+ V* w5 b( M2 U- a3 h3 o* B$ _" C

5 i, D$ C+ Y. ?6 Ocat主要有三大功能:9 N* E, h2 W5 P: _$ F/ E
1 x! W" G  y+ q6 B* I; w6 y
1.一次显示整个文件:cat filename$ _) y6 i/ X, @. V
1 N  S" r4 s7 Q8 w
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
9 [0 K4 [* K8 o6 A: l
; \; E2 y/ {5 P% h& Z! D- G* z/ R3.将几个文件合并为一个文件:cat file1 file2 > file) F# ~7 B/ R* t6 I
( N! Y; }. ~' f& i: @; w) v
3.命令参数:
+ _3 a. I: n! [0 G3 s. J! R8 P; T4 v3 E
-A, --show-all           等价于 -vET
% P+ j7 M6 r" b; U' O0 |
: w; |- }! L6 W- B; |2 C-b, --number-nonblank    对非空输出行编号
1 W! z( ?; N! g+ v, g3 q9 X4 P2 U4 S
-e                       等价于 -vE
! R4 |" ~6 n& b; L% z
# M# Y0 j7 K6 u2 e' Q7 n# K) M-E, --show-ends          在每行结束处显示 $8 M# o" h9 p6 j7 {

& Q, P' B9 r3 W1 T/ R-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号" L) d& k/ N7 U. y9 D

2 u' X6 S2 V; d4 R, l: [$ w/ b-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行   ~0 X: J/ S0 S4 N
( W9 w- \3 }( b: ]" O9 T* B
-t                       与 -vT 等价
) _0 J  p" l/ G4 f' @5 ]. }( l6 P  ?: ^" ]% N* V% Q4 a% n& I
-T, --show-tabs          将跳格字符显示为 ^I
' L( J8 w9 R! P6 y  }1 t8 z- ^, I* ~, z
-u                       (被忽略)
3 F: e* Y3 a; c
) P# i2 C" {+ u  f  P4 t3 o" D-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外' H  {  D2 M1 s/ A3 D, G% r6 u/ `

6 q, T! {& X# i, d' G, o7 z3 |4.使用实例:
7 f! X2 {% k6 x4 \6 ]( _6 {, w0 L, r& n4 }7 g
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里/ d7 [/ M" X! G* P% L& N
; D. G/ \* Y2 \4 M+ W
命令:
" \1 C; d# N1 y# Y9 M+ z  M, @: b0 y5 T  j/ T
cat -n log2012.log log2013.log 7 _( }: [0 P, C  Z

' m! ^0 q$ j) ^5 }8 W6 ^输出:* S# j" @6 k& [/ D; I

  d' G! _$ z7 q3 R" H9 l: M1 O5 a[root@localhost test]# cat log2012.log
  g2 U2 ], u5 E! K
3 D# ?+ N% q6 f+ D! L, u2012-01+ u4 R* P( k! F0 l2 X/ ^
* s) r) s  Q; w4 ?5 d! b
2012-027 _9 {& ~' W7 j, m$ f
! z" t3 P/ ~, K1 T0 N

% T+ \+ z2 u: o& x# L8 C1 w! T1 e, T6 J
======[root@localhost test]# cat log2013.log
  T7 v; Y* p5 S/ |
5 p. G( W& l2 e, e2013-018 h& k& D/ t8 R# ?, O
" v7 O0 N: f4 S4 o, R( L' i, Z! O
2013-02
/ X, ~3 L+ l! j3 f- v
" r4 V  X8 U& b, [; R/ |5 K  V
/ h; m7 |* U, a+ o& i$ ^1 t  D
' y/ R/ e  W) f0 {( c$ `. K2013-035 b# Y$ f6 k* b9 R! g
- s& D0 W: R# G
======[root@localhost test]# cat -n log2012.log log2013.log 5 Z  j& b7 y$ F- Z( B5 Q

. V# |, K0 f% P  Y7 D$ }5 A      1  2012-01
: J' n7 }. w. A) r! f# Z
) e, }# y- R3 {1 }- R      2  2012-025 s6 ^2 F$ \3 K6 w1 m

9 T. y) b! Y& O      3
; m. U) ?& s3 q6 H$ P
) J! U) [+ d0 {" q4 q      4
* w7 H( k" r' ^( x" X# {0 A, {; s6 }* ~8 t# {9 k/ @. S4 J
      5  ======! K2 H2 J% n% M9 x) @

. g. G& q- Q5 b4 r1 N% F' B0 d      6  2013-01
0 B: y; K+ f  ?9 R  M" I& `% {8 e4 G/ H  ^8 @. H) ?
      7  2013-024 p0 t- O* N  r- U% P

+ o7 x& r6 g; U2 A# c      8! M7 h% t% Z% G; x
$ _8 d+ q3 S7 ~( J! H* V! l
      9
) ]4 n. `8 \" \" v- m5 j
/ d& m" L8 j; S+ H- x, U; Y+ c     10  2013-03! d9 m" _  W& t' S, L1 R& L

0 a; M2 z9 G! s2 l     11  ======[root@localhost test]## E7 N% J; c/ Q) S+ x' ]
. x0 k4 K  B+ ?7 r- H3 o) m

: Q$ j% w! q! H4 B' r说明:
5 U) y; _/ f) g1 G7 P
8 x- n" b2 X  g
' P  i: d) V& [2 Q3 h, b实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 3 o4 h' I% g. p( C& L

6 o2 W( W2 K- L% x6 r7 R( L- c命令:- r% C* ?) S: Q
- g) d# }( J' C. n/ d- M
cat -b log2012.log log2013.log log.log
* \0 |8 ^( q1 R' J  i# S
7 ?; n% F5 U" y) _9 @( Z输出:
+ w4 X, V- ]% v( ]* E: E$ R( v6 g9 O: w% E1 v* R# i2 N9 R
[root@localhost test]# cat -b log2012.log log2013.log log.log. R2 }$ m5 \! L/ j; U
: x0 ~% R, s. F! Y( ~
     1  2012-01
+ J9 d  i% X1 u" J. ~
, t- x1 @- P1 e2 K& z5 E7 ]     2  2012-02
: l# b+ T4 [% O9 N
% r) h0 N' V8 |! I, k7 }: q$ [
" L$ w# h9 H0 e
( s9 K8 o2 v7 d     3  ======
9 Q' u/ i# F/ L( T4 p/ B, _, w
/ A2 m0 X# i% }* C; j     4  2013-01
# {& S* f; |1 O3 f9 t6 e* C# l; s$ G" n
     5  2013-02. r3 g6 F% M  {0 o- d
+ M' R5 C) S$ @" h

  S2 y, T6 I8 Z, [7 R" e3 o* ]0 ]( O6 T) G2 {& E, r6 \" \! A
     6  2013-036 _" n! F# L0 m8 n

1 B: A! }4 F% W& G4 ]     7  ======[root@localhost test]#
- G( o4 v2 J, o4 T5 c' D8 k4 ]; T; q0 c. |! E0 O5 q

* w$ O6 X6 r7 e% \实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里 3 l. l6 I& r' o
6 d, r, d3 b3 y- x4 L" z
命令:
, U9 h2 K9 h2 j: A* U$ _
7 z' \+ l" @! c" M  y2 K$ i输出:
. i7 P7 Q! v' x* M- s! J( x; m* y
' A4 ^2 S& t& r[root@localhost test]# cat log.log * V. A) i1 J) a6 d! S; W
, p  I2 g' d% Y+ d0 G" G5 }: a4 B
[root@localhost test]# cat -n log2012.log > log.log1 q9 M: z  t3 m- R7 Q3 h4 q

0 h; U9 @; `; y/ R[root@localhost test]# cat -n log.log
  n& `6 {# B9 X+ [8 t  C" Q% T5 v4 l8 {1 R  m! ~4 M( E& |
     1  2012-01
. h; k1 `+ k% D0 B' Y" A9 k: W
! m  y# L' D, w% F2 O     2  2012-023 u( k# p7 f& {$ d4 w. H
- Z# B1 t9 W3 k: @7 Q
     3( ?. }3 n) k  L* [

" h  ^6 ?2 n* t: w6 A; J9 c. l     4
  `/ t" ]/ R8 D. r/ N4 w: P, w
- }8 X; @* H4 R: p( ~6 N     5  ======- C4 v1 t+ F1 t
: W# O% B8 c* |6 h0 }
[root@localhost test]#. q; l. m% O" ^+ z6 ]& _% j+ X6 `

3 l4 k) B, B8 @9 d1 _4 s9 X: n+ H, i( a/ D
实例四:使用here doc来生成文件+ \1 J4 C/ N0 X( u% O) D- G$ y

% b$ s+ H9 J  M; U输出:6 r* F- |- A! J) P: O* I. _

9 s7 F, d+ s7 }/ _1 E[root@localhost test]# cat >log.txt <<EOF
7 @; u5 n$ j( u7 X9 z: m/ a+ f1 S( x7 K
> Hello: r% o; X$ {+ u6 M
/ B0 ~+ `  G) i7 x+ @) [; ^9 d2 k
> World2 h* ^# {9 ~: M5 w
# L% i) `7 l% D9 _. N( o
> Linux( z8 v" [( j; f( K/ I+ W

2 w, I, u5 n1 R- E> PWD=$(pwd)
3 i7 z5 l: M0 L9 }% ~) w$ t/ I9 k0 I$ e
> EOF
4 n. L- @) r' v/ N+ @$ `% w; v, o. \, P' @: U0 t) [( o
[root@localhost test]# ls -l log.txt ) G1 R9 F9 P" J2 \9 X
) g: T  ]: b: s
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
; f0 R6 {$ ^4 n3 |* i4 g( d! c0 m. Y0 R( F9 M* b2 T* x
[root@localhost test]# cat log.txt # G! o2 `5 l& X: L, G( v
+ Q$ Z+ D- T: g% u4 @" U7 ]$ ^
Hello
: l9 m+ @0 l8 J/ D6 x. v/ S6 Z3 a2 S0 u: E5 M; z, T$ c
World
6 g7 J) Y( i# [, S# o: z# X% S# N6 S2 ^! F' E( U% y' p
Linux
$ l; g7 L% ^- r7 j( {' R
6 q) G* `3 [* ]4 S9 Z7 vPWD=/opt/soft/test
& Q6 h; H  D2 w* N2 g( K4 j6 v" Q0 _1 K" _1 [* h5 C9 C* v! H2 L
[root@localhost test]#
5 p& {. ?1 ~+ {. n& P
$ D, }2 `3 i. k' A& k8 P2 m3 ^8 t' G4 Q( p9 c1 J
说明:
3 B7 L7 W1 {  Q" S& t- _
) W7 f1 P8 z% q5 f% z; `注意粗体部分,here doc可以进行字符串替换。: c1 b' K& a6 P& F
" {0 P: u7 D3 a+ H. x7 L  v

! }  u  ~* N3 c7 I& N8 H9 {# J备注:/ f. e& F" y) m/ e2 z6 j
+ @( w* T5 ~7 _4 d
tac (反向列示)5 t- E2 b8 o9 |3 U9 h4 y. J
2 ?  G  W8 [0 S# |+ t0 {
命令:1 k+ N- U: Q! e  R+ F  \
" G6 E& h1 B+ [6 Y+ G
tac log.txt: J% \1 @$ S# n# m; D: U
0 y; O/ R- \( F% B. \3 j
输出:
, }! f5 D& t3 l& U, E% y
( |( M( A8 W+ E[root@localhost test]# tac log.txt
" _  f" Q4 |. h$ k& T! J4 H+ b: r
& }: w( G1 d- x* \+ Y' J2 @6 kPWD=/opt/soft/test5 r( C' h( {% X5 I( I0 y

+ r1 o5 a6 \5 u: j. E% rLinux
, x( ^5 P5 M" O# t
' M- ?  D- J4 d$ u5 D% iWorld0 X1 e6 T* \+ D, d
. d+ O' a0 j8 {2 H: n& u- O( T
Hello
/ i% l. \. h( z0 y& G# _) A2 H% ^# A4 \. f  g7 a" A4 \
说明:
* Y) R, ?* w# Z& s$ t3 d! p$ k2 n- v
, O4 _2 s! ]) `) q  U: ztac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
0 D. O; z" a' K! O' i, S! G- r+ g! y$ H8 L' I$ A5 w. y+ r

9 _# A* P$ b6 [
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 : a- B/ m1 i1 s+ g

% }! T$ o! c3 @谢谢超级版主分享了!
发表于 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
, k7 }- p2 k" x: \我只会cat /proc/mtd
1 ?6 m- O- K: A2 B* h
多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs) N1 r. ~" J$ x0 k) h
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
4 _) X. i. F3 d+ ?( Fecho WScript.Sleep 100 >>shua.vbs
8 Q, f5 b: M5 Z7 u: s# w; o' ?echo sh.SendKeys "root{ENTER}" >>shua.vbs# D7 C; k) N% Z& n, Q& t
echo WScript.Sleep 100 >>shua.vbs+ Q$ K5 G" H8 G6 Z& t1 X1 I
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs6 Z8 v% B$ a% n) q2 M
echo WScript.Sleep 100 >>shua.vbs( y) F. P! Q2 A1 x2 n- O
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
! T) P& B! y/ y. C/ S( mecho WScript.Sleep 100 >>shua.vbs
; R8 R4 S8 Y' u% z5 R, }% ?2 recho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
- b& c3 n+ R2 _9 L$ w: ?3 Vecho WScript.Sleep 300 >>shua.vbs
! Q$ o- ~- m0 G. m( p8 becho sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs: c  H: @1 t/ h# T1 h! U# S
echo WScript.Sleep 300 >>shua.vbs/ S8 b% t" w# J4 B4 ?4 T& j$ z, L5 U1 C
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs, X: W: m  e. W- W
echo WScript.Sleep 300 >>shua.vbs
0 j% s, q6 S9 y& g+ A* wecho sh.SendKeys "sync{ENTER}">>shua.vbs, I/ Q" a5 B% T+ Z- ?6 e$ T
echo WScript.Sleep 1000 >>shua.vbs
3 U" [) i' l9 ], W) S. D2 l: ]% secho sh.SendKeys "reboot{ENTER}">>shua.vbs; K3 Z! ~, X7 V, Z% S- N1 ^& z
start telnet
5 \9 D% s1 A3 z% pcscript //nologo shua.vbs
/ Z9 N7 |4 D; B* i5 Z6 f4 wdel shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs2 |0 ~- h7 A6 u. L
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
- F" Y: q% r5 X3 I% k. R" secho WScript.Sleep 100 >>shua.vbs4 G4 H: m" r( E4 V* j, b4 L
echo sh.SendKeys "root{ENTER}" >>shua.vbs
" v4 b9 j6 \+ }; ^# b+ Y+ |2 A1 Jecho WScript.Sleep 100 >>shua.vbs( ]- R) D! m0 A9 D
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs8 C4 X$ i$ K, Q' E* h: e
echo WScript.Sleep 100 >>shua.vbs$ r. b) e: n' `3 R; s9 ?
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs% ~2 P4 `7 Q; F
echo WScript.Sleep 100 >>shua.vbs
: d) I5 U5 t. O5 |5 Oecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs2 \  ?) ^. y$ [9 D
echo WScript.Sleep 300 >>shua.vbs3 \+ [1 v: ]0 a( \4 f1 l
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
) w7 c$ n: q$ k* F3 Y" J- i7 Eecho WScript.Sleep 300 >>shua.vbs$ r# m: A; b; o4 E5 S& r/ k4 P
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
% X: Q: v- f/ q7 s& \echo WScript.Sleep 300 >>shua.vbs6 W3 R( f7 ?) I& k
echo sh.SendKeys "sync{ENTER}">>shua.vbs
4 L7 P' A$ h8 i. V( l6 B# _( ^& r: Z, Fecho WScript.Sleep 1000 >>shua.vbs/ U1 l5 b' j2 n. b9 N% S9 Y0 n0 k# O
echo sh.SendKeys "reboot{ENTER}">>shua.vbs0 K- E, y. C" h$ U0 N! L  i
start telnet
: P, v: i6 q0 ?/ N- l4 _cscript //nologo shua.vbs
  F: v/ @! x' i# J' odel shua.vbs
9 U# J, \+ x' j$ O' G* |( q1 T4 F# Y- m! e! i4 h/ d
6 J& F3 K9 Q7 I% G
怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

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

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