linux常用命令
Q
!5P A@/DGrZX 称:/etc/aliases
G@Dw 使用权限:系统管理者
0`X%& 使用方式: 请用 newaliases 更新资料库
1\d$2N" 说明:
\FOX#|i) sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
W'{q l'~]8Wo1 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
#80*3vi~F # newaliases
<DS+"# ^iJMUV| 下面命令会做相同的事,
qlUYu"`i # sendmail -bi
7pNTCZY| ?i4}[q 相关命令:
LkFXUt ? mail, mailq, newaliases, sendmail
"AjtNL5 XezO_V ” mail [返回]
`~( P 名称:mail
YBgHX [q s(7'*`G"h 使用权限:所有使用者
F<q3{}1zR S EY 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
t/cjz/] (sw1HR 说明:
=+gp~RR, mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
NF=FbvNe /p')
u3 参数:
$;*YdZ`q i 忽略 tty 的中断讯号。 (interrupt)
vx=I3o I 强迫设成互动模式。 (Interactive)
n5_r
3{ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
'3uj6Wq2 n 不读入 mail.rc 设定档。
zx\N^R;Jq s 邮件标题。
:>lica_ c cc 邮件地址。
R<mLG $ b bcc 邮件地址。
WfVkewuPo amf=uysr 范例:
5Ah-aDBj h
Ia{s) 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
=K2Dxu_: mail
user1@email.address
w
<]7:/ mail
user1@email.address user2
uK]@!gz =5&)^ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
zTY|Z@: 4 'rWy~`
V mail -s 标题 -c user1 user2 < mail.txt
x&R&\}@G m !D%*s,t\' 指令:mesg
3m4?l
~ 使用权限 : 所有使用者
K@VXFV c1/Gyq 使用方式 : mesg [y|n]
bIizh8d? >
3JU 说明 : 决定是否允许其他人传讯息到自己的终端机介面
@u/<^j3Q 1G|Q~%cv 把计 ?
XzQ=8r>l c>K/f7 y : 允许讯息传到终端机介面上。
Xj$J}A@ n : 不允许讯息传到终端机介面上 。
K_nN|'R- 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
>c7/E fRT:@lV 例子 :
G;Y,C<)0k 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
SPsq][5eR mesg n
sXTt)J 与 mesg 相关的指令有: talk,write,wall。
HH6b{f@^ 名称:/etc/aliases
}M/w 0U0o 使用权限:系统管理者
w0~iGr}P 使用方式: newaliases
o<-%)#e 说明:
'xb|5_D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
VO(Ck\i} iyOd&|. /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
I(Nsm3L lGPC)Hu{` 参数:没有任何参数。 范例:
S^)r,cC # newaliases
Wnl8XHPn !gy'_Y 下面命令会做相同的事,
Hi|2z5=V # sendmail -bi
<-Q0WP_^ +,>f-kaV 相关命令:
0s0[U mail, mailq, newaliases, sendmail
5HG 7M&_ 名称 : talk
4PiN Q'* 使用权限 : 所有使用者
XoSjYG(>,
Bx&`$lW 使用方式 :
0P/A $?Aez/ talk person [ttyname]
w0SzK-& 说明 : 与其他使用者对谈
7OtQK`P"A `P/* x[? 把计 :
h9+ylHW_cp person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name G !1- 20 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
5?;'26iC +nuv?QB/ 例子.1 :
V-=$:J"J'\ 5F2+o#*h 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
DHt 8 f talk Rollaend
zwU8i VDe (53dl(L? 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
*"fg@B5 RW(AjDM 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
RU"w|Qu>pM talk
Rollaend@linuxfab.cx pts/2
Z(K [oUJx NH'RU`U) @hzQk~Gdi 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
`4}!+fXQ 'VJMi5Y(- 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
10#!{].#x Y1k/ngH 名称 : wall
";s5It
使用权限 : 所有使用者
sQJM 4'8f c;U\nC<Y 使用方式 :
*~!xeL wall [ message ]
$:u,6|QsS= 使用说明:
2Fx<QRz wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
hQL9 Zl~ puqLXDjA/ 例子 :
}#'KME4 8@hzw~> 传讯息"hi" 给每一个使用者 :
7Wb.(` a< wall hi
lR.a3.~ 名称 : write
{+xUAmd 使用权限 : 所有使用者
u~s'<c+8_ d`~#uN { 使用方式 :
1xguG7 c+a f=ac write user [ttyname]
f{AgKW9" 说明 : 传讯息给其他使用者
i"rMP#7 a|nlmH"l 把计 :
S_bay8L1 @0
-B&w user : 预备传讯息的使用者帐号
-m|b2g}"3 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
]`.
d%Vx Z}NAH`V`:+ 例子.1 :
cJA:vHyw #
Jdip) 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
rB4#}+Uq write Rollaend
2M&4]d i[\[xfk 接下来就是将讯息打上去,结束请按 ctrl+c
,6M-xSDs ,j_{IL690 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
M%B[>pONb7 write Rollaend pts/2
l m SAH\'v0 接下来就是将讯息打上去,结束请按 ctrl+c
NPoXz "L8V!M_e 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
V)@MM2, gE
,j\M* 名称:kill
7_K(xmK 使用权限:所有使用者
~JZLfw /yykOvUO 使用方式:
ZH0f32K N!h>fE` kill [ -s signal | -p ] [ -a ] pid ...
$AXz/fGV kill -l [ signal ]
%x927I> 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
&\"fH+S 把计?
QIV<!SO b]JN23IS2 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
hf?^#=k^ -p : 印出 pid , 并不送出信号
%eV`};9 -l (signal) : 列出所有可用的信号名称
!8L
Ql} 范例:
<`r+l5 KPR{5 将 pid 为 323 的行程砍掉 (kill) :
XS!ZTb>[ kill -9 323
6pLwwZD LqUvEq 将 pid 为 456 的行程重跑 (restart) :
3FXMM&w kill -HUP 456
ttsB'|ps 8uT6Q C f 名称:nice
gMGg9U$@ 使用权限:所有使用者
aJ}sYf^ ReE3742@ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
3?%kawO& P9>C!0 -x 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
6AwnmGL(;; *
QR7t:([ UpIf t=@P 把计?
u}:O[DG Tb)x8-0 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
{30<Vc= --help 显示求助讯息
X,fTzkGj --version 显示版本资讯
p|FX_4RjX 范例:
kdHql>0 将 ls 的优先序加 1 并执行 :
L|Ydd!m nice -n 1 ls
sN g"JQ *C:+N> 将 ls 的优先序加 10 并执行 :
A;|DQR() nice ls将 ls 的优先序加 10 并执行
L_.}z)S[\ u!-eP7;7 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
b>7ts_b |M?HdxPa 名称:ps
UF%5/SiVX 使用权限:所有使用者
3LxJ}>]TO 使用方式:ps [options] [--help]
|X.z|wKT6 说明:显示瞬间行程 (process) 的动态
q#a21~S< 参数:
x$Oz0 [ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
)KuvG:+9W -A 列出所有的行程
f2u2Ns0Ym -w 显示加宽可以显示较多的资讯
\\lC"Z#J` -au 显示较详细的资讯
#NE^f2 -aux 显示所有包含其他使用者的行程
"J.jmR; Tk!b`9 au(x) 输出格式 :
}dHiW:J> u#,]>; USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
O.E0LCABC USER: 行程拥有者
:I$2[K PID: pid
>'jM8=o*Ax %CPU: 占用的 CPU 使用率
/iN\)y#u1 %MEM: 占用的记忆体使用率
h|H;ZC(B VSZ: 占用的虚拟记忆体大小
64vSJx>u RSS: 占用的记忆体大小
yTn@p(J TTY: 终端的次要装置号码 (minor device number of tty)
8$vH&HdI STAT: 该行程的状态:
C5M-MZaS D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
e||_j R: 正在执行中
%OtW\T=u S: 静止状态
]03ZrZ!
PM T: 暂停执行
cR&xl^BJ Z: 不存在但暂时无法消除
etoE$2c W: 没有足够的记忆体分页可分配
%PS-nF7v <: 高优先序的行程
A;!FtD/
N: 低优先序的行程
bS'r} L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
)q^vitkjup START: 行程开始时间
10J*S[n1 TIME: 执行的时间
(J4utw Z COMMAND:所执行的指令
YXtGuO\q 范例:
d<Os TA ps
v wyDY%B"n PID TTY TIME CMD
:=Q|gRTL* 2791 ttyp0 00:00:00 tcsh
_+N^yw ,r* 3092 ttyp0 00:00:00 ps
Pc7:hu % ps -A
[5VUcXGt*\ PID TTY TIME CMD
1IV
0a 1 ? 00:00:03 init
)1vojp
4Za 2 ? 00:00:00 kflushd
oW[,EW+u 3 ? 00:00:00 kpiod
w!}1oy 4 ? 00:00:00 kswapd
[:QMnJ 5 ? 00:00:00 mdrecoveryd
(*RybKoaA .......
zvf]}mNx % ps -aux
5);#\&B USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
J qUVGEg root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
e%U*~{m+ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
.vv*bx
root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
*lK4yI*%o root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
fh_
.J[Y.k ........
F^YIZ,=p! 名称:pstree
%5G BMMn 使用权限:所有使用者
C6VoOT)\ 使用方式:
*r`Yz} pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
9^='&U9sr pstree -V
Tv$7aVi! 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
'oz={; 参数:
%D
r?.e -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
#:|Y(,c -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
~Z]vr6?$h 范例:
VTWE-:r pstree
!_9$[Oq~ $vBU}~l7 init-+-amd
(L>[,YO9 |-apmd
>, E$bm2 |-atd
9+QrTO |-httpd---10*[httpd]
6p"c^ %pstree -p
hU
7fZl%yl init(1)-+-amd(447)
S=}~I |-apmd(105)
9oP{Al |-atd(339)
DQ\&5ytP %pstree -c
Hg`{9v init-+-amd
mM}Ukmy |-apmd
|T_Pz&- |-atd
@vYmkF` |-httpd-+-httpd
YfwJBzD | |-httpd
#mhD; .Wg | |-httpd
Qs9 U&*L | |-httpd
2 ?T:RB} ....
z#VpS= 名称:renice
+Rgw+o 使用权限:所有使用者
)$B+3f n\-_i2yy 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
^\&g^T% DOVX$N$3 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
D:E~yh)$- LUNs|\& 把计?
Wi?%)hur BozK!"R_< -p pid 重新指定行程的 id 为 pid 的行程的优先序
<83gn
:$ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
kI3zYD^: -u user 重新指定行程拥有者为 user 的行程的优先序
%vt SeJ 范例:
.4<U*Xkt 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
WrNgV@P renice +1 987 -u daemon root -p 32
E`fssd~ r`&|)Hx 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
yim$y,=d /:`
i%E 名称:top
pPqN[OJ 使用权限:所有使用者
kqW<e[ 6b70w @P! 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] huJq#5?
Sz|CreFK16
说明:即时显示 process 的动态 +.]}f}Y
uq4sbkP
把计? SrtVoe[
7NB 9Vu|gD
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 1MI7l)D?
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 I'9s=~VfY,
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 +M##mRD
s : 安全模式,将交谈式指令取消, 避免潜在的危机 A dEbyL
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 r?nV
Sb|[
n : 更新的次数,完成后将会退出 top 'UVv(-
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 'ZH<g8:=@
iM|"H..
范例: (+LR u1z
显示更新十次后退出 ; qH
Ga
top -n 10 rm=~^eB
NWHH.1|
使用者将不能利用交谈式指令来对行程下命令 : Q|B|#?E==
top -s tOg
8L2
k!/_/^{
将更新显示二次的结果输入到名称为 top.log 的档案里 : 2c~?UK[1
top -n 2 -b < top.log ^i+z_%V
zI&4k..4
名称:skill zQ5jx5B":
O;0<^M/0G
使用权限:所有使用者 O)xEF~DaD
6IY}SI0N
使用方式: skill [signal to send] [options] 选择程序的规则 tnF9Vj[#%_
mvA xx`jc
说明: ?4>y2!OC9
Bdq"6SK>
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 Flujwh@rg
k,R~oSA'n
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 9LEilmPs
DV[ Jbl:)
一般参数: @`;Y/',
FPMSaN P
-f 快速模式/尚未完成 2 Z`$
H'0*CiHes
-i 互动模式/ 每个动作将要被确认 Kt90mA
l?JO8^Nn
-v 详细输出/ 列出所选择程序的资讯 @yn^6cE
4 ?@uF[
-w 智能警告讯息/ 尚未完成 (L0hS'
mrhp)yF
-n 没有动作/ 显示程序代号 @oz&
*[xNp[4EU
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 ;WS7.
[ lzy &To
-t 终端机代号 ( tty 或 pty ) (>LHj]}K
Iwt2}E(e
-u 使用者名称 @b!R2Yq
IN|i)?rh
-p 程序代号 ( pid ) ,-7/]h,l
9<A\npD
-c 命令名称 可使用的讯号: HcBH!0
B!r48<p
以下列出已知的讯号名称,讯号代号,功能。 pl#o!j( i
ui56<gI-
名称 (代号) 功能/ 描述 PF'5z#] NP
f_4S>C$
ALRM 14 离开 K_&c5(-(_
A:.IBctsd
HUP 1 离开 \buZ?
<Sprp]n
7
INT 2 离开 h#@4@x{
:%uyy5AZ
KILL 9 离开/ 强迫关闭 64!ame}n+
W\>^[c/
PIPE 13 离开 I^M#[xA
bL'#
POLL 离开 :nKsZ1b X
\L9?69B~
PROF 离开 V8nz-DL{
5"}y\
TERM 15 离开 %%as>}.
&6\r
USR1 离开 UL)"
b
5F4+
USR2 离开 {V%%^Zhwy
[/AdeR
VTALRM 离开 P^b:?%
yul<n>X|
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ~"JE![XR
npO@Haw
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 8g[(nxI~
Ho )t=qn
TSTP 停止 /产生与内容相关的行为 =wIdC3Ph
Y|m_qB^_
TTIN 停止 /产生与内容相关的行为 (RDa,&
)]/i
TTOU 停止 /产生与内容相关的行为 zj9bSDVL(
QDjW!BsX3
STOP 停止 /强迫关闭 q'%[[<
yhSk"e'G
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 _@#uIOcE
;/?Z<[B
PWR 忽略 /在某些系统中会离开 >}<29Ii
%Ye)8+-
WINCH 忽略 ;z.6'EYMG
~{7zm"jN
CHLD 忽略 {WYu0J@
jU]]:S4xD/
ABRT 6 核心 `P ^u:
{k_ PMl0G
FPE 8 核心 J.bFv/R
0<]$v"`I
ILL 4 核心 4; BW
er["NSo
QUIT 3 核心 ~^lH ^J
4i_spF-3
SEGV 11 核心 MiSja#"+A
]5} -y3
TRAP 5 核心 lL:KaQ 0E
6\,DnO
SYS 核心 /或许尚未实作 t4f
(Y,v
Vqa5RVnI
EMT 核心 /或许尚未实作 U{T[*s
Bmx(qE
BUS 核心 /核心失败 <=;H[}
e
,]~u:Y}
XCPU 核心 /核心失败 MB]#%g&
~/j$TT"
XFSZ 核心 /核心失败 gt
=j5
pau*kMu^}
范例: tJUVw=
停止所有在 PTY 装置上的程序 =@xN(](
skill -KILL -v pts/* J 6(~>g
&