linux常用命令
D14i] oe1$;K>.7 称:/etc/aliases
"&TN}SBW 使用权限:系统管理者
x)2ZbIDB:" 使用方式: 请用 newaliases 更新资料库
KZsJ_t++!W 说明:
8|S}!P" sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
`yua?n [G}l; /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
pM_oIH'8: # newaliases
Cq%1j[ oAq<ag\qV 下面命令会做相同的事,
":Ll.=! # sendmail -bi
/-C6I: CDDOm8 相关命令:
{b]V
e/\ mail, mailq, newaliases, sendmail
>}!})]Xw9 \oV g(J&o ” mail [返回]
y(Ck j" 名称:mail
MN. $a9m rTYMN 使用权限:所有使用者
C1SCV^# |7E1yu 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
T.#Vma \~@a/J 说明:
~&T%u.u7 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
/UPe@ ZE0D= 参数:
\6c8Lqa i 忽略 tty 的中断讯号。 (interrupt)
&0%x6vea I 强迫设成互动模式。 (Interactive)
)Vnqz
lI5 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
%Ig3udcY? n 不读入 mail.rc 设定档。
C:@JLZB s 邮件标题。
z !:%Hbh= c cc 邮件地址。
u(g0Ob b bcc 邮件地址。
4ai|*8. ).9m6.%Uk 范例:
3!0~/8!f@ OykYXFv* 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
YO`V'6\ mail
user1@email.address
5Uha,Q9SA mail
user1@email.address user2
:7jDgqn^|i 1;N5@0%p 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
]Geg;[t zY&/^^y mail -s 标题 -c user1 user2 < mail.txt
$@Kwsoh' a!Ht81gj 指令:mesg
Yl0_?.1 z 使用权限 : 所有使用者
;7w4BJcq'] QO(P_az3mg 使用方式 : mesg [y|n]
G [$u`mxV^ W"*~1$vf 说明 : 决定是否允许其他人传讯息到自己的终端机介面
y?@(%PTp Rx%SeM2 把计 ?
2qxede [$AOu0J y : 允许讯息传到终端机介面上。
On4tK\l@ n : 不允许讯息传到终端机介面上 。
'\I!RAZ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
:FqHMN
X6<%SJC 例子 :
+_ZXzzcO< 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
oVYW'~OID mesg n
"-aCF 与 mesg 相关的指令有: talk,write,wall。
N#zh$0!8bJ 名称:/etc/aliases
2E*h,Mo 使用权限:系统管理者
P{gy/'PH, 使用方式: newaliases
\:@yfI@ 说明:
a1yGgT a?D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
;>Q.r{P A4`3yy{0- /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
mcqLN5 #<EMG|&( 参数:没有任何参数。 范例:
X4{O/G # newaliases
|VxO ,[~ r;
pS_PV 下面命令会做相同的事,
]p5]n*0X # sendmail -bi
1'Y7h;\~\ l11+sqg 相关命令:
052ezh_ mail, mailq, newaliases, sendmail
" }oH3L 名称 : talk
Tj
v)jD 使用权限 : 所有使用者
hX&Jq%{oa h}knn3"S 使用方式 :
7;x}W-`iF +o[-ED talk person [ttyname]
`@)>5gW&p 说明 : 与其他使用者对谈
nTQ&nu! j'M=+ 把计 :
uk=f /nT
person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name tVFydN~ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
.&2Nm&y$K h}SP` 例子.1 :
NGq@x%T ?@YABl 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
MR`lF-|a| talk Rollaend
6Ud6F t6 ' zz^!@ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
3Eu;_u_ rf= ndjrH 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
`y0u(m5 talk
Rollaend@linuxfab.cx pts/2
dJ&f +
_KZ&/ Is1(]^EE* 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
8LH\a.> QuWWa|g^. 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
{#C)S&o)6 vtu!* 7m 名称 : wall
c[<>e#s+; 使用权限 : 所有使用者
wJMk%N~R: )p!.V(, 使用方式 :
_CImf1 wall [ message ]
N3$%!\~O 使用说明:
c%x9.s<+1 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
"eG@F s=[T,:Z 例子 :
"%E<%g Lh;U2pA 传讯息"hi" 给每一个使用者 :
h#JX$9 wall hi
Xt9vTCox 名称 : write
3)0z( 30 使用权限 : 所有使用者
2m{d> -|g9__|@ 使用方式 :
oo-O>M#5 WNo7`)Kx write user [ttyname]
GJ Takhj3 说明 : 传讯息给其他使用者
>i!y[F NE5H\ 把计 :
K=N8O8R$y KEfwsNSc% user : 预备传讯息的使用者帐号
/mG-g%gE ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
+%!'~ ?DgeKA"A 例子.1 :
J?"v;.K|hU 0T2^$^g 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
U%r|hn3 write Rollaend
S8k<}5 ^/ZNdwx 接下来就是将讯息打上去,结束请按 ctrl+c
h$l`)AH^ iiLDl 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
V~MyX&` write Rollaend pts/2
?*L{xNC# x T1MW 接下来就是将讯息打上去,结束请按 ctrl+c
}U ue}VOA wJF(&P 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
L};P*{q2Z 8DkZ@} 名称:kill
%;,4q B
使用权限:所有使用者
utU;M* !QlCt>{ 使用方式:
?
J/NYV V='A;gs kill [ -s signal | -p ] [ -a ] pid ...
w0P Atu kill -l [ signal ]
.L9n 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
nSpOTQ 把计?
B|ctauJ 95mwDHbA -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
t~%( Zu>S -p : 印出 pid , 并不送出信号
VQ;'SY:` -l (signal) : 列出所有可用的信号名称
2$b JMx> 范例:
2(km]H^ 4}-G<7* 将 pid 为 323 的行程砍掉 (kill) :
^G14Z5. kill -9 323
3,0b<vfSv L, 2;-b| 将 pid 为 456 的行程重跑 (restart) :
:Q ?p^OC kill -HUP 456
n(#[[k9&Ic /h 4rW>8D2 名称:nice
M>ntldV#g% 使用权限:所有使用者
g>QN9v}) 3QCCX$, 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
%wco)2 Ctbc!<@o 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
^t?vv;@} pP%9MSCi y
~Fi 把计?
P6A##z vr4{|5M -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
wW7# M --help 显示求助讯息
:xk+`` T --version 显示版本资讯
NH4T*R)Vz 范例:
gOr%N!5 将 ls 的优先序加 1 并执行 :
Z+ _xX nice -n 1 ls
5|Oj\L{ v oO7W" 将 ls 的优先序加 10 并执行 :
[8&+4< nice ls将 ls 的优先序加 10 并执行
ul]hvK{2 a,h]DkD 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
@U:PXCvh G +AP."M? 名称:ps
vj|#M/3> 使用权限:所有使用者
xT-`dS0u 使用方式:ps [options] [--help]
T(Ji%S> 说明:显示瞬间行程 (process) 的动态
Y]!&, e, 参数:
=t
%;mi,M ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
e/x6{~ju^N -A 列出所有的行程
'EN80+xYX -w 显示加宽可以显示较多的资讯
Qe_C^(P -au 显示较详细的资讯
Rh%@N.Z* -aux 显示所有包含其他使用者的行程
z:=E-+ @|{8/sOq au(x) 输出格式 :
$4Dr +Z
H ;U#=H9_ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Ii<k<Bt, USER: 行程拥有者
mY]o_\` PID: pid
7~);,#[ky %CPU: 占用的 CPU 使用率
#J t1AV %MEM: 占用的记忆体使用率
F$i 6 VSZ: 占用的虚拟记忆体大小
p)VMYu RSS: 占用的记忆体大小
yCuLo` TTY: 终端的次要装置号码 (minor device number of tty)
;.^!
7j STAT: 该行程的状态:
KGc!#C D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
;@
G ^eQ R: 正在执行中
dKhS;!K9p S: 静止状态
"&o"6ra} T: 暂停执行
)l.AsfW% Z: 不存在但暂时无法消除
{R"mvB` W: 没有足够的记忆体分页可分配
f:6F5G <: 高优先序的行程
:4)(Qa( N: 低优先序的行程
^XG$?2<U L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
,5j3(Lk START: 行程开始时间
ZXXJ!9-&+J TIME: 执行的时间
))<vCfuz2 COMMAND:所执行的指令
hj{)6dBX% 范例:
AMASh* ps
zF|c3ap PID TTY TIME CMD
o ZQ@ Yu3 2791 ttyp0 00:00:00 tcsh
`TH\0/eE 3092 ttyp0 00:00:00 ps
]z#)XW3#i % ps -A
5z\,] PID TTY TIME CMD
cc>b#&s 1 ? 00:00:03 init
j<`3xd' 2 ? 00:00:00 kflushd
l]j;0 i 3 ? 00:00:00 kpiod
6uKP
BL@, 4 ? 00:00:00 kswapd
3,2$Ny3N 5 ? 00:00:00 mdrecoveryd
o+)y! .......
j"fx|6l) % ps -aux
9JX@ck USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
F1BXu@~e( root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
mU"Am0Bdjq root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
?\(qA+iP0 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
C+"c^9[ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
2-jXj9kp` ........
sKJr34 名称:pstree
6RguUDRQ 使用权限:所有使用者
EUVD)+it 使用方式:
/W .G-|: pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
#9Fk&Lx pstree -V
wwQ2\2w>Hm 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
q2'}S
A/ 参数:
.p> ".q
I -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
sjb.Ezoq3 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
U@CAQ? 范例:
R MOs1<D pstree
7a^D[f0V Hc[@c)DH init-+-amd
D~Ef%!& |-apmd
O[{/P:a |-atd
4;
0#Z^p |-httpd---10*[httpd]
0
f$96sl %pstree -p
nRu %0Op init(1)-+-amd(447)
VH<d[Mj |-apmd(105)
!M`.(sO] |-atd(339)
"'@D\e} %pstree -c
4;3Vc% init-+-amd
=wW M\f`= |-apmd
z^jmf_ |-atd
ryw%0H18 |-httpd-+-httpd
Bg[yn<)
] | |-httpd
GQk/ G0*& | |-httpd
\8m9^Z7IfK | |-httpd
z5@i"%f ....
BfCnyL% 名称:renice
Q4L=]qc T 使用权限:所有使用者
nw, .I [ !Ur.b
@ke 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
@$ Nti> r<Z .J/a 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
F?"Gln~; I )vR 把计?
{.p;V y N9~/g -p pid 重新指定行程的 id 为 pid 的行程的优先序
_b>{:H&\ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
zPybPE8 -u user 重新指定行程拥有者为 user 的行程的优先序
` OgT"FdL! 范例:
s$qc& 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
Ejr'Yzl3_ renice +1 987 -u daemon root -p 32
Eu~1t& 4 MffCk!] 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
iGz*4^% X>Q4 4FV! 名称:top
K(PSGlI f 使用权限:所有使用者
]!P8 {xmb@ S]|sKY 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] a#i|)[
,!alNNY
说明:即时显示 process 的动态 NqD Hrx
zv0sz])
把计? ~@PD\
[7HBn
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 1 I.P7_/
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 \P9ms?((A
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 =)c-Xz
s : 安全模式,将交谈式指令取消, 避免潜在的危机 _?cum~A@
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 )g^qgxnnV
n : 更新的次数,完成后将会退出 top oqysfLJ
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 q+oc^FD?@
8!!h6dQgI
范例: 42tZBz&
显示更新十次后退出 ; vqQ)Pu?T
top -n 10 :[(%4se
v0! 1W
使用者将不能利用交谈式指令来对行程下命令 : .{ljhE:
top -s cF=W hP*f
j<~T:Tk
将更新显示二次的结果输入到名称为 top.log 的档案里 : /5"T46jD
top -n 2 -b < top.log d0ht*b
!X$19"
名称:skill Xx[,n-rA
~Js kA5h|&
使用权限:所有使用者 mVYfyLZ,(
*c=vEQn-
使用方式: skill [signal to send] [options] 选择程序的规则 f(blqO.@l
u^|cG{i5"
说明: 4vN:Kj
4ytdcb
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 bEmN
tp^
bHx@
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 tJ6Q7
J;n
~8mz.ZdY
一般参数: hgW1g#
^,^MW
-f 快速模式/尚未完成 uM_ww6
TIl 'Z7
-i 互动模式/ 每个动作将要被确认 "M-';;
U*\K<fw
-v 详细输出/ 列出所选择程序的资讯 .;Gx.}ITG6
7=u
Gf$/
-w 智能警告讯息/ 尚未完成 +^esL9RG:
{D..(f1*u
-n 没有动作/ 显示程序代号 Ri_2@U-
~CV.Ci.dG
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 :;+_<pk
.81Y/Gad_
-t 终端机代号 ( tty 或 pty ) tA< UkPT
X])iQyN
-u 使用者名称 Pp8G2|bz
U?{oxy_[ 2
-p 程序代号 ( pid ) Wu|MNB?M
X"q[rsB
-c 命令名称 可使用的讯号: /ILd|j(e
eIF6f&
F
以下列出已知的讯号名称,讯号代号,功能。 >lQa"F=
D]*|Zmr+}
名称 (代号) 功能/ 描述 5VOw}{Pt
: -#w
ALRM 14 离开 uF}dEDB|;
S ;rd0+J
HUP 1 离开 %~M* <pN
;ZAwf0~
INT 2 离开 Il*!iX|23<
*U$]U0M
KILL 9 离开/ 强迫关闭 9DM,,h<`
m>P\}A^N
PIPE 13 离开 9{Et v w
u<fZ.1
POLL 离开
]ilLed
wf]?:'}
PROF 离开 &ck}3\sQ
#;^U W
TERM 15 离开 _z BfNz9D
Q
Kr/
USR1 离开 ^JMG'@x
|,oLZCNa
USR2 离开 k;t G-~\d
EwV$2AK
VTALRM 离开
H,GjPIG
9d/-+j'
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 _L~ 3h
x=7:D
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 u=v-,Tw
Y %bb-|\W
TSTP 停止 /产生与内容相关的行为 B&rN