linux常用命令
X8)k'h uM2@&)u 称:/etc/aliases
=
lo.LFV 使用权限:系统管理者
%(YQ)=w 使用方式: 请用 newaliases 更新资料库
`Lr], >aG 说明:
/|?$C7%a\D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
h&0zR#t A=<7*E /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
2HeX( rB # newaliases
&,&+p0CSI! hXTfmFy{n 下面命令会做相同的事,
<z<>E1ZLI # sendmail -bi
M"3"6U/ e =[(34# 相关命令:
&QHJ%c mail, mailq, newaliases, sendmail
S/]\GG{ gb_Y]U ” mail [返回]
Z8SwW<{ $ 名称:mail
2v{WX FLi'}C 使用权限:所有使用者
&A0OYV3i. CHgip&(.F 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
Nr4}x7 #V>R#Oh} 说明:
P 9?cp{* mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
Bj@>iw?g' ;R?@
D] 参数:
0AB a&'h i 忽略 tty 的中断讯号。 (interrupt)
p'jc=bL E I 强迫设成互动模式。 (Interactive)
=5|7S&{ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
p<fCGU n 不读入 mail.rc 设定档。
TLwxP" s 邮件标题。
RjWwsC~B c cc 邮件地址。
Q %o@s3~O b bcc 邮件地址。
tsb[=W!Ar8 2*Qv6
:qK 范例:
#mQ@4k9i $+4DpqJ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
-UhpPw6 mail
user1@email.address
QH'*MY mail
user1@email.address user2
:&BPKqKp Q}AZkZ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
q`<vY'&1 1:-'euA" mail -s 标题 -c user1 user2 < mail.txt
yv,FzF}7 \=%lH =yS 指令:mesg
z!}E2j_9P 使用权限 : 所有使用者
(?4%Xtul1 2 @#yQB1 使用方式 : mesg [y|n]
tguB@,O 5JzvT JMx 说明 : 决定是否允许其他人传讯息到自己的终端机介面
n>'(d*[e& 7]VR)VA M 把计 ?
)9eIo&Nl 6W
i
n!4 y : 允许讯息传到终端机介面上。
d/d)MoaJ*t n : 不允许讯息传到终端机介面上 。
iH(7.?.r 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
qAjtvc2 SXL3>-Z E 例子 :
>=@-]X2%j 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
2`=jKt mesg n
YC6T0m 与 mesg 相关的指令有: talk,write,wall。
SzW;Yb"#^k 名称:/etc/aliases
si0}b~t 使用权限:系统管理者
wps/{h, 使用方式: newaliases
#UM,)bH 说明:
x3O%W?5 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
* 6}M.`.- rS1 gFGrj /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
('&lAn bn*:Bn1 参数:没有任何参数。 范例:
jq~`rE
h9 # newaliases
Rta}* Nv5^2^Sc= 下面命令会做相同的事,
'cO8& | # sendmail -bi
p(F@lL- p4VARAqi 相关命令:
I*rUe#$ mail, mailq, newaliases, sendmail
kvbZx{s 名称 : talk
#T)Gkc"{ 使用权限 : 所有使用者
pCKP{c=6Q _pdKcE\X 使用方式 :
I\)`,w J9T2 p\5 talk person [ttyname]
7@c!4hmrU 说明 : 与其他使用者对谈
+#IUn $LXa] 把计 :
XCM!8x?K person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name Jm4uj&}3 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
opa/+V3E4 yy3rh(ea 例子.1 :
LLx0X
O@ Ca |}i+ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
mb*Yw6q talk Rollaend
:2/L1A)O !9d7wPUFr 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
+g1>h,K 3 B!'K20"gF 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
IyO0~Vx> talk
Rollaend@linuxfab.cx pts/2
* F!B4go 6P{bUom? y [Vd*8 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
+<E#_)}`D6 J^+w]2`S 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
F,_L}
f`qy~M& 名称 : wall
v47' dC 使用权限 : 所有使用者
".}R$W ,hzRqFg2 使用方式 :
V!:!c]8F wall [ message ]
e:G~P
u` 使用说明:
ai 4 k? wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
eT%x(P D,IT>^[^7 例子 :
k^7!iOK2 W?Z>g" 传讯息"hi" 给每一个使用者 :
>DRxF5b{ wall hi
(;fJXgj. 名称 : write
Pe:)zt0 使用权限 : 所有使用者
!8@yi"n Xqf\}p n 使用方式 :
ANm@$xO* eU"yF >6' write user [ttyname]
?+}Su'pv} 说明 : 传讯息给其他使用者
9a_P 9s3w ^;
KCE 把计 :
4X=VNORlU0 "%T~d[M user : 预备传讯息的使用者帐号
W ^<AUT ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
U5"u
h} 3 j~'.XD={ 例子.1 :
Hzz{wY "ku[b\W 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
TQB)
A9 write Rollaend
MZ38=nJ bidFBldKl 接下来就是将讯息打上去,结束请按 ctrl+c
bd/A0i?C a8xvK;` 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
qT?{}I write Rollaend pts/2
W* LC3B^ x(c+~4:_M 接下来就是将讯息打上去,结束请按 ctrl+c
SGKAx<U &YIL As^8A 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
M~zI;:0O s_ZPo6p 名称:kill
~ZafTCa; 使用权限:所有使用者
wH"9N+82M 8L[+$g` 使用方式:
&r[f ;|o
\]>821r kill [ -s signal | -p ] [ -a ] pid ...
APl]EV"l kill -l [ signal ]
QN8+Uj/zx 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
%Z6Q/+#fn 把计?
bqn(5)% { :^(y~q? -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
45 biy(qa -p : 印出 pid , 并不送出信号
X1w11Z7o -l (signal) : 列出所有可用的信号名称
$z!G%PO1% 范例:
H:~bWd'iz 8cO?VH,nk 将 pid 为 323 的行程砍掉 (kill) :
1e\cJ{B kill -9 323
[>NMuwtG %Za}q]? 将 pid 为 456 的行程重跑 (restart) :
IYn`&jS{ kill -HUP 456
4`?PtRX 5 =;cN9M@ 名称:nice
ztU"CRa8 使用权限:所有使用者
qX}3}TL bB4FjC': 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
@.sn 3nBZ+n4z 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
La6
9or r QzdHA ,?LE5] 把计?
+~=a$xA[C jA"}\^%3 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
qz-
tXc, --help 显示求助讯息
NioqJG?p --version 显示版本资讯
dg.1{6HM 范例:
=.s0"[% 将 ls 的优先序加 1 并执行 :
TJYhgna nice -n 1 ls
e,Cc.T\o _V3z!aI 将 ls 的优先序加 10 并执行 :
7s^b@&Le nice ls将 ls 的优先序加 10 并执行
l]wfL;u >-c?+oy 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
p+g=Z<?` i7)J|(N2. 名称:ps
1{/Cr K/o 使用权限:所有使用者
p+b/k2Q 使用方式:ps [options] [--help]
TQb/lY9* 说明:显示瞬间行程 (process) 的动态
<5L99<E 参数:
4evN^es'I_ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
_L=-z*a\ -A 列出所有的行程
>4@w|7lS -w 显示加宽可以显示较多的资讯
(P E.v1T -au 显示较详细的资讯
a;5clonB -aux 显示所有包含其他使用者的行程
`BZ|[
q3 0;x&\x7K au(x) 输出格式 :
W7C1\'T ~> )>hy) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
_#M4zO7 USER: 行程拥有者
.S:(O+#Gm PID: pid
RQ0^
1
R %CPU: 占用的 CPU 使用率
A*BN
%MEM: 占用的记忆体使用率
QcWg VSZ: 占用的虚拟记忆体大小
@@@}FV& RSS: 占用的记忆体大小
!{,2uQXe TTY: 终端的次要装置号码 (minor device number of tty)
7x.j:{2 STAT: 该行程的状态:
yVVyWte, D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
Dlz0*eHD R: 正在执行中
nYyKz
Rz S: 静止状态
H6Zo|n T: 暂停执行
O!>#q4&] Z: 不存在但暂时无法消除
xVsI#`<a W: 没有足够的记忆体分页可分配
h% >ZN-K) <: 高优先序的行程
#Ey_.4S N: 低优先序的行程
,fiV xn Q L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
qJ5b;= START: 行程开始时间
F&`%L#s| TIME: 执行的时间
LV ]10v6 COMMAND:所执行的指令
&W3srJo 范例:
t[;-gi,, ps
5OPvy,e6 PID TTY TIME CMD
zvGncjMkC 2791 ttyp0 00:00:00 tcsh
#e =E 3092 ttyp0 00:00:00 ps
7
2i&-`&4 % ps -A
1
jLQij PID TTY TIME CMD
L_T+KaQCH 1 ? 00:00:03 init
|;:Kn*0/] 2 ? 00:00:00 kflushd
:CqR1_n% 3 ? 00:00:00 kpiod
"%Ief4 4 ? 00:00:00 kswapd
w15a~\Qu 5 ? 00:00:00 mdrecoveryd
#"oLz"{ .......
i<$?rB!i<1 % ps -aux
3w>1R>7 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
C/
VHzV%q root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
+9]t]Vrw root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
i{9.bpp/ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
N
G vb] root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
3rMi:*? ........
\0Xq&CG=E 名称:pstree
#'@@P6o5 使用权限:所有使用者
2f{p$YIt 使用方式:
c0l?+:0M pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
16N| pstree -V
S
-,$ ( 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
f/z]kfgw 参数:
'w1ll9O -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
'k}w|gNB -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
IR3+BDE)> 范例:
%qqCpg4 pstree
ts@w 9| /F^
Jn_ init-+-amd
8LF=l1=~ |-apmd
%x;~o: |-atd
[OPF3W3z |-httpd---10*[httpd]
-1hCi! %pstree -p
_J2?B?S/j init(1)-+-amd(447)
Jj0:p" |-apmd(105)
3QXsr< |-atd(339)
5{ !"} %pstree -c
XxeP;} init-+-amd
yzl}!& E |-apmd
)b%zYD9p |-atd
'xG{q+jj' |-httpd-+-httpd
Pxkh;:agD | |-httpd
4KHIUW$ | |-httpd
v.sjWF | |-httpd
@+
T33X)h% ....
O9<oq 名称:renice
sSk qU 使用权限:所有使用者
?Vh#Gr }Q9+krrow 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
7wY0JS$fz eVX/<9> 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Rxr?T- cM<08-:v 把计?
4Wvefq" oV9{{ -p pid 重新指定行程的 id 为 pid 的行程的优先序
[_ uT+q3 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
GbQg(%2F -u user 重新指定行程拥有者为 user 的行程的优先序
hAds15 %C 范例:
Pd;8<UMk 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
Kv:.bHN} renice +1 987 -u daemon root -p 32
pI.8Ip_r u^i3 @JuX 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
n'j}u :)4c_51 ` 名称:top
Z:<wB#G 使用权限:所有使用者
n``9H91 #RyTa
/L 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ugj I$u
2[1t
)EW
说明:即时显示 process 的动态 F.@|-wq&
p1.3)=T
把计? B7Zi|-F
+~:OUR*>
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s CRiqY_gBf
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 e\-,e+
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 K:VZ#U(_
s : 安全模式,将交谈式指令取消, 避免潜在的危机 B>S>t5$
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 CQmozh-
n : 更新的次数,完成后将会退出 top u|\?6fz
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 \J#&]o)Y
JJs*2y
范例: uvR l`"Y
显示更新十次后退出 ; *c%{b3T_
top -n 10 Hj `\Fm*A
cdGBo4
使用者将不能利用交谈式指令来对行程下命令 :
V_e
top -s N9*QQ0
{:\LFB_
将更新显示二次的结果输入到名称为 top.log 的档案里 : rf`xY4I\
top -n 2 -b < top.log RFSwX*!
j,
*=D6
名称:skill @.)[U:N
xzFQ)t&
使用权限:所有使用者 Vo.~1^
fo~*Bp()-E
使用方式: skill [signal to send] [options] 选择程序的规则 WCk. K
+!:=Mm
说明: ^qVBg BPb
bVa?yWb.
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 .kkhW8:
6]?W&r|0I
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 |TQ4:P1T
=\MAz[IDj
一般参数: mQSn*;9\T3
M
'%zA;Wl
-f 快速模式/尚未完成 $Xu/P5
`PI*\t0
-i 互动模式/ 每个动作将要被确认 1U^KN~!
eJ ^I+?h
-v 详细输出/ 列出所选择程序的资讯 Ejf5M\o
E.0J94>iM
-w 智能警告讯息/ 尚未完成 `|v/qk7
^?
0V8 6]zSo
-n 没有动作/ 显示程序代号 _I3v"d
(u='&ka
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 Lm<WT*@
x&+&)d
-t 终端机代号 ( tty 或 pty ) D
dCcsYm,
;|$o z{Ll
-u 使用者名称 qUn+1.[%
Hr7pcz/#l
-p 程序代号 ( pid ) mb%U~Na
=}I=s@
-c 命令名称 可使用的讯号: QoxQ"r9Wh
MR5[|kHJT
以下列出已知的讯号名称,讯号代号,功能。 >vYb'%02
3^$=XrD
名称 (代号) 功能/ 描述 Bga4kjfmk
f87XE";:A
ALRM 14 离开 vSv1FZu*
bR:hu}YS
HUP 1 离开 gNDMJ^`
t.
(6tL]
INT 2 离开 =8rNOi
yOAC<<Tzus
KILL 9 离开/ 强迫关闭 Mc(|+S@w'
"3a}~J<g
PIPE 13 离开 V,8Z!.MG
:>_oOn[ _
POLL 离开 Y%|dM/a`
[7LdTY"Tl
PROF 离开 D,lY_6=
&h!O<'*2
TERM 15 离开 4}UJBb?
F0r2=f(?
USR1 离开 Zw'050~-
agkKm?xIL
USR2 离开 "Y4glomR[
Z#^|h0
VTALRM 离开 [gZR}E
gh
:5
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 c^puz2
&"27U
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 _V0%JE'
Ho[]03
TSTP 停止 /产生与内容相关的行为 :V@)A/}uk
hsYE&Np_Q
TTIN 停止 /产生与内容相关的行为 .=d40m
PyK!Cyq
TTOU 停止 /产生与内容相关的行为 !#*#ji xo
BpX` 49
STOP 停止 /强迫关闭 /iAhGY
$e,r>tgD
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 j+q)
B%kC>J
PWR 忽略 /在某些系统中会离开 `
vFD O$K
AGjjhbGB
WINCH 忽略 4sBvW
Q
8;JvCz
CHLD 忽略 Dfc%
jWbA
2+C:Em0yI
ABRT 6 核心 kg7bZ
'.>y'=
FPE 8 核心 gN73)uJ0
D`'Cnt/
ILL 4 核心 kUT^o
YU)%-V\
QUIT 3 核心 i3d2+N`
:O,r3O6
SEGV 11 核心 CF\wR;6k
;_|4c7
TRAP 5 核心 6U$e;cr6
U}k@%m,
SYS 核心 /或许尚未实作 7sWe32
_iEnS4$A8
EMT 核心 /或许尚未实作 "O|.e`C%^
| WTWj
BUS 核心 /核心失败 :=5X)10
_'X
XCPU 核心 /核心失败 26 1? 8&c
4i}nk
T
XFSZ 核心 /核心失败 q4G$I?4
vW!O("\7K<
范例: W,H=K##6<
停止所有在 PTY 装置上的程序 'Nuy/\[{\
skill -KILL -v pts/* v&d'ABeT
2mMi=pv9
停止三个使用者 user1 , user2 , user3 ,=c(P9}^
skill -STOP user1 user2 user3 1CSGG'J]E
]\oT({$6B
其他相关的命令: kill {.[EX MX
名称:expr G-K{
使用权限:所有使用者 ^;9l3P{
### 字串长度 =n_z `I
mW+5I-~
shell>> expr length "this is a test" qN9 ?$\
14 YktZXc?iI<
### 数字商数 x >tm[k
shell>> expr 14 % 9 jt: *Y
5 4<)*a]\c5M
### 从位置处抓取字串 Z#(Y%6[u
shell>> expr substr "this is a test" 3 5 v}D0t]
is is ~x+'-2A46
### 数字串 only the first character fkImX:|q
shell>> expr index "testforthegame" e hx8pg,X
2 Tp.]{*
### 字串真实重现 C&%NO;Ole
shell>> expr quote thisisatestformela 1[#sHj$Na`
thisisatestformela