linux常用命令
PO:sF]5 jQBn\^w 称:/etc/aliases
7>AMzNj 使用权限:系统管理者
D^f;X.Qm 使用方式: 请用 newaliases 更新资料库
,,7hVw 说明:
j}fSz)`i sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
e ]{=#
(iJ
/ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
^7=h%{>= # newaliases
>Dz8+y =hI;5KF 下面命令会做相同的事,
TS=U%)Ik # sendmail -bi
;sx4w!Y, s'Qmrs
a 相关命令:
:H:+XIgoR mail, mailq, newaliases, sendmail
-e0?1.A$ WKwYSbs( ” mail [返回]
vw-y:,5`t8 名称:mail
h&~9?B 2~V"[26t 使用权限:所有使用者
\zOsq5} !lM.1gTTC 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
aO
bp" 'X?Iho 说明:
:dxKcg7 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
8;,|z%rS" X `F>kp1 参数:
1Cw$^jd i 忽略 tty 的中断讯号。 (interrupt)
q &S@\b I 强迫设成互动模式。 (Interactive)
O2U}jHsd v 列印出讯息,例如送信的地点、状态等等。 (verbose)
[EK^0g n 不读入 mail.rc 设定档。
X|}Q4T` s 邮件标题。
=p:~sn# c cc 邮件地址。
5Y@Hb!5D b bcc 邮件地址。
O]@s`w IfY?P(P 范例:
o5m]Gqa 'Axe:8LA' 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
t5 P8?q\ mail
user1@email.address
f6PYB&<1 mail
user1@email.address user2
9Q7342 Zvra > % 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
u EERNo& bHXoZix mail -s 标题 -c user1 user2 < mail.txt
w U1[/ XK;Vu#E*^ 指令:mesg
Mh{;1$j# 使用权限 : 所有使用者
i8%@4U/ J sI{?4k 使用方式 : mesg [y|n]
:%+9y @% V=YDqof 说明 : 决定是否允许其他人传讯息到自己的终端机介面
gN*b~&G {xICR ~,* 把计 ?
l j+p}dt m9\~dD y : 允许讯息传到终端机介面上。
@CoUFdbz n : 不允许讯息传到终端机介面上 。
vZ^U]h V 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
7 ;2>kgf~ j8^zE,Z 例子 :
m8+
EMBl 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
}?HWUAL\ mesg n
A-rj: k! 与 mesg 相关的指令有: talk,write,wall。
,-DU)&dF 名称:/etc/aliases
!\'HKk~V 使用权限:系统管理者
xl,6O!aR 使用方式: newaliases
j zwHb'4B3 说明:
aN!,\D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
,kl``w|1M *)vy%\ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
R0|4KT-i ;hh.w?? 参数:没有任何参数。 范例:
AOz~@i^ # newaliases
+4Q1s?` 7;Vmbt9 下面命令会做相同的事,
'?LqVzZI # sendmail -bi
-<e_^ /"^XrVi- 相关命令:
+k0UVZZX? mail, mailq, newaliases, sendmail
?30pNF| 名称 : talk
,D&-.`'E 使用权限 : 所有使用者
D z[,; Ylgr]?Db* 使用方式 :
j+>N&.zs R 0G!5>1i talk person [ttyname]
qc a=a} 说明 : 与其他使用者对谈
Pu 'NSNT K@{R?j/+ 把计 :
xqauSW person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name (UTA3Db ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
WmRu3O IGlM}
?x 例子.1 :
}Nma %6PfV EoS6t 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
g!)*CP#; talk Rollaend
5,\|XQA5! PWO5R] 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
Q9Go}}n m6Qm }"" 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
Z|A+\#' talk
Rollaend@linuxfab.cx pts/2
M<Y{Cs p<y\^a RcZ&/MY 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
vYq"W% kovJ9 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
.&h|r>*|J Sw>,Q-32 名称 : wall
t@iw&>8z 使用权限 : 所有使用者
E5Ls/ HK O(:/&`) 使用方式 :
$&i8/pD
wall [ message ]
^+kymZ 使用说明:
1bjWWNzQA wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
):n'B` f}z Dv4 H^ 例子 :
c(!pcB8 6QNZ/Ox: 传讯息"hi" 给每一个使用者 :
q2;CvoF wall hi
.k%/JF91n 名称 : write
98vn"=3 使用权限 : 所有使用者
Hr \vu`p$ :!FGvR6 使用方式 :
w8#ji 1gX i8#:y`ai write user [ttyname]
n1b^o~agwC 说明 : 传讯息给其他使用者
Ql,WKoj* ~
cI`$kJ 把计 :
j9BcoEl:; 3ik~PgGoKQ user : 预备传讯息的使用者帐号
}|nEbM]# ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Jn9{@?? urQ<r{$x0 例子.1 :
zXkq2\GHA &egP3 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
i1 GQ=@ write Rollaend
we
kb&? Fz| r[
接下来就是将讯息打上去,结束请按 ctrl+c
MVEh<_ ^,J>=>,1\ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
29&F_ write Rollaend pts/2
Bp4#"y2 ?/(*cA
接下来就是将讯息打上去,结束请按 ctrl+c
*T.V5FB0S =6=l.qyYK 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
T iJ \J{ biU
?>R
名称:kill
}^*`&Lh 使用权限:所有使用者
=>O{hT^F uX6rCokr 使用方式:
Ml)<4@ sXY{g0% kill [ -s signal | -p ] [ -a ] pid ...
^Of\l:q* kill -l [ signal ]
g``S SU 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
Q,};O$h 把计?
g+xcKfN{ $-
Y8@bw -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
7'ws: #pC -p : 印出 pid , 并不送出信号
7UUu1"|a| -l (signal) : 列出所有可用的信号名称
yvnvI y 范例:
!P6?nS m&[(xVM 将 pid 为 323 的行程砍掉 (kill) :
(v$
i kill -9 323
BG6Lky/omz TZdJq 将 pid 为 456 的行程重跑 (restart) :
!yz3:Yzu kill -HUP 456
KYq<n& s 0;%\L :,O 名称:nice
ly@%1 使用权限:所有使用者
}s8xr> R?J8#JPXD 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
Q v},X~^R {#&D=7LP 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
JtF)jRB0, {
3 "jn i;:}{G< 把计?
vF'IK, ~N)(|N -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
hK3Twzte --help 显示求助讯息
8L`wib2 --version 显示版本资讯
zv^+8h7k 范例:
7(H?3)%0 将 ls 的优先序加 1 并执行 :
SE$l,Z"[*b nice -n 1 ls
Q_*.1L [lzH%0
V 将 ls 的优先序加 10 并执行 :
AR
g]GV/L nice ls将 ls 的优先序加 10 并执行
<d{>[R) 8sq0 BH 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
8SCXA9} T`c:16I 名称:ps
-.Zy( 使用权限:所有使用者
y-Lm^GW4 使用方式:ps [options] [--help]
x@|10GC#: 说明:显示瞬间行程 (process) 的动态
_J,*0~O$ 参数:
{l\Ep=O vx ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-:Q"aeC5 -A 列出所有的行程
Wq<HsJd/ -w 显示加宽可以显示较多的资讯
vJ;0%;eu[! -au 显示较详细的资讯
}hXmK.[' -aux 显示所有包含其他使用者的行程
}t1 q5@QU D<[kbt5^7 au(x) 输出格式 :
2N.!#~_2 D "M,Hm!j USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
=~q$k USER: 行程拥有者
,,?XGx PID: pid
C @P$RVS %CPU: 占用的 CPU 使用率
g$z6*bL %MEM: 占用的记忆体使用率
1b@]^Ue VSZ: 占用的虚拟记忆体大小
[5GzY`/m RSS: 占用的记忆体大小
S5cs(}Bq TTY: 终端的次要装置号码 (minor device number of tty)
7uzc1}r STAT: 该行程的状态:
0bu!(Tpg7 D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
:aD_>,n R: 正在执行中
V)ITk\ S: 静止状态
<co:z<^lqu T: 暂停执行
*QoQ$alHH Z: 不存在但暂时无法消除
A'*#UYn( W: 没有足够的记忆体分页可分配
#6#%y~N <: 高优先序的行程
2=|Ks]<P N: 低优先序的行程
G}nj
71=H L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
mw83 pU6 START: 行程开始时间
~SwGZ TIME: 执行的时间
gj
}Vnv1[ COMMAND:所执行的指令
Io('kCOR; 范例:
t*-_MG ps
HrRw PID TTY TIME CMD
V\AF%=6} 2791 ttyp0 00:00:00 tcsh
Z0M|Bv9_ 3092 ttyp0 00:00:00 ps
WHRBYq_ % ps -A
1WI^RlWd( PID TTY TIME CMD
3X9 1 ? 00:00:03 init
G(1_P1 2 ? 00:00:00 kflushd
`b_n\pf] 3 ? 00:00:00 kpiod
/K<>OyR? 4 ? 00:00:00 kswapd
iS`ok 5 ? 00:00:00 mdrecoveryd
6s$h _$[X .......
Y*S(uqM % ps -aux
:S+Bu*OyH USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
NH'QMjL) root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
$$'[% root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
FyV $`c$ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
GvL\%0Ibx root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
p)~EG=p ........
A=np?wc 名称:pstree
6L-3cxqf\ 使用权限:所有使用者
U \F ?{/ 使用方式:
-I~\ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
`L3{y/U' pstree -V
\{o<-S;h 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
1Q$/L+uJ5 参数:
=3GgfU5k -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
~;oaW<" -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
ra1_XR} 范例:
{G=|fgz pstree
9Wdx"g52_D r$,Xv+} init-+-amd
Ubh)}G,Mg |-apmd
w1+
%+x |-atd
xBE}/F$45 |-httpd---10*[httpd]
SYgkYR %pstree -p
I8\R7s3 init(1)-+-amd(447)
'.7ER |-apmd(105)
-LlS9[r0 |-atd(339)
1gX$U00: %pstree -c
k%;oc$0G-3 init-+-amd
7<LCX{Uw |-apmd
K>#QC |-atd
tl=e! |-httpd-+-httpd
D+Z2y1 | |-httpd
$qiM_06 | |-httpd
*^ua2s. | |-httpd
h<g2aL21?F ....
VD+v\X_ 名称:renice
Z 3-=TN 使用权限:所有使用者
|zy` ]p9 +]e) :J 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
:VX2&* BfD C[(n` 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
L!Gpk)}[i nlc$"(eA[H 把计?
^a7a_M kXOc) -p pid 重新指定行程的 id 为 pid 的行程的优先序
lXutZ<S[ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
M'@ -u user 重新指定行程拥有者为 user 的行程的优先序
4!-/m7%eF 范例:
ah#jvp 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
@/='BVb'T renice +1 987 -u daemon root -p 32
q( %)^C
L$@qEsO 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
$Q= S`z= ?:+p#&I 名称:top
Am >b 7Z! 使用权限:所有使用者
r>6FJ:Tx ]#W9l\ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] <jh=W9.N_
SgQ(#y|vV
说明:即时显示 process 的动态 FMT_X
HcGbe37Xq
把计? *1*i5c
sl)]yCD|5
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s =Nr?F'<
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 Q3[nS(#Z/=
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 r%`3*<ALV)
s : 安全模式,将交谈式指令取消, 避免潜在的危机 (Y
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 b{.Y?.U
n : 更新的次数,完成后将会退出 top 43*;" w=
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 UW{C`^?=B
-+:t%A?
范例: m:cWnG
显示更新十次后退出 ; k8,s<m
top -n 10 ~NIqO4 D
_D8:p>=
使用者将不能利用交谈式指令来对行程下命令 :
*,,:;F^
top -s hcR^?
Z OqD.=O(
将更新显示二次的结果输入到名称为 top.log 的档案里 : %Lp#2?*
top -n 2 -b < top.log L#N]1#;
lN*"?%<x>
名称:skill +^[SXI^JaJ
5-:H
使用权限:所有使用者 `~h8D9G
8(* ze+8
使用方式: skill [signal to send] [options] 选择程序的规则 ob9=/ R?i
Xvxrz{
说明: ,v#3A7"yW
b:$q5
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 UGP&&A#T-
it->)?"(6
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 b6@0?_n
%z-n2%
一般参数: CT(HTu
Wli!s~c5Fo
-f 快速模式/尚未完成 /&5:v%L
N"zl7 .E
-i 互动模式/ 每个动作将要被确认 L8KaK
.G>~xm0
-v 详细输出/ 列出所选择程序的资讯 t6~~s
iQI'
ogoEtKi
-w 智能警告讯息/ 尚未完成 y)3OQ24
xo{z4W
-n 没有动作/ 显示程序代号 G~/*!?&z
1{G@'#(
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 k.\4<}
4Td)1~zc3
-t 终端机代号 ( tty 或 pty ) )#,a'~w
,t39~w
-u 使用者名称 Sb`SJ):x
M%5_~g2n'\
-p 程序代号 ( pid ) [o.#$(
8]WcW/1r !
-c 命令名称 可使用的讯号: s 4n<k]d
i1!Y{
以下列出已知的讯号名称,讯号代号,功能。 6df`]sc
o}yA{<"
名称 (代号) 功能/ 描述 |oR#j
`
n`p/;D=?
ALRM 14 离开 m[Qr>= "
e<"sZK
HUP 1 离开 ^CB@4$!
PrF('PH7i
INT 2 离开 ucUuhS5
#_zj5B38E
KILL 9 离开/ 强迫关闭 jIWX6
y 48zsm{
PIPE 13 离开 /Ur]U
w
Rj-4K@a8#N
POLL 离开 \M~uNWv|
B X O,
PROF 离开 |lh&l<=(f
m
[BV{25
TERM 15 离开 \mw5
~Rf;
>dwY(a
USR1 离开 )Zrn?KM
|Rb8/WX
USR2 离开 #2%8@?_-M
/L` +
VTALRM 离开 S0;s
7X#c
0I*{CVTQj
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 I3 YSW
3
op{h6
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 N^jr
;B;wU.Y"
TSTP 停止 /产生与内容相关的行为 ?*cCn-|
~ _ko$(;A
TTIN 停止 /产生与内容相关的行为 && WEBQ
r`PD}6\
TTOU 停止 /产生与内容相关的行为 +SkfT4*U
MFqb_q+
STOP 停止 /强迫关闭 P}
Y .
8[oZ>7LMzC
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 :PBW=W
m2Wi "X(I_
PWR 忽略 /在某些系统中会离开 LKst
QP!I
B8zc#0!1
WINCH 忽略 `bZgw
e)|5P
CHLD 忽略 c`7 dNx
GsIqUM#R
ABRT 6 核心 nsu RG
JC7:0A^
FPE 8 核心 H)5" <=]
Oo9'
ILL 4 核心 C%"aj^u
Om2w+yU
QUIT 3 核心 66scBi_d
~FnY'F<35
SEGV 11 核心 ;V84Dy#b
e,l-}=5*P
TRAP 5 核心 i_p-|I:hQ
a!,X@5
SYS 核心 /或许尚未实作 n{"a0O
U Fyk%#L
EMT 核心 /或许尚未实作 iO}KERfU
1}OM"V
BUS 核心 /核心失败 *4c5b'u
=lx~tSiS
XCPU 核心 /核心失败 c4}|a1R\=
~zQxfl/
XFSZ 核心 /核心失败 xU
|8.,@
[!`5kI
范例: j-t"
停止所有在 PTY 装置上的程序 !'a
<Dw5
skill -KILL -v pts/* @R ;&P