linux常用命令
z1J)./BO
J=`
8 称:/etc/aliases
o$*(N 使用权限:系统管理者
EN!C5/M{& 使用方式: 请用 newaliases 更新资料库
"cKD# 说明:
z9aR/:W} sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
0cS$S Mn{ rmX*s}B /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
{rc3`<% # newaliases
.-Lrrk)R+ e
)0 ]WJ 下面命令会做相同的事,
d%7?913 # sendmail -bi
FK^xZ?G 4z<c8
E8 相关命令:
YSP\+ZZ mail, mailq, newaliases, sendmail
[c,V=:Cq vB7Gx>BQd ” mail [返回]
<P h50s4 名称:mail
dc)%5fV\ _
$F=A 使用权限:所有使用者
R-Edht|{ +e{ui + 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
*tqD:hiF XoKgs, y4 说明:
\?n6l7*t> mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
L$PbC!1 05wkUo:9 参数:
!n-Sh<8 i 忽略 tty 的中断讯号。 (interrupt)
2.v{W-D[ I 强迫设成互动模式。 (Interactive)
)L b` 4B v 列印出讯息,例如送信的地点、状态等等。 (verbose)
s<YN*~ n 不读入 mail.rc 设定档。
BN 9e S s 邮件标题。
P]Fb0X c cc 邮件地址。
>$m<R& b bcc 邮件地址。
U"GxXrl wpZ"B+oK! 范例:
&~_F2]oM IWo'{pk 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
@aS)=|Ls\ mail
user1@email.address
rj=as>6B mail
user1@email.address user2
7!J-/#! B:"D)/\ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
Q:P)g#suc (.#nl}fA mail -s 标题 -c user1 user2 < mail.txt
irlFB#.. [<XYU,{R 指令:mesg
B#g~c<4< 使用权限 : 所有使用者
/r7xA}se^ `rn/H;r!Z 使用方式 : mesg [y|n]
GN_L"|#)= Au2?f~#Fv 说明 : 决定是否允许其他人传讯息到自己的终端机介面
YrL(4 Nt8 UwUHB~<oE 把计 ?
V*n$$-5
1- e=&~6bs1U y : 允许讯息传到终端机介面上。
T<*)Cdid n : 不允许讯息传到终端机介面上 。
i:YX_+n 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
p$,G`'l d[6 'w ? 例子 :
Hhtl~2t!0 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
JU)^b
V_ mesg n
+2iD9X{$MX 与 mesg 相关的指令有: talk,write,wall。
~\am%r> 名称:/etc/aliases
?>;b,^4 使用权限:系统管理者
%Yu~56c- 使用方式: newaliases
ec; 说明:
# `^nmC/F sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
i(%2t(wf+ M0$MK> /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
}-fHS;/ Fv]6an. 参数:没有任何参数。 范例:
3t<a3"{9 # newaliases
6:(s8e ''auu4vF 下面命令会做相同的事,
vb^fx$V # sendmail -bi
iZG-ca A O5&Y.A# 相关命令:
[;wJM|Z J0 mail, mailq, newaliases, sendmail
v]M:HzP 名称 : talk
l,J>[Q`< 使用权限 : 所有使用者
kn}^oRT lo!pslqsn 使用方式 :
t]SB.ja Z}t;:yhR talk person [ttyname]
:;_}Gxx 说明 : 与其他使用者对谈
HrE, K\^ AZ(zM.y!#_ 把计 :
;h1hz^Wq person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name e.vt"eRB ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
LF7 }gQs
^ [y8(v ~H 例子.1 :
t*= nI $ ~R[ k^i.Y 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
/W .s1N talk Rollaend
MH#Tp#RG UJ,vE}=_{ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
]){ZL E"'u2jEG^ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
/)kJ iV talk
Rollaend@linuxfab.cx pts/2
i!%WEHPe -r,v3n H<|}pZ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
__eB 7]#E (W#CDw<ja 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
G2N0'R" )Wle
CS_ 名称 : wall
]A }ZaXd 使用权限 : 所有使用者
*` mxv0w~( v@]SddP,? 使用方式 :
|Ogh-<|< wall [ message ]
(.=ig
X 使用说明:
LCSvw wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
MhA4C 8 iDcTO} 例子 :
adu6`2*$ x"sbm 传讯息"hi" 给每一个使用者 :
LpY{<:y wall hi
+%j27~R>D 名称 : write
`D|])^"{ 使用权限 : 所有使用者
qqo#H O hiibPc?I 使用方式 :
:[+8(~| za 5 eL
b/,R write user [ttyname]
OIj.K@Kr 说明 : 传讯息给其他使用者
OD7^*j(p` #lMcAYH, 把计 :
fZpi+I qCI7)L` user : 预备传讯息的使用者帐号
;6 W[%{ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
{St- F?tWx+N<{ 例子.1 :
e YP^.U) S'^ q 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
OqS!y(
( write Rollaend
(/nnN4\= 1#cTk 接下来就是将讯息打上去,结束请按 ctrl+c
'm`}XGUBS
3#$X 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
5?HwM[` write Rollaend pts/2
B-_b.4ND) _BA; H+M 接下来就是将讯息打上去,结束请按 ctrl+c
q
8sfG ;)
:QP1! 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
L3HC- vu@.;-2E% 名称:kill
O>+=cg 使用权限:所有使用者
Pb;c:HeI/ awo'#Y2> 使用方式:
niCK(&z a(6h`GHo kill [ -s signal | -p ] [ -a ] pid ...
`1P|<VbZ kill -l [ signal ]
al}J^MJ 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
s&pnB 把计?
#S9J9k LA_{[VWYp> -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
%m dtVQ@ -p : 印出 pid , 并不送出信号
!@ ]IJ"\ -l (signal) : 列出所有可用的信号名称
g(tVghHxt$ 范例:
2#:p:R8I> .B<Bqr@?8 将 pid 为 323 的行程砍掉 (kill) :
gIz!~I_U kill -9 323
~Z/,o) hsY?og_H 将 pid 为 456 的行程重跑 (restart) :
?-:2f#bC kill -HUP 456
v.<mrI#? %H\J@{f 名称:nice
5C1EdQ4S0 使用权限:所有使用者
u#EcR}=] p&RC#wYu 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
k*)sz +Mijio 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
8O]`3oa> tgG*k$8z ;DK%!."% 把计?
cg3}33Z;6 2lsUCQI; -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
M{5AQzvs --help 显示求助讯息
-MS#YcsV --version 显示版本资讯
tjFX(;^[ 范例:
lh'S_p8g 将 ls 的优先序加 1 并执行 :
SC~k4&xy nice -n 1 ls
8lpAe0p(Z .+ u
b\ 将 ls 的优先序加 10 并执行 :
?Q-Tyf$3 nice ls将 ls 的优先序加 10 并执行
:CE4<
{V -&Xv,:'? 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
;9OhK71} 7C7.}U 名称:ps
$!>.h*np 使用权限:所有使用者
-sQ[f18 使用方式:ps [options] [--help]
?yS1|CF%&y 说明:显示瞬间行程 (process) 的动态
nte?a e 参数:
iv$YUM+ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
DO80HS3ZD -A 列出所有的行程
&t9V -w 显示加宽可以显示较多的资讯
~)ys,Q -au 显示较详细的资讯
r+Ki`HD% -aux 显示所有包含其他使用者的行程
.^{%hc*w4 4c<
s"2F au(x) 输出格式 :
)k,n} *[]E5U USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tsc`u> USER: 行程拥有者
y,nmPX?]n PID: pid
GHGyeqNM %CPU: 占用的 CPU 使用率
mcez3gH %MEM: 占用的记忆体使用率
Z#d#n!Lz VSZ: 占用的虚拟记忆体大小
Y}c/wF7o RSS: 占用的记忆体大小
Gc|)4c TTY: 终端的次要装置号码 (minor device number of tty)
mF*x&^ie STAT: 该行程的状态:
E7A!,A&> D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
d5m-f/ R: 正在执行中
[Iks8ZWr_ S: 静止状态
k3#'g'>yh T: 暂停执行
0y9 b0G Z: 不存在但暂时无法消除
6^Wep- $ W: 没有足够的记忆体分页可分配
~(d
{j}M> <: 高优先序的行程
Tzex\]fw N: 低优先序的行程
C.jWT1 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
zi-_ l START: 行程开始时间
'}_r/l]K TIME: 执行的时间
B'}?cG] COMMAND:所执行的指令
O]u'7nO{{ 范例:
]P?<2, ps
X.t4; PID TTY TIME CMD
C{}_Rb'x 2791 ttyp0 00:00:00 tcsh
~ skp}g] 3092 ttyp0 00:00:00 ps
eQbHf % ps -A
B ?VTIq> PID TTY TIME CMD
lgOAc, 1 ? 00:00:03 init
GI% &.V d 2 ? 00:00:00 kflushd
o
<q*3L5 3 ? 00:00:00 kpiod
!a@)6or 4 ? 00:00:00 kswapd
CZ5\Et6r 5 ? 00:00:00 mdrecoveryd
'h*jL@%TT .......
fW-C`x % ps -aux
"}]$ag!`q$ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bHwEd%f root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
s*izhjjX root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
iEvQ4S6tD root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
z:,PwLU root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
5f-b>=02 ........
>d/H4;8 名称:pstree
gF)9a_R%p 使用权限:所有使用者
ot^p xun 使用方式:
k +-w% pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
@UD:zUT)F pstree -V
?E([Nc0T 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
$coO~qvU 参数:
iM+`7L' -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
&|hK79D -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
cr1x
CPJj 范例:
Ke$_l]} pstree
C?<pD+]b_ 6Z2 ,:j; init-+-amd
QZ a.c |-apmd
d!,t_jM0 |-atd
3A7774n=P |-httpd---10*[httpd]
OK[J
h %pstree -p
I.<c{4K5 init(1)-+-amd(447)
2xI|G
3U |-apmd(105)
5~*)3z^V |-atd(339)
F/>_PH57 %pstree -c
t^rw@$"} init-+-amd
_P;D.>? |-apmd
~4~`bT9 |-atd
,WT>"9+ |-httpd-+-httpd
8Lo#{` | |-httpd
FcDS*ZEk! | |-httpd
fr@F7s5} | |-httpd
/R)wM#& ....
+&EXTZ@o 名称:renice
)#=J<OpG 使用权限:所有使用者
Cm}2 >eH
.fA*WQ!lb 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
o96C^y{~S IrLGAQ0 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
UtZ,q!sg sibYJK Oy 把计?
!IxO''4 XX6Z|Y5. -p pid 重新指定行程的 id 为 pid 的行程的优先序
2eT?qCxqc -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
:=*deZ< -u user 重新指定行程拥有者为 user 的行程的优先序
wQkM:=t5 范例:
{T){!UVp! 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
I2cz:U7 renice +1 987 -u daemon root -p 32
'rQ"Dc1D nwRltK 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
?6#won <n"BPXF~ 名称:top
8[^'PIz 使用权限:所有使用者
c8RJOc4X }pc9uvmIJ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] %u -x9
6 SSDc/
说明:即时显示 process 的动态 Jd2.j?P=
VFHd2Ea(
把计? '%)R}wgV
k;WD[SV
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s jN=<dq
~
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 6_LeP9s )
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Cs,H#L
s : 安全模式,将交谈式指令取消, 避免潜在的危机 Xlo7enzY
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 >t D=t8
n : 更新的次数,完成后将会退出 top "
\$^j#o
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 t>"%exdoZ
ab0Sx
范例: /r}L_wI
显示更新十次后退出 ; 7ubz7*
top -n 10 #el27"QP0
>yIJ8IDF
使用者将不能利用交谈式指令来对行程下命令 : +Y\:Q<eMFg
top -s 1GY2aZ@
dWqn7+:
将更新显示二次的结果输入到名称为 top.log 的档案里 : 5pO|^Gj1
top -n 2 -b < top.log 95DEuReKi
2[E wN!IZ
名称:skill _n&Nw7d2
M
`i7r]
使用权限:所有使用者 {Gxe%gu6K
0p.bmQSH
使用方式: skill [signal to send] [options] 选择程序的规则 n ]ikc|
c:[k+_Zr
说明: t [QD#;
@hLkU4S
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 0.aXg "
MvVpp;bd
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 ;C]Ufk
Vej$|nF
一般参数: :<%bAn
b@:OlZ~%
-f 快速模式/尚未完成 50UdY9E_v}
5&Oc`5QD
-i 互动模式/ 每个动作将要被确认 u\R?(G&
Ebg8qDE
-v 详细输出/ 列出所选择程序的资讯 oy+|:[v:Fk
qsj{0 Go
-w 智能警告讯息/ 尚未完成 A_9WSXR
3f;=#|l
-n 没有动作/ 显示程序代号 7Z-j'pq
i1iP'`r
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 nhI+xqfn
=KRM`_QShg
-t 终端机代号 ( tty 或 pty ) z^Q'GBoBA
{>&~kM@
-u 使用者名称 (Wzp sDte
gLiJ&H
-p 程序代号 ( pid ) PK*Wu<<
cx}Yu8
-c 命令名称 可使用的讯号: %1z;l. c
0zt]DCdY
以下列出已知的讯号名称,讯号代号,功能。 uo F.f$%"
+ikSa8)*i
名称 (代号) 功能/ 描述 /qpSmRL
rb?7i&-
ALRM 14 离开 'K[ml ?_
X1o",,N^M
HUP 1 离开 a[{$4JpK
)'shpRB;1
INT 2 离开 ]>3Y~KH(
PN*
.9;5Z
KILL 9 离开/ 强迫关闭 X+vKY
1v@#b@NXM7
PIPE 13 离开 W"{Ggk`
qpQ;,8X-"
POLL 离开 &AiAd6
+ NlnK6T/
PROF 离开 }T5@P {3P3
w OL,L U
TERM 15 离开 K:Z$V
L*z=!Dpo
USR1 离开 p1N}2]e
OVK
)]- ~
USR2 离开 lyn%r
An2>]\L
VTALRM 离开 qHt/,w='Q
?Uql30A
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 F:j@ JMpQ
^WA7X9ed
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 r$jWjb
yT^x0?U
TSTP 停止 /产生与内容相关的行为 3%vXB=>T!
OB>Hiy
TTIN 停止 /产生与内容相关的行为 @K;b7@4y
^[<BMk
TTOU 停止 /产生与内容相关的行为 Ek+R
!do`OEQKR
STOP 停止 /强迫关闭 Nd8>p.iqO
EQ%o oAb8
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 ]b-2:M
+n^M+ea;
PWR 忽略 /在某些系统中会离开 :{u`qi
k
9i
W1
WINCH 忽略 zt.kNb
vQWmHv\P
CHLD 忽略 NcA
`E_3
<J509j
ABRT 6 核心 {FIzoR"
Q)75?mn
FPE 8 核心 O|Uz)Y94
Pps$=`
ILL 4 核心 N{J
1C6
uq5?t
QUIT 3 核心 G,C`+1$*
n%E,[JT
SEGV 11 核心 zx@!8Z
G
;j1zs
TRAP 5 核心 !y_FbJ8KC
s8-RXEPb
SYS 核心 /或许尚未实作 zgD?e?yPO
{-A|f
EMT 核心 /或许尚未实作 /@:X0}L
V?XQjH1X
BUS 核心 /核心失败 3.W[]zH/u
CPB{eQeDuv
XCPU 核心 /核心失败 l";Yw]:^
<]Td7-n
XFSZ 核心 /核心失败 4DL;Y
2 "&GH1
范例: |[],z 8
停止所有在 PTY 装置上的程序 2u.0AG
skill -KILL -v pts/* @]qP:h.
~z^?+MgZ2
停止三个使用者 user1 , user2 , user3 bi8_5I[
skill -STOP user1 user2 user3 rrL.Y&DTK
('x]@
其他相关的命令: kill =$OGHc
名称:expr BX/3{5Y>{
使用权限:所有使用者 U["0B8
### 字串长度 oAO{4xP
k4Q>J,k
shell>> expr length "this is a test" xPZ>vCg
14 V$ZclV2:Ih
### 数字商数 @c^ Dl
shell>> expr 14 % 9 #mV2VIX#Jv
5 q>_<\|?%x
### 从位置处抓取字串 Zn9tG:V
shell>> expr substr "this is a test" 3 5 k;\gYb%L
is is {Zgd
### 数字串 only the first character :M(uP e=D
shell>> expr index "testforthegame" e
3\W/VBJJ
2 (MLcA\LJ
### 字串真实重现 <,CrE5Pl
shell>> expr quote thisisatestformela prZ
,4\
thisisatestformela