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

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

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


"A6q@9UU cK0

51Testing软件测试网U-n'?JCs/{

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

cat

51Testing软件测试网"x\Y v0l^

cat file1 file2 ...51Testing软件测试网dzUD;b[h

WA+YjV!z,G/M0不要忘了cat是可以同时显示多个文件的51Testing软件测试网;s)i TF'J

51Testing软件测试网o*yc9{1_2f(E3f

echo stdin | cat - file1

!B$mQ$~K _051Testing软件测试网?A\y&Xze&J?x

合并标准输入和文件

A%WBn$nT aMP051Testing软件测试网 y'w-f$R&i5u2Ji

cat -s file1

0O hy)u\R051Testing软件测试网(l5Z$cP?$a

压缩空白行

6G^n mTb051Testing软件测试网iYIV4D-v

cat -n file1

{ u ^x1S6t051Testing软件测试网3i!tm l2V4?9f"a5X;a

显示行号

9ag5L#][q9} xa0

find

51Testing软件测试网N)m x*n U\Oy3pT\

沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作51Testing软件测试网 d2K*Dt-z*Z.f6{ my

$Y5?1iGP$C#qb0find dir

)v.vE$j"XXw4l _o051Testing软件测试网uc.s+cA&Y7aW4B"{

未指明搜索条件,则是列出dir目录及其子目录的所有文件51Testing软件测试网\ I1W"?#ds SR)N]

51Testing软件测试网c?3_5{[$Ujr!C!@

find dir -name "Target*"

'?Uk'm~[pPz051Testing软件测试网'DTnZm0zM%}

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

"t/Bz5J0XB0

3ETIj0Y#C0find dir -type f|d|l|s|p|b51Testing软件测试网&o6CC*Wo{I f

8GY,H*tn/_0文件类型搜索,f为文件,d为目录,l为符号链接,s为套接字,p为管道,b为块文件

uK.} Q6b051Testing软件测试网9C^ g0lWqE

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

H4o5V*Acz"R051Testing软件测试网XLVx LH'Jtd2J({

-name匹配的是文件名称,-path则是匹配文件的完整路径51Testing软件测试网o {1{srR(n6w)bw T&w

r!f6y4[;jXtF0-path路径不能加入 结尾的/,比如路径/vobs/gliethttp/signature,不能写成/vobs/gliethttp/signature/,这是硬性规定

f_^(pTul.{051Testing软件测试网0q5Ka8e&I[&H@(]7m/W

find dir ! -name 'Target'

UF,^_;{ Ia]0

'fU1E~n&[3f8m0否定

)Q4|FiGt`0

U[WK.Q0find dir -name traget -o|a -type d51Testing软件测试网H]#O(I\ | _

4rd7J0C QYh0-o为或 -a为与51Testing软件测试网r ISH-q wu g&|

51Testing软件测试网!Z5m%o/{:lJ

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

}3~B.wCEy051Testing软件测试网:T HI$^:]Dy2`K

指定搜索的最大|小深度,据不可消息,深度应该放在搜索条件的第一个,否则系统将搜索出来全部后再过滤层次51Testing软件测试网c"W8L"Y Z

)j6W&e?z!P0find dir -regex ".*.jpg"51Testing软件测试网3J@3r$N9hf/oa5JR0u

51Testing软件测试网Q.C!Z5Jfi-T

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

.nsYi.j"F#i1l.C051Testing软件测试网-sS9T s E

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

51Testing软件测试网:u~J,P!t_S#E&p

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

Fe%`K2bA"U^051Testing软件测试网1`r2I#NU \Xy PwD]

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

V7H K+XH(d3B6p051Testing软件测试网Sl)Wx0ru

按照时间搜索,首先明白Linux文件系统每个文件都有三个时间戳

ixX-Bl,w8z0
    • 访问时间(-atime): 用户最后一次访问文件时间
    • 修改时间(-mtime): 文件内容最后一次修改时间
    • 变化时间(-ctime): 文件元数据(权限或所有权)最后一次修改时间
51Testing软件测试网6k[8Qg'[AD9L"U

搜索的单位是天,+是晚于,-是早于,无是等于,另外amin|mmin|cmin类似,但单位是分钟51Testing软件测试网 gq+Tp? k

51Testing软件测试网;Jbd Z{7a/ajd,g

find dir -newer file

h:L*M!Uj%S$V:e7~0

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

P \*[:` m#o~z3H+nN051Testing软件测试网 lIg-L5?s(P]Ta|

find dir -user UNAME

*p`L"hj0

PW$a'K*j }.j&h0按照文件所有者搜索51Testing软件测试网g5dMi*x;QtY+w

51Testing软件测试网%N.^;yB7A _O4w [{

find dir -perm 665

o/z#hr]&YD m)vH5M+]o0

{-S}F O0按照文件权限搜索

3}HmU}KHA051Testing软件测试网X9[w%@,}

find dir [搜索条件] -delete

6_&ZjX v(a1XCD051Testing软件测试网P%tR1r#|4W

删除搜索匹配项51Testing软件测试网(rXi3[0r.S(q

51Testing软件测试网Lw#N iI

find dir -name '.git' -prune -o -type f51Testing软件测试网&p;Reb?!Q Ac

$_$r;W9z;v\2b0跳过.git目录,-prune用法存疑,不是很理解

[x R8h`h0

b?uaR!w]0find dir -exec COMMOND {}51Testing软件测试网 ]g Om;ugEj

51Testing软件测试网#?AsB&{rO

-exec选项将会将搜索结果替换{},执行COMMOND命令51Testing软件测试网[%s'bNV6xE0z

xargs

51Testing软件测试网z6A+|)i|,dN^

将标准输入转化为命令行参数,比如现在有这样的一个样本51Testing软件测试网/n3M w$|E g/g

cat args
1
222
33
4
51Testing软件测试网ku5Z l3E.A OOI

cat args | xargs

*o&D}8c~7N&e-@ xS0

N9A7c3\w'@4W_0将标准输入转化为单行参数,输出1 2 2 2 3 3 451Testing软件测试网Ps$F{ o rlD:@2GG({7m

bae3aK0cat args | xargs -n 2

-OiQ:j/rH3?9w2G0

a}'jsZ7Q0-n选项指定每行的参数个数,输出51Testing软件测试网:x jHn\j

12
22
33
4

8O}r4OZ{}]0cat args | xargs -n 1 echo

:f/hY D I fk-CF051Testing软件测试网JHG};U

基本用法,保证每行一个参数,并传递给echo

$\t lV]J p1XPu0

+I!l/Z;jmp)bY/r/`0cat args | xargs -n 1 -I {} mv {} dir51Testing软件测试网Fhp(BNS-?y

Z:fXj/W0当需要将参数作为指定位置或者作为选项的参数时,可以使用-I选项作为占位符(多个如何替代?)51Testing软件测试网 ` l z0wb*\

tr

51Testing软件测试网9aP3hMMa.oj

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

M#h`5O\ xb051Testing软件测试网n uR-ZX1y,E3P9uH

echo '12345' | tr 12345 abcde

Nki&kxB4k*r4l051Testing软件测试网u'EFq,u

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

2?@Ro.?/]051Testing软件测试网mp/[7I0u(B

此外集合也有类似正则的简写a-zA-Z0-9,还有\t \n,特殊字符

zZ&k-\?RF_0
    • [:alnum:] 字母和数字
    • [:alpha:] 字母
    • [:digit:] 数字
    • [:lower:] 小写字母
    • [:upper:] 大写字母
    • [:space:] 空白字符
51Testing软件测试网4|4Q$fk1`

echo '12345' | tr -d 0-251Testing软件测试网g-@$D x {:I"AS

51Testing软件测试网7o+k5e$p~5B

-d选项为删除51Testing软件测试网+i.rC*FT p

jj!I.Nr V'JmP0echo '12xxx3xxx45' | tr -s x

[Zx:T(d*r"v051Testing软件测试网 o*B+lt'}7\9wC\

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

5VG:Zk V/j3Q051Testing软件测试网 r0RmTc

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

+I)sCZoa,L051Testing软件测试网^dy }5_4w4O J

-c选项为求参数补集,例子的意思即为将所有非字母字符替换为0;另一个常见作用是与-d结合使用删除字符51Testing软件测试网9mx"Dg-P3@.UE%Lr H

sort

51Testing软件测试网6[8_'xN;v T0~_)\ l

sort file1 file2 ...

J&Fd.^K;\K0

5D0^)i8?T {i0依次排序各个文件

9@*Z_/]V w0

8aC2QE3xU:Jf0sort -n file151Testing软件测试网 a;E h7B&yC.@"g!?B

51Testing软件测试网K#O;to+A.n

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

'V H ndo;a0

Cr+|G8u\D_-V0sort -r file2

,D-j3Ukx1\!U051Testing软件测试网9w*ntK d_X^ }YF

逆序

![5u-YP,H;}0

#R mJb0P*u)S N0sort -u unsorted51Testing软件测试网[8G*hcdP];q7U

| x_8dFl"\~'T0排序同时对重复行只保留一行51Testing软件测试网6T#qk,un]{4]

51Testing软件测试网,S!nk$~iS#Q^

sort -k 2 file1

.@ c8@wS;A.Y9l0

1I)Jly8_5CR8B$o9e^l0假如file2中数据存在多列,-k指定使用第二列进行排序

wu%kP$olM%dW-t0

/NG%nuC'uw-|0sort -k 2.1 file151Testing软件测试网6S!\4IV Pcak-k

a(EzR0K4qO5~0以第二列中的第一个字符到末尾进行排序51Testing软件测试网j7E3x g$G0H m5]

51Testing软件测试网KSQ\)z e/t]

sort -k 2.1,2.2 file151Testing软件测试网7{y)VZ6j}mx.y

X?W)D7m7y0以第二列中的第一个字符到第二个字符进行排序51Testing软件测试网\$u|KB FWd4e?6w E

uniq

51Testing软件测试网5UE1kf.bnRY(H

将标准输入中的连续多行只输出一行,“连续多行”就决定了uniq处理的标准输入必须是排过序的,否则无意义51Testing软件测试网?B"Q:VN(b(J

Vb } t%Ox!^&sI C`c0sort unsorted | uniq51Testing软件测试网 R8?.f"z@$Y.d

F6u2jCQ2W0m0基本用法51Testing软件测试网nB ~$MU6{K5[ Z8]

Td h'VIv)Gy6C0sort unsorted | uniq -u51Testing软件测试网)eH]#eTgZ;t

51Testing软件测试网0Kv"rK!F"j*Vy

只显示唯一的行51Testing软件测试网,J? z)ML!sfI

51Testing软件测试网8ud ]P$n$k

sort unsorted | uniq -c51Testing软件测试网f"b,|P$H0g'm K&j

L9l3o n-Kk1}i0同时输出行的重复次数51Testing软件测试网!nH"z4qs4x

51Testing软件测试网)lk ps:T wl1S

sort unsorted | uniq -s 2

9YL5K9F/g051Testing软件测试网)E mOlJ5N [

-s表示跳过的字符数,另外-f类似,但表示的是忽略的字段数51Testing软件测试网%^}/se n&Q J&I5Tc!}Hh

split

51Testing软件测试网6tg+NL`.Kx;z-A

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

D;W;VtF%tr ] \[0

;W$`]K/Hp#@"U0以大小切分文件生成诸如xaa xab xac ...

4||!o}?4\3Gx%@b0

$id,Nm9w-t[EG8e0split -l 100 Big_file51Testing软件测试网2gUkCQ }%B1~ cPH

51Testing软件测试网$[ X@.x6}G"aA

同上,但是以行数切分

~:jbr-t9c8mN051Testing软件测试网P K9nHf

split -a 4 -l 100 Big_file51Testing软件测试网1d/Z[7CE&exK(n R%Y_

.@!X}8Fc)Md#l0-a选项表示生成的切分文件名的长度,设为4则生成xaaaa xaaab xaaac ...51Testing软件测试网/@9D+uR9r9c

WIB~&Eqq |:RdA0split -d -l 100 Big_file

Mq6@qGy/^!G051Testing软件测试网TkA P+o{V

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

,^p7B1`.g5PgW051Testing软件测试网R)H4nKAZ

split -d -l 100 Big_file mypre-

L J{[1A4p,|.c&x0

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

Lp9o:bG XrA0

Y `;H eC2k0cat mypre* > merge

&H jq*J }H)m!pZ_051Testing软件测试网${;WVV"O.Y

合并切分文件的方法51Testing软件测试网O)L M,Ek

#、%、##、%%

51Testing软件测试网j1V,Vi4~ O

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

["d&HoK0

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

]z0Wf6O051Testing软件测试网 C9m*H(S0E*{.L

输出为test.tar,%的作用为删除变量右侧与通配符匹配(即.*,匹配.png)符合的51Testing软件测试网1h,LG_%p P q6^

Sg.Bg,X-E~ Y0target=test.tar.png; echo ${target%%.*}51Testing软件测试网u[m/v t6m

|M+OFC0p-{7i1@0输出为test,%%与%作用一样,但是贪婪匹配,即匹配到了.tar.png51Testing软件测试网 K;?9@1@7l q7^rV$A

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

Qpv+^8L%q0

6w/g1U;O(R$G)z-ml0输出为tar.png,#的作用为删除变量左侧与通配符匹配(即*.,匹配test.)符合的

?_;Fn3M^ sr0

?:nY&PNf3O(B!wW0target=test.tar.png; echo ${target##*.}51Testing软件测试网*o'J8NG%B W D

51Testing软件测试网\:E/k |7R dj

输出为png,##与#作用一样,但是贪婪匹配,即匹配到了test.tar.51Testing软件测试网4U3x/I[X0Rr n

dd

51Testing软件测试网 o1AIRPms!y \

dd if=/dev/zero f=junk.data bs=1[c|k|m|g] count=1

jH&I0G5C YBe051Testing软件测试网/n)S*_ Rm&j4@C

if为输入文件,/dev/zero为linux特殊设备,会不断产生\0

,e$y(@;zP8~,QUW051Testing软件测试网3Cp4lTy-{-r

of为输出文件

I'~!f2FQyo051Testing软件测试网-?6DK p t M

bs为块大小

m$W%P9z)d+C051Testing软件测试网 f"@|LhA

count为块数,即文件最终大小为 bs*count

F}N~AN*D0

mkdir

51Testing软件测试网A9qeKW Mp

mkdir -p /this/is/a/long/long/path51Testing软件测试网d8u|Xq{ R

51Testing软件测试网%{C0OzRK#Ob+I;\

用以创建长路径

.\ {ij8gnj0

touch

7pu)W X%H Gx0‘抚摸’文件,更新文件的所有时间戳touch -a|m更改文件的访问|修改时间51Testing软件测试网d[vL(E.d*hS7k

51Testing软件测试网\)Q h,ex#fT Bg+\

touch -t 201501012310.50 file

+B8z)O3k7bd{0

(N6M@)?xKk0更改文件时间戳为指定时间51Testing软件测试网 ES rx xG.Sp3}0v-mJ

ln

8f;f5^ LS/h`0Q0ln -s ~ ./home51Testing软件测试网!V-M'lT;MR s"h7Z

51Testing软件测试网#b~,W6f`B

为~目录创建一个名为home的符号链接,可以通过ls -l查看,也可以使用readlink查看

-W3_ H c,X8~(st?T0

head & tail

51Testing软件测试网x;P M:scvi]Pu

head -n 5 file51Testing软件测试网` i0j#|.Cj5x,f4Ht

51Testing软件测试网2sEp@`+{"c(X

显示前5行

!H ]@l-P.I9D.^xh#Ue051Testing软件测试网IVI)SEr#i

tail -n 5 file51Testing软件测试网r L'|:j9y/B @.B5s6Q

51Testing软件测试网_(UW(o]rJ

显示后5行

+X-zE!oO I0m0

|w0z5M a#_n$A.U,g0tail -n +(N+1) file51Testing软件测试网z t#Q hj:[

51Testing软件测试网0wYEA6Qnij I

显示file从N行到结尾

!u$dO{+Dn(r0

Y1Y }!n#i0tail -f file

0L0u(P8S:l~w"q)`0

0Mk2Q g7B3J0动态跟踪file变化,此外-F选项甚至可以在文件被重命名后依然跟踪51Testing软件测试网2G:RqU7{BF3L

-LH Z3b^d0tail -r file

6C6No:l0Tp)X^0

1j)O&q;Z7T*K,\x W7o0逆序输出51Testing软件测试网~ l:F4Z|!}@ a0M

ls

"_'`4aI'@!Y&g0ls -l51Testing软件测试网D8zR7w2F/hz*h

51Testing软件测试网-M zH8U4Ol q0Q`U\

列出详细信息

k3nAB J4PC8XI0

/AgG4GS0v#UR@0ls -a

#ICKr)R5tH.n0

zod]1cI"{ e0隐藏文件51Testing软件测试网}jV,x4Wx4s6j

y-|-|pX0ls -d Dir51Testing软件测试网`4I |z1K7~uDE

51Testing软件测试网9p2TK qH+{g"H

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

ZV$rAO}E0

$e3hMd4L{3k']2FR5b0ls -d */51Testing软件测试网$f CMB1y){3j

51Testing软件测试网b T@/R1G8@'b

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

!{nPB^x5x0

wc

X*H WF j a.vN5h0wc -c|w|l file51Testing软件测试网$}4|tRf9E(gHM

51Testing软件测试网M q$c IR7y

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

3L^t lp+mha0

grep

51Testing软件测试网f!V7bE.C+B @|!ZMv

正则匹配,具体此处不表,注意*作为通配符和正则中的不同意义51Testing软件测试网jFswF

,},jb&G4a\a0STDIN | grep MATCH_PATTERN --color=auto51Testing软件测试网\?fwdf-@

51Testing软件测试网Yc2I8aO(` Tk4k

一般用法,高亮显示51Testing软件测试网gdPF ylc/_

51Testing软件测试网XL US-C+{#y

STDIN | grep -v MATCH_PATTERN --color=auto51Testing软件测试网K?H)B+Ai]_az

b3U8HpTV+^vS:b0反向匹配

'G"R'q _g$t,p,`+s0

T!Px-R8Om;z'B0STDIN | grep -c MATCH_PATTERN51Testing软件测试网/H[oRT&zp

f1sny.E1j0统计匹配的行数51Testing软件测试网/m%f}W R Tn+i

51Testing软件测试网5~2^._s#L2]{

STDIN | grep -n MATCH_PATTERN51Testing软件测试网e{$X uf;i9Z

[g%u?Q0标记匹配行的行号51Testing软件测试网]-M(^%_.U1Z!Q&y'{ I

;o [,_W,m T6@$q7a0STDIN | grep -i MATCH_PATTERN

6Z(G lZ kt0

"_%`)x`#g,S0Q0忽略大小写

A+Bi]-E]ot%@G051Testing软件测试网9J]T V7w#n r{4J

STDIN | grep -q MATCH_PATTERN51Testing软件测试网)y/`|`%{@'@9s ty/d

51Testing软件测试网(t3Q l[?v7tE

静默,常用于验证51Testing软件测试网m&T+m/w*O

P1g,}x,r;W"T.K0@0grep -l 'test' file1 file2 file3...51Testing软件测试网Z1OzSP9{n

6[o:@3K*A8Ff9{/i~0找出'test'在哪个文件中,-L则恰好相反

3x&r*ck xR9o7K051Testing软件测试网"X c NK j R:D%x2Q

grep -lnR 'test' .

\7wF+f l-K|H0

p6c F;\ }0-R|r选项为递归搜索51Testing软件测试网6Q:z"AcTl8T m@

51Testing软件测试网s}+sln/y

STDIN | grep -e MATCH_PATTERN_1 -e MATCH_PATTERN_2 ...51Testing软件测试网&`)Z4_;@&h/VK"Gt

G'XuY[c3H lC0匹配多个模式(),此外还有另一种写法grep -f PATTERN_FILE,即将多个模式写在文件中,每行一个

~$py/~q6Oi051Testing软件测试网JUt$t_Z\

STDIN | grep test -A|B|C 351Testing软件测试网K#XXFYS1Qt

h }{%VQ7f.Y9J0输出匹配行的上下文,A为After,B为

+SOny mE"C.~ T Q0

cut

51Testing软件测试网5hi1We(G2O"x6gy

cut -f 1 file51Testing软件测试网&uZ\tdhA:C N z

51Testing软件测试网Q8]2q"j3E

显示file的第一列,关于列的指定51Testing软件测试网IF c*rGy[/y2B

    • 1,3,4 显示1、3、4列
    • 1-4 显示1到4列
51Testing软件测试网WV;i'ND H

cut -f 1 -d ',' file51Testing软件测试网0g{+},T"u-z9^

FB'uR\G0-d选项指定分隔符

.bL6k$M q)^ ?5\0

Z hAu{wv&D0cut -f 1 -s file51Testing软件测试网$Bb3c7Uqh&Q nn

9rU"GW Bty0-s选项用以去掉不含分隔符的列,比如文件中的注释、说明性文字51Testing软件测试网 TnQq8|}0O1@.[3@

/x`*i/fvX L0cut -c 10 file51Testing软件测试网7D9EJ^L)P5S

51Testing软件测试网"}4?Eu&t2W

显示file的前10个字符,类似的还有-b,显示的字节51Testing软件测试网XS2r Z9Cnv9s

wget

51Testing软件测试网6{ M/Mf,r9]

wget url1 url2 url3

'^!n8O rinN9nK051Testing软件测试网 n.m p.R!oHEU(fn

最基本的用法,从网络中下载文件51Testing软件测试网8w%K-EEAT2_ T?6S }s

51Testing软件测试网 FS g4l/i px L)v

wget url1 -O save_file -o log_file51Testing软件测试网1Q DL'h9U;n9w6y |9E ^w

Ol"It)kxk"o0-O选项指定输出结果的保存文件,-o选项指定wget执行过程中日志存储文件51Testing软件测试网5\``opWc

'\.z0ZEs0wget -c -t 3 url1

R*kx0Ly0

[CS.EJ*Nr0-c选项断点续传,-t指失败的尝试次数

7m!o!{d)xR0

$Wh i,o1b+_0wget --limit-rate 20[k|m|g] url1 --quota 100m51Testing软件测试网M#Y u R?#G nl5d y3d

51Testing软件测试网,Y ld+I*H$` U

--limit-rate 限制下载速度,--quota(-Q)控制下载文件的大小51Testing软件测试网#AF2j6hmHa.y.A

7v W4b6~R\!P0wget -m url1

'e(k y,i }sdJ p0

8ZS5S%Y8e:\5AZd0-m(--mirror)镜像url1,等价于wget -r -N 1 -l 3 url1-r递归,-N使用时间戳,-l指定递归深度

M3I,GMR0D-M0

\-c,c(I$y~.|)^0wget --user username --password pass URL

(U |b7a/BjIX;A051Testing软件测试网)gi6]G!f_u-YZ;H

需要http或ftp认证51Testing软件测试网dc)d9}7X'Q

curl

51Testing软件测试网MO#O2A ~vFeh

curl是比wget更高级的http工具

4L a OOX M0

}(Qwl-C#@5h T0curl [--slient|--progress] URL51Testing软件测试网 K~#J7X x8ddSBVt

z(Is/_tf0curl的基本用法,下载url,--slient表示静默,--progress显示进度条51Testing软件测试网+Q:u1M(Akn_%K

c&}HmQ0curl URL [-O|-o new_file]51Testing软件测试网](OL'`,A4Bn

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

L;xxK+v051Testing软件测试网2K9mAm7T+T+g oN

curl URL -C [OFFSET|-URL]

9lX3H Q"k8N7G9`051Testing软件测试网;nA]%~L(T i2I"}/W

断点续传,可以直接指定续传位置(OFFSET,单位字节),也可以让curl自动推断,-C -URL51Testing软件测试网fy _m#[1I

4`9{ Mx F i+nxP#J0curl -H "Host: www.baidu.com" -H "Accept-language: en"

!^oW.G3A \ly051Testing软件测试网R1cZ&Hns_E

指定(多个)header51Testing软件测试网 a@ u0y.d

C$Hm5ikW0curl -l|head URL

"{,h3K v#@?0

6P+b?O)g0只显示响应报文中的头文件

/MEfUh`3vG6S051Testing软件测试网,l@;C IQGVRAF.tB

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

7Y${6J-W,n|051Testing软件测试网&M\+o'_ U

设置http中refer51Testing软件测试网{H9\3Q0P(^7tD `@

r"\L/i#as'sS0curl URL --cookie "user=liufuxin; pass=hack"

9z?VU-a/JaV6E5rs051Testing软件测试网(A"xH)[(y3w6kCp!C

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

l8byB8C1RrB0

ajBfA0curl URL --user-agent "Mozilla/5.0"

4x Q9Z*gq[0

:G4i*j8GR~U;C0R.bE0指定用户代理51Testing软件测试网h1m*C)ww3t\mk

51Testing软件测试网[ q6Jt }^

curl -u user:pass URL51Testing软件测试网2r2s jM,ci g

+J,sI,z&s!U%b0安全验证

:l IKbF"B/j0

tar

51Testing软件测试网0k4MO p m

tar -cf demo.tar file1 dir1 dir251Testing软件测试网Z%])vO%x8Y(T.`+[d

51Testing软件测试网*A^8oe i-_ xNk

打包文件,-f参数必须为参数组的最后一项,其后必须紧跟打包文件名

(y0BB#G.Y8D0

;?"R MZ BG:xjX-I"`B0tar -rf demo.tar file_other

/O!Q(s9O1j1Z-O051Testing软件测试网5f-?J:Sg X+XA,z

向demo.tar中添加文件,注意通路径在打包中会同时存在,但提取时会覆盖51Testing软件测试网 u] qO#N D

51Testing软件测试网UYr7]-]3l!O8[_

tar -tvf demo.tar

Y+kk EreR0

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

$L9V6`o5f-q0c051Testing软件测试网Ia}2M2B/U`*j

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

3P(d5dh9w }-y#b8d.o!w0

i8LW^qsL0提取打包文件,也可以指定提取的文件51Testing软件测试网5O!?VIv~0u

51Testing软件测试网+}:g9J({o4s}D2@'_~

tar --exclude '.svn' -cvf demo.tar

9WP j ?s7`051Testing软件测试网]f{1] x6]H%| qiK

排除通配符文件51Testing软件测试网#rvY#qE~Nl)t

51Testing软件测试网"a8N(v+X|+C!`o0K*s1{V

tar --delete -f demo.tar dir1

j4T'D(gy051Testing软件测试网7laD{Z8wRiE

从包中删除文件51Testing软件测试网] Cq {"@#@E

51Testing软件测试网1aG"UUV9SZ z {/w

tar -Af demo.tar demo2.tar

P~1^| OA tF0

UH"qsc-k1n@M0将demo2.tar合并到demo.tar中51Testing软件测试网^`0Qi`}:HwmA

51Testing软件测试网N*?7`.W;V T3Pp x!_2C6e

tar -cv[j|z]f demo.[gz|bz2].tar *

Jti T @1H XJ051Testing软件测试网(R0y2N'R:kmCO2G

打包的同时压缩

&_so `]4?$g051Testing软件测试网.j.j.V%EF:`_({-H

tar -cvjf - * | tar -xvjf - -C ./target51Testing软件测试网u:~3_LEt,W8I

51Testing软件测试网1Tc3m$R#k

将文件打包压缩到标准输入,然后从标准输出中解压文件;-a选项可以根据文件名自动使用何种压缩51Testing软件测试网YM!L7|$TS

gzip、bzip

51Testing软件测试网&j.g6\,Fh(\#j RZ

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

Lf3Z*nAs/@051Testing软件测试网&U4w[X"o I(]v H1b

gzip -c test > test.gz51Testing软件测试网%|(ms0_ xX/B!b-x1K

vW5q^C|u-x;N0生成text.gz同时保留原文件.zsh中直接使用-k即可51Testing软件测试网2y8Si.n+z,Yr u

51Testing软件测试网P3oU}/s$q/u

gzip -l test.gz

l2G(j.A'o~M/mD(]051Testing软件测试网LTh)s7fW

列出压缩信息,包括压缩前后文件大小、压缩比率

6l9Vu-fh?'Z051Testing软件测试网TMUPK:~k6e

gzip -[1-9|--fast|--best] test

1[-LgR J0

^u$P!j{?4q[9?0X0压缩比,1最快(--fast) 9最好(--best)

Cu eL[Bc051Testing软件测试网l}9yVa gr0k

gzcat test.gz51Testing软件测试网B%ZO*L"v~r4S&i

51Testing软件测试网2IdMe{?]:kX

列出压缩文件51Testing软件测试网bc5?$Q+aK"y:k

G)J3\)[!B{4HZ0cat test | gzip -c > test.gz

X e:]P4[0

r#CTO-{XNw Kk0-c选项输出到标准输出

I9h"p'XAF0

base64

51Testing软件测试网!U7aKYZ

base64 test51Testing软件测试网)ff&x1|p t8ab

o1vLS+b~ B0编码test,输出到标准输出51Testing软件测试网 HGx!i BH;eSY%N

#J$^8xf S;Eg0base64 -d test

;UX/q]L8g0

8Xy;Y3W8D4?;c0解码

1@ S-xP-d4`0

ping

51Testing软件测试网J;H']KOz

ping www.baidu.com -c 10

Y]!{6C Zi~rcZ0

,{:~ y0O5T6g0ping 10次

#BF `V%h9D H.}*j G0

scp

v"n9y.}|S0scp -r user@host:/home/path/dir ./

| {^"U)gg5p0

&[ YO-f1Vk+w$G+{]N-Y0远程递归复制文件夹至本地,反过来即复制到远程51Testing软件测试网-s?+CEgf~

lsof

s D5m6w:t%d+R0list open files,列出被打开的文件,因为Linux中‘一切皆文件’,所以该命令也可以查看打开的网络连接和端口51Testing软件测试网b_2U^ J$hO ss]

51Testing软件测试网J(WiV*zD

lsof file51Testing软件测试网 k}wO7~!q*F

51Testing软件测试网z"U\y`4R*c

查看file文件被哪些进程占用51Testing软件测试网T\5D'Y(y-y8zI J

S0m+e[e]7~TT%~E0lsof -r file51Testing软件测试网;C$q^ e8R6nK

51Testing软件测试网B _%T-l,@9Y+Tp)a9d

-r选项为一直执行losf

,h5@4ejF ~#Q M{0

x2k@ |EBsof -c abc51Testing软件测试网V AoFB uV

51Testing软件测试网 q d+K9`9\&Q/W}

显示abc进程打开的文件

0Te:fb5M/l$zKg0

+M \#vA%i0[GL3P0lsof -p 12351Testing软件测试网@? Sp0mf6f

CT-j:A@;y*F C_0显示PID 123打开的文件

Gc`d6a051Testing软件测试网c`J\4^gV

lsof -d 4

0Xy;|'Otz`|O0

{_\~k?'ob0显示文件描述符(fd)为4的文件被哪些进程打开51Testing软件测试网j2?/D'z%e K0b

dza6a'W?0lsof -u username

hQ Z8L\0

/XqDNB:i"U$F1eH N,_ K0查看用户username的进程打开的文件51Testing软件测试网]$hu-KK~ f

,K6yW6w-C|2k#C:hq_0lsof +d mydir1/

:O%Bu] hbG,d_0

Ps([.`'xtY0查看指定目录下被进程开启的文件51Testing软件测试网 s8M!] g.@,l]

.j6J o1m sn/k0lsof -i[4|6] [protocol][@hostname|hostaddr][:service|port]51Testing软件测试网_d pM.F:p

    • 46 IPv4 or IPv6
    • protocol TCP or UDP
    • hostname Internet host name
    • hostaddr IPv4地址
    • service /etc/service中的 service name (可以不止一个)
    • port 端口号 (可以不止一个)
51Testing软件测试网LM'u/z,r

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

6e C|R;s!k0

!M+kO?pj.D0lsof -i :3306

.u/E*k+?T6[H E0

netstat

51Testing软件测试网%s0n$x'nI

用于显示各种网络相关信息

j3U)XBRU0QU0

L5FNIo#B4]t2j*p0netstat -a

Cy,]C*E]'@0

3ye0c.vmQ0列出所有端口

5t9Lx U"c}5l051Testing软件测试网#xG3j3z1i#K

netstat -at51Testing软件测试网nkY!D.qNY:A-f

51Testing软件测试网^Pk'z\

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

,u7xY2{B@ H0

)Z7Y.q9w+q0netstat -l

^#}v:p|6D7fn051Testing软件测试网%~%s%Le/X/nB9IY

只显示监听端口

U c.lx vx(z"N051Testing软件测试网jsu"ms-I

netstat -p

$f/taXw0

6J)Ho0k]$W2~J R0在输出中显示PID和进程名

AS5|$AvF051Testing软件测试网6HI{3M{+D$M

netstat -n

Nj Y:TJ.^051Testing软件测试网5Xh+?S5i["^;HH@

不显示主机、端口和用户名,而用数字代替,可以加速输出51Testing软件测试网$nz)oV9^ p8q

E&q*k8u m|V-A0netstat -c

$@1[&C0\6km0l9Ox7K3s0

,e%e8]$|P$n"[W`N0每隔一秒输出一次51Testing软件测试网O%~j~+u1qq rb1_

du

^W;D$j!{$v+JMb0disk used,磁盘使用情况

%oFhJZ}{A051Testing软件测试网P g A8Os J,Y:Ir

du file dir1 file2 dir251Testing软件测试网(VX1a:Oq.l6lhm6P

51Testing软件测试网n%e^vf9J

基本用法,列出文件、目录的大小,单位字节,目录默认只显示其子目录,且显示一层51Testing软件测试网"@&YWr:Tj%[c

cm&s Y'l7J;oNP6S#f0du -a dir51Testing软件测试网dh fL!}Z+]

rBu YL.J S0递归显示所有51Testing软件测试网'yQ0`,N{QR(l`(k

T-Sc.t"PS;r0du -h dir

^ \7c/S&M3wJh051Testing软件测试网xe$IE6Nl]2M)j Hw

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

~C8h)ip"A8?S051Testing软件测试网@@ g%{2ew

du -s dir

~ xoM&@6S MAO0J051Testing软件测试网8Gi(T#OCl

只显示目录的总计,而不是子目录51Testing软件测试网5e)`j/^B t3b"cLk

df

"o4@T{kFI0df -h51Testing软件测试网3[-\$[_:@

,y'lH:R!RI _0列出磁盘空闲情况

r @:]hT"gjkk$Q0

time

~Y-l4rh0time COMMOND51Testing软件测试网\*@Kyr

51Testing软件测试网4ktF&GM3n Tk+x|

列出命令执行时间51Testing软件测试网9Z%i%\rHgz4MTeb

    • real 开始执行到结束的时间
    • user 进程在用户模式的时间,唯一真正用于执行进程所花费的时间(不包括阻塞、挂起)
    • sys 花费在内核模式的时间,唯一真正使用CPU的时间
51Testing软件测试网,M{/G MhZfS0@ OQ

time -f "Real: %e, User: %U, Sys: %S"

L~*z,^Eo sI[051Testing软件测试网j2|iG,HCI:G

格式化输出51Testing软件测试网a.nE+EI

watch

zXc}^YD0固定时间间隔监控命令输出51Testing软件测试网!C'i3wfS?O(ael

[|${Yc@6A0watch -n 5 COMMOND51Testing软件测试网N?mr?+H9\P

:Tvj0bGC6a5cb0默认2秒执行一次,-n指定为5秒

5lP6f0dj0

;t4J9@-Ik0watch -d COMMOND

*iU N&}"X%|0

|q1UV kS"s8@!v0高亮显示区别

7{&ft!A5],|M-O0

ps

:oY1Vb-c ](JvD0ps -e51Testing软件测试网!f&J;B^+UMg fG

]rTZ,P d-F6CzU0列出所有进程信息,默认值显示当前终端进程,-ax效果类似

w3_V#FG t k0

&y&]0S;}"v&ml0ps -e[f|l]51Testing软件测试网}AjH1R|8\V}1dA

5u&^DG)O!x2[0w X0显示更多信息51Testing软件测试网N9n4e+Z#U[%x"c_

51Testing软件测试网?.c!\Zj^4p

ps -ef -o [Target_Col]51Testing软件测试网wE;k g{&g oiP

51Testing软件测试网7Tj#hx^#J b

指定要显示哪些列,常用的有51Testing软件测试网f7y ]&\o2viE dp

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

)C+ktN e:Tl0ps -ef --sort -pcpu,+time

-B gI{z2N*u0

u$b})\ }${?m%f0排序,-降序,+升序

k'A@,C)k6cT051Testing软件测试网VW+g\Q}!f

ps -efL51Testing软件测试网 Ag#~:CC"E

1E'W\8N'g%H}4_0-L选项列出线程信息

_VJX IX+dLMS0

kill

51Testing软件测试网vauC/Q'gN-y

kill -l51Testing软件测试网+O0pJa*I(`hg j

51Testing软件测试网~r"M&K4@6k

列出所有可用信号51Testing软件测试网1sZ A @8EX:b2B

&V rq$} X(XIN#RU;\0kill 1311351Testing软件测试网 brE9@ O-y\-]I s:U

a.h m!s;`o D0终止一个进程,默认发送的是SIGTERM信号(15),常用

"D+e5}'W mD0
    • SIGHUP 1 挂起
    • SIGINT 2 中断,ctrl+c
    • SIGKILL 9 强制杀死
    • SIGTERM 15 默认的终止进程
    • SIGTSTP 20 ctrl+z
51Testing软件测试网F2]7tj;`#sn)i

kill -SIG_NO | -s SIG_NAME 413151Testing软件测试网5thd6q5N,]}-z

51Testing软件测试网+U"J|ct hp

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

Z1H8{ _qP7DFw(_TG051Testing软件测试网-C7beH1O

killall process_name

:_4[rxW [ S(g0

?h]*[k]*Q'Y6G0杀死进程名的所有实例,类似有pkill默认使用进程名51Testing软件测试网v2X-f9{N5iJz_ f

which、where

51Testing软件测试网`5|:\LJB,gw2~

两者类似,均输出参数命令的位置,但where会输出更多信息,如手册、源码(如果有的话)51Testing软件测试网(pz }8i\eg

file、whatis、uptime

51Testing软件测试网2U ^Sn/r7l%{

file file|dir|bin51Testing软件测试网2UC"VQ G

@s1Y&g~"Et m6s0列出参数文件的类型描述信息

i!g,F+V"LEYO0S.pd0

{pmE*C[,v:r'H0whatis COMMOND

`:RY+M| _051Testing软件测试网$f8Cr$j%Eo1S b

从man中解析出命令的简短描述信息51Testing软件测试网FA8L[S3]H

51Testing软件测试网7xHZ"Q b\A:Z/a M

uptime51Testing软件测试网0Ls$E S4J8}

a7cOBF:v p0系统使用时间统计,包括最近1分钟、5分钟、15分钟的系统负载51Testing软件测试网'P6j]*s#ag yw

wall

[S6t#E(E:Yi3F.]-L0echo Notice | wall

&R3]$@ k\8dI)I8a;@051Testing软件测试网4L^y5d`BE]@

所有终端广播51Testing软件测试网.NS)Cr,Q x}?

uname

51Testing软件测试网Vb'O2np/HA)PA

uname -n51Testing软件测试网c#?)]X'o(c CU

U'o&_f%UY n0主机名,hostname

w)k}_,~mO1L!_051Testing软件测试网rOn._ yw0?

uname -a

n2V5s7Gfl7}Q0

3x@)v ONe}ox0打印内核、硬件架构等详细信息51Testing软件测试网 ?W/TA-N]*l

51Testing软件测试网 Mb"d3h%KQ}o D

uname -r

L0w0}HS2D*E0

|s;f*m]E!g0内核版本

!I#s y2}-s'rP051Testing软件测试网c!r8{8UG4JT/T6b)u

uname -m51Testing软件测试网&Qu_0y&r4^5B,p%V| u

8vQ_{}b ~L6NiR/^7n0主机类型51Testing软件测试网fh)CC7f,^f

logger

51Testing软件测试网%H0r%x&C8n R

向系统日志/var/log/message中写入日志51Testing软件测试网9Z&|k9r-xd$D

51Testing软件测试网wxs1Yu8I

logger message

l$D^ c| }\O051Testing软件测试网$ozAvc`

直接写入51Testing软件测试网g7V:`}f%zV!K\

]'\ t%W0l0logger -t tag message51Testing软件测试网)H$j6w1{#m#m9s

51Testing软件测试网jR,kJ4vq8k

日志添加标记

AQMX0L/]7w9Y*k&P0

D@_K F Rr @T?D0logger -f source.log

;hGV@rp-k2v051Testing软件测试网 c[ Bdnb7Q1[

将文件写入日志

f8e C1g!tD|B({0

sar

51Testing软件测试网?6T7K'M;vYG

sar -[u|q|r] 1 251Testing软件测试网}nD}w4l2?y

$h_-@X/j0u输出cpu使用率; q输出cpu运行进程数,总进程数; r为内存; 1为采集频率,2为采集轮次51Testing软件测试网?3|8Xt s5L k W$[ n

crontab

qF%AH|)Dn*n5z(n0crontab -u liufuxin -e51Testing软件测试网1v%F.M*{$M w f'oM

)OuKCB}V"N0指定用户,root使用51Testing软件测试网l kR!E%q r5H ~#P

I2P5a*[)d3H7x0/5 1,2 5-9 7COMMOND51Testing软件测试网k kR'WU+N

51Testing软件测试网"aqO'[W}

每5分 每天的1,2点 每5-9日 每7月 执行任务

-d Ou(d Y@Qj051Testing软件测试网$?w x3J#a

注意周跟日月不能同时出现,同时出现不是'与'关系,而是'或'关系51Testing软件测试网:K$Q_x$K2K-WX

8Q0UN:X0YK#h4B0注意

+W3p$M-Uh A0

/oW2u6Y#x i\N0Commond的输出未指定的话会发送邮件

k S4L([7nmM(y051Testing软件测试网0xdLI4n:xsK.EY

TAG: Linux

 

评分:0

我来说两句

显示全部

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

Open Toolbar