linux常用命令
xbzO'C 89UR w9 称:/etc/aliases
49=L9: 使用权限:系统管理者
Nz>xilU' 使用方式: 请用 newaliases 更新资料库
yp]z@SYA@ 说明:
J"K(nKXO_? sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
U>0bgL y*!8[wASHq /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
l
p|`n # newaliases
_wUg+Xs] K0|:+s@u 下面命令会做相同的事,
Ctbc!<@o # sendmail -bi
:A+}fBIN "a-;?S& 相关命令:
mhI mail, mailq, newaliases, sendmail
{7Hc00FM -s^)HR
l ” mail [返回]
d%:J-UtG" 名称:mail
eq@-J+
@<koL 使用权限:所有使用者
hE7rnn{ T0N6k acl 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
q<[o 4qY b+$E*} 说明:
jB,VlL mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
ko"xR%Q (5e4>p&+ 参数:
gF:|j( i 忽略 tty 的中断讯号。 (interrupt)
M7{_"9X{ I 强迫设成互动模式。 (Interactive)
8On MtP v 列印出讯息,例如送信的地点、状态等等。 (verbose)
p@ U[fv8u n 不读入 mail.rc 设定档。
]U&<y8Q_6 s 邮件标题。
vCUbbQz c cc 邮件地址。
K%UjPzPWw b bcc 邮件地址。
HMhdK Q]<6voyy 范例:
@U:PXCvh |CAMdU 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
vXg^K}a# mail
user1@email.address
_<'?s>(U' mail
user1@email.address user2
T1%}H3 xT-`dS0u 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
OHt^e7\ TLq^5,qG mail -s 标题 -c user1 user2 < mail.txt
6?a z Zr(eH2}0D 指令:mesg
>J#/IjCW 使用权限 : 所有使用者
P 1 JvkTfTE7 使用方式 : mesg [y|n]
#'n.az=1 BS%pS( 说明 : 决定是否允许其他人传讯息到自己的终端机介面
hFnUw26P )Myx(w"S 把计 ?
WLiF D. N*+WGsxl$z y : 允许讯息传到终端机介面上。
IY|`$sHb n : 不允许讯息传到终端机介面上 。
`VF_rC[? 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
yb,$UT"] :KqSMuKR 例子 :
<sSH^J4QqX 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
7>h(M+
/ mesg n
Ii<k<Bt, 与 mesg 相关的指令有: talk,write,wall。
~V0 GRPnI 名称:/etc/aliases
q2s=>J'; 使用权限:系统管理者
YF>15{H 使用方式: newaliases
^$]iUb{\ 说明:
#J t1AV sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
l| y.6v KwgFh#e /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
5n1`$T.WG L`(\ud 参数:没有任何参数。 范例:
'
H4m" # newaliases
xVRxKM5 { *P|~vCnr 下面命令会做相同的事,
P9 y+rF. # sendmail -bi
6}~k4;'}A y9k'jEZ"oh 相关命令:
SVObJsB^ mail, mailq, newaliases, sendmail
% bKy 名称 : talk
gLg.mV1< 使用权限 : 所有使用者
<$ qT(3w<y #fk1'c2 使用方式 :
^Vf@J gX*j|(r talk person [ttyname]
0|g@;Pc 说明 : 与其他使用者对谈
Yj'"Wg Hp5.F>- 把计 :
-2'+GO7G person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name CR;E*I${ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
^XG$?2<U E!uQ>'iq. 例子.1 :
D&i,`j ) I(9qt>Y 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
XA;f.u talk Rollaend
nW<nOKTnk_ F'CJN$6Mw/ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
uG/'9C6Z &[SFl{fx>- 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
AMASh* talk
Rollaend@linuxfab.cx pts/2
KzQFG)q , *IIA"tC
)2# qi/ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
[XubzZ9 `TH\0/eE 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
R / ND f` PjXiYc& 名称 : wall
5z\,] 使用权限 : 所有使用者
Xk1uCVUe5 #l@P}sHXq 使用方式 :
"zkQu wall [ message ]
YV} "# 使用说明:
l]j;0 i wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
EPR85[k [Jj@A(Cz 例子 :
$$EEhy 1OqVV?oz 传讯息"hi" 给每一个使用者 :
o+)y! wall hi
<L<^uFB 名称 : write
u /DE 使用权限 : 所有使用者
q*tGlM@R? Ep:hObWG) 使用方式 :
QcJC:sP\> l<+PA$+}} write user [ttyname]
_1mpsY<k 说明 : 传讯息给其他使用者
X|G[Ma? 2-jXj9kp` 把计 :
oE6`]^^ 7WY~v2SDF user : 预备传讯息的使用者帐号
B#+n$5#FK ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
+-9-%O.(; DuT6Od/f 例子.1 :
nkTdn gsUF\4A(J 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
=f [/Pv write Rollaend
.lM]>y) 2,^> lY 接下来就是将讯息打上去,结束请按 ctrl+c
U_;="y [h !i{QD 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
X Q
CE`m write Rollaend pts/2
cB36w$n8 -~4r6ZcA 接下来就是将讯息打上去,结束请按 ctrl+c
{qU;;`P]| "C(yuVK1G 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
ru6M9\h* ofw&?Sk0 名称:kill
%d*0"<v 使用权限:所有使用者
lpS v 6VuyKt 使用方式:
,>za|y<n vLBuE kill [ -s signal | -p ] [ -a ] pid ...
OU}eTc(FeC kill -l [ signal ]
]9)iBvQlj 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
,zr,>^v 把计?
.tppCy 0rz1b6F5, -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
*po
o.Zz -p : 印出 pid , 并不送出信号
Km!ACA&s6 -l (signal) : 列出所有可用的信号名称
iSR"$H{ 范例:
BFhEDkk nB5\ocJ 将 pid 为 323 的行程砍掉 (kill) :
5S_fvW; kill -9 323
4;3Vc% GB<.kOGQ[ 将 pid 为 456 的行程重跑 (restart) :
{ Ie~MW kill -HUP 456
Di27=_J )UpVGT) 名称:nice
ryw%0H18 使用权限:所有使用者
!#WQ8s!?o JM?__b7g2 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
aG#d41O [CfZE 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
\8m9^Z7IfK 8x LXXB x}Lj|U$r<X 把计?
<
W`gfpzO pL}
F{G. -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
g|->W]q@; --help 显示求助讯息
J~4mp\4b --version 显示版本资讯
rx 74v! 范例:
'DNxc 将 ls 的优先序加 1 并执行 :
IVZUB*wv)b nice -n 1 ls
@$ Nti> <8Tp]1z 将 ls 的优先序加 10 并执行 :
TC44*BHq nice ls将 ls 的优先序加 10 并执行
j|`lOH8 ^#mWV 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
2boyBz}=S }9W[7V? 名称:ps
Vdefgq@< 使用权限:所有使用者
Y`{62J8oy 使用方式:ps [options] [--help]
,c$tKj5ulQ 说明:显示瞬间行程 (process) 的动态
ujkWVE' 参数:
_b>{:H&\ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
_-TW-{7bh -A 列出所有的行程
Z2`M8xEiH -w 显示加宽可以显示较多的资讯
*?~"Jw -au 显示较详细的资讯
n7G`b' -aux 显示所有包含其他使用者的行程
s$qc& q
:~/2<o au(x) 输出格式 :
je2"D7D ]0 = |?n$7 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
o<txm ?+N USER: 行程拥有者
,H,[)8 PID: pid
f+!J1 %CPU: 占用的 CPU 使用率
Y?7GFkIP$ %MEM: 占用的记忆体使用率
~av#r=x VSZ: 占用的虚拟记忆体大小
jO5R ~O` RSS: 占用的记忆体大小
l0URJRK{* TTY: 终端的次要装置号码 (minor device number of tty)
4X7J~ STAT: 该行程的状态:
a#i|)[ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
+ 9|0\Q R: 正在执行中
`q*p-Ju' S: 静止状态
C'y2!Q/" T: 暂停执行
[7HBn Z: 不存在但暂时无法消除
(ER9.k2 W: 没有足够的记忆体分页可分配
jP_s(PQ <: 高优先序的行程
~_"V7 N: 低优先序的行程
[>pBz3fn, L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
+WR?<*_ START: 行程开始时间
V!Sm,S( TIME: 执行的时间
3{t[>O; COMMAND:所执行的指令
^'M^0'_"v 范例:
X$1YvYsID ps
~|Ln9f-g PID TTY TIME CMD
fe`_0lxj 2791 ttyp0 00:00:00 tcsh
_[rQt8zn 3092 ttyp0 00:00:00 ps
dQ-shfTr] % ps -A
j$XaO%y) PID TTY TIME CMD
v=hn# U 1 ? 00:00:03 init
60$;Q,]o 2 ? 00:00:00 kflushd
_h \L6. 3 ? 00:00:00 kpiod
&Wb"/Hn2 4 ? 00:00:00 kswapd
~Js kA5h|& 5 ? 00:00:00 mdrecoveryd
mVYfyLZ,( .......
R"JXWw % ps -aux
3@ Fa USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
<]KQ$8dtD root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
cLwnV. root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
z_lKq}^~6 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
bEmN
tp^ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
bHx@ ........
D_JGbNigA 名称:pstree
{47l1wV] 使用权限:所有使用者
EK[J!~ 使用方式:
4lc|~Fj++ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
%`T}%B pstree -V
P7,g^:$ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
Br}@Vvq@ 参数:
ENr#3+m$; -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
M&29J -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
o3|4PAA/ 范例:
X<C fy pstree
s !2Iui
@
NyRa.hgZ; init-+-amd
Hd\oV^>
|-apmd
qwJp&6 |-atd
w|S b`eR |-httpd---10*[httpd]
3<M yb %pstree -p
(7b9irL&cn init(1)-+-amd(447)
G'}N ?8s1 |-apmd(105)
dL'oKh, |-atd(339)
|?{V-L %pstree -c
d_pIB@J init-+-amd
.*9u_2< |-apmd
/ILd|j(e |-atd
eIF6f&
F |-httpd-+-httpd
Gds(.]_ | |-httpd
[?9 `x-Q | |-httpd
}i^|.VZZ | |-httpd
:2==7u7v? ....
^t7u4w! 名称:renice
S ;rd0+J 使用权限:所有使用者
!
M CV@5$ ;ZAwf0~ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
Il*!iX|23< *U$]U0M 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
<dD!_S6@, ~@l4T_,k 把计?
bfoTGi
'1b)(IW -p pid 重新指定行程的 id 为 pid 的行程的优先序
9@ fSO< -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
;UpJ_y)n8\ -u user 重新指定行程拥有者为 user 的行程的优先序
GwP!:p| 范例:
'/03m\7 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
%!nN<% renice +1 987 -u daemon root -p 32
d|Wqx7t]P ]*mUc` 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
p o)lN[v sK+uwt 名称:top
9U.Ctx:F 使用权限:所有使用者
!i (V.A 2AhfQ%Y= 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] $6*Yh-"g
wn.6l
`
说明:即时显示 process 的动态 u*=^>LD
kw2yb
把计? 5m0lk|`
1~~GF_l?
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s =_C&lc"
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 .(cpYKFX
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 =d ;#Nu-
s : 安全模式,将交谈式指令取消, 避免潜在的危机 PpG;5
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 uyk;]EYjHZ
n : 更新的次数,完成后将会退出 top 0%L:jq{5
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 @M<qz\
[
=6:9y}~
范例: Ym\<@[3+!
显示更新十次后退出 ; YzG?K0O%
top -n 10 2[pOGc$
2>k*9kyp
使用者将不能利用交谈式指令来对行程下命令 : e_|<tYx><
top -s [s]$&
f9>pMfi:@
将更新显示二次的结果输入到名称为 top.log 的档案里 : K.wRz/M&g
top -n 2 -b < top.log zGg)R
#\Y`?
名称:skill F5cNF5
H^S<bZ
使用权限:所有使用者 :P2!& W
8r+u!$i!H
使用方式: skill [signal to send] [options] 选择程序的规则 !xR9I0V5
ibQ
xL3
说明: j[dZ*Jr_
F::Ki4{jJ
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 3>L5TYa
}MMKOr(
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 [efU)O&
)6p6<y
一般参数: Nb ~J'"
b,+KXx
-f 快速模式/尚未完成 U7n#TPet
#>:S&R?2t
-i 互动模式/ 每个动作将要被确认 Os>&:{D 4!
(Ytr&gh;0
-v 详细输出/ 列出所选择程序的资讯 Et}%)M
d{NMG)`x\
-w 智能警告讯息/ 尚未完成 S
WTZ6(!oW
&XcPHZy'
-n 没有动作/ 显示程序代号 z)^.ai,: 0
e4Ibj/
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。
Pm2LB<qS
l\AdL$$Mb
-t 终端机代号 ( tty 或 pty ) r`Fs"n#^-4
Tb2#y]27
-u 使用者名称 o*7NyiJ@z
j96}E/gF
-p 程序代号 ( pid ) IZ>l
}qp)VF
-c 命令名称 可使用的讯号: H6K8.
mUP!jTF
以下列出已知的讯号名称,讯号代号,功能。 hV,T889'
SODHn9)
名称 (代号) 功能/ 描述 .,qh,m\Fo
"y7\F9
ALRM 14 离开 ]C"?xy
9"S iHp\)
HUP 1 离开 ZoJqJWsd
%$ o[,13=
INT 2 离开 = )3\B
#U%HGTE0
KILL 9 离开/ 强迫关闭 Wm"#"l4
zJ}abo6rVw
PIPE 13 离开 "dt}k$Gr
nPI$<yW7F
POLL 离开 N3#^Ifn[
L58H)V3Pn
PROF 离开 5p~5-_JX
p JF
9Z
TERM 15 离开 _>`9]6\&
@,,G]4zZ!
USR1 离开 9@"pR;X@
;Q vQ fV4
USR2 离开 T'lycc4~a
SOsz=bVx
VTALRM 离开 ,!^c`_Q\>@
I*>q7Hsu
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 q~aj"GD
l}(HE+?
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ; (}~m&p
lAo ~w
TSTP 停止 /产生与内容相关的行为 85dC6wI4K
Q
-$)
H;,
TTIN 停止 /产生与内容相关的行为 ^.@%n1I"5y
MRo_An+
TTOU 停止 /产生与内容相关的行为 ~cO iv
vdUKIP
=|_
STOP 停止 /强迫关闭 .UX4p
=
`q^qe> '
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 d#d&CJAfr
t%^&b'/Z
PWR 忽略 /在某些系统中会离开 $i<+O,@-
Q{=r9&&
WINCH 忽略 38X{>*
<a_(qh@B
CHLD 忽略 "v0bdaQH3
,m0M:!hK
ABRT 6 核心 mc2uI-W
=#Jx~d [C
FPE 8 核心 ]57Ef'N
5Zhl@v,L%
ILL 4 核心 KCZ<#ca^
P $y'``
QUIT 3 核心 q4!\^HwQ
vY.VFEP/
SEGV 11 核心 Mby4(M+&n
uR2|> m
TRAP 5 核心 ^uw]/H3?L
eG2'W
SYS 核心 /或许尚未实作 s"$K2k;J
ps` j>vX*
EMT 核心 /或许尚未实作 :,qvqh][
/L(}VJg-
BUS 核心 /核心失败 +]wM$bP
g#6R(
XCPU 核心 /核心失败 FaWc:GsfB
#>G:6'r
XFSZ 核心 /核心失败 1K|F;p
x{ `{j'
范例: 3]}RjOTU
停止所有在 PTY 装置上的程序 M?('VOy)
skill -KILL -v pts/* Br<lP#u=G
:}#)ipr
停止三个使用者 user1 , user2 , user3 4DL2
A;T
skill -STOP user1 user2 user3 a0A=R5_
* Z)j"i
其他相关的命令: kill 4|Y1W}!0/
名称:expr 1VG]|6f
使用权限:所有使用者 t(6i4c>
### 字串长度 wRK27=\z
m&q0 _nay
shell>> expr length "this is a test" |XNw&X1VF
14 ui`EODhA(
### 数字商数 {/5aF_0D.
shell>> expr 14 % 9 o4yl3o
5 Ax=)J{4v
### 从位置处抓取字串 :nl,Ac
shell>> expr substr "this is a test" 3 5 sEfT#$ a^8
is is 6pC1C.
### 数字串 only the first character Vz-q7*o$S
shell>> expr index "testforthegame" e csJ)Pt?d
2 ~W4SFp
### 字串真实重现 :?ZrD,D
shell>> expr quote thisisatestformela I!kR:Z
thisisatestformela