isTester.com发起人,某互联网测试经理,十年测试经验,公众号“简尚”; 分享实战测试技能、答疑解惑(测试职业探索经验、以及一些书本上学不到的各种职业干货);致力于软件测试从业者综合能力提升。 微信isTester 》》博客文章未标注转载均属「原创」,转载找老徐授权;

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

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

51Testing软件测试网f Hv9aV

51Testing软件测试网Zp Wg4Kp(G|}5g

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

cat

51Testing软件测试网pv l4mW Y#`V1A

cat file1 file2 ...

V d l1VL'o2Y5V1520655151Testing软件测试网BS1k2Lf2Q/j1V

不要忘了cat是可以同时显示多个文件的51Testing软件测试网$DyO4L ?/] n

51Testing软件测试网"B/_W:o8Z&c[0a

echo stdin | cat - file151Testing软件测试网-\Ml ]j_M"x

51Testing软件测试网fX9V Ayjg.`

合并标准输入和文件

M6@:q.o{"nJ;W!AQ,m15206551

"Y[by-el15206551cat -s file151Testing软件测试网(u!x#E:zsN

51Testing软件测试网!g[%{nX*icc

压缩空白行51Testing软件测试网-RzIn1S

3H+w,|:Db$d _15206551cat -n file151Testing软件测试网G*^*Fv2v

51Testing软件测试网NY2f m|/{4c

显示行号51Testing软件测试网j6N T&F dt

find

,S8P@ @j+CjjP15206551沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作

2R(X8QA*Br8Y{1520655151Testing软件测试网kR0Yt9N&];^1V\ ]V

find dir

+x? S$];fz'@y*V.l15206551

;H0M!C5a1g6y1PU15206551未指明搜索条件,则是列出dir目录及其子目录的所有文件

o#US h V1{15206551

2LF8acnbR+`9ZU3f I15206551find dir -name "Target*"

q*b5y3{:zX'^2g5P1520655151Testing软件测试网.~bcb T*w

文件名称搜索,*为通配符,匹配任意多的字符,例子即为以Target开头的文件 -iname为忽略大小写

;H rv9IR O8O vA%w1520655151Testing软件测试网)UMw _k0f3q

find dir -type f|d|l|s|p|b51Testing软件测试网n,_0c,j"a6c%r

51Testing软件测试网6R$t:f-V5t$? Z o

文件类型搜索,f为文件,d为目录,l为符号链接,s为套接字,p为管道,b为块文件51Testing软件测试网OC9H9Xee-MD s,A

51Testing软件测试网m3PKhx8q

find dir -path '/home/user/target'

%\8AoFP/m1520655151Testing软件测试网]9opO._gGA3o

-name匹配的是文件名称,-path则是匹配文件的完整路径51Testing软件测试网&W UBY:A#n!z.j-_HS'q

$](uu0aL@(w15206551-path路径不能加入 结尾的/,比如路径/vobs/gliethttp/signature,不能写成/vobs/gliethttp/signature/,这是硬性规定51Testing软件测试网Fo\ d ^%|5n|

?8V E|dK3|:| U15206551find dir ! -name 'Target'51Testing软件测试网 D[r [uT*}

51Testing软件测试网 jAYSmC

否定51Testing软件测试网 Xy9e]g&yQ,i|:e'?4s

*Q2xLyEo15206551find dir -name traget -o|a -type d

V.k1D8NB6M,`u K(Z3y1520655151Testing软件测试网nhr;C{m0|'i%F

-o为或 -a为与

4w5Z6r3| a"PhbU(z"W15206551

{ F'rt0GB_15206551find dir -maxdepth|mindepth 2 -name 'Target'51Testing软件测试网8Qe4Ls&].p(Y$~

Mv1El8Z%No/F15206551指定搜索的最大|小深度,据不可消息,深度应该放在搜索条件的第一个,否则系统将搜索出来全部后再过滤层次51Testing软件测试网:bn%]U v

m;xuAf9z p t15206551find dir -regex ".*.jpg"

5c'xyr5]gU Gx15206551

fP(Y:`)ND%^,~_k v15206551使用正则表达式搜索,注意匹配的是find的输出结果,而不是如-name那样只匹配文件名

g n Q4`9v1520655151Testing软件测试网'@ n Q`P#S|

find dir -size [±]2[c|K|M|G]51Testing软件测试网R iglzT;R

51Testing软件测试网j @H0G{F3n Mm

文件大小搜索,'+'为'大于','-'为'小于',不写为等于;c为字节,注意大小写51Testing软件测试网9p*[1U w T3O

51Testing软件测试网1w:Y u%VUP*s

find dir -atime|-mtime|-ctime [±]2

)l0o%J*TW;Xa1520655151Testing软件测试网 Uj3N&o?^eP ~

按照时间搜索,首先明白Linux文件系统每个文件都有三个时间戳51Testing软件测试网"ulV C6JO

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

Y0ReFwT.t"q15206551搜索的单位是天,+是晚于,-是早于,无是等于,另外amin|mmin|cmin类似,但单位是分钟51Testing软件测试网4^&n!\D1]!K6J,q

51Testing软件测试网H8dp1g#q DdM/b3x

find dir -newer file

0w ymxW&P:_15206551

qjV;R.p UnP3G15206551搜索比文件file新的,我自己检测是这个‘新’指创建时间、修改时间,变化时间好像没影响,存疑51Testing软件测试网,y"y:Rf/@d

"u y0Tw5`g,a(D15206551find dir -user UNAME

ZQ+b3c9U}15206551

]%O(q~ ezm}8q15206551按照文件所有者搜索

Z'RX6L7\w+T7i-I1520655151Testing软件测试网a!ZW-L7K;dl

find dir -perm 66551Testing软件测试网C I r9d/z"S UH%aZ

51Testing软件测试网2w9syh3BvqOZ

按照文件权限搜索51Testing软件测试网nn/I9H0^1a#f

51Testing软件测试网6b*}7zW V/kP

find dir [搜索条件] -delete51Testing软件测试网 fi2GC'z

2S&B)u-? h3zpa0E15206551删除搜索匹配项51Testing软件测试网(~,v;l$]Z3WyE

\|3d8GWrVa15206551find dir -name '.git' -prune -o -type f

Gn5v{-^I t9mj3^8fHW15206551

+H1{+iB{x15206551跳过.git目录,-prune用法存疑,不是很理解

g*VX0Q&Bq&N:L15206551

-QG;X'Av-o n_a(n|15206551find dir -exec COMMOND {}

Xyyu"WJU,^15206551

wAKO-d%u15206551-exec选项将会将搜索结果替换{},执行COMMOND命令51Testing软件测试网:C-@P)R/o

xargs

4E`db7@15206551将标准输入转化为命令行参数,比如现在有这样的一个样本51Testing软件测试网%xuFn#e

cat args
1
222
33
4
51Testing软件测试网)H }.P1Z%qM]rWD:@

cat args | xargs51Testing软件测试网6W&Q9O_2[ bX&o

51Testing软件测试网&LA*~'@4z1caT%_

将标准输入转化为单行参数,输出1 2 2 2 3 3 451Testing软件测试网Y^;J K UH-t

51Testing软件测试网9KmZU(@Z#nl M

cat args | xargs -n 2

U/Y:Lt.~8o[\8y1520655151Testing软件测试网 MU.aC$|,P2F

-n选项指定每行的参数个数,输出51Testing软件测试网@ p1ol-ZvVa

12
22
33
4
51Testing软件测试网`U@a!UN8bP

cat args | xargs -n 1 echo

qQ5nz O;Bi3^15206551

Vl%Oz!Y[#Vc15206551基本用法,保证每行一个参数,并传递给echo

m&R8o%f/d4F}1K5K.i1520655151Testing软件测试网;|}:z l(so

cat args | xargs -n 1 -I {} mv {} dir51Testing软件测试网[? tM(h jo

gN,[h+](c7^5qQ8df15206551当需要将参数作为指定位置或者作为选项的参数时,可以使用-I选项作为占位符(多个如何替代?)

ep g9['ZS15206551

tr

;[L*@samS8r8x0n&s15206551tr可以对标准输入的字符进行替换、删除和压缩,可以将一组字符串转换为另一组字符串,即转换(translate)命令

*M1pk`@2jQ%P15206551

#S6sKb M-F"U _15206551echo '12345' | tr 12345 abcde

dQ!Z"c6J4B x%Z ^%Z.c1520655151Testing软件测试网9N0jEPM:Fm+P

tr的基本用法,集合12345映射到集合abcde,一一映射;假如前面集合长,则是后面的集合最后一个元素隐式补充到相等长度;如果是后面集合长,多出的将被忽略51Testing软件测试网IC)W+dbZ;}

e+`h| qpM'h15206551此外集合也有类似正则的简写a-zA-Z0-9,还有\t \n,特殊字符51Testing软件测试网9k"UQ3aszk~ R+b

    • [:alnum:] 字母和数字
    • [:alpha:] 字母
    • [:digit:] 数字
    • [:lower:] 小写字母
    • [:upper:] 大写字母
    • [:space:] 空白字符
51Testing软件测试网4T2x%U@7HJe h6f2N

echo '12345' | tr -d 0-251Testing软件测试网 w3tZ%Af c

51Testing软件测试网^v6b7k#~F

-d选项为删除51Testing软件测试网%V)NT0D;R!`w6U+BW4^N

Fl,u7F8z TK-s15206551echo '12xxx3xxx45' | tr -s x

n{&LY6T2Pxz%}:K1520655151Testing软件测试网2`N1i9C u/b

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

]:?1{(^ F2B7r2_x(t15206551

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

a7]"RrW'a4sGk1520655151Testing软件测试网4f'c:tR;?k

-c选项为求参数补集,例子的意思即为将所有非字母字符替换为0;另一个常见作用是与-d结合使用删除字符51Testing软件测试网 w'D m(q#q8Ax+tc

sort

1[I)P8g0cBb Q15206551sort file1 file2 ...51Testing软件测试网-Y#\ Iq.Q+ci2IM [

51Testing软件测试网v-z"y0\8zA#?2t

依次排序各个文件

x!s-T ID|Hf15206551

cH,^1N\)s7^3{15206551sort -n file151Testing软件测试网'l(G4uu)Og

'[^6{T[qV15206551按照数字对文件内容进行排序51Testing软件测试网M4O.jL5C%m

4XFHJi F+CRN^ E15206551sort -r file2

*WUPN{ Ry2D ]1520655151Testing软件测试网 j(Ws5|L2N

逆序

X2WuHK-L9D k15206551

5m3wD1p {8{2] Vd15206551sort -u unsorted51Testing软件测试网sa.g(l.hYFm

7em(G}/T;j^`15206551排序同时对重复行只保留一行51Testing软件测试网!po yj~ n3[T

51Testing软件测试网B6P8r m6}^AbI

sort -k 2 file151Testing软件测试网4Z A]m`^

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

x\LsxL/s;W1520655151Testing软件测试网ly2n$x7^

sort -k 2.1 file1

/e[U9NeeA15206551

r/W1wlZ.P15206551以第二列中的第一个字符到末尾进行排序

5A0d)\?6^M15206551

%FkK ]xxp7]3C2SgF15206551sort -k 2.1,2.2 file1

N+X,Z#y8I*e15206551

.Y {pFLyd15206551以第二列中的第一个字符到第二个字符进行排序51Testing软件测试网;Y.w~:lt*q;M2B

uniq

51Testing软件测试网 O(o sD6P2}x [\

将标准输入中的连续多行只输出一行,“连续多行”就决定了uniq处理的标准输入必须是排过序的,否则无意义51Testing软件测试网 l!_)eT R6J(]

51Testing软件测试网Y@q)t1qZil

sort unsorted | uniq

MPO uQSFTV5e15206551

4s!R yw+^t15206551基本用法51Testing软件测试网xhV-Rl`&Q0f3?

.m1\#EydIf0p15206551sort unsorted | uniq -u51Testing软件测试网ie*O6u-}K Y

51Testing软件测试网 y5PIU$r+aj6LH

只显示唯一的行

t(z3dqz'e15206551

4N QI H:UH J&A*a15206551sort unsorted | uniq -c51Testing软件测试网{ ?4~} S+~-V+P4\

51Testing软件测试网:f/h f(sniV&v9| ]

同时输出行的重复次数

$E_TB1e,t15206551

Nf!}%?Y;Ds15206551sort unsorted | uniq -s 251Testing软件测试网|*k`&P^_

51Testing软件测试网k"T&aoot

-s表示跳过的字符数,另外-f类似,但表示的是忽略的字段数51Testing软件测试网)Rm.K7P)W"l

split

51Testing软件测试网 fF,\k.tW$M m

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

d%kq3a+I Yk R(Qg$A S1520655151Testing软件测试网'U M&A/J {l]1@#N9d$z4h

以大小切分文件生成诸如xaa xab xac ...51Testing软件测试网b'G:unS-hb

j5jh1Jhd,D l15206551split -l 100 Big_file

@Q!O/H6\F/~aA1520655151Testing软件测试网+E+]y)WDk}_-?

同上,但是以行数切分

^6Es DAUD T15206551

"AF wul p15206551split -a 4 -l 100 Big_file

W {z:kaF u15206551

.k[.fl fu;s5?p8~15206551-a选项表示生成的切分文件名的长度,设为4则生成xaaaa xaaab xaaac ...

1fD\S| |:pg15206551

\C/H j~4o;K VX Z15206551split -d -l 100 Big_file

B/`y+}HJ3i1520655151Testing软件测试网o_G9r,^[ |,}h

-d选项表示使用数字作为生成文件的名字,如x001 x002 x003 ...

-_'?7\$^ n!S(G8t"s15206551

3?({+mQ:t'C15206551split -d -l 100 Big_file mypre-

Y&[r5J*r1520655151Testing软件测试网~ _wZw

最后一个参数定义切分文件的前缀,如mypre-001 mypre-002 ...

6a-P w-A!_G4f15206551

~+n X] rsJ15206551cat mypre* > merge

i$WXTlx1520655151Testing软件测试网&r0NT"}abx+W

合并切分文件的方法51Testing软件测试网8D*{5X!u9p\,wtB8L

#、%、##、%%

51Testing软件测试网j'd/W#Y/Xe!p9Cx

几个运算符的作用是对变量进行处理51Testing软件测试网V#E-_M t_'pxs

51Testing软件测试网%w.w9S$ef:K

target=test.tar.png; echo ${target%.*}

)\Hx+i*E|-d)X1520655151Testing软件测试网1z;k_+n4Ca*SH5w

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

B jVv5T,Z g(]1520655151Testing软件测试网;zx:H%{-A S

target=test.tar.png; echo ${target%%.*}51Testing软件测试网 u o6aL2PHa!Z

51Testing软件测试网j*j-^M1\,] ~s!Z

输出为test,%%与%作用一样,但是贪婪匹配,即匹配到了.tar.png

uXg*gN(d-]U,Jm1520655151Testing软件测试网\&r6A'V`w3v/e

target=test.tar.png; echo ${target#*.}

~n#\PA3m15206551

!CFQ0G6]] kz[:s15206551输出为tar.png,#的作用为删除变量左侧与通配符匹配(即*.,匹配test.)符合的51Testing软件测试网f,f'T5{*l4l1r)U w

51Testing软件测试网}I3F&?-e

target=test.tar.png; echo ${target##*.}51Testing软件测试网"P+UO2vh:p

51Testing软件测试网P o g\+V$l"z;JyI7T

输出为png,##与#作用一样,但是贪婪匹配,即匹配到了test.tar.51Testing软件测试网.`(f:lm }

dd

*bAdAQ7Az o15206551dd if=/dev/zero f=junk.data bs=1[c|k|m|g] count=151Testing软件测试网a(R_$B(ydM%LG)_VT

51Testing软件测试网0F&]'}I$kN

if为输入文件,/dev/zero为linux特殊设备,会不断产生\051Testing软件测试网l%]N/Y$a:[ MrQn

G p&l,Q-c*D&y6]Un15206551of为输出文件51Testing软件测试网y%K8hx8O v

51Testing软件测试网)]OX U+WN2`

bs为块大小51Testing软件测试网5GOP(@ |A

tpIy/p"p&F x{h15206551count为块数,即文件最终大小为 bs*count51Testing软件测试网1dHs1]@Uyl[

mkdir

1BC5f K_|15206551mkdir -p /this/is/a/long/long/path51Testing软件测试网 V U8|~Jc

z8k-\ ] ~)Md h15206551用以创建长路径51Testing软件测试网/V#m3WL-p @Q

touch

:F$_;fs |!dS#s9QiB15206551‘抚摸’文件,更新文件的所有时间戳touch -a|m更改文件的访问|修改时间

6`JF6Fy3\L)n*R\15206551

iEk4UQ4E o15206551touch -t 201501012310.50 file

.R-if^ y&RZ#l|[15206551

7u.ERrjG&q R15206551更改文件时间戳为指定时间

6h2BR6efii15206551

ln

ca;rd_-c'q15206551ln -s ~ ./home

g"S]8EN"x F1520655151Testing软件测试网7M7U&e_O/h2n

为~目录创建一个名为home的符号链接,可以通过ls -l查看,也可以使用readlink查看51Testing软件测试网.e'HS)Mm9n

head & tail

51Testing软件测试网\5?u%FZfy6S G&v

head -n 5 file51Testing软件测试网0}1nQ|d5^{K(s }?

51Testing软件测试网rK g n?0HH

显示前5行

!H1g}Jn15206551

["Af&h'hr{3|!a,Q15206551tail -n 5 file

5?2VsduzJS-rEl15206551

,ctM`m,{15206551显示后5行

:j]g1{1v*^'\']0b%f1520655151Testing软件测试网c F'Ie(u"^,P&d+MG

tail -n +(N+1) file

0}"Hb8h(Q(l4x15206551

c6f7c'RR.p I.Eo+p15206551显示file从N行到结尾

:]t!x`([x3@5a i'v15206551

[9h.yz;Z15206551tail -f file51Testing软件测试网H7w_u&mFF.g]

51Testing软件测试网^7]+@3c L(}5N

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

yvJ;[W;F1520655151Testing软件测试网'cAc&T8ej#`n

tail -r file51Testing软件测试网2iw#Lc8KC7p

q7L[ { PcK,ij0Z15206551逆序输出51Testing软件测试网jIQN m4I3f*F1XZ(y

ls

51Testing软件测试网!CPe#U.BzT

ls -l

Z)vl8Bn15206551

Y dG:a8A ZC:|15206551列出详细信息

*yDI0`YZ&s;W3Wp15206551

6z&V/W6Fq#kco15206551ls -a51Testing软件测试网6K hz!a4X

8Ut nS?15206551隐藏文件

m'Ri-R M1520655151Testing软件测试网ddIV[IWP4[r

ls -d Dir

];kWy:n4v*G:rb r1520655151Testing软件测试网/C$\FV5FRn)TJi

显示目录本身的信息,而不是目录里的内容

f9f(MK5E^ ?%vae15206551

s"p&`)EM8HY)Y15206551ls -d */51Testing软件测试网d:S+x {0@ ^I

51Testing软件测试网2j&N%n']|-S

显示本级所有目录,类似还有ls -F | grep "/$",原理是-F选项为在目录后加/,再用grep过滤出来

1Y\ WctKf.d2s15206551

wc

51Testing软件测试网Z(AhB_{mm

wc -c|w|l file

8{r?7\4~vf/Z(ID15206551

-k'wh&F(CA_4p]15206551计算file的字节数、单词数、行数

l+L*l};H)Q A)O.a6c15206551

grep

9Pkf0d M15206551正则匹配,具体此处不表,注意*作为通配符和正则中的不同意义51Testing软件测试网)Ax%i7D9x$p{ Qv

51Testing软件测试网] ?_?GJ3d[

STDIN | grep MATCH_PATTERN --color=auto51Testing软件测试网6XH1O3htp

51Testing软件测试网q8Z1JH)h { J~

一般用法,高亮显示

-Dg{]8Z!M15206551

tb;}5U&GM15206551STDIN | grep -v MATCH_PATTERN --color=auto

$`|2`/l r.[xdJyZ1520655151Testing软件测试网%a)Y*Mi@}/G

反向匹配51Testing软件测试网)ln+sjR*Z4U^\

51Testing软件测试网3Nq z@$m ]v,{2e

STDIN | grep -c MATCH_PATTERN

w^vL(`'K5Ao/YL#h15206551

Y ` XPD f.F P.@5K15206551统计匹配的行数

wN.S9{4u$tl1520655151Testing软件测试网3Z*Z(TSz:u o

STDIN | grep -n MATCH_PATTERN

5w(EVz:fO"E1520655151Testing软件测试网(Q8} c3cz`5Q+S

标记匹配行的行号51Testing软件测试网7F HIiSb%m&P\s

51Testing软件测试网y)j |fip]E9u5n

STDIN | grep -i MATCH_PATTERN51Testing软件测试网HzY6t'z+x3| O%Bc

!^M9z1EWVdMK15206551忽略大小写51Testing软件测试网x Y1l%U {+a:a s r

51Testing软件测试网LvEq4Kx j`

STDIN | grep -q MATCH_PATTERN

"w wY`7Zp%W7M9wO1520655151Testing软件测试网4V~mh*lQ/dJ^ J'F*[

静默,常用于验证51Testing软件测试网|@ o^/Sm

51Testing软件测试网 w/jz3AW;X3IW

grep -l 'test' file1 file2 file3...

(g!^k"hU4g ~"E*?1520655151Testing软件测试网)B-k6qh \^V

找出'test'在哪个文件中,-L则恰好相反51Testing软件测试网"Cg2q ` }

51Testing软件测试网@/voE/H2{Ar%J*f

grep -lnR 'test' .51Testing软件测试网C"cd ?W2e8}n

51Testing软件测试网hrUl&Q

-R|r选项为递归搜索51Testing软件测试网1y6F(f!Xth

oS5^^{_?Z15206551STDIN | grep -e MATCH_PATTERN_1 -e MATCH_PATTERN_2 ...51Testing软件测试网%[u8a5H-I5V

51Testing软件测试网 Y;~9@o:vlaU;p roV

匹配多个模式(),此外还有另一种写法grep -f PATTERN_FILE,即将多个模式写在文件中,每行一个51Testing软件测试网:Z4w)y/Ds8[7P~.`*bu

"VV/q)y l8U15206551STDIN | grep test -A|B|C 3

']fJ6CG4E+z+V&U)Nn15206551

5fn+p3N9V"\$w1{ I15206551输出匹配行的上下文,A为After,B为51Testing软件测试网W"GJ/AI\

cut

51Testing软件测试网tPLLYrl

cut -f 1 file

tI CO ["Ba3mz15206551

3uK c;y?8xR@15206551显示file的第一列,关于列的指定

*D,GGX~T6p z e15206551
    • 1,3,4 显示1、3、4列
    • 1-4 显示1到4列
51Testing软件测试网 e%Bza;~6xCN,x R

cut -f 1 -d ',' file

1i JNTJ5g-e8v15206551

;D3T-LhW {K15206551-d选项指定分隔符51Testing软件测试网4ENp:?j

51Testing软件测试网/]CpL/h^K+it

cut -f 1 -s file51Testing软件测试网 K}:d3x%^

51Testing软件测试网:_ @U4p|

-s选项用以去掉不含分隔符的列,比如文件中的注释、说明性文字51Testing软件测试网h}Q9?;^

51Testing软件测试网'j\|8ziF

cut -c 10 file51Testing软件测试网0D6rXm*e'gk"L JV

-K:g&c$y Jn"Q15206551显示file的前10个字符,类似的还有-b,显示的字节

O2n$u`5f1Y:b15206551

wget

TuLfO'G v M b)F15206551wget url1 url2 url3

BH%}d5L c#D S1k6?15206551

!o\2fsn2F1uk15206551最基本的用法,从网络中下载文件51Testing软件测试网L%A h%^-S c|&[3o

rv0z@;c:O ~ z5W @15206551wget url1 -O save_file -o log_file51Testing软件测试网2vy;s&S#zl

51Testing软件测试网'QA#F'G@DA

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

HTG yMN8tz oS1520655151Testing软件测试网uL!O:w nd5EsJ]

wget -c -t 3 url1

Z;G9O,_3{ Ri15206551

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

J^Qz*{rD%Z15206551

nlix7c&F0@15206551wget --limit-rate 20[k|m|g] url1 --quota 100m

f s0K6{9Iv1520655151Testing软件测试网9j$kPnr R6M;c

--limit-rate 限制下载速度,--quota(-Q)控制下载文件的大小

7\io\6S~J)w15206551

,ui(L T,Vk7u15206551wget -m url151Testing软件测试网1P6V5T i!|'^

51Testing软件测试网3]_1W{%N0C$Ifp

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

U:uTwH ? t$T['O1520655151Testing软件测试网2C7MNn^G;c

wget --user username --password pass URL

+t;Vo/x4S1520655151Testing软件测试网s3X/Gz"^#A

需要http或ftp认证

e/t2E%Nl+sX.H15206551

curl

51Testing软件测试网"e%S%d#Js

curl是比wget更高级的http工具51Testing软件测试网-r$R9v'`3\9Ag

51Testing软件测试网%r'r }lv }-w

curl [--slient|--progress] URL

@;IP7toWH*{sfQ15206551

oVqUQ"R15206551curl的基本用法,下载url,--slient表示静默,--progress显示进度条51Testing软件测试网}K7z da!IXP

'~8E nuD9hh*MZ15206551curl URL [-O|-o new_file]51Testing软件测试网Y%R Sy'gQ

0dN t@:UU.D Q15206551curl默认将下载的内容输出标准输出,-O则控制curl输出到文件,文件名则自动识别,比如 DOMAIN/index.html则下载至index.html;-o选项则指定文件名,此处也可以看出linux各个命令直接选项的混乱

i,[jZx w\1520655151Testing软件测试网n:F)a)@jz

curl URL -C [OFFSET|-URL]

~L?l7e1520655151Testing软件测试网'_$l)Cho.xIDN

断点续传,可以直接指定续传位置(OFFSET,单位字节),也可以让curl自动推断,-C -URL

;M#Z!zQ7LDu|15206551

7}c*zaO:Rhi15206551curl -H "Host: www.baidu.com" -H "Accept-language: en"

LYd9rByW` h3K3k-n*_15206551

S yW7N!]#Z4v15206551指定(多个)header

Rk"H _ a1520655151Testing软件测试网.w#_)R2Z/k R@D

curl -l|head URL

}-aT1`AtC$gT1520655151Testing软件测试网#t(nB7olG

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

6a+rU ] sCMR%t,p15206551

ku d~ cIT15206551curl --referhttp://www.baidu.comURL

2v0i s _9K LA$p!h1520655151Testing软件测试网N`LTV7D:@Ej

设置http中refer51Testing软件测试网d(Dr iyb!j!O

;f n9b E7]`.En15206551curl URL --cookie "user=liufuxin; pass=hack"

ra:q/e? q15206551

2CB:WA9Gt"r s8R ^15206551设置cookie,当使用cookie文件时curl URL --cookie-jar cookie_file

*uYe1w'H,xu@m15206551

2zW^'l(CJs15206551curl URL --user-agent "Mozilla/5.0"

s M1gn5]!g/JB1520655151Testing软件测试网|t Dc#h ur

指定用户代理51Testing软件测试网C$Frq%AQ VS

51Testing软件测试网&^cJ"? M_ d#mX

curl -u user:pass URL51Testing软件测试网V"T#fB!N ]

51Testing软件测试网 w%qD0r[M.s

安全验证

rQRX-am+Hx15206551

tar

51Testing软件测试网;t0s__^u1Q

tar -cf demo.tar file1 dir1 dir251Testing软件测试网F*h['P.zR6`K

51Testing软件测试网T'b-C2yiM `

打包文件,-f参数必须为参数组的最后一项,其后必须紧跟打包文件名51Testing软件测试网;@kX`b$xV

51Testing软件测试网'YY!O}~/k1v7}

tar -rf demo.tar file_other

/fB'g?,{+Ub1520655151Testing软件测试网/I"M.piR$xuU f

向demo.tar中添加文件,注意通路径在打包中会同时存在,但提取时会覆盖

1jtI0vJM]"Z15206551

&b2t8p9w ?,s {15206551tar -tvf demo.tar51Testing软件测试网H J$BJ!M

51Testing软件测试网 o|b'`)x}DTzf

-t输出demo.tar内容至标准输出,v选项控制显示更多信息

.z1Nt }S5tg9o15206551

RLEo1e }&K4v[0X15206551tar -xvf demo.tar [file1|dir1|dir2]51Testing软件测试网"I&mMfJZ!P3F.F2T:n

51Testing软件测试网4c C#H/K$o*y+N

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

:Q']lTY| vM\"|vQ1520655151Testing软件测试网4~nT}4kW/f)u0{0_

tar --exclude '.svn' -cvf demo.tar51Testing软件测试网 r_7W#D4W+ycM"G

0Q,M7fnm.a9X9R15206551排除通配符文件

:Y4UN-FDRa1520655151Testing软件测试网W2oL2i^

tar --delete -f demo.tar dir151Testing软件测试网|V}j(R%S

51Testing软件测试网s8mul%ry b1_

从包中删除文件51Testing软件测试网?D-s(t&Q&ufN-SA

:tS/qF"Mk2C15206551tar -Af demo.tar demo2.tar51Testing软件测试网*o {`%s%xq:b

51Testing软件测试网h(ip&\N

将demo2.tar合并到demo.tar中51Testing软件测试网E)} N/exi+w"J

M!kW\U15206551tar -cv[j|z]f demo.[gz|bz2].tar *51Testing软件测试网Os.pT'fT

51Testing软件测试网R9U\Kv9J\

打包的同时压缩

1JLDK1L~15206551

*`NF;RjM!c9G15206551tar -cvjf - * | tar -xvjf - -C ./target

b5TEs z_L } ?4?1520655151Testing软件测试网C T3b:Sm

将文件打包压缩到标准输入,然后从标准输出中解压文件;-a选项可以根据文件名自动使用何种压缩

U*xLZH C15206551

gzip、bzip

51Testing软件测试网4N4g6EH;\ N

只能对一个文件进行压缩,所以经常和打包命令配合,两者使用方法类似,bzip效率更好一些,解压缩命令为gunzip bunzip51Testing软件测试网V2R4Sjp5Bb'G2C

F3\d&G[Q#q*T15206551gzip -c test > test.gz51Testing软件测试网I {2PY*^,c&w,F

51Testing软件测试网,N2Zk@7Kr(\hy;{p.t

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

8`n(]_nfzr;U15206551

D r fM9E15206551gzip -l test.gz51Testing软件测试网XVAuIr2Di

51Testing软件测试网yCPn#m0r_(V

列出压缩信息,包括压缩前后文件大小、压缩比率51Testing软件测试网 al;E\$I3z

:O8G c9?7~*T*C/n15206551gzip -[1-9|--fast|--best] test51Testing软件测试网\?(bz0G/^a'J,F1`

B0f'y(O"oZ9u15206551压缩比,1最快(--fast) 9最好(--best)

y0S]0~*Y:w.}15206551

K]I)lv15206551gzcat test.gz

8A"wG"[(f&d15206551

f5n tOsIA15206551列出压缩文件51Testing软件测试网4Cu.s6hy({n

$krK]H?&_&f15206551cat test | gzip -c > test.gz

0L/YXk6FA9I1520655151Testing软件测试网naR U*Q*OE

-c选项输出到标准输出51Testing软件测试网 kfsdDZ2E:FG

base64

uX_[MHCC(?15206551base64 test

;\8h~ V9j5R+jWj,w2C x1520655151Testing软件测试网F_lhERn)]-^

编码test,输出到标准输出

n _"sI?]*h\d1520655151Testing软件测试网xG PqXw,H

base64 -d test51Testing软件测试网h.Lf)_j~

51Testing软件测试网1? NP[1p.s0y;F-}

解码51Testing软件测试网/h;AU%x IVM:X#g0v

ping

o ~;}#X'AM15206551ping www.baidu.com -c 10

&j;Cv&x4Q"d-a.v15206551

b(RF(] W-i4K|4U15206551ping 10次

6W]0z%l _$sd15206551

scp

51Testing软件测试网.i6vMEiqFh0o

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

d3zcHH4S&K1520655151Testing软件测试网t#Xpou`9l

远程递归复制文件夹至本地,反过来即复制到远程

~:LD{/g E+K'A9o [15206551

lsof

o@/[+N mL@/@9x!g15206551list open files,列出被打开的文件,因为Linux中‘一切皆文件’,所以该命令也可以查看打开的网络连接和端口51Testing软件测试网e-\ oX d4c

/lZOWmw*?E15206551lsof file

y3]*btzB)X1520655151Testing软件测试网$y(@0Yv'M~-vG] Ec:h

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

7S4`^/_)|2z!Q#E H1520655151Testing软件测试网'm;jB IY"rbpc

lsof -r file

y!R R]Cs b@15206551

/[%g1^Vp*V4A b15206551-r选项为一直执行losf

/j9w4[:u/LpO1520655151Testing软件测试网Ub]*Y f#_

lsof -c abc51Testing软件测试网7j eig1q~ Xzc

51Testing软件测试网 ]UfE zu-_L6\.U

显示abc进程打开的文件51Testing软件测试网D:r1?SgWYM'Q

,i7uTo/q5S e15206551lsof -p 123

!v#G4w!JU1520655151Testing软件测试网*~%MT.Z.@-D$U|;_

显示PID 123打开的文件51Testing软件测试网T&H0R@u1_/G

&e6~6PKU9l[6jG%R15206551lsof -d 4

RL M;Yx5in1520655151Testing软件测试网.c:AK1~g5D3i

显示文件描述符(fd)为4的文件被哪些进程打开51Testing软件测试网D`Hq%g,@-\H

51Testing软件测试网,lWCULmc-C9z

lsof -u username51Testing软件测试网 S%N;Y"_,k!Rk^'s

51Testing软件测试网A1T@:^t)v'sBV g6@!]Y

查看用户username的进程打开的文件51Testing软件测试网 Wo+wek,S-T0tq+Z

4oX|2p$S'eM15206551lsof +d mydir1/51Testing软件测试网8[`;XPSsLQ,jp

51Testing软件测试网y\frw

查看指定目录下被进程开启的文件

9@nfp5q{ v15206551

C,m,~)G3{15206551lsof -i[4|6] [protocol][@hostname|hostaddr][:service|port]51Testing软件测试网$_ a/e _`i-F,nC

    • 46 IPv4 or IPv6
    • protocol TCP or UDP
    • hostname Internet host name
    • hostaddr IPv4地址
    • service /etc/service中的 service name (可以不止一个)
    • port 端口号 (可以不止一个)
51Testing软件测试网2i:Xtu#OU%J

lsof -i tcp@ohaha.ks.edu.cn:ftp

Ca"l:NN4y O1520655151Testing软件测试网}(Qk g%tu#n

lsof -i :3306

"F-g;V6]H15206551

netstat

K]uF8p4[#V C!w;H"d15206551用于显示各种网络相关信息

1Be-@%`;h{P N?9n1520655151Testing软件测试网-}"T!c6?3^xzj

netstat -a

VtGK\v)C*w15206551

?)@ zX:A1[15206551列出所有端口51Testing软件测试网r3Yd"F f1i B vn

51Testing软件测试网1U9TImc \

netstat -at51Testing软件测试网^(D\;|7`Twg*y

\ K-p4O Tk)o15206551列出所有tcp端口,-u为udp51Testing软件测试网/Xcn*tU7p m_r8? w

o.XA"v2k15206551netstat -l51Testing软件测试网.bs p1Dv0X|'L

6\~^*[h.n"}5y y@15206551只显示监听端口51Testing软件测试网4X._ v+}(V"fG;U

51Testing软件测试网:qbEtk

netstat -p

$bE2gF!Y7d|5EP15206551

)S$uOO#H;D15206551在输出中显示PID和进程名51Testing软件测试网/a(P*rP+d s2oR

6{!EPzE15206551netstat -n

3j-n(~ LVT Bl\15206551

GAsV|$Goj:y15206551不显示主机、端口和用户名,而用数字代替,可以加速输出51Testing软件测试网_0_-q:}$u4GKe }

&yV1cQn3x15206551netstat -c51Testing软件测试网8E0D1Qw!K'B9w

51Testing软件测试网5g(b~R7nP

每隔一秒输出一次

-|ud$Q1q15206551

du

5q iS Gu1h15206551disk used,磁盘使用情况51Testing软件测试网6rM1qLh

!Wa0b.yU~15206551du file dir1 file2 dir251Testing软件测试网t9{V5bm"I*g$B

4BO3l`;\(F5@15206551基本用法,列出文件、目录的大小,单位字节,目录默认只显示其子目录,且显示一层

E5q2?lW+y3N@W%_1520655151Testing软件测试网2l:|VBh h2I

du -a dir

f j r NtKZ%N1520655151Testing软件测试网w#ykgm4Z Fo+|U

递归显示所有

mppg7z2Nb @15206551

L2g1I*MyU4?W HE15206551du -h dir51Testing软件测试网-M%^g%N4y&H

51Testing软件测试网 ` R6D`*NvbB

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

jU'q+UO*yJ15206551

f!B,VXm-} R*Hs15206551du -s dir51Testing软件测试网&p)f}~,co4d

51Testing软件测试网!z,B,L3u1_

只显示目录的总计,而不是子目录

%?U,d;eFL15206551

df

!v$Z,j"]#EK15206551df -h

~#_Z|}\x-b){8m}1520655151Testing软件测试网FM7H3` m#XVu[u

列出磁盘空闲情况51Testing软件测试网:B^qRKL]

time

-T@(]$`ss15206551time COMMOND51Testing软件测试网&e.mxX$`(me

z5mGv9d~}15206551列出命令执行时间

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

JbN0r lhu]d[15206551time -f "Real: %e, User: %U, Sys: %S"

JE'W5^!^A5im%X3u15206551

a Le-{M"LQ15206551格式化输出51Testing软件测试网5fa&e!DI5|

watch

51Testing软件测试网Q;tb? JQ_9P

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

qf9vFs1520655151Testing软件测试网?-]Q't_4w X

watch -n 5 COMMOND51Testing软件测试网gIF!E#s0K/AJ

!MG\.x(P9T7b15206551默认2秒执行一次,-n指定为5秒

R|t8um#w1520655151Testing软件测试网U.v U2f\(l

watch -d COMMOND

B%W0W%Lhn1520655151Testing软件测试网^.JkT9G nx-C}4^

高亮显示区别51Testing软件测试网(odLI.TVv

ps

"Fc}b$M*f8p4\.Xy15206551ps -e

M@h6S&cW15206551

'I'L:Ba:CN15206551列出所有进程信息,默认值显示当前终端进程,-ax效果类似51Testing软件测试网"Kp,KV)l1N

:zpo`.dSf15206551ps -e[f|l]51Testing软件测试网 TF5U f~'c-R6oo4x{vp7u

_,d0I*PE15206551显示更多信息51Testing软件测试网pX J3TEr

eY8?o7g`y)J/]15206551ps -ef -o [Target_Col]51Testing软件测试网kdn'S+j:r$F7E {(R1J

!d J0h Gt/WVQ |15206551指定要显示哪些列,常用的有51Testing软件测试网o(e ih)`5~

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

iOI9LA;Nku]1i15206551ps -ef --sort -pcpu,+time

6cdA:?4?W$B15206551

#\gd4Mm6xRs]15206551排序,-降序,+升序

Hjfq!Z9ge15206551

vD5["rBP&}5[e15206551ps -efL

dh:uq e1K,p_7D15206551

f~4f`mNH;B)P[}15206551-L选项列出线程信息51Testing软件测试网C1c2XSbr ]J

kill

51Testing软件测试网([$S,`5m%u

kill -l51Testing软件测试网C T`G&@e"u a

51Testing软件测试网H1q3P8d ~

列出所有可用信号51Testing软件测试网nP8}:gGhk:[

7\\1k'zv-Ny)J ~P'u5p15206551kill 13113

kAo!Nd1520655151Testing软件测试网jd@lj1ml z

终止一个进程,默认发送的是SIGTERM信号(15),常用

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

6\&i7]pSk%rQ{E15206551kill -SIG_NO | -s SIG_NAME 4131

*w"C Zt6R6x W0S1520655151Testing软件测试网#p j pJ [

使用信号编号,或者信号名终止进程

&o*PB,k2Iq1520655151Testing软件测试网FNA:vwtd:SW#w

killall process_name51Testing软件测试网1u3P,Wo Yfc p

51Testing软件测试网&_rxCRt

杀死进程名的所有实例,类似有pkill默认使用进程名51Testing软件测试网)}\Dz$_]

which、where

y6~C(UD(V5c15206551两者类似,均输出参数命令的位置,但where会输出更多信息,如手册、源码(如果有的话)51Testing软件测试网$^5b-N[-c N

file、whatis、uptime

7j,lk/r9I3]]15206551file file|dir|bin51Testing软件测试网8J&?ul hw#z

(i9Y9VC.BJ)g8R15206551列出参数文件的类型描述信息

(SPpQ4p#C1520655151Testing软件测试网w2}6jn1v a6yd/Q

whatis COMMOND51Testing软件测试网9w'YzaP`

51Testing软件测试网i0h*sg_5d`|2P?*i

从man中解析出命令的简短描述信息51Testing软件测试网 K!ydM?7fj5Fq

v6r OI!o/J O |15206551uptime

Y%^gr7l7V q15206551

9k9JbS*T,^15206551系统使用时间统计,包括最近1分钟、5分钟、15分钟的系统负载51Testing软件测试网b3Cid!X.Gr6B+\q;}

wall

v3\}6B%w.to u15206551echo Notice | wall

'|jI-C1G*^iJ8I,b15206551

-\v,b G*b*_ cU9k L15206551所有终端广播51Testing软件测试网#y `;e~+]"x

uname

51Testing软件测试网 d1k;y1[9q7~,bV3I

uname -n

g0w'A[0Nxl-\15206551

R!_?|k;?/s4z#X15206551主机名,hostname

^`%tE3n4j1520655151Testing软件测试网vmHDf6eZ!I1B*{n

uname -a51Testing软件测试网)sD4UE0f~

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

w)t%L)R8X1520655151Testing软件测试网.m6@'@Q$f~sJS

uname -r51Testing软件测试网"@)k(WrrjR

51Testing软件测试网F'U3gu#Q j5a!JL

内核版本

.MC'F+M/K8N'U+\E1520655151Testing软件测试网9Q7j6B)\!~B

uname -m

Qc(U0n1eT1520655151Testing软件测试网[3aUv5d.J;l

主机类型51Testing软件测试网I3R.C~amA7B:}/d

logger

51Testing软件测试网kcs8tn.U)eb S

向系统日志/var/log/message中写入日志51Testing软件测试网x2y3^Vk0~ArL

51Testing软件测试网R8v5p%?yr:DJL}

logger message

&B(qZe4Y4w~;S_,Z,\1520655151Testing软件测试网1} k3KG0h,{1v'r{f

直接写入51Testing软件测试网-NSr }Fv7O

51Testing软件测试网k'~G6E]f|o l*X6xb

logger -t tag message51Testing软件测试网PM~ fs;B

51Testing软件测试网M$j%c4br E2j*f

日志添加标记51Testing软件测试网R!qMAh5B"X"c-e

'|Sq{ v+W@| es15206551logger -f source.log51Testing软件测试网R h,~#C,bEe-["]

U vb \ p9W.X15206551将文件写入日志

/hvo6}:dTlE0j15206551

sar

51Testing软件测试网G!j)U9wC;rN8d

sar -[u|q|r] 1 2

)mf[!fg X;n5[ G15206551

5Mxh f:EGs2q15206551u输出cpu使用率; q输出cpu运行进程数,总进程数; r为内存; 1为采集频率,2为采集轮次51Testing软件测试网h5S5p/d2E#w

crontab

51Testing软件测试网0SVM\{S.tM@

crontab -u liufuxin -e51Testing软件测试网l(v E|1Kb7h3h"i'r

51Testing软件测试网8IlSN"q

指定用户,root使用

\B6W.D`1520655151Testing软件测试网|y'v7DDj

/5 1,2 5-9 7COMMOND

5R'|0mv t.gO{T15206551

R'k TTFRd15206551每5分 每天的1,2点 每5-9日 每7月 执行任务51Testing软件测试网/Y7R-i$^y

51Testing软件测试网K,HN}s-k#] g2g#x

注意周跟日月不能同时出现,同时出现不是'与'关系,而是'或'关系

5{'D0S}W4\A-\1520655151Testing软件测试网3aw5e+bA*Z

注意51Testing软件测试网jJl.d|k

+z`|[;v O15206551Commond的输出未指定的话会发送邮件51Testing软件测试网i5amZ QW%w:RC{


(}%U;f m*T0rx3N4}15206551

TAG: Linux

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar