linux常用命令
I]bqle0M U:m[*
}+< 称:/etc/aliases
>J^bs &j 使用权限:系统管理者
rlk0t159 使用方式: 请用 newaliases 更新资料库
(f^WC, 说明:
'; ,DgR;' sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
<uDEDb1|l U*`7 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
i<&*f}=' # newaliases
2Un~Iy ]4-lrI1# 下面命令会做相同的事,
@y3w_;P # sendmail -bi
"- S2${ "-GjwB 相关命令:
e}y oy+9 mail, mailq, newaliases, sendmail
T#xCu|5 3?SofPtc/ ” mail [返回]
eBX#^ 名称:mail
!cPiH6eO By(:%=. 使用权限:所有使用者
2.CjjI 7;RhA5M 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
B?9K! c 8Kt_irD 说明:
%7%7
W*0d mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
n0g,r/ }ozlED`E 参数:
LWE[]1= i 忽略 tty 的中断讯号。 (interrupt)
RFd.L@-] I 强迫设成互动模式。 (Interactive)
ss63/ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_yY(&(]# n 不读入 mail.rc 设定档。
=xcA4"k s 邮件标题。
;ZZ%(P=- c cc 邮件地址。
834(kw+#9 b bcc 邮件地址。
`l,=iy$ XzI c<81Z 范例:
UH/) 4Wg :acnrW>i[@ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Xr\|U89P mail
user1@email.address
HL$}Gh]q mail
user1@email.address user2
G0Zq:kJ ^ZnlWZ@r 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
ph\KTLU xo{3r\u?} mail -s 标题 -c user1 user2 < mail.txt
u,AZMjlF d]Y-^&]{] 指令:mesg
j2O?]M 使用权限 : 所有使用者
mFCDwh] EfA*w/y 使用方式 : mesg [y|n]
UHr0J jQK qOaI4JP@ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
*s4h tt M$&aNt; 把计 ?
<P&~k\BuF{ E__^>= y : 允许讯息传到终端机介面上。
s5{N+O)~S n : 不允许讯息传到终端机介面上 。
8W' ,T 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
DY2r6bcn` /H 3u^ 例子 :
Y r3h=XY 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
GFM$1} mesg n
?VC[%sjwn 与 mesg 相关的指令有: talk,write,wall。
<>3}<i<[& 名称:/etc/aliases
a.P7O!2Lp 使用权限:系统管理者
5Ym/'eT 使用方式: newaliases
?xTMmm 说明:
z}I4m sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
34Q;& z\e gFk~SJd /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
5sbMp;ZM #$!(8>YJ 参数:没有任何参数。 范例:
pqaQ% |< # newaliases
fiDwa
;, \i
Ylh
HD 下面命令会做相同的事,
Hfw*\=p
# sendmail -bi
Qel2OI `b a*oqhOTQ 相关命令:
Bj-80d, mail, mailq, newaliases, sendmail
-F+
)N$CW 名称 : talk
I>(3\z4s 使用权限 : 所有使用者
afOix" XlPi)3m4/S 使用方式 :
wTu_Am L93PDp4v talk person [ttyname]
C}= *%S 说明 : 与其他使用者对谈
R;6$lO8C& D (>,#F 把计 :
G1vg2'A person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name !(-lY(x ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
AxsTB9/ ^E)*i#."4 例子.1 :
gHB*u!w7Z YEg(QOn3Q 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
a___SYl
'K talk Rollaend
3t*e|Ih&j5 !b=jD;< 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
O>h,u[0 TVVr<r 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
b!h*I>` talk
Rollaend@linuxfab.cx pts/2
`[&) X ]I+"";oQGB "IjCuR;# 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
h W<fu <hS %I 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
vz[-8 m:f Q7~9~ 名称 : wall
>`3wEJ"< 使用权限 : 所有使用者
3p%B &{x%"Aq/ 使用方式 :
Ji#"PE/Pt wall [ message ]
+p:?blG 使用说明:
JFJ_
PphvD wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
0c$0<2D% ek^=Z` 例子 :
5
aT>8@$Z^ o)(N*tC 传讯息"hi" 给每一个使用者 :
x=/`W^t2 wall hi
B5nzkJV<X 名称 : write
o~_ wx 使用权限 : 所有使用者
wa#$9p~Q "M GX(SQ 使用方式 :
&8##)tS(y \e=Iw"yd write user [ttyname]
&EELq"5K 说明 : 传讯息给其他使用者
"<#-#j 'T
'&OA 把计 :
3k#?E]' Xf4 user : 预备传讯息的使用者帐号
TpHvZ]c ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
o!\Q, D.Q9fa&P 例子.1 :
e d=pRb c Nhy.Z~D 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
?^8CD.| write Rollaend
$,mljJSQv Eeumi#$Z 接下来就是将讯息打上去,结束请按 ctrl+c
JTw< 4] CJDnHuozc 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
(9"w{pnlLc write Rollaend pts/2
U#u=9%' Xscm>.di 接下来就是将讯息打上去,结束请按 ctrl+c
B8f BX!u/ .nN>Ipv 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
j,]KidDWm ],?rFK{O 名称:kill
JGJy_.C 使用权限:所有使用者
Ih&rXQ$ )\k({S 使用方式:
CTNeh%K; l/wdu( kill [ -s signal | -p ] [ -a ] pid ...
y7x&/2 kill -l [ signal ]
H*gX90{!2 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
6t,_Xqg* 把计?
Ib~n}SA rt_k } -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
|4slG -p : 印出 pid , 并不送出信号
c,v?2*< -l (signal) : 列出所有可用的信号名称
Hv>16W$_ 范例:
_3pME9l '
)0eB: 将 pid 为 323 的行程砍掉 (kill) :
F*0rpQ,* kill -9 323
z-J?x-< w;p:4` 将 pid 为 456 的行程重跑 (restart) :
cnm*&1EzV kill -HUP 456
VbwB<nQl ~!PaBS3A 名称:nice
GY%2EM( 使用权限:所有使用者
%6%QE'D oZ/z{` 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
vi4lmkyh^ 0sQt+_Dl%L 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
)Rlh[Y& r BDO]-y vg.K-"yQW 把计?
R)>F*GsR :/.SrkN(A7 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
cl'#nLPz; --help 显示求助讯息
odm!}stus --version 显示版本资讯
) ]y^RrD 范例:
Yp;6.\Z8[ 将 ls 的优先序加 1 并执行 :
Jtv~n nice -n 1 ls
GY~Q) Z C<T)'^7z 将 ls 的优先序加 10 并执行 :
2`]`nTz, nice ls将 ls 的优先序加 10 并执行
pO10L`| ;ATn& 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
HgY> M`U m|c5X)}- 名称:ps
)[Bl3+' 使用权限:所有使用者
K,$Ro@! 使用方式:ps [options] [--help]
1B5]1&M 说明:显示瞬间行程 (process) 的动态
0C,2gcq 参数:
CkHifmc(u- ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
;
*@lH%u -A 列出所有的行程
1c2zFBl.& -w 显示加宽可以显示较多的资讯
s4&JBm(33N -au 显示较详细的资讯
Jq1^}1P -aux 显示所有包含其他使用者的行程
mZgYR~ 'A#bBn,| au(x) 输出格式 :
($vaj; 6z-&Zu7@ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
oE;SZ"$x USER: 行程拥有者
B.T|e,g26 PID: pid
0c,)T1NG > %CPU: 占用的 CPU 使用率
+J+[fbqX %MEM: 占用的记忆体使用率
UD+r{s/% VSZ: 占用的虚拟记忆体大小
vr$zYdV> RSS: 占用的记忆体大小
#6'+e35^ 8 TTY: 终端的次要装置号码 (minor device number of tty)
FZi'#(y STAT: 该行程的状态:
Cbq|<p# #o D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
t#eTn"; R: 正在执行中
-IP 3I S: 静止状态
4Up3x+bg T: 暂停执行
EXz{Pqz Z: 不存在但暂时无法消除
ZQ_&HmgRy W: 没有足够的记忆体分页可分配
\U\k$ ( <: 高优先序的行程
t)62_nu N: 低优先序的行程
<8?jn*$;\ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
b~L8m4L START: 行程开始时间
"{X_[ TIME: 执行的时间
~=#jr0IZ COMMAND:所执行的指令
!vQDPLBL 范例:
OM1pyt ps
QN'v]z PID TTY TIME CMD
G#(+p|n 2791 ttyp0 00:00:00 tcsh
n@e[5f9?x 3092 ttyp0 00:00:00 ps
km[PbC
% ps -A
sO;]l"{< PID TTY TIME CMD
j\^u_D 1 ? 00:00:03 init
-y1t;yU.L 2 ? 00:00:00 kflushd
Q&;d7A.@ 3 ? 00:00:00 kpiod
Z^?Y TykH 4 ? 00:00:00 kswapd
wRLj>nc 5 ? 00:00:00 mdrecoveryd
{zj<nu .......
FE[{*8 % ps -aux
<Ky6|&! USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
j1hx{P' root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
S$egsK"~ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
:87HXz6]jS root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
<e%~K4KH root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
(8?5REz ........
}ippi6b:r 名称:pstree
DX$zzf 使用权限:所有使用者
KDmzKOl 使用方式:
iI.d8}A pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
c{SD=wRt,y pstree -V
[L+VvO%cT 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
-Z/'kYj?U 参数:
nOE 1bf^l -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
W2CQk -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
faJ>,^V# 范例:
a|s64+ pstree
m@W\Pic,j. j & x=?jX init-+-amd
-Jj"JN. |-apmd
&\_cU?0d |-atd
sIZ|N"2]A* |-httpd---10*[httpd]
3 IK+&hk %pstree -p
?V>\9?zb init(1)-+-amd(447)
xr<.r4 |-apmd(105)
O(Tdn;1 |-atd(339)
nLfITr|5 %pstree -c
nnm9pnx init-+-amd
=%Yw;%0)Y |-apmd
\;%DDw |-atd
ONkHHyT |-httpd-+-httpd
1 iWe&I: | |-httpd
?R;K`f9< | |-httpd
Q5N;MpJ- | |-httpd
2\:z
....
"Y7
]t:8 名称:renice
v G7aT 使用权限:所有使用者
W,[b:[~v Y8fahQ# 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
ji|`S\u#b {m&8Viq1
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
W97%12J3 *Y@)t*
-a 把计?
J6)&b7 hSvA
dT]m -p pid 重新指定行程的 id 为 pid 的行程的优先序
EK:s# -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
s|1BqoE -u user 重新指定行程拥有者为 user 的行程的优先序
\"r*wae 范例:
5G-}'-R 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
,3zF_y(*Y renice +1 987 -u daemon root -p 32
\G}$+ <KFE.\*Z4 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
?rD`'B AxN.k 名称:top
X2MQa:yksP 使用权限:所有使用者
;bZIj`D( f.o,VVYi 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] n tfwR#j
.o2]ndT/J
说明:即时显示 process 的动态 ]vPa
A
4RH'GnLa
把计? &tULSp@J
xF+a.gAIb
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s tv)U 7K0
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 u7e g:0Y
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ?Q`Sx
s : 安全模式,将交谈式指令取消, 避免潜在的危机 (X
rrnoz
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 jDp]}d|f)
n : 更新的次数,完成后将会退出 top _Gf.1Bsf@S
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 k+"+s
bsW'
\k=.w
范例: {ZS-]|Kx
显示更新十次后退出 ; uF!3a$4]
top -n 10 +G!N@O
fC_dSM[{c
使用者将不能利用交谈式指令来对行程下命令 : a:oZ5PX=
top -s )Tc eNH
7-oH >OF^
将更新显示二次的结果输入到名称为 top.log 的档案里 : xb!h?F&
top -n 2 -b < top.log 1$q>\
KUdpOMYX
名称:skill H:X=v+W
.qyk [O
使用权限:所有使用者 VOYuog 5o
'8NKrI
使用方式: skill [signal to send] [options] 选择程序的规则 jhWNMu
rx*1S/\PPc
说明: uv++Kj!
*-timVlaE
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 wl{Fx+<^3
<ByR!Y
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 S8O^^jJq;
7-M$c7S
一般参数: X51 7PT8O
8@)/a
-f 快速模式/尚未完成 $X%GzrN
rsP3?.E
-i 互动模式/ 每个动作将要被确认
0gBD
%d+:0.+`n
-v 详细输出/ 列出所选择程序的资讯 "h/{YjUS
zh$[UdY6
-w 智能警告讯息/ 尚未完成 #&G^%1!
'#SacJ\L7
-n 没有动作/ 显示程序代号 =:U63
R1z\b~@"
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 A2z%zMlZc
R/
7G
-t 终端机代号 ( tty 或 pty )
;p"G<n
uG\+`[-{0
-u 使用者名称 ZpPm>|w
im^G{3z
-p 程序代号 ( pid ) >JFAE5tj&2
XF1x*zc
-c 命令名称 可使用的讯号: Ys10r-kDS
$4`RJ{ZJw]
以下列出已知的讯号名称,讯号代号,功能。 .J3lo:
cpB$b C](
名称 (代号) 功能/ 描述 :N#gNtC)b
\GeUX<Fl
ALRM 14 离开 ^;B
vd!
b1>%%#
HUP 1 离开 EI2V<v
+ )?1F
INT 2 离开 4YkH;!M>ji
Tn[DF9;?
KILL 9 离开/ 强迫关闭 x+(h#+F
/Cr0jWu
_
PIPE 13 离开 yqqP7
'DlY8rEGP
POLL 离开 3|RfX
7|3Z+#|T
PROF 离开 : L`
G*e/Ft.wf8
TERM 15 离开 +Ij>\;vM"
#KZ- "$
USR1 离开 >t u3m2
RX:\@c&
USR2 离开 a3
wUB
Y_S^B)y
VTALRM 离开 [V()7
v')Fq[H
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 `!5ZF@Q>e
!1!;}uzt
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 5)o-$1s A
lu_ y 9o^
TSTP 停止 /产生与内容相关的行为 ]7v-qd
2|(J<H
TTIN 停止 /产生与内容相关的行为 L.lmbxn
Afo(! v
TTOU 停止 /产生与内容相关的行为 ROr$S z
4(2}O-~
STOP 停止 /强迫关闭 BqK|4-Pf
83:m7;
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 nX<!n\J T
nK1XJp
PWR 忽略 /在某些系统中会离开 g=Q#2/UQ<
9*RfOdnNe
WINCH 忽略 $@+\_f'bU>
?s #DD,
CHLD 忽略 e2UbeP
E}mnGe
ABRT 6 核心 il\#R%';5
,g@U*06
FPE 8 核心 eI; %/6#
OF,<K%A
ILL 4 核心 dgE|*1/0
@~'c(+<3
QUIT 3 核心 :}FMauHh
${ad[hs
SEGV 11 核心 soA>&b!?
lyfLkBF
TRAP 5 核心 }3j/%oN.(
d%VGfSrKq
SYS 核心 /或许尚未实作 2sjV*\Udf
CspY+%3$
EMT 核心 /或许尚未实作 h|m h_T{+
i*..]!7e
BUS 核心 /核心失败 B4pheKZ2
BQ,]]}e43z
XCPU 核心 /核心失败 *bDuRr?v9
zv||&Hi
XFSZ 核心 /核心失败 DoX#+
07u4
0XSZ3dY&+
范例: G#@o6r
停止所有在 PTY 装置上的程序 F=Z|Ji#
skill -KILL -v pts/* rr'RX
\A*#a9"
停止三个使用者 user1 , user2 , user3 ueDG1)
skill -STOP user1 user2 user3 HGs.v}@&
#q9jFW8
其他相关的命令: kill *J=`"^BO
名称:expr @sav8]
使用权限:所有使用者 ])'22sY
### 字串长度 acdaDY
-wvrc3F
shell>> expr length "this is a test" ?lnX."eAdB
14 o>311(:
### 数字商数 ]L^X}[SH
shell>> expr 14 % 9 B<xBuW
5 fBR,Oneo
### 从位置处抓取字串 9(QY~F
shell>> expr substr "this is a test" 3 5 qi;@A-cq
is is ha1 J^e
### 数字串 only the first character b|u4h9
shell>> expr index "testforthegame" e D!Owm&We
2 320Wm)u>:
### 字串真实重现 =7e~L 3 K
shell>> expr quote thisisatestformela $T8Ni!#/C
thisisatestformela