找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6583|回复: 10

linux命令之 cat命令详细说明

[复制链接]
发表于 2018-11-9 22:47:02 | 显示全部楼层 |阅读模式
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。 7 u# d0 ~& b$ U6 I: c4 G% z
; b/ c0 J, ], c& [5 _  ?2 {
1.命令格式:* x) l* s# ?5 F0 ?
: F1 S. O) a$ g3 J7 l' D6 E. I$ e
cat [选项] [文件]...# x8 r) g$ S( V% U( V0 i$ o" l
& U, B/ g* w# b" o/ ?1 h  t
2.命令功能:: o  Y/ y2 @1 Q& z& S
3 i) J4 ?: P7 D4 C/ F3 T
cat主要有三大功能:' r- Z- Q* @+ @  O! ~

: c5 X9 g! T6 J& [% K1.一次显示整个文件:cat filename$ l) E5 a8 R) X; b+ ^# Z6 h

  s, n! f0 u* b: U0 \+ a; ^4 e2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.$ A# Z/ K+ V0 A' f
' I3 J8 C/ _7 T
3.将几个文件合并为一个文件:cat file1 file2 > file2 }6 O9 o" w, w9 U/ S. c* j
; Y  K5 I- k: k5 S2 F. O
3.命令参数:5 i4 k) z- Z# z$ k1 R1 w7 [  g

# q% M  L3 W6 R! l- c-A, --show-all           等价于 -vET; p2 n8 s; R, \% e3 [* S
5 N0 g' t: y; N/ V& \" j. {' V
-b, --number-nonblank    对非空输出行编号: Q+ C/ e) ~; t7 X3 ?4 a

# k& i) s  C% M0 G-e                       等价于 -vE
( D- x% l# ^. P2 v$ g, K* X
* z, c% ]5 `3 B8 `, W% K; H6 b) B3 j-E, --show-ends          在每行结束处显示 $" G  H) `" e/ K7 k; y8 k9 J
$ V3 s# e2 T6 n$ }$ s
-n, --number     对输出的所有行编号,由1开始对所有输出的行数编号
% z. L) t7 t+ E5 _
8 m+ H' j# |0 F5 m, \-s, --squeeze-blank  有连续两行以上的空白行,就代换为一行的空白行
$ L) Y% x/ o7 d6 ?  W
! c/ I4 f) o* H-t                       与 -vT 等价1 I4 V3 u1 s: Z: D
# j/ Y1 O, ^5 [
-T, --show-tabs          将跳格字符显示为 ^I2 P& p' Z- @# H) P6 j! p2 L
; ?8 G- j7 z9 O& n# z5 P
-u                       (被忽略)% I5 n# A; \& G8 C. L9 f3 @

- v. M0 J! ~" i7 J-v, --show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
. K0 O& }8 ?% S, [
, i; }, Q2 C5 i$ [: S4.使用实例:4 X* `" y' L& {, }# K

  h0 y) C' i3 d1 D( u( y1 \实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里0 o: x3 w5 l- r1 @* H3 n6 y

& @& V8 a- G  E3 U命令:% Q8 v4 m0 ~8 G( n/ B8 `2 P
& l4 g# n( k* g  A# W# P
cat -n log2012.log log2013.log
" i. ~: V% P, W% P
$ Z  W$ T0 K: r输出:
- G- M9 _0 \1 g+ J- l
9 o1 _* w& L8 h/ q[root@localhost test]# cat log2012.log
$ Y& g! d. l7 ^9 b4 `! f1 u( b, R0 M$ Q6 I  \/ k: l# o2 ?
2012-01
" y" t& ^" x1 m! g  W& N
* p* y* c! N. ]: s4 `2012-02
* \; f1 d" y) F: h, n# d1 D. ]( t) W$ t, e; ^
" f3 {8 {3 `" H, s! v7 _
$ M- v1 ~. _4 A2 ?9 @& w
======[root@localhost test]# cat log2013.log
' @& h1 [% }) g7 j% w# C% W: K
: N0 }. H% W& y; f  w# v2013-01
) _7 Q; P6 J9 ~8 M" n: ?
" g$ W& Y5 a3 s- u2013-028 @. n) j3 _6 q, ^5 }0 S+ u
7 z) S: P. n; i4 |/ w/ u
# }: I- d. P+ S! g: M2 ]1 N
3 p+ f; p) b$ d8 _, c# z4 l
2013-033 Q% V4 K  d; K! P
: f* E7 _$ d! h# [! ~4 X
======[root@localhost test]# cat -n log2012.log log2013.log ; H2 c* ?$ o  `7 ], q3 K% n

; z& N+ i% c. s- {' y      1  2012-01
* a4 n, k3 R; u1 E5 W9 k9 g
8 `$ J+ C* A! j% H      2  2012-02
# `0 N* \0 v; v* A  d) [) V8 D6 h2 ]; L
      3
+ _; n+ }# K% |/ D/ f; P1 L/ `1 b2 F7 {% ^# x
      4. d1 S4 O7 h, s' p

0 H& w5 y% s# q# N6 d% B: m4 Y      5  ======
3 o- t# d1 G) O% S$ o! H6 `: Z" |& l5 m$ L! ]9 T
      6  2013-01) m5 g9 P2 L" N) T3 @# v4 q
# f( _& c; u5 R$ t7 O! a
      7  2013-02
) |" R. \  M8 `/ y/ B# |
9 E: i% S  p& a( h$ j6 I      8
( I9 u7 P9 a' X% O5 c9 |
+ l! |) C. k- J( X2 f+ D# Q      9( g) ^- B! C) e# e, J' R
0 Q$ E) x7 d5 e8 E/ f: z0 Q0 W
     10  2013-03
/ g: u: m, ~7 ^) B) L' Q
* G1 [! e% J) }' k5 [6 |; Y' w     11  ======[root@localhost test]#& O9 l8 n# r3 }5 E( s

9 B  H, N5 z) t! Z! `: s" Y2 ^0 W4 ^" k$ @: ~% m) \; `9 C7 r% `7 [
说明:- E; F1 q8 v2 P0 {- e/ v  U

% X4 ~. Z; J% k$ u2 u# y) d5 M$ E. r6 D. i0 Q6 l+ p* X8 y) \7 n
实例二:把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。 % @* }3 F: h! T) a: Q
7 R1 h( i" i2 U& V0 w1 I, |9 N
命令:
( X8 k3 R4 h8 A" v( i
5 N3 X. K3 F# z+ Zcat -b log2012.log log2013.log log.log
. @2 G1 t6 g# G0 M% I
* `) K3 O; }4 f输出:
: E8 h) o2 L1 m2 u; _6 G, X
2 U5 s0 q( l4 K' M9 i% J, K[root@localhost test]# cat -b log2012.log log2013.log log.log2 x* ]" h5 j8 ]: r/ d/ I* W9 e
/ M! D7 {+ n  j2 S
     1  2012-015 @  ?5 {5 L- [+ k
. D$ u9 ?2 ~5 n0 f. _; S7 N
     2  2012-021 _. X$ s3 g9 w) f

/ n2 e8 I, z* l, _4 d; ]$ Z. ^4 b* Q3 M' u

/ n7 h8 u& x: c0 o7 L' t5 E" I     3  ======$ t/ O8 h* `- L# G6 ]8 z
+ U% X% w: O4 u. T
     4  2013-01$ ?6 S" I2 `" d
+ x" F' m6 D+ G+ b4 r  S
     5  2013-028 r  b, |( V5 U- m% i6 O

8 x( R4 Z! Q7 h! f8 {; m. v8 a" V( K8 _

6 U8 N- H( L2 N& _" F5 J$ f     6  2013-031 v1 A8 `: w3 Q7 [1 T$ W: F
; p. W* S/ {9 e
     7  ======[root@localhost test]#
! G7 E/ k4 H: {( z. I4 j
+ D( Y0 V+ L+ P. D8 l' V+ n* X! g2 t7 Q
实例三:把 log2012.log 的文件内容加上行号后输入 log.log 这个文件里 7 ~" J9 ]% J+ d$ v; E
+ \- M2 V/ k( b. Y5 J  S
命令:
4 R/ Z7 z* i, D. U
. E0 g+ o) |4 C  P! }1 i- W输出:
4 @" y( X- X' P9 D! ?9 |
$ M& ]% I/ w- E; c- e( a[root@localhost test]# cat log.log + n2 N  r% _; I
# e8 y# }: L1 U1 l! ~# ~7 P
[root@localhost test]# cat -n log2012.log > log.log' }# ~# N4 U# j
, X. k& r; F; Q  S( _" [6 v
[root@localhost test]# cat -n log.log
% Q% |, s# ?& [0 B  G  i1 P0 H- G& s- j* f
     1  2012-010 w( }% }  I5 v% o! Q: r$ _2 t4 W

. s9 m  f6 ^  P& H9 z     2  2012-02& }  v8 S7 G! q3 j/ ^  _9 C: P
4 \5 q( f( `* p  b. T/ o
     3
/ V2 O9 t/ Q# ~) Z
2 [0 Q$ ^6 F- L& V     42 U- n8 O) P9 B. L; m) V4 |! R

3 r( G8 C3 S! m: I9 P: t0 Y     5  ======6 n4 ~/ k9 A5 g

& |/ r5 K+ r) `! d4 w" ~; b[root@localhost test]#
) P. O6 e. l& v0 ~& a0 n) @1 n! n! P' ?3 f
; w3 {& p# W9 J
实例四:使用here doc来生成文件7 D6 s! @) L9 \5 j5 _* H* y  O1 ]8 y
* o$ N0 b% {' z5 |
输出:
" E8 C4 k. l- M( O3 c8 {4 x! g0 y* f
[root@localhost test]# cat >log.txt <<EOF
- F' G! M6 X* D1 _  O* M
. k- G9 o! k6 f* ]6 H" c> Hello
6 ?- j, J& e. r# t
" q8 j% d3 n; h> World, y# E7 m( @5 M. U
9 k* A0 ^  n3 w& Q9 g
> Linux& X0 V( V! N/ n2 I% [# J
* R+ D9 I! R# n5 `% x) D
> PWD=$(pwd)( C6 b( Z& u" B
8 q9 w! k  W1 M( l
> EOF
1 R( G$ m# X# k' b: z2 Q6 G8 [: @% ^1 x5 d
[root@localhost test]# ls -l log.txt 3 W  {3 S" r% m' [% K$ v/ i  m
* T3 A$ E. ^4 X  n, P3 q9 B( T) C
-rw-r--r-- 1 root root 37 10-28 17:07 log.txt
7 g  b2 s$ B1 b& d* ^' U
2 X* z, s: v& p) R: V[root@localhost test]# cat log.txt
) z9 y$ e0 X  k/ B) r  F: O# Z
- F( _: k! c0 n+ e2 w( o. R4 ^Hello6 C2 \8 a( X% h" K, O" a

. q7 e+ _! Q% G2 eWorld
. p; y8 R8 v( ?; q3 T
# T7 {, [, S3 n+ _$ M$ VLinux
  Z% }& u) a/ |& ^% q2 b6 C( q7 F# c2 I
PWD=/opt/soft/test. W) Z& C/ h7 M+ W3 M
. h& l% ]6 H1 U
[root@localhost test]#( K" g+ e& [& o2 v

' W3 P7 E# K8 l- P/ i6 D
& A) X' t% f* b; @# T& ]) b6 w说明:
( h" x( m# B( A$ U9 _) c/ H+ u; [! @: Z- c# T  N1 P
注意粗体部分,here doc可以进行字符串替换。
' M/ N" Z6 q% s6 V2 Z8 ~- m
0 d8 x  L( w3 W- _; G
* ?6 z) o1 t0 |+ A备注:, l! Z; L8 P% P  c7 a+ {

9 K8 `0 l6 @2 T$ ?/ Dtac (反向列示)7 D- w: j% u2 D% _
7 H% F: j$ x9 ?" {/ w2 g: r' W
命令:; ~! N' z4 J7 r4 R, d

  J7 }; C+ F6 j" L( T* r3 ztac log.txt! S! K9 u3 ^1 ?/ I( u

+ h2 s6 z4 f$ M1 g6 |* w. }输出:" t4 S8 L8 ]% F) |+ }/ v: e8 B
/ ^! [6 S8 I0 f& n7 M/ l# A
[root@localhost test]# tac log.txt
5 x' W/ Y/ d! s2 V- n; z* b0 j8 t5 E2 R" ?) o' Q5 o
PWD=/opt/soft/test8 G. R8 @! c9 o' u- d
% M( @' _. R9 n$ J! q% n, {
Linux( I' Z) [5 A& @: a
# @: |4 T3 x/ V8 @( W5 [4 a4 Q
World, F; n/ R$ r, `" m: }
9 e' ]$ v/ ], D
Hello1 y  t4 f  Z: H2 J# ?

2 U) u$ o/ k7 W说明:
6 ~5 y1 y7 z- p
& H) S- T4 I5 Stac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来!
* A2 F$ h: ]9 J, Q. l
8 p+ ]2 W& n1 K" n; F, J& ]* n" }# |. q0 E: R% Z# ?7 S% z& F, B) k
发表于 2018-11-10 05:44:55 | 显示全部楼层
学习了谢谢分享
发表于 2018-11-10 11:14:35 | 显示全部楼层
本帖最后由 hu0730 于 2018-11-10 11:16 编辑
0 }+ n) Y& G5 b" |% Y
& h8 s% U( Z8 w) {7 ~  L. d! N0 o0 O谢谢超级版主分享了!
发表于 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:520 O, w6 V+ I( |8 k
我只会cat /proc/mtd

0 \0 ^0 B% ?0 r; M6 O0 M) y: s多了,cat /tmp  etc  dev   ................什么都有的
发表于 2018-11-16 18:40:24 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
3 X7 _0 ?) l8 l+ Iecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs1 L/ s. @8 O2 g. ~7 W. _+ X
echo WScript.Sleep 100 >>shua.vbs$ f% L% `6 \9 N# y2 d1 w" P
echo sh.SendKeys "root{ENTER}" >>shua.vbs
8 t( i# i/ t" R" }4 C1 @8 H) ^6 Mecho WScript.Sleep 100 >>shua.vbs4 n$ M* \0 V3 _
echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs: m& i2 f- A2 J" J
echo WScript.Sleep 100 >>shua.vbs
) s, a. w' ]9 e/ r- d- gecho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs
7 ~8 Q! y6 z; L$ Xecho WScript.Sleep 100 >>shua.vbs
: e9 t, _- w  p8 f' O1 y6 secho sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
% B3 m4 a  M. |' X3 [& J0 Pecho WScript.Sleep 300 >>shua.vbs; p+ K7 l  S: D
echo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
: i0 M0 P6 {7 G& o; B$ P0 Eecho WScript.Sleep 300 >>shua.vbs
( n- R5 p" p" x  z- gecho sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
5 h) w: ^, r  fecho WScript.Sleep 300 >>shua.vbs
8 g% {0 O1 {% I( Iecho sh.SendKeys "sync{ENTER}">>shua.vbs- g2 S. |7 c" e6 a- \& z
echo WScript.Sleep 1000 >>shua.vbs
( |! Z+ j6 }, e3 W& ?9 `0 H' K( recho sh.SendKeys "reboot{ENTER}">>shua.vbs; i, h, y, I! y# s! s" n
start telnet
  C5 Z/ ?+ Y, [  B6 J- L" s2 W  Pcscript //nologo shua.vbs# j; `2 _+ q: n- m. E' ?  N/ x
del shua.vbs
发表于 2018-11-16 19:15:04 | 显示全部楼层
echo set sh=WScript.CreateObject("WScript.Shell") >shua.vbs
- s) I( g( q& C+ Q8 H4 m# A2 ]9 lecho sh.SendKeys "open 192.168.1.1{ENTER}" >>shua.vbs
* p1 V6 }+ F& pecho WScript.Sleep 100 >>shua.vbs: U' i0 d9 ~9 I6 `& n) ?  D; W
echo sh.SendKeys "root{ENTER}" >>shua.vbs9 t' Q1 Q( n2 U9 {7 u' f+ y
echo WScript.Sleep 100 >>shua.vbs
* _9 X$ f) k* r, L* ]echo sh.SendKeys "Zte521{ENTER}" >>shua.vbs0 s7 g9 t2 f8 X/ p
echo WScript.Sleep 100 >>shua.vbs
8 a5 P, L6 W8 w6 p# a3 secho sh.SendKeys "cd /tagparam{ENTER}">>shua.vbs# V: p4 A1 E, g1 G- E: ?
echo WScript.Sleep 100 >>shua.vbs0 X& H7 V# Z; a. N
echo sh.SendKeys "cp /etc/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs
- r7 m) \# O2 |echo WScript.Sleep 300 >>shua.vbs
8 U" C. R0 `. s( y4 h8 ]6 U5 Techo sh.SendKeys "cd /userconfig/{ENTER}">>shua.vbs
! S* B3 K. F* Q- R2 h" aecho WScript.Sleep 300 >>shua.vbs+ f5 e: |: V. ?9 d* }; ]* @
echo sh.SendKeys "cp /tagparam/bob_GN25L95_gpon.bin .{ENTER}">>shua.vbs" t& `  l7 x+ B6 r+ c
echo WScript.Sleep 300 >>shua.vbs
* i) i7 O, Q8 z7 M3 ?1 }echo sh.SendKeys "sync{ENTER}">>shua.vbs
8 C: s# L/ S6 j* J7 F  Eecho WScript.Sleep 1000 >>shua.vbs
; A% z4 Y1 ]3 t8 Z% qecho sh.SendKeys "reboot{ENTER}">>shua.vbs+ E% j% Q2 W9 a- ^/ }2 R0 K
start telnet
, F5 `3 U5 e7 i, O; ]1 K6 }cscript //nologo shua.vbs9 |5 d% `' P! z- ]( o+ F; O
del shua.vbs: c% ^' A6 f1 q( s

6 L/ Y4 u3 c" P3 I5 F/ Q% {! _$ u
2 V' u0 J4 r: N- ?% o怎样把这段文件在光猫里删除?
发表于 2018-11-17 15:33:59 | 显示全部楼层
谢谢超级版主分享
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-19 13:04 , Processed in 0.033448 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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