查看: 9183|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 |湖北| 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
7 x7 P5 ~! v0 _2 @* S& ~) W, z0 M
1.命令格式:( w8 }6 b; c0 g; _
1 m; E# d0 u4 [! J2 n* G
cat [选项] [文件]...
- o7 P6 C! p7 T2 t2 d) T' E2 h- ]2 p6 O+ d  T& s8 a3 I' s; [
2.命令功能:2 F' Y0 G$ M* {2 m

8 ], d* o- Y7 T7 Jcat主要有三大功能:
" Q+ V% V& u- W' {! {8 `. R% }) i, @, W" g4 ^* V
1.一次显示整个文件:cat filename
  e. G: v4 Z8 ?% ?0 G7 f: w+ d; H4 V
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.: a4 ^( C" F: j
' x3 K" N: Y* L  m- X8 q- D
3.将几个文件合并为一个文件:cat file1 file2 > file% M, `1 I- h# Z3 W
% M5 M  P4 p; D
3.命令参数:- L0 X1 |5 N+ k7 U1 d7 e6 @

7 M; _( V2 e6 {-A, --show-all           等价于 -vET2 Z: }% k6 S+ d4 a# ^- L( Z! C
- F# Q% F/ i+ k
-b, --number-nonblank    对非空输出行编号
# o' k7 X( E6 T3 |
4 e5 N: _; w; |, c& J, ~-e                       等价于 -vE
$ g* K% n' O7 H8 {' B. Q: B# G, J3 p  `5 U: o) @7 [
-E, --show-ends          在每行结束处显示 $$ E" @; Z, v/ f# g% `8 `
7 [" R% ]" l0 K# O' A( ?6 W: [% P% P
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
  b9 Y( S4 B. g3 C- w
/ n: z) y" c# q; f" {* F4 c-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行 9 j* s; v& g7 P% v& u3 a  u* s- T

" n6 T" f4 {* N' a-t                       与 -vT 等价3 \) F& `" |" U, K
; K) v, P6 V: D
-T, --show-tabs          将跳格字符显示为 ^I
3 z& O, e1 E8 `, P6 O' P; U/ }! }) n
-u                       (被忽略)1 Y( r1 F8 K: J

" D! H* A" Q0 D$ i* V& h-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
8 G4 N& p) u/ ]0 A
' h& J7 |/ L7 e, n5 a4.使用实例:% r2 J( G! c' I- @

: h; U0 L5 ?4 p, A% V  `/ i; _实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
7 g' |8 S$ `& z9 x; m6 M
2 k6 a. B# f' A7 a命令:( c+ |  i8 z0 g8 @0 w
# T9 O& s* O7 q' F1 P2 _9 v
cat -n log2012.log log2013.log / \0 h$ K4 K$ s" G' ~% c% x

! s$ C# x% W# j# b! B输出:  G; i+ [8 ^, S% N1 n  j. R
% x  I8 R8 X9 u3 i. h. O. O4 U3 J
[root@localhost test]# cat log2012.log
7 {- ?7 S+ e; {. |! J/ V* N* |1 V. l9 i& I1 T' r7 h
2012-01) Q2 b. P1 {! j5 W' v6 o
9 M- F' B; `+ n% u+ Q. ]. s
2012-02
. N! P0 d5 P' k/ S
6 f- |, _1 Y9 }* d) X( A& ?; K9 O" p+ i: o( {
6 D3 X3 F! J" I0 u
======[root@localhost test]# cat log2013.log 9 R( v* j7 [+ o) r
8 C0 N5 E: k* Q8 e3 K! {( m
2013-016 i: n* k) g. U
3 w' Q! T3 R( e
2013-02
$ i( o3 g" ]- `) Y7 @2 S
/ u% M* f  d( o. z. @- t3 b/ H
! _5 j0 y! e! A, ]* u8 e% P
5 l3 g! p1 p; N( G; H2013-031 a! q* |, m( D- p5 O
0 S- ~5 {5 [# B% P( @' W
======[root@localhost test]# cat -n log2012.log log2013.log ! o, X. I- l7 E: b1 o1 L
0 F3 R; D: v; `4 n
      1  2012-01( c) k4 _( g6 ^/ r. U* m
  k- B' c- g! n. v
      2  2012-02
" G1 U5 O/ u9 L
) p" X$ t' D, G+ p( T; C      3
9 D! t1 i* I9 \
4 l/ S; Z; }) P% t      4! \3 g/ m/ j6 C
# m  T1 ]' d  N& B) w% C7 i! d
      5  ======5 u' S% \( ]1 Q; L9 j

! h( l3 }8 Q2 ~! x" ?  G1 C      6  2013-01
7 v4 X, K0 L. n" D3 Y+ d' A) w; Q4 U+ Y- [8 Y
      7  2013-02' ?' s! w, l- c/ x9 [0 z/ f

4 H$ Q: _  f7 }( k$ h' m# z      8+ ^$ x; d8 i4 w: ^' K5 |, ]. p

2 A' ^# w2 V) }      9
( i4 z/ o* l) H' f: Q- |- d8 x
( v/ p6 q1 R. b, @) h9 Q# m2 _5 b     10  2013-03# _. ?+ ?6 y# u+ e# p( m
( {# C9 W* ~. z
     11  ======[root@localhost test]#: ^5 J4 y" m0 ~7 j- i, A
7 \) B, ~3 i- C& z6 v2 a
9 m, Q9 N5 D3 q$ B5 Z$ t
说明:, e! F+ B/ t- z' S4 s) t% R6 u5 _
- n( s+ V1 o# ^" p& C; c
1 k1 Y, {& a( G! x! N
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
' }! R- q3 F% d( c- U9 n: ?1 Y- {9 p9 L, R3 v
命令:! o8 Q# b8 U5 k/ [" d0 z0 {. k( r: P

' `0 M8 b. J# N' M9 M, Icat -b log2012.log log2013.log log.log2 {2 q" U# ~$ h+ k1 {' j
0 ?7 u2 t9 [5 W( X, d
输出:
: ^# |6 \: }9 ?+ T7 Q9 x- |6 x% _9 i  {) x
[root@localhost test]# cat -b log2012.log log2013.log log.log
/ T) ?1 U3 O. [, p5 \; J" A. \
8 L; x9 Y0 t/ z* G     1  2012-01
' N) N1 u/ ^; Q5 r4 x, N( i* T2 L' d# z( f6 D; v' A
     2  2012-02
2 }  |5 l/ j  I
# r* q- a& u# X1 o$ A7 {6 M
5 o' M! S, a6 y( q; w
6 c, ~- N) M& e* b5 }8 v+ Q3 ?2 E     3  ======
: I+ w: O9 ?7 `# Z( f9 G0 x7 T- _: D) D1 V! ]
     4  2013-01
# @! o( A! C. r& i' a" N- y6 u- G" D8 j. B5 m6 S+ R& o  y
     5  2013-02
. `$ W+ A) y3 Y
5 X3 z, @, Z' Z2 p- K; m- S+ v! \) y8 C' Q" T" L, T, m
4 P, e5 {) |# p$ G2 G1 W
     6  2013-03- E7 Y' Q1 @7 u1 i  m  f
; X$ i9 k! M; ~$ z
     7  ======[root@localhost test]#: h0 {9 v# d8 w
) S/ ?2 o; }* M; O  v6 ^
8 d# ~+ @. r, w- |6 e+ F% [9 ~
实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里
, V1 U0 a$ [0 K% o% I: m' X. O- M( P' @
命令:4 r  [2 m. A: g" ^' G% p$ @% z0 ~

! @  z7 V! q* e0 X( V  N2 W输出:
. \4 d8 z# |5 c+ N1 V" w1 R: A6 p7 G8 N
[root@localhost test]# cat log.log 2 Q0 U. ~* ?+ u* G) V

3 u# p) U, D, ~6 ~& ?[root@localhost test]# cat -n log2012.log > log.log  I+ Y3 Z$ R- A" _- b

% k# \( ]" W/ c- Y% ?[root@localhost test]# cat -n log.log
. p! d: u/ U, k3 A4 D8 {$ n, V: q2 i, K) |% \- F1 M$ j2 A4 y0 U
     1  2012-01: c4 i) c2 @4 T- T$ J: \
4 Q* N/ W, c! n4 ]+ N
     2  2012-02% @! q$ v: ~! L) B/ v
5 ?  R; y2 K) L3 Z  e
     3' I+ B- T: ]) M) E! v/ S

) S2 S. \$ Y6 F+ S     4# H. ~2 O" E( ]* ?7 d- k

: n5 W& M. q6 H1 d' D     5  ======
: r8 q2 t0 d7 o6 i% `) g) L# w
. B2 @& d/ ]: ~+ {4 d[root@localhost test]## M7 R( O  C# l: w8 w0 S7 f. r+ A* K
3 z3 p9 ]5 U  o. v

0 x9 e' l' q$ ]$ U" q实例四:使用here doc来生成文件
0 J9 x  R) u: I$ C, E+ @! b4 f. e' c3 k7 G1 W0 a  \( N
输出:' C3 b+ H( G2 p- T8 Y
6 {; g0 D* ]" }  A; w
[root@localhost test]# cat >log.txt <<EOF! f2 O, a* m9 v1 u" u; l+ T0 h( o
$ E1 \% f, b" s" m
> Hello) K6 q3 m; t  U/ }
% B5 j* z& H) n* x0 l* W3 ^% j- U! `
> World2 O8 s' b) U4 r5 [2 [! P1 g

& D- {; P4 a$ z; }4 [5 |9 A$ R> Linux! e, n$ Y: ]/ R  @; R
  q3 p4 g0 @0 O/ Z0 c  i, J1 t5 G
> PWD=$(pwd)
3 L" S  d* [, \3 t/ K1 I: \8 u" B" e* U- L
> EOF0 |2 i8 m0 L% G; k1 C9 j, S: r

" w. `! k, L( i& E[root@localhost test]# ls -l log.txt
# I8 p/ \. A$ ]4 B$ u
- k! c( W3 G) Y- I, C' o-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
. j# }* F; G( b. N5 d6 o: |
& X) d% {- Y1 _7 p' M; ]9 a! c/ C[root@localhost test]# cat log.txt
' k3 Q' X3 c( U" i
, T3 D9 j; {. ^/ ^) JHello3 n6 [; Z8 I6 q& u( u2 G) T
1 O% T5 m% f, R  e+ \8 ~6 P& `1 v
World4 s, V) @7 @+ I, j7 G' p% O, h

1 {: m) X0 d! W9 WLinux7 e8 n% H# a+ r4 j& ]/ [- Y- r2 _

/ j+ L% E+ D8 a0 \4 tPWD=/opt/soft/test
& F: H1 D2 L8 s4 Z4 c- ^5 a# i
# u( h9 D. b) I7 [' Z  W: {[root@localhost test]#2 U/ x7 }/ U: l1 P- K

& w* m9 v8 n; b5 J. L
3 I4 h) B' i/ e: j. }  W说明:' P3 u" p6 Z( B$ E

: F+ L5 [( {! \注意粗体部分,here doc可以进行字符串替换。2 v+ q2 x' O3 s% C  \8 l; H

* w- `' X* T9 S* B5 D" x: c  x+ h: W0 N/ u/ a+ P  \* Q
备注:
, Z+ v/ Q# `1 F7 n$ g3 d' X3 u% U( Q  v; q
tac (反向列示)
: b5 D: B7 S* J0 @* {
, e/ k' h8 f% B0 u7 T9 d命令:
* f) F5 Y2 K% P+ j/ G6 _5 o
* |& X% @9 _# N! P9 r/ [tac log.txt
- {. r# x) Y- M* |! ^
8 I: i/ M& L3 w7 Z' v输出:
  u0 F1 q6 \( E: |
# t2 x$ N" ^% J: R& ]' ?* F[root@localhost test]# tac log.txt
7 Y4 ]8 p& K+ F+ x  _2 u' u
" a6 e9 A* V: A/ QPWD=/opt/soft/test
, l: W: F2 O, b( @% ]% [# M0 K6 }9 q2 w' k
Linux1 c) v- ^8 A- {0 J
9 }3 M, i) G9 R6 V  ~4 i1 J' g
World) `" l* q# B; A  Y' Q5 b$ M, P/ `
' {6 r: t0 i% |) a
Hello
3 Q6 E" ?/ L$ j: `0 W1 I# _0 ]) E! x% I
说明:
! v% f( @% a" T7 F/ E# z" {
: \; B) V' V  {tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!; z3 D3 E' b. Q3 h
! X. g. s2 _9 ?4 h) F: i

( @# ^. @2 N$ I" W9 _* C" T
发表于 2018-11-10 05:44:55 |山东| 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 |中国| 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑
, }7 b. n  `8 X8 m) I' s+ g0 J0 ^5 o! P7 Q8 I( m" j( b( X* `
谢谢超级版主分享了!
发表于 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:526 U! W6 d7 U8 ?: m' f6 X* d+ U  Z! t
我只会cat /proc/mtd
* A6 t: F/ \4 r- M7 E
多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 |河南| 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs1 _2 Y9 c" x; I7 Y& w) H# R. {' |
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
% i& }& }! u' }echo WScript.Sleep 100 >>shua.vbs
8 H1 ~" A9 |" v' p) ]echo sh.SendKeys "root{ENTER}" >>shua.vbs  G- d4 |! H0 R
echo WScript.Sleep 100 >>shua.vbs9 K* Y4 k% u+ i: `  l
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs
6 R; m$ j1 W) j; Zecho WScript.Sleep 100 >>shua.vbs
! q$ f2 E+ a( U4 wecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs9 d* ^  D4 n" c: h) U4 v
echo WScript.Sleep 100 >>shua.vbs
+ {' D5 x2 z; Z! iecho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
( ~2 @6 W: v6 z+ wecho WScript.Sleep 300 >>shua.vbs& [. w: W: y2 {! N" t( K
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
/ w: l' V! M9 uecho WScript.Sleep 300 >>shua.vbs
8 w  \6 p# }& y9 d+ Pecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs- b7 `, |9 T# C' v
echo WScript.Sleep 300 >>shua.vbs4 q1 `5 |$ ~/ S
echo sh.SendKeys "sync{ENTER}">>shua.vbs
1 w/ j; l9 @5 @, P8 Jecho WScript.Sleep 1000 >>shua.vbs
9 {; q# a8 e, M, F! y( m0 U+ _0 Lecho sh.SendKeys "reboot{ENTER}">>shua.vbs
' U8 `" `, C0 Y( f5 kstart telnet
# M  I4 h0 r+ [' q( P8 T; H+ Fcscript //nologo shua.vbs; A2 N: }. G$ F/ m. u" L
del shua.vbs
发表于 2018-11-16 19:15:04 |河南| 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
9 G1 Z/ N+ o5 Y7 D" G4 b; \' \& W$ Xecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
0 z8 B; b- ]4 o8 h& w5 m5 `echo WScript.Sleep 100 >>shua.vbs0 h2 Q& v  |+ B
echo sh.SendKeys "root{ENTER}" >>shua.vbs
/ R- [6 F7 D' v; O6 I7 {. m9 B! ^; Decho WScript.Sleep 100 >>shua.vbs3 j' W$ D- a/ K$ W
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs0 v/ Y: v) j1 z6 h% A! ^+ g
echo WScript.Sleep 100 >>shua.vbs1 U- r% ~/ |# Q) t' c% `
echo sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs; C: O& d' @! X( o1 E
echo WScript.Sleep 100 >>shua.vbs
$ @0 N( @& s& y0 d# L- j) ?echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs: d3 j5 D4 {7 f4 F+ G$ T
echo WScript.Sleep 300 >>shua.vbs* J( e9 `- ?8 B1 C
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
# M" g( x0 F+ }, |" [echo WScript.Sleep 300 >>shua.vbs
% |) k7 Y" X' m* R4 Techo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
2 ~: f& V0 i* |echo WScript.Sleep 300 >>shua.vbs
3 U4 f/ }# j0 u7 \) Pecho sh.SendKeys "sync{ENTER}">>shua.vbs
* P7 B7 V) f) k& }$ k# ~echo WScript.Sleep 1000 >>shua.vbs
4 r- F- U  Y) N6 V4 R" U1 Necho sh.SendKeys "reboot{ENTER}">>shua.vbs
# ]% o; d1 c: _: V# Astart telnet
2 K) ]. `( T4 C+ ]cscript //nologo shua.vbs3 q$ y: H4 Z1 g% {# ]% Z( @
del shua.vbs: ^, b( i3 d3 w* M

- F; a8 k# [0 a  N0 l  r8 j$ x+ V: M  M
怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 |江苏| 显示全部楼层
谢谢超级版主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

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

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