linux常用命令
;J(,F:N Qs9 U&*L 称:/etc/aliases
rk/
c 使用权限:系统管理者
X u):.0I 使用方式: 请用 newaliases 更新资料库
dz|*n'd 说明:
$NT9LtT@K sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
i)L:VkN o#xg:m_py /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
=
Y-Ne6a # newaliases
oKi1=d+T (AG 下面命令会做相同的事,
r^t{Ii~ # sendmail -bi
DME?kh>7 <83gn
:$ 相关命令:
qb4;l\SfT mail, mailq, newaliases, sendmail
%vt SeJ .4<U*Xkt ” mail [返回]
WrNgV@P 名称:mail
E`fssd~ r`&|)Hx 使用权限:所有使用者
{p|%hhTK% mRH]'dlD7 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
WKl' EQJ_$6 说明:
"O[76}I+.q mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
L"h@`3o| h.$__Gs 参数:
U%DF!~n i 忽略 tty 的中断讯号。 (interrupt)
}t2pIkF; I 强迫设成互动模式。 (Interactive)
b8Rh|"J)d v 列印出讯息,例如送信的地点、状态等等。 (verbose)
: W^\
mH n 不读入 mail.rc 设定档。
=>0M3 Qh{ s 邮件标题。
c^Jgr(Ow c cc 邮件地址。
`4.sy +2 b bcc 邮件地址。
g0j4<\F2\ lo UwRz 范例:
_P<lG[V KVM@//:{ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
C9U{^ mail
user1@email.address
M`P]cX)x mail
user1@email.address user2
Oawr S{ (}X?v`Y^W 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
> &vO4L $U1kP?pR mail -s 标题 -c user1 user2 < mail.txt
Ws*PMK.0 <
}wAP_y 指令:mesg
2c~?UK[1 使用权限 : 所有使用者
z|]oM#Gt :"P hkR 使用方式 : mesg [y|n]
]KK ZbEO 4A/,X>W61 说明 : 决定是否允许其他人传讯息到自己的终端机介面
};m7FO Ui|a}`c 把计 ?
Z;y}gv/{ bepYeT
y : 允许讯息传到终端机介面上。
[k~+(.2I n : 不允许讯息传到终端机介面上 。
]Ec[")"kT 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
[du>ff )fMX!#KP 例子 :
\U*-w:+@ 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
V2s}<uG mesg n
gQh Ccv 与 mesg 相关的指令有: talk,write,wall。
"h^#<bPN 名称:/etc/aliases
8gtCY~m 使用权限:系统管理者
3.<6;? 使用方式: newaliases
kE_@5t7O{
说明:
HS`bto0* sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Gr#rM/AfCK ZC5Yve8 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
/GuSIZg"_ 5d?!<(e6 参数:没有任何参数。 范例:
JNFT6T)T15 # newaliases
?gR\A8:8 a^XTW7]r 下面命令会做相同的事,
#
5f|1O # sendmail -bi
B~ !G lT ]tQDk4&i 相关命令:
H@2v<e@ mail, mailq, newaliases, sendmail
V1`5D7Z 名称 : talk
#HM\a 使用权限 : 所有使用者
c_G-R+ Jh&~/ntmm_ 使用方式 :
7 xp1\j0 )YnI!v2T talk person [ttyname]
@x=BJuUuX 说明 : 与其他使用者对谈
loC5o|Wh 7c29Ua~[ 把计 :
_.OMjUBZT person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name dx13vZ3[U ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
XW~ BEa G{f`K^ 例子.1 :
YZBzv2'\x l<aqiZSY 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
,dZ H$ talk Rollaend
(]}x[F9l ?BDlB0jxzi 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
XY!{ g( ?b@q5Y 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
*H%0Gsk talk
Rollaend@linuxfab.cx pts/2
6>=-/)p} %%as>}. ?K4.L?D#J 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
V|3yZ8lE :^H9W^2 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
Zc4(tf9 17i<4f# 名称 : wall
z<oE!1St 使用权限 : 所有使用者
TRk
?8 {(M&-~Yh 使用方式 :
Lz9$,Y[ wall [ message ]
o0aO0Y 使用说明:
*X=@yB*aK wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
5DkK'tCI9Z )4!CR /ao 例子 :
zL)1^[%O9 lTV@b& 传讯息"hi" 给每一个使用者 :
o5=)~D{/G3 wall hi
4T==A#Z 名称 : write
uG=t?C6 使用权限 : 所有使用者
sd]54&3A 3^02fy 使用方式 :
&?/N}g@K +QIGR'3u write user [ttyname]
,#E3,bu6_4 说明 : 传讯息给其他使用者
:$M9XZ~\ V6@*\+:3) 把计 :
L9{mYA]q `qf\3JT\ user : 预备传讯息的使用者帐号
YW?7*go'Z ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
&547`* o%V
@D'w 例子.1 :
[!J
@a Q?
<-`7 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
?qf:_G write Rollaend
ch0oFc$ :(bdI] 接下来就是将讯息打上去,结束请按 ctrl+c
MiSja#"+A 9?u9wuH 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
i"%JFj_G write Rollaend pts/2
uQ[vgNe*m ,zAK3d&hj 接下来就是将讯息打上去,结束请按 ctrl+c
bU;}!iVc] Mvy6"Q: 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
LN@E\wRw{r :"M9*XeHO 名称:kill
-Q<z1vz 使用权限:所有使用者
t(J![wB} 0Y5LDP 使用方式:
v%H"_T Jh37pI kill [ -s signal | -p ] [ -a ] pid ...
mJ0}DJiX$ kill -l [ signal ]
ZR!cQ oV= 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
OLk9A 把计?
3)6+1Yc %^a]J"Ydi8 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
L!bfh` -p : 印出 pid , 并不送出信号
=oo[ Eyr -l (signal) : 列出所有可用的信号名称
x r-;,W 范例:
_7Xd|\Zc ZB~l2 将 pid 为 323 的行程砍掉 (kill) :
rnnX|}J kill -9 323
=dgo!k Q^$ghZ6V 将 pid 为 456 的行程重跑 (restart) :
D ?Nd; [ kill -HUP 456
- *:p.(c 5~@?>)TBv 名称:nice
WW//heJe- 使用权限:所有使用者
[3t0M5x w 8O~0RYk 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
lo cW_/ Ef2Yl 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
y]yine jMN)?6$= y=[gQJ6~r 把计?
lq:]`l,6@ H"#)&a7 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
i/NDWVFD --help 显示求助讯息
S:/{ --version 显示版本资讯
#,@bxsB 范例:
tlDYk 将 ls 的优先序加 1 并执行 :
Yuwc$Qp) nice -n 1 ls
7#~4{rjg |w=Ec#)t4 将 ls 的优先序加 10 并执行 :
cwk+#ur nice ls将 ls 的优先序加 10 并执行
)D:9R)m YSqv86 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
*,"jF!C&[ [dl+:P:zc 名称:ps
Ee{ `Y0 使用权限:所有使用者
i~9?:plS 使用方式:ps [options] [--help]
ETM2p1ru0 说明:显示瞬间行程 (process) 的动态
K@q&HV"'. 参数:
j*tk(o}qG ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
bsB},pc -A 列出所有的行程
_~tm7o+js -w 显示加宽可以显示较多的资讯
fZ[kh{| -au 显示较详细的资讯
y&1%1 #8F -aux 显示所有包含其他使用者的行程
i][f#e4 F4GP7] au(x) 输出格式 :
gh TcB 8jRs=I USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
24//21m USER: 行程拥有者
XAkK:}h PID: pid
E [S?
b=^ %CPU: 占用的 CPU 使用率
Iha[Gu %MEM: 占用的记忆体使用率
F;#zN VSZ: 占用的虚拟记忆体大小
h aCKv RSS: 占用的记忆体大小
92ZWU2" TTY: 终端的次要装置号码 (minor device number of tty)
ovo/!YJ2 STAT: 该行程的状态:
CK2 B D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
0Y7$d` R: 正在执行中
B1E$v(P3M S: 静止状态
cC'
~ T: 暂停执行
/dLA`=r Zx Z: 不存在但暂时无法消除
$K})Q3FNi W: 没有足够的记忆体分页可分配
E(_KN[}S <: 高优先序的行程
K]X`sH: N: 低优先序的行程
yk<VlS L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Mal <iNN START: 行程开始时间
G%S6$@: TIME: 执行的时间
/?Vdqci COMMAND:所执行的指令
_l<mu? " 范例:
8q0I:SJy ps
y=w`w>% PID TTY TIME CMD
=ai2z2z 2791 ttyp0 00:00:00 tcsh
N&"QKd l 3092 ttyp0 00:00:00 ps
fmFzW*,E % ps -A
[9OSpq PID TTY TIME CMD
Dzr e' 1 ? 00:00:03 init
fuMN"T 6%+ 2 ? 00:00:00 kflushd
UgR:qjI 3 ? 00:00:00 kpiod
#:#Dz.$L 4 ? 00:00:00 kswapd
6a*83G,k 5 ? 00:00:00 mdrecoveryd
RwW$O@0 .......
?mMW*ico % ps -aux
:s"2Da3B USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
wZjlHe root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
'G8 ?'u_) root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
,HZYG4, root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
za T_d/?J root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
#F!Kxks ........
fz3lR2~G 名称:pstree
}%$OU = T 使用权限:所有使用者
?KB@Zm+#~ 使用方式:
_42Z={pZZq pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
F}D3,&9N pstree -V
)7dEi+v52 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
'd/*BjNp) 参数:
9*\g`fWc}{ -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
/g@^H/DO -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
K\(6rS}N 范例:
Q4?EZ_O pstree
9OyN i ? Vp%=E init-+-amd
)Q]w6he3 |-apmd
[(ygisqt |-atd
H-,TS^W |-httpd---10*[httpd]
M\9F:.t= %pstree -p
cvfUyp;P init(1)-+-amd(447)
h=6xZuA\ |-apmd(105)
F+ukAT
|-atd(339)
Q_]~0PoH %pstree -c
6aY>lkp init-+-amd
q>-R3HB |-apmd
=IZ[_ /@ |-atd
90fs:. |-httpd-+-httpd
>F[GVmC | |-httpd
3+>OGwfQ | |-httpd
a8Uk[^5 | |-httpd
J4>;[\%m ....
|@RpWp>2 名称:renice
d2~l4IL)~ 使用权限:所有使用者
_R^y\1Qu \GL*0NJ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
b+{r!D}~ 6\n?48x} 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
zTY;8r+ E!!
alc{ 把计?
jO8X:j09A 8KMvAc -p pid 重新指定行程的 id 为 pid 的行程的优先序
Uw)=WImz[ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
CxDcY -u user 重新指定行程拥有者为 user 的行程的优先序
a9l8{3 范例:
jj,r <T 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
GoIQ>n renice +1 987 -u daemon root -p 32
O~PChUU*Y . I==-| 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
Vb!O8xV4;+ f*m[|0qI<X 名称:top
/e1(?
20 使用权限:所有使用者
s bnjy"Z% }pawIf4V 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] TSjIz5
3vW4<:Lgy
说明:即时显示 process 的动态 :q
(&$
',)7GY/n~
把计? g^l RG3a
Ur!~<4GO
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s d1]i,C~Y
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 H0>yi[2f
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 f~ZEdq8
s : 安全模式,将交谈式指令取消, 避免潜在的危机 fu4!t31
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 0V`[Zgf
n : 更新的次数,完成后将会退出 top 8lP6-VA
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 L:@fP~Erh
}y6q\#G
范例: G1d(,4Xp
显示更新十次后退出 ; bL1m'^r
top -n 10 |cd-!iJX-
F!yV8XQ
使用者将不能利用交谈式指令来对行程下命令 : A@$kLex
top -s ~<)vKk
aG{$Ic
将更新显示二次的结果输入到名称为 top.log 的档案里 : u9Y3?j,oC
top -n 2 -b < top.log ]
fwZAU
6BAW
名称:skill 6F|j(LB
jfp z`zE
使用权限:所有使用者 qP1FJ89H
Vn|1v4U!
使用方式: skill [signal to send] [options] 选择程序的规则 h|)vv4-d|
lV6dm=k
说明: 2SG$LIV 9Y
J7+w4q~cB`
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 BKIjNV3
|+}G|hx@9
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 lzhqcL"
`u
XQ z7
一般参数: X2yTlLdY
XP3xJm3
-f 快速模式/尚未完成 p|[B
=.c{
WZn.;
-i 互动模式/ 每个动作将要被确认 _}gtcyx
v }\,o%t^
-v 详细输出/ 列出所选择程序的资讯 *%gF2@=r8F
x#H
3=YD*
-w 智能警告讯息/ 尚未完成 ;\{`Ci\
X+82[Y,mB.
-n 没有动作/ 显示程序代号 :iUF7P1I
u2iXJmM*
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 s'\$t
(gXN%rsY
-t 终端机代号 ( tty 或 pty ) >:1P/U
RU#F8O
-u 使用者名称 dl~|Izm
se9>.}zZN
-p 程序代号 ( pid ) Log|%P\
S\#1 7.=
-c 命令名称 可使用的讯号: iG<Som
l"+Jc1\ X
以下列出已知的讯号名称,讯号代号,功能。 W+=o&V
*d*,Hqn
名称 (代号) 功能/ 描述 hdma=KqZ(
]$b2a&r9
ALRM 14 离开 *rh,"Zo
#,NvO!j<4
HUP 1 离开 #&
?g %'
mUoIJ3fv_,
INT 2 离开 5:.{oSy7n
=O$M_1lp
KILL 9 离开/ 强迫关闭 |j~lkzPnV
~bK9R0|<
PIPE 13 离开 ('[TLHP
kHK0(bYK
POLL 离开 s1j{x&OSq
g(E"4M@t!
PROF 离开 v|';!p|
^Q}eatEn
TERM 15 离开 gl%`qf6:O
B&?sF" Y
USR1 离开 &[[K"aM1
R[B?C;+(O
USR2 离开 \cJa;WM>
PkuTg";
VTALRM 离开 EHf\L
`'S0*kMT
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 *%5{'
2f~($}+*
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 rNDrp@A>
w3T ]H_V
TSTP 停止 /产生与内容相关的行为 9&]M**X
\wvg,j=
TTIN 停止 /产生与内容相关的行为 ca<"
/e@H^Cgo
TTOU 停止 /产生与内容相关的行为 pv)`%<
#I*QX%(H#
STOP 停止 /强迫关闭 TFQ!7'xk)
/8'S1!zc
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 1fU,5+PH
iEyeX0nm
PWR 忽略 /在某些系统中会离开 ?Bi*1V<R
z(y*hazK
WINCH 忽略 "tk-w{>
"Zv~QwC
CHLD 忽略 $A_]:qI2
%kshQ%P)?
ABRT 6 核心 Q>< 0[EPj3
#'baPqdO
FPE 8 核心 #KlCZ~s
[^YA=Khu
ILL 4 核心 8+Llx
c3%@Wj:fo
QUIT 3 核心 `{v?6:G:Q
BqK(DH^9N
SEGV 11 核心 pKG<Nvgz&
(5L-G{4
TRAP 5 核心 )FN;+"IJ
KJn!Ap
SYS 核心 /或许尚未实作
08bJCH
W!Gdf^Yy<
EMT 核心 /或许尚未实作 (.Y/
T#@lDpO
BUS 核心 /核心失败 y[};J
vk
dq;|?ESP
XCPU 核心 /核心失败 xgu `Q`~
ENVk{QE!
XFSZ 核心 /核心失败 #18 FA|
d~J-|yyT
范例: OWp%v_y]
停止所有在 PTY 装置上的程序 B5%n(,Lx
skill -KILL -v pts/* <6TT)t<h
2-*V=El
停止三个使用者 user1 , user2 , user3 uP $Cj
skill -STOP user1 user2 user3 zw<p74DH
. 5y"38e
其他相关的命令: kill ZFm`UXS
名称:expr w8Q<r.
使用权限:所有使用者 )::>q5c
### 字串长度 EI>l-N2
?tdd3ai>
shell>> expr length "this is a test" BimjQ;jtI
14 a3SlxsWW
### 数字商数 F'}'(t+oAm
shell>> expr 14 % 9 7R.Q
Ql
5 EI~"L$?
### 从位置处抓取字串 "^j>tii
shell>> expr substr "this is a test" 3 5 O) |P,?
is is _9H*agRe
### 数字串 only the first character 3chPY4~A
shell>> expr index "testforthegame" e (:V>Hjt
2 POI.]1i
### 字串真实重现 lT&wO