查看: 8787|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 ' D$ L6 \+ v  R( }$ j; _' b
/ j  F+ s' t$ @' C
1.命令格式:
. c& J' M0 T% g& L! V1 |8 B
) I: t; X1 a& R) Acat [选项] [文件]...
/ {! p8 Z( d# F6 @
- v$ I" }  A& A$ d' W2.命令功能:
! O& ^6 F0 N: z- y
; P: J% x2 m7 ^# ]cat主要有三大功能:9 R: C) w1 K) P. O% i; P
* }9 g2 v. e8 K, G8 V- g4 |" ?) E
1.一次显示整个文件:cat filename
8 k5 c9 V! v, x; d: f. I' R) r7 }+ j0 x( V4 K
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
4 g  D  u+ k) t5 ~$ g! _( E- H9 p
! N5 h9 F8 |" n5 g# f3.将几个文件合并为一个文件:cat file1 file2 > file
6 ~5 G* i6 M8 }6 B. c$ j
3 `, ?8 r: |% Q3.命令参数:. j: U  T% A2 V: I2 ?7 d

6 Q9 [" O$ ?. k2 n, y: A! t-A, --show-all           等价于 -vET
+ u9 F- I0 \8 W1 d& m) y, f' e6 r+ E' X- L+ E
-b, --number-nonblank    对非空输出行编号
, @! C! T6 h7 g& i  g* k; _5 b: V& ?$ w4 b7 G
-e                       等价于 -vE! V. i2 E# L' \3 N+ q" s  {9 K4 s5 L5 ~
! Q& K% t; ?# g1 S6 `2 c
-E, --show-ends          在每行结束处显示 $
2 G- F, l8 S) b3 K7 P" c/ n$ H' o9 |8 N  b
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
9 P- v( |' I  w" _  J3 o8 D& g+ T8 R+ s! ~
-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
. A1 l- i! d/ {2 O* S. x8 R2 C; B0 i7 D7 S
-t                       与 -vT 等价
. N: d" V# Z) J) F" D
) I, o9 b, I8 F/ F* A-T, --show-tabs          将跳格字符显示为 ^I
7 N9 }4 Z9 l3 y3 _1 v( K/ C& G8 i; z3 b- ?1 ?0 R
-u                       (被忽略)( s* b7 Z+ T! {" e

( o% u$ S% C9 `6 Q& E. ~7 e' U7 o1 i-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外% ]! K: {( A, L: U

2 ]: W# r/ e& f) Y+ Z4 Y4.使用实例:+ S1 Z3 u) I+ N5 E, J- W! H9 g, o
& E% R" t& F! H: K' |* ~+ T8 m2 i' c- t1 k
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里2 j' B! u* L% S# R* y! ]" D$ h/ v
, ?' r$ s/ [( ]9 d; k5 H' I
命令:( \5 G- u$ C" X6 W2 Q* W
4 k0 y5 \' T, e" P5 I
cat -n log2012.log log2013.log
5 l, J; o. ]% Y" ?( ?1 v. k# ]/ A; U' l
输出:
' z) F8 }) [' R! N
. T" ]+ n( |# m) m9 x[root@localhost test]# cat log2012.log
! b9 s. H$ F% V' u6 ]. F' q, k* n8 m
2012-01
5 O4 M2 Y- u) Q3 \$ y
2 C0 Q' v! U# w' k2 c2012-021 z: p# Y, h+ q
+ s9 ]# {% x# Q  Y0 y! |' k% l

, h" C( p( M$ Y/ r
, `7 V9 |# |" [; M+ w======[root@localhost test]# cat log2013.log ( {1 g" K/ y& p) @& K* w. v* h8 }" W

. v( R$ y+ Q4 r9 A5 V2013-01
0 j3 i- R0 O* n, s: Y' `9 B  H- D% ^) I
2013-02* J9 m; x' L9 k' i5 }/ d

! o' [7 z. H4 Q  T7 D+ y0 Z9 Y, z

# z' G8 O+ @' X% b: j5 v2013-030 K/ C/ w) l- \' g7 [
0 l: ~1 b, n: y' w
======[root@localhost test]# cat -n log2012.log log2013.log
* Q/ g: w& X6 j, r) j8 {' E5 z: D4 ^
      1  2012-01
3 a* f( ?, J- e& l( [1 o3 x4 a6 g
% q9 B2 F1 f4 F/ _5 H9 M      2  2012-02
/ e* C, `( J  ]1 h# I# q
( d! @, D6 }# N      3* f5 b8 ]# O. @& u+ ~) n& t
) c  U# ~  @# R- b$ i7 o
      4$ E* ?7 X9 M5 ^  @' H. D5 c

9 M0 w4 l& b: C7 ?$ |. @      5  ======
, q, N8 d, T- b
! Y2 s# z. ^5 }' p$ k2 ?      6  2013-019 h9 ^9 R% n9 {$ R! P

5 x& G1 W1 \, a$ L      7  2013-02
& t2 {/ R/ L9 t/ K
9 A7 p2 W2 Q7 X/ }      85 ?: |2 t4 f4 L6 t
- h8 F' s! q. }* E
      9
' s& J: k2 D* J
7 r" f, I* ]+ G; L4 m+ n# U     10  2013-03
: l: T: T. n8 q# H1 y6 a8 R  x4 Y0 ]6 k" h1 p9 u# t0 I3 o
     11  ======[root@localhost test]#
% M( ?+ X4 q  O! x4 Y3 o0 a5 u* O1 m

3 @2 m+ ^1 v$ ]  k9 Y说明:0 ?$ C- ]7 ^6 ?* Y$ Q- @- P

5 h1 H. l! O% d3 g8 T' X0 T8 ^5 W% g9 y3 Y3 L/ w: z. `: l5 g. F# h! t0 U
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 0 `  H' S! t+ O$ @. h) `5 `+ ^
& y5 r" y1 d0 x' F- T5 j
命令:; w3 x0 J: e9 L( `* r. P
0 G- |. \+ q, T; Y
cat -b log2012.log log2013.log log.log9 i/ M9 @  z& U  H9 r
/ _. j8 @( A3 {
输出:# f2 J( R6 a7 d  L: n0 X$ ]. s- H
+ @% c) U$ w* j  s
[root@localhost test]# cat -b log2012.log log2013.log log.log
1 D% B0 d7 g1 f$ k/ L8 u5 ?* J
     1  2012-01
1 F/ S9 |6 T; c' e
# S+ g5 v. q6 J+ J5 n0 i$ e     2  2012-02
4 C" s3 D$ J: z2 n4 [2 _3 ~1 b) Q. I
* i; t: }3 Q8 G# ~' p

! g0 t- W0 z% b5 [$ R$ g4 a     3  ======8 O: \& l( }# Z% U5 x

( W* \, T8 p9 r) G     4  2013-01
" G" R+ D$ e+ W& @' M$ _" F3 t& u. m* G. `- q
     5  2013-02
3 }0 |  p5 R8 t3 _0 m! |. @7 J
+ h& r. t& b0 x8 X3 A7 M4 ^) R( q* r  x4 C2 h7 Y

& L3 Q  C4 e' M5 ~! r% w* O     6  2013-03
# `- y' `0 z, \4 m; V1 i. m0 I4 E4 l" T" V
     7  ======[root@localhost test]#4 N9 H$ c0 j3 U, F* g) n
8 k1 x, _" ~$ U3 }+ _8 G

( u: u  n, W& [; [. r; \实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
+ X, J) g9 p8 o7 j
! Q% v& t" m& P* n( r# \命令:
* o' W( V% F' ~7 Y1 q" ~' r7 R
' Z! y9 R5 I: m$ @8 R输出:7 F$ u) j( D/ H; O3 R7 D
" s/ B6 a5 [$ F. T) U# X
[root@localhost test]# cat log.log
) O( I3 B- H  x; G$ E. @: R
" B; M; K" j1 ]. J[root@localhost test]# cat -n log2012.log > log.log( H+ j; o1 C% ]* p

! Z* d( l. u' T: C( K! J- Q! N[root@localhost test]# cat -n log.log
9 t4 l/ [% Q! b- M& @" d
+ o$ b7 `6 E5 y! A     1  2012-01
1 f6 g% C( @6 [8 x0 s! r+ T! s0 q& j) J" ~
     2  2012-02) w& Z, g3 n7 ^5 T& `

2 l" k. ^, J4 t5 M$ N& c- o" d     3% S4 ~4 P1 v7 h2 M4 O" ]
5 m( {$ e3 b, \6 H% B
     4
8 j# m7 A- ?& w" \6 f& r4 ~5 {6 X  x/ V) s0 L. i
     5  ======
+ r; E- O  d5 Q- P: K9 p
0 e+ |" u6 s" ?6 J- Q[root@localhost test]#! k4 B6 a8 v% v# _- Q+ A) D
+ R# l" T6 ~& J# J3 k- a/ ]
& E, S" ?, o5 x5 N/ y
实例四:使用here doc来生成文件! \0 w5 \& z0 L2 `* x
3 S7 z- @/ M1 |* _. g
输出:
) A" [/ ~7 Q3 p/ x
4 u7 K8 N0 W2 l6 ~% S$ W# K[root@localhost test]# cat >log.txt <<EOF
5 m) R! D' ]8 ]9 ~! i
) k/ B8 j8 V, \- i> Hello
! B% O3 g! M- P0 S$ v0 j
& u& V, O4 o8 ]" n> World6 S$ W" L/ h0 c0 u* ~$ x4 O4 B
7 Z4 S' `, d5 O, a+ Z
> Linux
' C$ g2 W8 L9 V# B5 k8 `
- K1 Y! g$ \) o: Z( F, F% D& \7 c& j> PWD=$(pwd)
. }- S+ E% F# W$ i4 `
  z+ j8 T" d- l9 I' f' y> EOF- J1 E/ e. R! r8 |; J7 s, b# Q

6 p7 g' c7 b/ j% t3 e; y[root@localhost test]# ls -l log.txt , p8 |5 }- U8 C/ |

( }) [% @$ z: N-rw-r--r-- 1 root root 37 10-28 17:07 log.txt2 o# t( r" L/ U; f) G- b

& q( v3 n9 v, h[root@localhost test]# cat log.txt ) V5 I+ T! M# c1 R
3 Q' V) H2 X  o" G9 N% M2 e
Hello$ B6 J( X+ ]8 A9 F. h) s

9 c2 I4 K2 t2 d0 q6 ~8 i* u/ {World
2 N% S* K! R0 d7 y0 H- `
3 A0 N6 T+ |; P' PLinux
1 ?5 f7 R+ Q9 S2 N) r& p& S1 H+ X- h, n$ ~. Z% M) q) Y
PWD=/opt/soft/test3 _7 g2 J$ [+ j7 M

) F) L/ B5 K0 d6 K$ d1 k[root@localhost test]#* z! _7 Q3 y0 }  q
$ Y4 B- \, }% D

# g4 A' Y# i, E" _6 [7 \说明:
/ R2 F  L6 D" v" t  D7 J# q7 ^1 J! @! O% r( I, L. k
注意粗体部分,here doc可以进行字符串替换。. I* E& T2 x6 I' v( r" L2 I! X# a) G
! I+ b1 s9 @6 H* M

( q3 _- s* b4 U备注:
! h8 j$ O: e* ]; @, r8 v1 D" @
: q/ H8 I0 `# v; w4 [( p+ \# Btac (反向列示)
( f. i/ _* z. P# r  ~; a
  t: G  ~! o) C8 A0 z$ O8 n$ a命令:/ I* A; }% {0 O( X1 n

3 G4 ~9 d+ W4 X! m* b! b1 [tac log.txt
7 v2 e; L4 R+ K2 ?& H
, R& m& D9 ?" n" H6 [输出:
. K5 C5 [3 ^* Q$ l* K# y+ ]
' s  o# `5 Q* c[root@localhost test]# tac log.txt
2 I3 \. y. R" u+ N2 a9 Y7 n& j3 ]7 I- S$ o
PWD=/opt/soft/test, D8 D! K2 Q2 F

2 x% A9 b$ M! x% Q1 Z; X7 fLinux9 R- d, g7 C" e, q

& e7 @9 M1 L. Z& Z- b5 EWorld
, C3 Q) B. q6 J; w% |( K8 d1 {  g# [5 G7 k# r
Hello
7 J  ]- E, b# t; E; E, ~  b' z5 I5 R2 N; \' q: f) |
说明:5 G& U& L9 k5 s, E# R& X+ n9 t9 N7 I
9 h# ~/ d9 @- H$ j" W; f
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!; k% l) n7 Z. j; v

  Y( C( j5 X! ~
$ M, [# }- Y! z0 ]
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 / y; ?0 ?* C  J: ^' c8 P# p) _& E

* g) |( }7 o6 M谢谢超级版主分享了!
发表于 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:521 i( R( v, L$ ~( q) b" w# |4 ]) E! v
我只会cat /proc/mtd

: }0 D$ p' j% P/ L! o$ F多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
6 x9 W- ^* ^5 I, D" ^/ Yecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
* z0 ?. n; ?7 A9 Z) r* [, y# M# Uecho WScript.Sleep 100 >>shua.vbs
. N% e& T% _( Y5 _; ?! Recho sh.SendKeys "root{ENTER}" >>shua.vbs
% H' B+ }" r4 B" \% ^/ O# C4 A! vecho WScript.Sleep 100 >>shua.vbs
8 p; F) Y) G3 necho sh.SendKeys "Zte521{ENTER}" >>shua.vbs4 O' j- j7 S9 g# {0 j( j: ~. h: p1 p' k
echo WScript.Sleep 100 >>shua.vbs2 t2 T& J: |. j4 A  a5 h% r/ j) e
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
2 b* Z( d& A* a/ T2 `$ e# [echo WScript.Sleep 100 >>shua.vbs
  N: ?. a' x/ D' f1 ]1 M4 g: wecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs9 r6 n  u- i* b8 Y! D1 D
echo WScript.Sleep 300 >>shua.vbs9 k6 Q5 R4 ^2 c$ ~( Y
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
% F( @% p% Y3 n( zecho WScript.Sleep 300 >>shua.vbs( g: @2 ~; ^/ W& j, ]
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
* }  Z! X! u1 @5 yecho WScript.Sleep 300 >>shua.vbs" ~. C5 S2 |+ \1 u4 }  N$ I
echo sh.SendKeys "sync{ENTER}">>shua.vbs2 N; J0 d1 F. D) i2 R* D0 K  \
echo WScript.Sleep 1000 >>shua.vbs' |3 L: N0 ^+ X7 Z
echo sh.SendKeys "reboot{ENTER}">>shua.vbs
& P0 f0 o; @4 {! ^. x& l' ~% Cstart telnet
  o. B9 N' Q, x4 Ecscript //nologo shua.vbs
  }! L$ Q8 A) Idel shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs0 u; y9 \( s0 K% D. O& ~, ~
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs- |! x. D' ]6 e) }" [) k* g- p
echo WScript.Sleep 100 >>shua.vbs
# D& ^6 i  D! Aecho sh.SendKeys "root{ENTER}" >>shua.vbs+ z, B( X& L$ r8 ~
echo WScript.Sleep 100 >>shua.vbs
" C) z8 |. Q4 v; u! E6 |, Becho sh.SendKeys "Zte521{ENTER}" >>shua.vbs
' k+ o5 B) [. R, i. Z  U, ^echo WScript.Sleep 100 >>shua.vbs4 K9 V* s0 Z4 [9 R* O& j9 R
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
, @) G0 s) i1 C  R: W9 ^echo WScript.Sleep 100 >>shua.vbs
* d8 G4 N+ N0 |echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs- ?! N2 v  d" V! S
echo WScript.Sleep 300 >>shua.vbs% ^) a" F/ K* s) C. N5 {
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
3 F4 P/ q/ |4 @! f( ~, Mecho WScript.Sleep 300 >>shua.vbs
! m/ I& ~& T0 s1 P) H9 mecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
4 s  f, G! T& u8 Lecho WScript.Sleep 300 >>shua.vbs1 q/ O  T) T4 C4 F3 h" _4 i$ H
echo sh.SendKeys "sync{ENTER}">>shua.vbs
# e* m0 z( c9 v/ Kecho WScript.Sleep 1000 >>shua.vbs5 U6 }& A  D" U
echo sh.SendKeys "reboot{ENTER}">>shua.vbs4 E0 l. R  D# B+ q
start telnet
/ @5 [) T! o% \. Pcscript //nologo shua.vbs
1 M: i' q' ^# L1 l9 Y* m' Tdel shua.vbs
8 Z' k  F. ?# t$ m" K" }2 O9 D" q: G

4 c* k# i1 r. F* c2 h, V  ]% [怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

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

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