找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7704|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 1 v8 m, F; j! I' T+ q' U5 c/ Z2 \

, H) h; w) [6 l& ]; Y1.命令格式:- v- ?4 C, j+ [1 J3 c; c& y

' ^4 A6 Z! a$ Q' t! L# G" [cat [选项] [文件]..., L8 L6 b3 z7 [/ `/ K% r, w
% y2 l, `) W& T$ C" J
2.命令功能:% p. H0 D1 w) k' a( r
7 J; W& r5 c3 a; u0 h. h
cat主要有三大功能:4 F8 W0 e: J7 T) f8 Q2 a! t
7 f2 z$ ?" z  V, j9 O  ]# ^( t+ V
1.一次显示整个文件:cat filename" K5 c5 q5 e( ^. _0 T* n
# n, d( p, o; I" a4 O# \3 B
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
% l4 r/ Y/ E3 v1 Q# Y' q- {4 [& H1 n  Q1 @3 ^
3.将几个文件合并为一个文件:cat file1 file2 > file
* P# P2 a. v% E. l$ A9 o, b
6 k3 i) A# ?1 Q  J- o% y, q3.命令参数:
0 ^8 Z$ h+ Z+ e1 `* K4 o
- z! |6 X* C  E8 ^; F5 G-A, --show-all           等价于 -vET
7 y6 X+ @  _. C. ^  K$ c% _* R1 b0 S% _: j! r/ X7 a3 U
-b, --number-nonblank    对非空输出行编号( |# D* D4 E* N2 m2 @5 p9 Z, i
1 K) _( ~4 \6 e* p
-e                       等价于 -vE
6 w. g, p+ O6 g- n% D3 h7 j+ ^" L2 M" H
-E, --show-ends          在每行结束处显示 $* g5 D. j3 k3 t! q) G% U& }$ `

1 p; c1 T  k6 k5 i7 X-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
4 a) b  J. |) S' E+ N4 R( q9 Y
-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
: C* B" z8 T) `+ r
2 m" @3 v; O. {1 ]6 c-t                       与 -vT 等价: S' D) N. ~3 c2 c! m- [" @
. @7 v5 O! f, C; \0 G* W. l
-T, --show-tabs          将跳格字符显示为 ^I$ Z" Q; H! n9 O$ ~6 }& B

# Q# F* W( P( D-u                       (被忽略)
- D7 e* z  d. D/ V; j- \8 m6 ?
+ C: T4 Z3 s3 Y! l/ A" A4 A8 i-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
' W) {6 E0 r7 @& b9 K8 O& T; `* ^: ]( ]  `  ~" n) e
4.使用实例:
+ P) Q# }  M2 ^9 A+ q1 N
6 \6 S$ _8 T) ^' |' T实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里) b( V/ g7 G/ i% r

8 Q! e/ b3 a' v0 x命令:
8 s% W% \8 x9 J8 J, h
7 z) `* ?. [$ x8 kcat -n log2012.log log2013.log
; {& a0 F2 e8 n0 `8 s  f0 N4 x8 D4 h2 ?; R3 ^
输出:
7 N( y8 ^7 t1 D& p& G
5 v2 |7 ?6 L- X[root@localhost test]# cat log2012.log
8 M8 T8 z, F2 ~, P2 [
! H1 D( x: P3 A0 ~4 J! H2012-01# j- t9 ]/ Y( U
6 k/ ?0 }0 M1 A" O( Y* d
2012-02
6 C5 L. d( [8 t" B  }* S: v" y4 ^! D0 z
. P% w, c( r, C0 Q% G
  I$ }5 C0 F3 L
======[root@localhost test]# cat log2013.log 6 k' z4 k! g, S0 a$ q

8 v4 `$ c9 Z4 t- e" _2013-01
$ c1 ?7 @4 R! p( z9 [; U- {
; l8 V! g, A3 H9 a0 S6 [9 _0 Z7 a5 U2013-02
/ T( ?6 @( f9 t) y% Y2 y$ i% O6 {0 P5 J0 p0 Z

3 V0 q3 h4 i9 |, \
- V4 G3 B) P* ^2013-03
% ~9 Z& r0 c. U: x3 k
9 g# q0 n; c9 Q: m8 [======[root@localhost test]# cat -n log2012.log log2013.log
! R+ W5 ~: S2 a3 o% v( g' B1 Q6 g6 k& B2 {- r
      1  2012-01
/ h( r. `& F/ Y  A, c  F/ H  B
3 d4 [$ \: P9 h6 a7 D      2  2012-02/ U  m7 G& W2 z

2 `3 s6 h: t; p. f      3, u, Z; F. q3 A
( `& S+ q& e! N7 R( k. C6 q
      4/ [! o' {  k6 J# ?- r( @
  ~2 j. D: Z9 k
      5  ======' _3 _5 r: j' O! Z

6 |8 C) i3 G" k7 B! Q      6  2013-01
1 I9 v6 W. S" ~9 v$ m
! C  p* ~" k% s" a5 M, t/ O: ^      7  2013-02/ _. r( O! x6 w, s: r

. R- |# ~3 Q# i" X. s( e      8* q  S8 I. k/ z) C/ q: A
5 \3 \5 [) x; F" `0 T* G3 V2 l
      9
7 v. `& D2 Z! P) _$ h) D
# Y( A; r. O4 @% j+ V$ O: V     10  2013-03  Q3 `" ~) X3 Y/ _% X
  n% J+ g' @6 Q! s; ~. @
     11  ======[root@localhost test]#- |& l7 d( U$ L; o- q
4 x, b+ }7 p5 E2 j6 M6 ]$ W) l

$ P# o% J8 r2 h, K$ |4 }说明:! L3 D' J7 L4 N4 d4 [' i& }4 N
! h6 h+ o, S. q; N
, r3 j5 {8 L8 `6 X, `, ~
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
2 H/ J  @/ ~0 J( p" d3 j: j' G( W% t: X
/ F5 ^: G6 C" R* G4 b命令:4 G) ^6 i/ r. e) Q! S8 Y% I* L, z

$ J5 E# u- [: J" }) Pcat -b log2012.log log2013.log log.log
6 Z; e+ @* b6 _! G7 L. V7 ]& |! X
输出:. I- N) n! `1 Y# M8 W' A

6 b7 Y1 Y% o4 @( Z[root@localhost test]# cat -b log2012.log log2013.log log.log
: M! p8 f3 Z- O' u4 [: t
& x7 b9 O  e$ k3 Y6 Z     1  2012-010 \6 `, }/ o; Q6 P/ d
# A0 v) ^8 x) C; }" s
     2  2012-02
& e4 G1 A6 {) [6 N" o) ^$ [
8 Y( F* J/ `. V# g" o* K
9 f0 c: `- K' e. @$ _/ M  N. z% C- E
     3  ======) y4 Q% n+ ]  e2 H5 ?, i! d

: u* N+ ?6 o& {9 n( S, m     4  2013-01+ x8 F* z; f( e; x
( m9 U2 ]! b0 G5 H9 K8 y( t
     5  2013-021 a( N4 w* E8 x4 H- C
: O$ |& z* V1 T, O) ?4 t) q# S

8 _" ^( P; M+ w
; w6 t1 F& a. e2 s% W     6  2013-03- k5 T6 H  `! V, X
) M! [+ s& q& l; c
     7  ======[root@localhost test]#1 X- F$ t7 d2 U+ [5 T* q
  ]" x# w2 T( T

3 |9 G  e) o9 ~. v实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
  |( j9 Z1 B& X) B
7 V1 [0 ]# j) |1 j: n7 z命令:
; u! ]+ b) T/ A1 c5 C! U( N+ D& Q* y
输出:
# Q) }8 M. E" V' t# ^
* ?3 c1 ~" X$ V5 g2 t* ~. b[root@localhost test]# cat log.log
: H/ Y4 K4 C% ]/ b5 _% z& J" ]1 m% s
[root@localhost test]# cat -n log2012.log > log.log4 w1 q2 m2 K. G8 S

& G3 J1 X' C' E  ]! K1 {& z' k; i[root@localhost test]# cat -n log.log ' h, `; \' s. N5 p/ I" A- G

3 C& J3 `4 }7 d& K0 m5 L8 v     1  2012-01
- ]) l  J8 C; ~5 h. Q: X+ F9 J' i6 J: C: o8 @
     2  2012-02
2 U/ C' S: v0 @, C7 ]* n: j: B, v- J" w* y2 c
     3/ S* f+ I# W: v2 [' T* @

- F+ p5 g$ h2 X! W/ o, u     4
, R: U: I% M% {& q" p0 Q
* h5 ?( [. n9 q% v+ c     5  ======6 O, L& ?! Q. ]( Z( [$ V
. E7 [) c/ {0 ^. M# Y  e
[root@localhost test]#7 S7 C0 g0 }5 l! u; n* f
6 c/ G: _6 y. s4 Z' F1 r) L# ~

& N% X1 I/ g, t  x实例四:使用here doc来生成文件
4 ]' |: p* x2 u1 ?
' P+ ]& v1 R$ Z8 G输出:
4 y6 R1 `4 {% e& W3 ~' e4 L( o
6 x9 e* ^( z9 }* w) t9 x8 v[root@localhost test]# cat >log.txt <<EOF/ q9 y# {/ H1 ^3 K; \

) Q3 ?2 S8 Z! @! U; F> Hello& S2 I4 p4 o  t7 Q
5 M+ U  ~3 B6 I0 |
> World
$ b9 o% D( z& _$ y' `$ V1 o8 |  s+ W! _/ A5 A
> Linux- k+ ]) c) Z* N1 ?$ V7 r
& f7 Q- ?' \$ {' R) n5 n' q. a
> PWD=$(pwd): U2 Y. ?* W2 r
; ^+ e) ]0 ]! H* B( k0 e
> EOF: p2 V8 {3 t/ f& D2 {3 L

' X& A2 r9 p1 r& h( e[root@localhost test]# ls -l log.txt / G3 v- I. C. R; m

" I5 h, y! O( ~, ~2 }7 l6 ?-rw-r--r-- 1 root root 37 10-28 17:07 log.txt/ J" F: ]/ O! @3 Q% w# m  f
/ u+ o% ~4 a  G& P4 L! Z
[root@localhost test]# cat log.txt . q4 z# O) f& s8 h$ A9 V  a
) h. M- G/ F, O5 b! m
Hello
, m: ]4 w3 _5 A, H
* H  e( d; P+ l' ^. q7 g" _/ xWorld
0 S! Z& l* v3 \* P1 j
$ w/ H$ U* z0 x" e( fLinux7 }& m0 J. K3 u& ], s' V

  \+ {( m* k" `" j3 q  QPWD=/opt/soft/test
- O# ?5 A6 r/ L" X5 F! F; k, [. o3 A* o
[root@localhost test]#
' U0 l& c! f% H/ A9 `
  ~4 i7 o6 D  o/ O
% E1 z! x# t: O2 ]7 F+ O说明:
$ x, {1 Z: X5 H- Z
# Y) D; ]. G; b$ h$ ]注意粗体部分,here doc可以进行字符串替换。
6 }! W& d& f0 E# \' t* U, M
: m- {/ @. o) O
; L; B5 F: E& ?8 g" {/ X备注:
2 X1 [9 M. b! @$ b. @
" M' `5 l6 j, L6 Z/ y% n7 m& w& _tac (反向列示)
; I3 @+ \4 ]( Y* D" Z! X
% z+ Q9 j* l( Q3 X! ^( R& O/ q/ e命令:. K5 G- f3 y) ?9 Y( x

: W0 q) m3 \# `tac log.txt$ g/ v. j3 @  |% Z$ n

; }: A1 N" u* m$ [' f输出:6 o% F8 b) U) x4 v- Z1 K, F

3 y& b% T6 R$ K" }' y[root@localhost test]# tac log.txt
5 Z# M& F. ^6 L8 `1 _, u0 v4 S0 p2 L6 M0 b5 W
PWD=/opt/soft/test
, |$ M! b" x) _  k, K4 {. p" K2 ?" K
Linux
& Q/ S  C# Z. G1 o' m  R
9 x6 R& ?4 L7 H- qWorld, y. u/ ?# W3 N7 Q+ T- H
" ]0 m5 @: O# h2 M- g. s" j
Hello  u' H4 }; f/ y7 T

' @9 Q4 y8 m" Y: W说明:7 M1 E; ^. {1 ~( K( d
0 p! X- u% M0 D
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!# y! d$ \% p# U% D5 `& O; Z* G
0 F5 Z$ K, A6 d/ Z
% j( Y& c2 V6 n% E! `0 J
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑 ; _6 a) I7 ]+ w' S
7 e8 w! q8 E2 P9 {0 P/ i' P0 T$ ]* Q
谢谢超级版主分享了!
发表于 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
; _  ~8 n( d1 V( [3 \3 G我只会cat /proc/mtd

; c# I0 m8 @& P8 T  g多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs  b5 s( K  {1 q. w
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
/ l; ^8 k% O. y2 j% v& Lecho WScript.Sleep 100 >>shua.vbs6 W! L0 L9 a& e4 G0 q7 Q
echo sh.SendKeys "root{ENTER}" >>shua.vbs# ~1 E8 m, d3 ~" Z: C* i2 Q% L
echo WScript.Sleep 100 >>shua.vbs! P6 X' |8 N6 P4 A, C
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
( V5 A0 `* W% @1 u6 x8 Iecho WScript.Sleep 100 >>shua.vbs/ S9 T( Y. @0 Q
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
6 U, A( x1 G: Cecho WScript.Sleep 100 >>shua.vbs. d( V( i+ H  {2 ~" w8 j. ~. M8 F
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs0 Y3 K: P8 g4 u$ A8 p
echo WScript.Sleep 300 >>shua.vbs
# }2 |" W# n- b; lecho sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
. ^( k, b6 P! J0 E- n4 s1 }, k6 Gecho WScript.Sleep 300 >>shua.vbs, s. k0 d6 l3 s- u3 K/ H
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs) Q, H8 ~1 r( e6 Y" `
echo WScript.Sleep 300 >>shua.vbs
- I4 f) [( K5 H1 l! }! Becho sh.SendKeys "sync{ENTER}">>shua.vbs' U) d5 r: ]* d9 R2 Y% z9 P0 h
echo WScript.Sleep 1000 >>shua.vbs
3 E3 D3 R$ }) q9 d, c$ q/ Z& fecho sh.SendKeys "reboot{ENTER}">>shua.vbs. U* c& g. v+ g2 @. I  Y
start telnet
  y* w; M0 E+ `cscript //nologo shua.vbs0 M8 r; g3 x( l$ r1 j
del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs' Y; b! r4 X! p
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs# B. b$ A5 S( W7 j
echo WScript.Sleep 100 >>shua.vbs
* Z8 {9 _4 c/ p/ \echo sh.SendKeys "root{ENTER}" >>shua.vbs+ p! H' ~2 E: m- F3 v' M
echo WScript.Sleep 100 >>shua.vbs3 ^' W2 H& e$ E1 I6 D7 ~
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs# S, q% f, I, T3 ^- p
echo WScript.Sleep 100 >>shua.vbs
* Y% s; e9 [9 d. i9 y3 uecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs5 L- _, ?( Q- n
echo WScript.Sleep 100 >>shua.vbs
/ X" K" v' ^3 d0 ?echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs8 g$ w/ z, b; O! a$ |( a
echo WScript.Sleep 300 >>shua.vbs9 T% c% l( Z# z$ ?  d8 r
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
% a, _1 t. Z- f: l6 K" v! P* m' recho WScript.Sleep 300 >>shua.vbs
8 c! L+ e# K' I; o4 j1 X% aecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
" H4 t8 m# R. c$ Pecho WScript.Sleep 300 >>shua.vbs
$ n' [3 H* Y( l' xecho sh.SendKeys "sync{ENTER}">>shua.vbs
: s5 ?; q- U$ I3 |, t; aecho WScript.Sleep 1000 >>shua.vbs
  k' B) v6 v9 p# w& N2 o, q1 W* _echo sh.SendKeys "reboot{ENTER}">>shua.vbs
* x* q" P9 A4 N8 _start telnet
) k6 \  }& ?2 Zcscript //nologo shua.vbs( S( O" @* g/ e* C7 x7 C
del shua.vbs+ K4 d) w' B( F/ x0 c- z
  s5 c1 |$ `  z5 g9 h7 P

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

本版积分规则

关闭

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

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

GMT+8, 2026-2-16 08:25 , Processed in 0.034117 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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