IDO老徐,在深圳,某上市公司质量部负责人,干了十二年软件测试,公号"简尚" ,博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

Linux实战,所遇到各种实用命令的实用示例

上一篇 / 下一篇  2016-07-29 09:37:14 / 个人分类:linux

51Testing软件测试网Gmzd)p|R]'q


.T0gkQnO0

在学习Linux过程中,所遇到各种实用工具的实用示例

cat

Qjfl9r2[ xXF0cat file1 file2 ...

e4{I"q1iN^X!DHS051Testing软件测试网+r1e2DGQw'V,Ng

不要忘了cat是可以同时显示多个文件的51Testing软件测试网&b2XWg-OB#C:_b

'ld/c0Gz Li#]0echo stdin | cat - file1

e2]@CMU;y(w@8H051Testing软件测试网a9mdP-sZ\

合并标准输入和文件

;sdc P:cB/n051Testing软件测试网l!{rKj7?

cat -s file151Testing软件测试网4Bqi,?$Eb[

51Testing软件测试网 Rf`9sh#C{ ?x

压缩空白行

@B JgX:I!Q4q0

"Eq D2wRe]`5w0cat -n file151Testing软件测试网xQ)e,E L"~.S4[5E

51Testing软件测试网X9mfs0D%] ~'u

显示行号

$z|-JLN;[?0

find

QU"e CZ j0沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作

[pB)r V6]Q4{8f(w0

T.{ f e9T!x5I6mg0find dir

;Ch%fsxd2k[0

%{/a)e)_cl#v,]0未指明搜索条件,则是列出dir目录及其子目录的所有文件51Testing软件测试网9`m+nb#{k?@"N

51Testing软件测试网6X,?k-YG$pjJ

find dir -name "Target*"51Testing软件测试网C o"N`3Xi,Yd

d3\S"G ` Fs0文件名称搜索,*为通配符,匹配任意多的字符,例子即为以Target开头的文件 -iname为忽略大小写51Testing软件测试网T/Bk$uL(J,s"Y5C

51Testing软件测试网TC0~;dN

find dir -type f|d|l|s|p|b

#@wJ#I x.a051Testing软件测试网|6I:yP R+g6^/wm

文件类型搜索,f为文件,d为目录,l为符号链接,s为套接字,p为管道,b为块文件

+Kuy}q|$@k y$tJQ$R051Testing软件测试网x7l(x4R&k,` ER'E

find dir -path '/home/user/target'51Testing软件测试网g_[e nh1k7~

$f S,\dc0-name匹配的是文件名称,-path则是匹配文件的完整路径51Testing软件测试网|\p(Qb,~D

-brPR(P!]5K9AMk0@0-path路径不能加入 结尾的/,比如路径/vobs/gliethttp/signature,不能写成/vobs/gliethttp/signature/,这是硬性规定51Testing软件测试网'E!~:LZ:v

5etWZs@p0find dir ! -name 'Target'51Testing软件测试网.ZkhZE)O7~b

6}{!s;Yu!a]4l0否定

@ _H?Yg5n0

CKf q {;P0find dir -name traget -o|a -type d

"}2`Z4\hPG)}051Testing软件测试网6oR2D6?\0@

-o为或 -a为与51Testing软件测试网#]CL7UP

51Testing软件测试网6D*b4G*K;Bc%@qv sg[

find dir -maxdepth|mindepth 2 -name 'Target'

/Ry{V+L2K(C[b0

x!B&twj,m0指定搜索的最大|小深度,据不可消息,深度应该放在搜索条件的第一个,否则系统将搜索出来全部后再过滤层次51Testing软件测试网:fa&vS:X-x`[(W

6^Osy2?0find dir -regex ".*.jpg"51Testing软件测试网d8rUg`4_a

^d_Z4tZ;p0使用正则表达式搜索,注意匹配的是find的输出结果,而不是如-name那样只匹配文件名

R&JSBkSK@0

O({A_ f~:fo}l0find dir -size [±]2[c|K|M|G]51Testing软件测试网fk two_

51Testing软件测试网2C0WM!E[U(b-U

文件大小搜索,'+'为'大于','-'为'小于',不写为等于;c为字节,注意大小写

'W[^-cQ9N0

u,i.])l;imY&t_{0find dir -atime|-mtime|-ctime [±]251Testing软件测试网(u4W3Y G/^.x#Z`/q,~4o

(fc:n D)?.c D G0按照时间搜索,首先明白Linux文件系统每个文件都有三个时间戳

P#q]-`p VH0
    • 访问时间(-atime): 用户最后一次访问文件时间
    • 修改时间(-mtime): 文件内容最后一次修改时间
    • 变化时间(-ctime): 文件元数据(权限或所有权)最后一次修改时间

V,r }vb6y0搜索的单位是天,+是晚于,-是早于,无是等于,另外amin|mmin|cmin类似,但单位是分钟51Testing软件测试网.sku,jb1\K-z.X

51Testing软件测试网%rw)[ef+X8e

find dir -newer file51Testing软件测试网j7Y!`RL'p

51Testing软件测试网 }%H X"c ?4H#T B

搜索比文件file新的,我自己检测是这个‘新’指创建时间、修改时间,变化时间好像没影响,存疑

3x%ohgI0

:i@5Xjo(g&~zw#q0find dir -user UNAME

)F(X/I+eK/O JiPN051Testing软件测试网y~-D7dhum i

按照文件所有者搜索

+[%X7Jl)w!^;Us]0

8W.S*{0^,j$~GQO0find dir -perm 665

2? m1dZN{'Ewf0

Za"FMa_8T0按照文件权限搜索51Testing软件测试网&{bG:dPX*m.Nq

51Testing软件测试网M)S%?Sb.}+py,\f

find dir [搜索条件] -delete

K(v:z&c|,@"xy*r~051Testing软件测试网m/w`D~2SA M_8J

删除搜索匹配项51Testing软件测试网W u&Q3e+F@:W-H n Z?

#]D#g&k\j:rx0find dir -name '.git' -prune -o -type f

iY B!})C@%K%t1z:P2k0

p bo%\4h0跳过.git目录,-prune用法存疑,不是很理解

F5L{(JMjZ?051Testing软件测试网4w"]:x0c)yn7}(G]U!G

find dir -exec COMMOND {}

X6ZM^}&V%y^0

&i&Pr/_9rY(mde0-exec选项将会将搜索结果替换{},执行COMMOND命令

^+uJ]b0

xargs

rrQY;EC2l0将标准输入转化为命令行参数,比如现在有这样的一个样本51Testing软件测试网 ^I%@6iZ5L

cat args
1
222
33
4

dos&e[/@#fj0cat args | xargs51Testing软件测试网1`%wm~%MZ3u

}l`)~I(tN0将标准输入转化为单行参数,输出1 2 2 2 3 3 451Testing软件测试网hH.y&aIj:h%J

ia|,pznE0[ a5^g.r0cat args | xargs -n 251Testing软件测试网&mL8X;?8H

51Testing软件测试网7T9B)SV%}m\T z

-n选项指定每行的参数个数,输出

,O)s:[,NLN1y w Hm0
12
22
33
4
51Testing软件测试网f9y*?@:q'?*s2X

cat args | xargs -n 1 echo51Testing软件测试网Nn J&YG

K9s#g7NG2W|-V0基本用法,保证每行一个参数,并传递给echo51Testing软件测试网2c:~[[{

(Z)U*Tr HU,dL$N0cat args | xargs -n 1 -I {} mv {} dir51Testing软件测试网3t @n?*u

6F0I:F)Nzx"F3d)d0当需要将参数作为指定位置或者作为选项的参数时,可以使用-I选项作为占位符(多个如何替代?)51Testing软件测试网U0\k3fTkR9j'b

tr

51Testing软件测试网4x0d t2v\.} e

tr可以对标准输入的字符进行替换、删除和压缩,可以将一组字符串转换为另一组字符串,即转换(translate)命令

z wf7U}051Testing软件测试网*D+r/nqR H^'W

echo '12345' | tr 12345 abcde

3`V Arv#Yz051Testing软件测试网/F0HvN \xT6f

tr的基本用法,集合12345映射到集合abcde,一一映射;假如前面集合长,则是后面的集合最后一个元素隐式补充到相等长度;如果是后面集合长,多出的将被忽略

R*@'Q X+t+D ?n051Testing软件测试网,i)M-f4M8s,f;V

此外集合也有类似正则的简写a-zA-Z0-9,还有\t \n,特殊字符51Testing软件测试网(q&\\/z._w^2o@

    • [:alnum:] 字母和数字
    • [:alpha:] 字母
    • [:digit:] 数字
    • [:lower:] 小写字母
    • [:upper:] 大写字母
    • [:space:] 空白字符
51Testing软件测试网-HH8?!i_:n

echo '12345' | tr -d 0-251Testing软件测试网N@3I bOQ&r k _

51Testing软件测试网Q8Ne2a.D

-d选项为删除

2[]2iH&Y4Q.AY0c0x$R0

LSF2{ZebA0o9zLv0echo '12xxx3xxx45' | tr -s x51Testing软件测试网hye#Sk

51Testing软件测试网)t wrP(S

-s为压缩多个连续字符为单个字符,常用的为压缩空格、\n

k${s_ H(NWp051Testing软件测试网7w9c,Lwp

echo '123xx45xxa21' | tr -c [:alpha:] 0

_:^+sae4g_f#D [0

(xxd5u%v6B0-c选项为求参数补集,例子的意思即为将所有非字母字符替换为0;另一个常见作用是与-d结合使用删除字符51Testing软件测试网N,G-zhY%C$x

sort

Sqx8i\4H ~0sort file1 file2 ...

bK#x1jL051Testing软件测试网%qZ3AXe:KH+k

依次排序各个文件

\]$i#n$}0

)a+u:XE!GxQjR0sort -n file1

G#\$g'TVK,X$a051Testing软件测试网DJzD*Q;|9}

按照数字对文件内容进行排序

mJm+a-\BT]6k051Testing软件测试网L6b$RJgl;[6z

sort -r file2

r@$I;E+n E2D0

!]0SE} W$Xw e3Y"U0逆序51Testing软件测试网XWt7J1j,x4EC \

evS"?Jx?0sort -u unsorted

i5elcs Xs0

S(O7\1NlM f?7f0排序同时对重复行只保留一行51Testing软件测试网!M4{A7x'MY

6H3zP%^ B~#[E0sort -k 2 file1

o)@3`+FJp051Testing软件测试网-}}.~*dp;w8m:Ds+}'`)?)|

假如file2中数据存在多列,-k指定使用第二列进行排序

+N-fWvG:\C/sw0

)_P$BY7x\So0sort -k 2.1 file1

S6EU4T2_:O|d0

(v Be!r1a@j3\2A0以第二列中的第一个字符到末尾进行排序51Testing软件测试网c"Ol3e T0C&MP

B5u(GQ5oD)@0sort -k 2.1,2.2 file1

,n!{+qXHb^S,n0

v_.Te'?8k0以第二列中的第一个字符到第二个字符进行排序51Testing软件测试网Nik(pU+d'@;U&S9J

uniq

51Testing软件测试网gkS%s6p

将标准输入中的连续多行只输出一行,“连续多行”就决定了uniq处理的标准输入必须是排过序的,否则无意义51Testing软件测试网*CP$D9n+x]W#?p

51Testing软件测试网3W!SQ&^.r

sort unsorted | uniq51Testing软件测试网 |l'z9\{3_!t

51Testing软件测试网m3jH:wxFXFh

基本用法51Testing软件测试网8Y,na3p @1~A

51Testing软件测试网\Z@ia/m:a&h J"v^2z

sort unsorted | uniq -u51Testing软件测试网L2}&^'L s`/h

b$^%MT L2S&m0只显示唯一的行

:fh[6D!W#_/X4^+b c0

'L0GstRNx*L`0sort unsorted | uniq -c51Testing软件测试网$b!F+T/vZ1l^c9N

Mk|_8n0同时输出行的重复次数

&d+p!Ek#P j051Testing软件测试网zR0T6~4Yy7La-~

sort unsorted | uniq -s 251Testing软件测试网8of a+_#?0[RJ6Q

8EA#GF{0-s表示跳过的字符数,另外-f类似,但表示的是忽略的字段数51Testing软件测试网M0Dqcb?i6\

split

51Testing软件测试网2Z7B UG E;_7O

split -b 10[c|k|m|g] Big_file

#P{n^#n[ S051Testing软件测试网 T1YlOb;Y

以大小切分文件生成诸如xaa xab xac ...51Testing软件测试网'@pE x&gRR,_

51Testing软件测试网:oDc:g'^

split -l 100 Big_file51Testing软件测试网0RS\*z:O{2K_/h4MC

51Testing软件测试网2mq#w,J&t Xjjd

同上,但是以行数切分

?{lV2l7R051Testing软件测试网k"KRD+t k7i#|

split -a 4 -l 100 Big_file51Testing软件测试网(r a0Nd|L h

*p]$s4Y.s.u0-a选项表示生成的切分文件名的长度,设为4则生成xaaaa xaaab xaaac ...

W9f3}D$c|/`5N051Testing软件测试网2J X0W,V\

split -d -l 100 Big_file51Testing软件测试网1u5m"JX6H#L

51Testing软件测试网2BQ%[:Y:BU

-d选项表示使用数字作为生成文件的名字,如x001 x002 x003 ...51Testing软件测试网;Yh#N1M}5[a#Jlx

51Testing软件测试网2UGSk!{6V

split -d -l 100 Big_file mypre-

q)mZ/OU V0

$mVMF({1w2n a Y`0最后一个参数定义切分文件的前缀,如mypre-001 mypre-002 ...

x3r6pwN e*N*E051Testing软件测试网4j@_9|\

cat mypre* > merge

ugG IiIc051Testing软件测试网a#N Vr_MRM

合并切分文件的方法

vF2Fzf e"L0

#、%、##、%%

*NUlRj0几个运算符的作用是对变量进行处理

Xue`Q;Y051Testing软件测试网K[*Oia3O^:j

target=test.tar.png; echo ${target%.*}51Testing软件测试网7`N4D!Q"A

51Testing软件测试网h1THN \

输出为test.tar,%的作用为删除变量右侧与通配符匹配(即.*,匹配.png)符合的

-B#E~ {,@ Y0

J#i~7n:|6f2l0target=test.tar.png; echo ${target%%.*}

tS6P]!N'd0

.\,N$eW3E(C&`3VB0输出为test,%%与%作用一样,但是贪婪匹配,即匹配到了.tar.png51Testing软件测试网A9[[EK&Bu:U4m

:[-Yy B7ue0target=test.tar.png; echo ${target#*.}51Testing软件测试网 gD\R C,PD

51Testing软件测试网V6WL6O!Ve,S

输出为tar.png,#的作用为删除变量左侧与通配符匹配(即*.,匹配test.)符合的

:euN/P/ZL-W0

1k5c rL*E'gw0target=test.tar.png; echo ${target##*.}51Testing软件测试网0Lw2q,Ev

],u O8{/p0输出为png,##与#作用一样,但是贪婪匹配,即匹配到了test.tar.

+D A7nD&FV U%Z0

dd

51Testing软件测试网(l6B)?*Gf

dd if=/dev/zero f=junk.data bs=1[c|k|m|g] count=151Testing软件测试网%h1]"N2fl's7o^P G%e

51Testing软件测试网V;Gn un-C'K:a

if为输入文件,/dev/zero为linux特殊设备,会不断产生\051Testing软件测试网llttnO*r[ P

51Testing软件测试网$d8G:|'L,}#{/X

of为输出文件51Testing软件测试网.R|7koO `p;B

D8tk6_ DZd0bs为块大小

*wMNNGe0

w `7?|Rhv0count为块数,即文件最终大小为 bs*count51Testing软件测试网*G _hr,`TY[{,k

mkdir

-TL E3g6Dil0mkdir -p /this/is/a/long/long/path51Testing软件测试网"F){ Rh3eSW Z W

51Testing软件测试网(F&?B,u+X]

用以创建长路径51Testing软件测试网?n} \EhGM

touch

51Testing软件测试网|`7LfR

‘抚摸’文件,更新文件的所有时间戳touch -a|m更改文件的访问|修改时间

E&DP^'}0

cF4W;An x-f0touch -t 201501012310.50 file

6Cm4R#m[ ]G051Testing软件测试网'A}u7P&I/f-NaF

更改文件时间戳为指定时间51Testing软件测试网#I:Op m5?7V[h

ln

51Testing软件测试网c/y |q5O e

ln -s ~ ./home

$@PB3Y$Z!G)m0

-N x9X ofQ&_ Be.O0为~目录创建一个名为home的符号链接,可以通过ls -l查看,也可以使用readlink查看51Testing软件测试网Lmg0T3`

head & tail

A8]~y Jz0head -n 5 file

gFV,{c,L051Testing软件测试网4x[IB~"} UC t0^

显示前5行51Testing软件测试网'd7j4U'B?9zh

d-F9Cs'L~)bw }0tail -n 5 file

QPi5o8J%B4u1]0

u4}%m?oU3yP4NV0显示后5行51Testing软件测试网;Q%si"nxf uI!z

51Testing软件测试网!y {SR0_Q

tail -n +(N+1) file51Testing软件测试网,k F7wS,q R/IoX

.g9^/EuBp,wB0显示file从N行到结尾51Testing软件测试网 |s?-y]N;Gp*C

51Testing软件测试网[/M:~Q-_ i ~{ S*osg

tail -f file51Testing软件测试网'n](]2\&G

51Testing软件测试网YO4q!sqlgv

动态跟踪file变化,此外-F选项甚至可以在文件被重命名后依然跟踪

!GD+X F,MA*Q Q f$r0^0

V.`,^ qn1H0tail -r file

Ds9ku'K7D051Testing软件测试网]Z k ?Q o

逆序输出

X9@nyE anO$n1?0

ls

N0D o5pD` K\%yK0ls -l

Z*S/j2F9r*J-\3h0

!W9x9l"b bl0列出详细信息

'e/H2Fu_+U051Testing软件测试网Ez(l;W2mn\,Zd

ls -a

1c'I3M\d(Q051Testing软件测试网 T%^#\*bep

隐藏文件

;HtYM*G4R]D0

v$Gc/P*~.D:A0ls -d Dir

l tCX:|051Testing软件测试网$v$|9T7prbk8m

显示目录本身的信息,而不是目录里的内容51Testing软件测试网[x$ir:~Di]

q?4UB4[0ls -d */

m,F(s"G#f/t;oRA0

U0_YtqnD K K Z&U0显示本级所有目录,类似还有ls -F | grep "/$",原理是-F选项为在目录后加/,再用grep过滤出来51Testing软件测试网%SFi[ ZM{

wc

51Testing软件测试网+`mH.E6Uf(cV2Y}

wc -c|w|l file

(Gn!E7q4Fq5HJ051Testing软件测试网.V5o!}Y|fI{

计算file的字节数、单词数、行数

?Y-W"xQ+Q*pQD.C^0

grep

%b PH/B hM0正则匹配,具体此处不表,注意*作为通配符和正则中的不同意义

t K0b/B9| b051Testing软件测试网d4L@&ic/feTB

STDIN | grep MATCH_PATTERN --color=auto51Testing软件测试网V2C zE!SW2A`

51Testing软件测试网-c@K-UxJ%|

一般用法,高亮显示

nN;i\"[051Testing软件测试网 m4k,z(r-HjLp,H(B

STDIN | grep -v MATCH_PATTERN --color=auto51Testing软件测试网+rEgX;Z:J/p-N3U$n

51Testing软件测试网[h;e B0D3n

反向匹配

Uwa?([(m0

,c"eH;u+r*s(I.C.r*f0STDIN | grep -c MATCH_PATTERN51Testing软件测试网0l(c1u{ s

51Testing软件测试网,U#S5s'B?7c*We)L

统计匹配的行数51Testing软件测试网*gLA.|3ki4vI

51Testing软件测试网6| m3WU%j o$Q:QI

STDIN | grep -n MATCH_PATTERN

{A;D/h/T1r4x051Testing软件测试网T Q9ug:O4^ e

标记匹配行的行号

6l8T.C1GDU0

2o;Q+f(Lw iUC0STDIN | grep -i MATCH_PATTERN

)E8L agh+]051Testing软件测试网lp~ \rz2_

忽略大小写

E"g3M C,RS0

:N)ba%]&L&C'~0STDIN | grep -q MATCH_PATTERN

T{} ?;_sD/Q051Testing软件测试网4g o$J3z1a,?#v&r

静默,常用于验证

-n*s:K-MGBPzx0

)r Y*Xy-n0grep -l 'test' file1 file2 file3...

hp u+S;T2Kv)Z*h o051Testing软件测试网d-nA?r{;se

找出'test'在哪个文件中,-L则恰好相反

{ZHFiOm0

/g+c:i~JF;o(t1e:L0grep -lnR 'test' .51Testing软件测试网 xsn l9H#ScS

51Testing软件测试网d!r6C X$Ln0{'X

-R|r选项为递归搜索51Testing软件测试网 \j1l\ey:x l

51Testing软件测试网k Sd"f:u]^%{

STDIN | grep -e MATCH_PATTERN_1 -e MATCH_PATTERN_2 ...51Testing软件测试网6A"|r6v-Y

8v3PJ}P0})R@-K3\0匹配多个模式(),此外还有另一种写法grep -f PATTERN_FILE,即将多个模式写在文件中,每行一个51Testing软件测试网){De(C.k$hh8X'q L0h

51Testing软件测试网x[0y-eo(y

STDIN | grep test -A|B|C 3

%O1f5sbs`9{,x1Zy0

m/eTJ#EH;H(A0输出匹配行的上下文,A为After,B为

!k*L _+O6epA[0

cut

51Testing软件测试网g ul0E.f|~VNk

cut -f 1 file

I"D+s r7m7@2me A0

_8eFg2R@0显示file的第一列,关于列的指定

4p)Nh^;v(di1sp0
    • 1,3,4 显示1、3、4列
    • 1-4 显示1到4列

$ww G2y-ieF'i0cut -f 1 -d ',' file51Testing软件测试网lH a)Cw?4[u

51Testing软件测试网6Z;E']u.E}&U

-d选项指定分隔符

f:m2Mn sM5t{0

W+tlncPC0~ jm0cut -f 1 -s file51Testing软件测试网'} wP0E^ }o*B]

yo$~3Q2h0-s选项用以去掉不含分隔符的列,比如文件中的注释、说明性文字51Testing软件测试网 `_nHpiNK1w

!y3N)v PQ9Wr,S0cut -c 10 file

#mCN8I6x.W1i051Testing软件测试网;Nf1o#Hn?

显示file的前10个字符,类似的还有-b,显示的字节

Of5Q ^!v.X0

wget

0t-t9A,qAV V0a0wget url1 url2 url351Testing软件测试网G8Y1Fh8bV"A.Tt \

51Testing软件测试网n'w(](h3V

最基本的用法,从网络中下载文件

4N0V)@!Pf ^ n051Testing软件测试网,]kFL)J C*IP

wget url1 -O save_file -o log_file51Testing软件测试网O].O!La/_ `CG

0nw0WS,h6h0-O选项指定输出结果的保存文件,-o选项指定wget执行过程中日志存储文件

S1DRb:u;LePk051Testing软件测试网._tT#Cr%]B

wget -c -t 3 url1

4n KX q+l qf051Testing软件测试网Y9}){9H i!@7w8~

-c选项断点续传,-t指失败的尝试次数

(VK m'Oxd_-X&X-WS0

4w\4y,E};V,c0wget --limit-rate 20[k|m|g] url1 --quota 100m

M)k4o!l:[%w051Testing软件测试网)T;Q7ZXEj7N'}h

--limit-rate 限制下载速度,--quota(-Q)控制下载文件的大小51Testing软件测试网tPKxcqs1{

j'AQ;S-?4nw Q2N B0wget -m url151Testing软件测试网*~.S*egLCr

51Testing软件测试网0rgLdY&~-u.\b

-m(--mirror)镜像url1,等价于wget -r -N 1 -l 3 url1-r递归,-N使用时间戳,-l指定递归深度

(Xf"M;t?3I*`051Testing软件测试网trW,Yx3[} v

wget --user username --password pass URL51Testing软件测试网q@W8H%KE8M e

u'I m$cN I0需要http或ftp认证

sd\#M)i/i'h B!U0

curl

^#bW2b6_Q(ym-x.NSoQ0curl是比wget更高级的http工具

Y!yb"N;W051Testing软件测试网M#Z)il&i&u6{

curl [--slient|--progress] URL51Testing软件测试网7}&` X"ra^L/ul

51Testing软件测试网.zp5hJ+_a1h0E

curl的基本用法,下载url,--slient表示静默,--progress显示进度条

@2L.}(v3}2a#U051Testing软件测试网 L0ldq4G*j

curl URL [-O|-o new_file]

6tYQ&S?8b9l051Testing软件测试网 U&xDyZ3Q~7xt V2j

curl默认将下载的内容输出标准输出,-O则控制curl输出到文件,文件名则自动识别,比如 DOMAIN/index.html则下载至index.html;-o选项则指定文件名,此处也可以看出linux各个命令直接选项的混乱51Testing软件测试网q2rzJ9\G.x^

51Testing软件测试网9f ]4C\H{|vg"|

curl URL -C [OFFSET|-URL]51Testing软件测试网l5\ i R5I*[ u

teDi7p8}/v0断点续传,可以直接指定续传位置(OFFSET,单位字节),也可以让curl自动推断,-C -URL51Testing软件测试网jJ0Vo*V7m6gp)]n

51Testing软件测试网+X'O?@%o,di;z

curl -H "Host: www.baidu.com" -H "Accept-language: en"51Testing软件测试网 Sp:p+J!_/jiA,a

6w \+L#w&z-U'U*Z8T0指定(多个)header

w:Z4PMEK8j W|0

6C'i/?9G9@$\P'gk0curl -l|head URL

pR a G cX;{/Em9G7m,@051Testing软件测试网,]:x9eRO4c

只显示响应报文中的头文件

,}?'V_:R4i051Testing软件测试网"YK|/R_^U1_

curl --referhttp://www.baidu.comURL

)])w{ ~-T051Testing软件测试网$z;G6L6t-_ C6P-c;P

设置http中refer51Testing软件测试网e-U5n*],f"c J2Q

51Testing软件测试网 VI3Fm7|5| Z+t s1Ux:p`

curl URL --cookie "user=liufuxin; pass=hack"

%D;jjy:m051Testing软件测试网$_u0hS*}L.h]Z!F

设置cookie,当使用cookie文件时curl URL --cookie-jar cookie_file

@4ul a+l SR%RIs0

7Iz3@U7u0curl URL --user-agent "Mozilla/5.0"

Ni7SAg&aV5@ di0

^2QSx^(k+XQv5J0指定用户代理

*WN(Ai*{ T5\*ev051Testing软件测试网o&[P^-Exgp4M L

curl -u user:pass URL

(f:pyRB x"x0z+CT051Testing软件测试网5x0lspgc`g:wa

安全验证

0q5U1Mz K:i)u0

tar

q.e2}~6C2_0tar -cf demo.tar file1 dir1 dir2

D4H tGM1G'S0_O0

!m%J g4Az@1cx0打包文件,-f参数必须为参数组的最后一项,其后必须紧跟打包文件名51Testing软件测试网"DZ,oH'H/fk[2C

rY7[/r&_Ekr'q0tar -rf demo.tar file_other

;[*P5u z`6LC0

~'T `'k"\n6^4~B0向demo.tar中添加文件,注意通路径在打包中会同时存在,但提取时会覆盖

O2th(g3VR r:Yz0

h9UB*p.nl0tar -tvf demo.tar51Testing软件测试网 Sqw#l+T3T

z+}H\,Ae |#a%z;eG0-t输出demo.tar内容至标准输出,v选项控制显示更多信息

}Fb k`;Y$x051Testing软件测试网 A?ph-t^0_y

tar -xvf demo.tar [file1|dir1|dir2]

#N/q4ujzl8Qi:?t051Testing软件测试网HwCA.Wen x t

提取打包文件,也可以指定提取的文件

&e0Epc9uk_U051Testing软件测试网o f`?5q

tar --exclude '.svn' -cvf demo.tar51Testing软件测试网 qOC{3?

51Testing软件测试网1nA&M A0]c6v4amDE

排除通配符文件51Testing软件测试网@5} g HMM)Aq1w

51Testing软件测试网E0JKiw

tar --delete -f demo.tar dir1

.@I.BS&pw2f051Testing软件测试网Op'S W$zU

从包中删除文件

[o+S8@BA\L|051Testing软件测试网4U m l'T D+A3oK.k

tar -Af demo.tar demo2.tar

|MT0{ o%{$_x,L0

\D FN3X-@Zha$f@0将demo2.tar合并到demo.tar中51Testing软件测试网$^fK'Y%`0ojS7R-b

C%nkz @b0tar -cv[j|z]f demo.[gz|bz2].tar *

5W Z(f H^WT2L0

&En ];V+`+M!y0打包的同时压缩

7MK%VizBc0

'IM+^oG \9b2W1`x3M\ PB0tar -cvjf - * | tar -xvjf - -C ./target

rTAk~fQ+s9S0

*X@~p _ \P[%t vx0将文件打包压缩到标准输入,然后从标准输出中解压文件;-a选项可以根据文件名自动使用何种压缩

3k4x,E `(Y)_,tD0

gzip、bzip

Kkf aj*ur;x0只能对一个文件进行压缩,所以经常和打包命令配合,两者使用方法类似,bzip效率更好一些,解压缩命令为gunzip bunzip

GdYiB}h~esting软件测试网K2OE'TF C.]s%R k

gzip -c test > test.gz

|Is)\/A"af;l6G4b051Testing软件测试网}s(["dx^

生成text.gz同时保留原文件.zsh中直接使用-k即可

8j.`s0KJeb,C'[)^ ?0

zo%m@k+S9z0gzip -l test.gz

rpz ]6`hF]0

2OE2I"x8Q.zs7Yx0列出压缩信息,包括压缩前后文件大小、压缩比率51Testing软件测试网e(W K^mD:v\#h^

Ux5F$H f0gzip -[1-9|--fast|--best] test51Testing软件测试网j;J g3nr

8S,zp_.IS+?)~0压缩比,1最快(--fast) 9最好(--best)51Testing软件测试网xR r j2S B aL5V

51Testing软件测试网x;B(Aep$`/~

gzcat test.gz51Testing软件测试网3a9CE4Y3tL3m%|

t RB7lVR0列出压缩文件51Testing软件测试网.R7cX%`:uJ$umq

3_^z6I(sO p _0cat test | gzip -c > test.gz

PA(tjv0

T(G4OQ WC0-c选项输出到标准输出51Testing软件测试网{ @F,~#^

base64

)c^U#axK'c"Y3de0base64 test

9Ned(|SS,r n0

bCEe [ Be0编码test,输出到标准输出

~/} M [\"vs O,Mo051Testing软件测试网XY8~)v3ht!BA

base64 -d test

1\:Z*NI"Y@zu&{`z051Testing软件测试网4O7{&b6W+m _*];M9R

解码51Testing软件测试网 aL AC m3G

ping

8A2?;U,q(WCa6J8J0ping www.baidu.com -c 1051Testing软件测试网)[%i zI2bi2i

51Testing软件测试网Io,}y8Ay

ping 10次

8h&V9_ ? E@P1y0

scp

51Testing软件测试网'?+w6a?,T%M

scp -r user@host:/home/path/dir ./

4OS d:U.Z0

/L&VD3h|9xRj9u0远程递归复制文件夹至本地,反过来即复制到远程51Testing软件测试网N-S3IZ c1{

lsof

x!D~y[a0list open files,列出被打开的文件,因为Linux中‘一切皆文件’,所以该命令也可以查看打开的网络连接和端口

]8Ncn3E]E*b-c0

+D*d6wU-{ J.a:b0lsof file

O$p7@%U2pa;}D051Testing软件测试网5t-n0|'@ uL0UF6\

查看file文件被哪些进程占用

`t7b'](e._051Testing软件测试网5l}9p NS

lsof -r file51Testing软件测试网1S ]^-b.jB#qim

51Testing软件测试网Hc3b'c8Z

-r选项为一直执行losf

c$Hs![3X\0

ct;{f%n7]W!f)^&bN0lsof -c abc

e,[ f+x7v4|7h,i0

v9f@yKz!W"T;h'@g0显示abc进程打开的文件51Testing软件测试网H_$u8Yz(AP6L \

/n2TeU.v0lsof -p 123

2rj4Oll-aOkT051Testing软件测试网&K)AZ @4o\ ~^e

显示PID 123打开的文件

z1NM9x5W051Testing软件测试网WS.L x2x4N5Dg!~

lsof -d 4

PZ'r8B'wk?F051Testing软件测试网,Fxnt] f a9O"es

显示文件描述符(fd)为4的文件被哪些进程打开

d)Y clZ;| w051Testing软件测试网?9x1U9KJ Z

lsof -u username51Testing软件测试网^ Wp&Oj'A

51Testing软件测试网C{'i8U|P~6x

查看用户username的进程打开的文件51Testing软件测试网2V:Z0R*_/\;S%T%h)VW

51Testing软件测试网9}Gf&JR5sEy

lsof +d mydir1/51Testing软件测试网1X^7?(A\_'v.r \#o

o X3pZ4[T`0查看指定目录下被进程开启的文件51Testing软件测试网/_e,P*qd

51Testing软件测试网:{[U^u i6]v3V g

lsof -i[4|6] [protocol][@hostname|hostaddr][:service|port]51Testing软件测试网AK\k:VuQTH

    • 46 IPv4 or IPv6
    • protocol TCP or UDP
    • hostname Internet host name
    • hostaddr IPv4地址
    • service /etc/service中的 service name (可以不止一个)
    • port 端口号 (可以不止一个)

K{:X f iBijD0lsof -i tcp@ohaha.ks.edu.cn:ftp

9a&v r/S;qY0

"|{%xX5u9{/M0lsof -i :330651Testing软件测试网&e_ QrA)N

netstat

51Testing软件测试网$b)j3U7Hdh C

用于显示各种网络相关信息51Testing软件测试网*|%PH'C-V;j K\$xD

7Z5`2O@c0netstat -a51Testing软件测试网 C:A)XQ `y

DT?1}1OLT0列出所有端口51Testing软件测试网V9K7ciN!uxe:F S

51Testing软件测试网x-Fh_#`Bd

netstat -at

*E[ r.{I#Y,rF.N051Testing软件测试网fqX&yNc'uV8O

列出所有tcp端口,-u为udp

:o0_1v.{r7t7^p0

XuV ^3N0netstat -l

${5A([^.x2^5TNU4}0

vb:J\/b0只显示监听端口51Testing软件测试网5vOl9bS8]*\ek

l6ztv L9c0netstat -p

.tf3F#D8g051Testing软件测试网I T"{9rYEG

在输出中显示PID和进程名51Testing软件测试网k7R st@DC{j

&~sI2d-lj(\ v cJ0netstat -n51Testing软件测试网v-C'`,g2wH t

.OcM6bj zb Cr(s,_ h0不显示主机、端口和用户名,而用数字代替,可以加速输出51Testing软件测试网Hh2~V0G lrn0j B

51Testing软件测试网&OOI6j8pm kJ

netstat -c

6OE+N:{&cD051Testing软件测试网Dj-_&K YO

每隔一秒输出一次

&s p3{np7E#_0

du

51Testing软件测试网{5u}tB4`

disk used,磁盘使用情况

6gBd!_+aGs(Wa x0

@&RenuM/MK&o(g0du file dir1 file2 dir251Testing软件测试网/wA/RHc(k,p6L-I

i7b,z,|LEy5K0基本用法,列出文件、目录的大小,单位字节,目录默认只显示其子目录,且显示一层

n k T p!S;_7Skv051Testing软件测试网no @4h/y,I6R*{%G`

du -a dir51Testing软件测试网$| P1W%z@8e

,Y-KzQ-PC1aJ0递归显示所有

ha7ik e:\ @051Testing软件测试网6`@)Po8Y

du -h dir51Testing软件测试网 Zh+dQ xcC RN

NT3P7y7i0以可读单位显示,-b -k -m字节、kb、mb

3^z P1bP5i$C051Testing软件测试网s(AL;nO9v8t4G

du -s dir51Testing软件测试网^)|)EzKF$H"r!R

51Testing软件测试网3TP?v M)y1w/Y$t

只显示目录的总计,而不是子目录51Testing软件测试网y4CW*c }DAV6IX

df

51Testing软件测试网.N%\0\8QI @Z

df -h

ax'AoiW+Ao-cf0

z~&v&Kk0列出磁盘空闲情况

iMc9W/n~+^N hc%p0

time

8X#_8`UUj9]t3}0time COMMOND

+lDc l].p*?1`051Testing软件测试网%AtC4h5C a-C _;dO?

列出命令执行时间51Testing软件测试网jE#S `_NNAge

    • real 开始执行到结束的时间
    • user 进程在用户模式的时间,唯一真正用于执行进程所花费的时间(不包括阻塞、挂起)
    • sys 花费在内核模式的时间,唯一真正使用CPU的时间

JMr%K~F0time -f "Real: %e, User: %U, Sys: %S"

I5b U7f is(wW e051Testing软件测试网k_a\H,?a9F

格式化输出

Nt W%G2e$Al:b EO0

watch

51Testing软件测试网AKG4^:BF\ J+W

固定时间间隔监控命令输出

4P&C]hU~|6s-Z051Testing软件测试网 [ X _?@\

watch -n 5 COMMOND

3_1?4r j6di BW L/OpH~0

U N v2N]0R0默认2秒执行一次,-n指定为5秒51Testing软件测试网Dg tB-b9G.e!_*g"O:X

&iB&nXfZ@^!WY i0watch -d COMMOND51Testing软件测试网)Bo;`]?S,_\}3c

51Testing软件测试网KH6C8s$C7r4C-? f

高亮显示区别

vE0U[*c |3R0

ps

u#v2JQ3R;YW \:f0ps -e51Testing软件测试网R3f|!Y9u9Ci g

T _$YVlUp&a2E i0列出所有进程信息,默认值显示当前终端进程,-ax效果类似51Testing软件测试网'I's,COK[

v-w._+ADL5|[;A0ps -e[f|l]51Testing软件测试网4n(~"??O`TvJg S

51Testing软件测试网nm'S6}Z`

显示更多信息51Testing软件测试网(C/RC%C[ X D

+V1u&eh5p1}+I }g0ps -ef -o [Target_Col]

kSSM:] WY051Testing软件测试网-S&{TLO,`

指定要显示哪些列,常用的有51Testing软件测试网4Y!o%W"xO:I8j3f

    • pid
    • ppid
    • pcpu cpu占用率
    • pmem 内存使用率
    • comm 可执行文件名
    • user 启动用户
    • stat 进程状态
    • time 累计cpu时间
51Testing软件测试网kFXW iX

ps -ef --sort -pcpu,+time51Testing软件测试网B7Z hv,P9b v

Y |&\)F%f$??0排序,-降序,+升序51Testing软件测试网.wII!c_5J$O

(jK%]1k*h;K ]F$Om0ps -efL51Testing软件测试网'dNI{S qKJ4r"s

51Testing软件测试网T S![\0d-O

-L选项列出线程信息

8xO g[v/p0

kill

1Y1X/hh@z\"g0kill -l51Testing软件测试网 v.B {'F6ms

A_ Y5C,UHSQ0列出所有可用信号51Testing软件测试网f)M,A?kAzgB"F

MP:_ f8Y$|6I0kill 13113

c$cK1rO0Z0u C0

Kdy4_JX0终止一个进程,默认发送的是SIGTERM信号(15),常用51Testing软件测试网o5]Is~$H'm R&l/Z0f6l l

    • SIGHUP 1 挂起
    • SIGINT 2 中断,ctrl+c
    • SIGKILL 9 强制杀死
    • SIGTERM 15 默认的终止进程
    • SIGTSTP 20 ctrl+z

5X/P C7U4p:|I;E0kill -SIG_NO | -s SIG_NAME 413151Testing软件测试网\Bt"k0PT oO

51Testing软件测试网}1nfC|o{_

使用信号编号,或者信号名终止进程51Testing软件测试网,ir/G^S*p rL

51Testing软件测试网'P Mrg4T:\d#B1v

killall process_name

]SrP]%[B { I0

(Y$^Y/w a^]u0杀死进程名的所有实例,类似有pkill默认使用进程名

WaaEa6w5M0

which、where

51Testing软件测试网 ['Zy$],o'l3P4M:uO;P

两者类似,均输出参数命令的位置,但where会输出更多信息,如手册、源码(如果有的话)51Testing软件测试网J ]? ?~*t

file、whatis、uptime

+Iq'd2Ib[ ~Wy0file file|dir|bin51Testing软件测试网;y#j jg'A*v0wKC0c

0p1wLk4a3e O!G%?/K0列出参数文件的类型描述信息51Testing软件测试网2f4eUk9T t.rc6U

51Testing软件测试网 wIjQ8X3f mA

whatis COMMOND51Testing软件测试网0k|6{\-jnI.K-{

51Testing软件测试网M|I4P%Tm}T#I

从man中解析出命令的简短描述信息51Testing软件测试网9CUFlg-RW8H K

W N*T)K1R:J1}0uptime

6FUk\*{7hp"N4J&e0

f{jt[!lG#h0系统使用时间统计,包括最近1分钟、5分钟、15分钟的系统负载51Testing软件测试网yWt0K.U#H?-W

wall

51Testing软件测试网I9Hpg8I*uA

echo Notice | wall

r#];kPD+y4t1K(d Q051Testing软件测试网]u:yV"Ux

所有终端广播

~[t&]#v0

uname

ulji]e0?'X`x+o0uname -n

k-sE2cA;PWH8]051Testing软件测试网W}+k z2p)n6rG

主机名,hostname51Testing软件测试网-H6K*B;^ s`fp

_f.oCs/g!ed(IM0uname -a51Testing软件测试网*INo6F$k$b*j

51Testing软件测试网s|hQ-}5gz

打印内核、硬件架构等详细信息

K,X-z8Y{(O-_Xh(yv051Testing软件测试网!M xY*J(O F%a~3Z

uname -r

XEB8z`j0

,f+i[3p tvH!Qv8H0内核版本51Testing软件测试网O[,z9`s

51Testing软件测试网I2c_v;Q XW6TC

uname -m51Testing软件测试网0co&b,|6?/s

-tdg/V(M KT0主机类型51Testing软件测试网0j7S{d },b

logger

#{$V.s-\3bj0向系统日志/var/log/message中写入日志51Testing软件测试网 e V1UwS K_

9E,LD1M7Y2IkV0logger message51Testing软件测试网6{QzK?c@2g

fM){E7K"tAym mV\0直接写入

r%H\2m8B:Pg;Y'M8wW051Testing软件测试网-z$HX%NMWc

logger -t tag message

.\;hPgl3^E2J#pf0

K5o;gKe+|Ivb6]0日志添加标记

t \$\ N(}0

lP*HS!?0logger -f source.log51Testing软件测试网T;{]?1JG/?~

y/v/z?JM O0将文件写入日志

"_#tFt9\;w v0

sar

51Testing软件测试网o6Hi m]N

sar -[u|q|r] 1 2

7q8az g1F:M0

,^-_2R:N2V`2xi^-lZ0u输出cpu使用率; q输出cpu运行进程数,总进程数; r为内存; 1为采集频率,2为采集轮次51Testing软件测试网%JO|2b4p]S'_

crontab

,VRu? r2}0?T-Z0crontab -u liufuxin -e51Testing软件测试网T'DPBk

51Testing软件测试网p4]%gb+o``Z\

指定用户,root使用

r/T*\Z\/h~.b051Testing软件测试网W#B!Oz*\'VG@

/5 1,2 5-9 7COMMOND51Testing软件测试网;^6u3NB@6{W_H

_t7]f;djZ0每5分 每天的1,2点 每5-9日 每7月 执行任务

U CqA.eKY&F0

u:WT4TvO-?^4[0注意周跟日月不能同时出现,同时出现不是'与'关系,而是'或'关系

X O;|Ay:Q,c051Testing软件测试网N%}DD|3ENuS

注意51Testing软件测试网R4SF9y*V$T/b

4O*F}L[J`$z0Commond的输出未指定的话会发送邮件51Testing软件测试网xPS0s a O[ yL[


3R-~&sa9pj] G0

TAG: Linux

 

评分:0

我来说两句

xuquan

xuquan

IDO老徐,坐标深圳,测试经理,干了十年测试,公号"简尚" ,个人博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 913864
  • 日志数: 427
  • 建立时间: 2012-06-04
  • 更新时间: 2022-02-23

RSS订阅

Open Toolbar