linux常用命令
ky|Py FOD_m&+ 称:/etc/aliases
Kf'oXCs 使用权限:系统管理者
J?84WS 使用方式: 请用 newaliases 更新资料库
w[?E
oFI$Y 说明:
Sz'JOBp sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
dEW I8Q] %TA@-tK= /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
@/0-`Y@? # newaliases
Q:sw*7"F V~_aM@q1 下面命令会做相同的事,
ucgp=bye # sendmail -bi
18kzR6(W 6A*k 相关命令:
T{Y;-m mail, mailq, newaliases, sendmail
pv){R;f 4l`"P~=2< ” mail [返回]
89X`U)Ws 名称:mail
~(/OB
w cR"?EQ] `N 使用权限:所有使用者
@h";gN E4dN,^_ F! 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
% C.I2J`_ {t1;icu 说明:
(!^; ar^ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
d-sK{ZC"y *='J>z.] 参数:
v6q oH)n i 忽略 tty 的中断讯号。 (interrupt)
cop \o4ia I 强迫设成互动模式。 (Interactive)
>V1v.JH v 列印出讯息,例如送信的地点、状态等等。 (verbose)
|H7f@b]Sk n 不读入 mail.rc 设定档。
$m)[> C s 邮件标题。
\>@QJ c cc 邮件地址。
oz[:
T3oE> b bcc 邮件地址。
qH1&tW$ 0.}WZAYy~ 范例:
d2XSw> _BP!{~&; 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
#)hJ.0~3 mail
user1@email.address
1 /dy@' mail
user1@email.address user2
ir/-zp_ C}>Pn{wY9 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
aS,M=uqqK (h3f$ mail -s 标题 -c user1 user2 < mail.txt
vjz*B$ ,8^QV3 指令:mesg
u^Sa{Jk= 使用权限 : 所有使用者
12JmSvD G&2`c\u{ 使用方式 : mesg [y|n]
EiP#xjn?c 1FfSqd 说明 : 决定是否允许其他人传讯息到自己的终端机介面
:497]c3#5C pX~X{JTaL) 把计 ?
gJUawK
ndCHWhi y : 允许讯息传到终端机介面上。
&W@#pG n : 不允许讯息传到终端机介面上 。
WMw^zq?hd@ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
mv;;0xH -{ M(1vV(= 例子 :
Hk8pKpn3 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
`C +>PCO mesg n
1U(P0$C 与 mesg 相关的指令有: talk,write,wall。
8+yCP_Y4 名称:/etc/aliases
]
eO25,6 使用权限:系统管理者
Dq:>]4% 使用方式: newaliases
y/(60H,{{ 说明:
;VI/iwg sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
mufJ@Y S# 7j22KQ|EX^ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
|k ]{WCD] gfY1:0 参数:没有任何参数。 范例:
BhcTPQsW # newaliases
PZjK6]N\ `1fNB1c
下面命令会做相同的事,
9nrmz>es|- # sendmail -bi
td"D&1eQ@ g&<3Kl 相关命令:
,VdNP mail, mailq, newaliases, sendmail
e[
9 名称 : talk
c> }fy 使用权限 : 所有使用者
(0W)Jd[ 6*uWRjt 使用方式 :
e"@Ag:r@a <T|?`;K talk person [ttyname]
W#@Mx 说明 : 与其他使用者对谈
e#/SFI0m 5_\+8A* 把计 :
V9%!B3Sb person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name jMV9r-{*+ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
-Y=o Qf:#{~/ 例子.1 :
#i1z&b#@ yy( .| 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
"gCqb;^ talk Rollaend
CL)*cu6zG
P1>?crw 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
&4R-5i2a ]QJWqY 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
(G<fvl!~ talk
Rollaend@linuxfab.cx pts/2
1@"os[9 alV{| Vf[6 WnkI i,< 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
\]y /EOT $ctpg9 7 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
|[B JZ 6Ex16 名称 : wall
f(Uo?_as 使用权限 : 所有使用者
];63QJU RAUD8Z 使用方式 :
~M?^T$5 wall [ message ]
x3L0;:Fx8P 使用说明:
.2v)x wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
*<"#1H/q GJo`9 例子 :
fUV;3du :% m56 传讯息"hi" 给每一个使用者 :
*< ?~ wall hi
y|Vwy4tK9 名称 : write
PC55A1(T 使用权限 : 所有使用者
'irHpN6n nKu)j3o` 使用方式 :
nSR<( -j! 1 LUvs~Qu write user [ttyname]
*ud/'HR8] 说明 : 传讯息给其他使用者
t8_i[Hw6D RJ0:O 把计 :
k,0lA#> .;,` bH0 user : 预备传讯息的使用者帐号
g* DBW, ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
NS3qNj
1k dQh&~G 例子.1 :
kl[Jt)"4@ oa
q!<lI 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
4E0 Y= write Rollaend
l37)
Q 5kdh!qy[$, 接下来就是将讯息打上去,结束请按 ctrl+c
qw35LyL tuIQiWHbM 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
"IuPg=|# write Rollaend pts/2
8d|#W 8=Aoj%l# 接下来就是将讯息打上去,结束请按 ctrl+c
W%_Cda5, eH' J 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
'eDV-cB y D:}&!\} 名称:kill
5q 95.rw 使用权限:所有使用者
ToE^%J4 @?CEi#- 使用方式:
j3&tXZ;F ~;D5j ) 9I kill [ -s signal | -p ] [ -a ] pid ...
2'T uS? kill -l [ signal ]
=Yt)b/0b9 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
xI(t!aYp 把计?
qku}cWD9/_ {T'M4y=)i -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
_<m yM2z -p : 印出 pid , 并不送出信号
yDmx)^En -l (signal) : 列出所有可用的信号名称
''3b[< 范例:
dk[MT'DV /&!4oBna 将 pid 为 323 的行程砍掉 (kill) :
"R
%3v.Z kill -9 323
Q8?:L<A dSPye z 将 pid 为 456 的行程重跑 (restart) :
7AuzGA0y kill -HUP 456
1%Su~Z"W> gq~6jf> 名称:nice
7I;A5f 使用权限:所有使用者
eccJt F$nc9x[S 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
@0&KM|+ ?v@pB>NZ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
"*JyNwf i=AQ1X\s rPXy(d1<`S 把计?
;JV(!8[ [iGL~RiXtn -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
>))K%\p
--help 显示求助讯息
(y!V0iy] --version 显示版本资讯
L7OFZ|gUz 范例:
9D,/SZ-v 将 ls 的优先序加 1 并执行 :
rJw
Ws nice -n 1 ls
y\@INA^ 1T/ 72+R0 将 ls 的优先序加 10 并执行 :
X|Rw;FY nice ls将 ls 的优先序加 10 并执行
;q&2$Mb Dg'BlrwbR 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
e763yd {2=f,,|+f 名称:ps
i&Xjbcbp 使用权限:所有使用者
t~kh?u].j 使用方式:ps [options] [--help]
AEE&{_[S 说明:显示瞬间行程 (process) 的动态
}zyh! 参数:
hzV= 7 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Y |'}VU -A 列出所有的行程
CA]u3bf~ -w 显示加宽可以显示较多的资讯
2kW*Z7@D -au 显示较详细的资讯
GB8>R -aux 显示所有包含其他使用者的行程
Y@2v/O,\ T))F
r: au(x) 输出格式 :
2P2/]-6s#r Qa@]
sWcM USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
m
^'! USER: 行程拥有者
=BroH\ PID: pid
aK5O0` %CPU: 占用的 CPU 使用率
<}('w/ %MEM: 占用的记忆体使用率
J|.n bSE VSZ: 占用的虚拟记忆体大小
|?<^4U8 RSS: 占用的记忆体大小
B'8T+qvA TTY: 终端的次要装置号码 (minor device number of tty)
%[WOQ.Sh STAT: 该行程的状态:
Bhg,P.7 D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
kX "*kD R: 正在执行中
?~=5x S: 静止状态
HC(7,3 T: 暂停执行
u5rHQA0% Z: 不存在但暂时无法消除
YlJ_$Q[ W: 没有足够的记忆体分页可分配
Z Is=%6""& <: 高优先序的行程
Apbgm[m|{ N: 低优先序的行程
kj/v$m L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
>bbvQb+j START: 行程开始时间
iCNJ%AZH TIME: 执行的时间
6YF<GF{ COMMAND:所执行的指令
nl+8C}=u 范例:
QQ\\:]iM ps
/4{IxQk PID TTY TIME CMD
vu|-}v?: 2791 ttyp0 00:00:00 tcsh
(,;4f7\ 3092 ttyp0 00:00:00 ps
/j"aOLL| % ps -A
8[L]w^ PID TTY TIME CMD
q"Th\? }% 1 ? 00:00:03 init
5 nS}h76mZ 2 ? 00:00:00 kflushd
H{I,m- 3 ? 00:00:00 kpiod
Y[.f`Ei2 4 ? 00:00:00 kswapd
o[B"J96b 5 ? 00:00:00 mdrecoveryd
6oy[0hj .......
/0(c-Dv % ps -aux
BNq6dz$ J USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
oz&RNB.K root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
4b
1a? root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
OCv,EZ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
/amWf^z root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
V#TNv0&0 ........
-muP.h/ 名称:pstree
I/)*pzt8 使用权限:所有使用者
7_c/wbA#me 使用方式:
tKYg pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
I]6,hygs pstree -V
$ 9
k5a 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
@Zw[LIQ* 参数:
mu$rG3M -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
(7w95xI -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
K:54`UJ 范例:
v(~EO(n. pstree
Ls/*&u |u_fVQj init-+-amd
C"R}_C|r)* |-apmd
04#<qd&ob@ |-atd
Tl L\&n.$ |-httpd---10*[httpd]
7=a=@D[ %pstree -p
4azqH;i init(1)-+-amd(447)
y1#*c$ O |-apmd(105)
sGO+O$J |-atd(339)
i0'g$ %pstree -c
bA\(oD+: init-+-amd
VfkQc$/ |-apmd
VYnB&3%DF |-atd
MN[D)RKh; |-httpd-+-httpd
cQrXrij;! | |-httpd
l`rO)7 | |-httpd
Kj/Lcx;bh | |-httpd
_71&".A ....
0.0r?T 名称:renice
<{IeCir 使用权限:所有使用者
TTD#ovo' eqk.+~^ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
<z8z\4Hz K&BaGrR 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
+zZ]Txb(
+Ou<-EQV 把计?
#@m6ag. `.3{ -p pid 重新指定行程的 id 为 pid 的行程的优先序
4"#F=f0 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
z?W kHQ9 -u user 重新指定行程拥有者为 user 的行程的优先序
J~)JsAXAI 范例:
uvJmEBL: 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
`$XgfMBf | renice +1 987 -u daemon root -p 32
\?[ m%$A i4lB]k 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
&n]]OPo <.:mp1,8V 名称:top
<vd}oiB@ 使用权限:所有使用者
85BB{T; }c=YiH,o 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ??z&w`Yy,
]0=THq\H
说明:即时显示 process 的动态 2/ejU,S
y=zs6HaS
把计? "qoJIwl#q
IwR=@Ne8
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s B$MHn?
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 o.wXaS8
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 z`sW5K(A
s : 安全模式,将交谈式指令取消, 避免潜在的危机 f('##pND@
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 7>f)pfLM
n : 更新的次数,完成后将会退出 top ~^>g<YR[
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 BiA^]h/|
K0\`0E^,
范例: kH?PEA! \
显示更新十次后退出 ; Ymm*p,`
top -n 10 qdo_YPG
!'Ww%ZL\
使用者将不能利用交谈式指令来对行程下命令 : K~+x@O*
top -s .&.L@CRH
ekd;sEO
将更新显示二次的结果输入到名称为 top.log 的档案里 : tG[v@-O
top -n 2 -b < top.log G%U!$\j:qd
AmK g;9LS
名称:skill k#G+<7c<
*~^%s+b
使用权限:所有使用者 rBZ00}
vy5I#q(k
使用方式: skill [signal to send] [options] 选择程序的规则 g{JH5IZ~
l"%WXi"X
说明: 99~ZZG
B-V
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 4KY@y?H g
c3*9{Il^
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 +/rh8?
3iw.yR
一般参数: E//*bmww
lHO.pN`2
-f 快速模式/尚未完成 \wV ?QH
=Ds&ArG
-i 互动模式/ 每个动作将要被确认 lM.k*`$
JC9OL.Ob
-v 详细输出/ 列出所选择程序的资讯 `[~LMV&2U
SDO~g ~NTp
-w 智能警告讯息/ 尚未完成 +'aG{/J
:|Bzbn=N2
-n 没有动作/ 显示程序代号 t![972.&
1pT/`x
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 N@8tf@BT
^9XAWj"
-t 终端机代号 ( tty 或 pty ) 2ZKy7p0/
#-/_J?
-u 使用者名称 4Y d$RP
*oAnG:J+M
-p 程序代号 ( pid ) (qDJgf4fgn
p<&d