linux常用命令
e(?]SU| yVX8e I 称:/etc/aliases
: g6n,p_# 使用权限:系统管理者
Vi*e@IP/ 使用方式: 请用 newaliases 更新资料库
iEm ? 说明:
3Fs5RC~a sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
6*45Vf
=-"c*^$] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
W/fuKGZi_ # newaliases
B07v^!Z> L\%orLEmK 下面命令会做相同的事,
^v&D;<&R # sendmail -bi
e}hmS 1>H nXy>7H[0 相关命令:
b[I8iS kfi mail, mailq, newaliases, sendmail
%}-?bHB1c aNxAZMg ” mail [返回]
cxIk<&i~( 名称:mail
]bZ(HC?KZr *.#oxcll 使用权限:所有使用者
gNYqAUG5 bD^b 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
A9BX_9}] qIIJ4n 说明:
n/~A`%E@ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
) ZfdQ3 6eFp8bANN# 参数:
?W>qUrZ i 忽略 tty 的中断讯号。 (interrupt)
UCWV2Mu I 强迫设成互动模式。 (Interactive)
]\ !5}L v 列印出讯息,例如送信的地点、状态等等。 (verbose)
ZJPmR/OV_ n 不读入 mail.rc 设定档。
J(DN! s 邮件标题。
a2IgC25 c cc 邮件地址。
+M'
H0-[ b bcc 邮件地址。
8N&+7FK oVFnlA 范例:
WOzf]3Xcj >/[GTqi 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
,#M Cn mail
user1@email.address
#$1Z mail
user1@email.address user2
jTO),
v:w y!tC20Q 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
1 zw*/dp Gx`L ks mail -s 标题 -c user1 user2 < mail.txt
ZKHG !`X0 }\J2?Et{ 指令:mesg
V |(H|9 使用权限 : 所有使用者
^nbnbU4' T,aW8| 使用方式 : mesg [y|n]
3k#~yaoI
nt*Hc1I 说明 : 决定是否允许其他人传讯息到自己的终端机介面
DL$@?.?I [!!Q,S"
把计 ?
]a5 f2lE lXcx@#~ y : 允许讯息传到终端机介面上。
AGLscf. n : 不允许讯息传到终端机介面上 。
94B\5I} 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
CHe>OreiS yKO`rtP 例子 :
`BlI@6th 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
g+J-Zg6 mesg n
bv&;R 与 mesg 相关的指令有: talk,write,wall。
~\ J}Kqg 名称:/etc/aliases
dC RyOid$ 使用权限:系统管理者
%Dwk 使用方式: newaliases
293M\5: 说明:
tQS5hwm* sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
:j+ ZI3@ #Y$hNQQ$F /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
\otWd Oil?JI Hq 参数:没有任何参数。 范例:
U&?v:&c#&n # newaliases
@3zg=?3 [eC2"&} 下面命令会做相同的事,
?#fu.YE\ # sendmail -bi
HSc~*Q xL\0B,] 相关命令:
3f,hw5R mail, mailq, newaliases, sendmail
0tXS3+@n= 名称 : talk
lhqg$lb 使用权限 : 所有使用者
9b9$GyI !O<)\)|g 使用方式 :
!qWH`[: x^y'P<ypw talk person [ttyname]
c-(UhN3WG 说明 : 与其他使用者对谈
sVOyT*GY S[J}UpV 把计 :
B!?%O person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name $42{HFGq ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
T( U_ #T'{ n1AI 例子.1 :
$w`=z<2yo1 G;l_|8<t#\ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
67Th;h*sh talk Rollaend
w|K'M?N14 ZZzMO6US0 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
KV0]m^@x M 0U0;QJ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
#Up86(Z talk
Rollaend@linuxfab.cx pts/2
H _zo1AW 6\q]rfQ mc? Vq 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
J;8IY= lww!-(<ww 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
HMh"}I2n
/} b03 名称 : wall
+ |n*b 使用权限 : 所有使用者
BHU6t<G
gc-@"wI? 使用方式 :
w"Gm; B4 wall [ message ]
(ROY?5
@c 使用说明:
_x(o*v[Pt wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
kuszb~`zPY BBwy,\o# 例子 :
*zbNd:i9 Krqtf 传讯息"hi" 给每一个使用者 :
W{6|tx) wall hi
Z`ID+ 名称 : write
(MxQ+D\ 使用权限 : 所有使用者
l5!|I:/*; s(/;U2"e 使用方式 :
FKDk +ojw N4F.Y"R$( write user [ttyname]
W$hx,VEy` 说明 : 传讯息给其他使用者
5\:^y'g[ %)zodf 把计 :
Hq:X{)" cQy2"vtU user : 预备传讯息的使用者帐号
u8&Z!p\ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
m
Bu 4i)1'{e 例子.1 :
qouhuH_WtJ ! >(7+B3E* 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
+"
.X
)avF write Rollaend
zy/@
WFPE Y!-M_v / 接下来就是将讯息打上去,结束请按 ctrl+c
^}/PGG\~r _n0CfH.v 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
xHvZV<# write Rollaend pts/2
qeV fE_< ,w<S|#W~+ 接下来就是将讯息打上去,结束请按 ctrl+c
>JHryS.j$4 @vC4[:"pD} 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
_{I3i:f9X8 4VJ-,Z 名称:kill
t<.)Z-Ii 使用权限:所有使用者
kbX8$xTM X`kk]8= 使用方式:
aH)}/n Q{s H3Y#l kill [ -s signal | -p ] [ -a ] pid ...
GZN ^k+w kill -l [ signal ]
\ub7`01 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
HJ=:8: 把计?
! ` H%qsjB^ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
^me-[
5 -p : 印出 pid , 并不送出信号
ugdQAg -l (signal) : 列出所有可用的信号名称
;#g"( 范例:
+ [iQLM?zo %a>&5V 将 pid 为 323 的行程砍掉 (kill) :
2J7:\pR^ kill -9 323
!`Fxa4i> EU2$f 将 pid 为 456 的行程重跑 (restart) :
OcR$zlgs[v kill -HUP 456
x|/|jzJSX N({MPO9 名称:nice
^cOUQ33 使用权限:所有使用者
"%`1]Fr ]R+mKUZ9 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
[owWiN4`s ^n*)7K[
说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
z`.<U{5 ],@rS9K ($q-_m 把计?
0.`/X66;V 5Yg'BkEr -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
zJq~!#pZ --help 显示求助讯息
K0u|U` --version 显示版本资讯
/ C:Y94B-z 范例:
nHM~ 将 ls 的优先序加 1 并执行 :
? ^0:3$La nice -n 1 ls
k|e7a2Wwt ]~Rho_mq# 将 ls 的优先序加 10 并执行 :
R{C(K(5/ nice ls将 ls 的优先序加 10 并执行
[T8WThs @x*c1%wg 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
HZ aV7dOZ8 Z+*9#!?J 名称:ps
}s7$7 使用权限:所有使用者
%R}qg6dL 使用方式:ps [options] [--help]
y_*
!6Xr 说明:显示瞬间行程 (process) 的动态
Eq% } 参数:
]i|h(>QWP ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
EEEh~6?-e -A 列出所有的行程
*z5.vtfu! -w 显示加宽可以显示较多的资讯
2~Kgv|09 -au 显示较详细的资讯
cVXLKO -aux 显示所有包含其他使用者的行程
{j{u6i z 9vInf@M au(x) 输出格式 :
J4k=A7^N DBo%fYst USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
M,j U}yD3 USER: 行程拥有者
~uj#4>3T PID: pid
tZ]?^_Y1 %CPU: 占用的 CPU 使用率
/MIe(,>Uh %MEM: 占用的记忆体使用率
0CZ:Bo[3 VSZ: 占用的虚拟记忆体大小
p\ Q5,eg RSS: 占用的记忆体大小
+KF^Z$I TTY: 终端的次要装置号码 (minor device number of tty)
.eS<Dbku< STAT: 该行程的状态:
'f#{{KA D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
NN%*b yK R: 正在执行中
G0CW}e@) S: 静止状态
+cJL7=V& T: 暂停执行
0.\/\V:H6 Z: 不存在但暂时无法消除
&yct!YOB2 W: 没有足够的记忆体分页可分配
MR;1
2*p <: 高优先序的行程
J!AgBF N4 N: 低优先序的行程
evya7^,F L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
(9tX5$e6N START: 行程开始时间
h&M{]E9= TIME: 执行的时间
GF"hx`zyJ COMMAND:所执行的指令
_mj,u64 范例:
`}D,5^9] ps
8Q.T g. PID TTY TIME CMD
r7RIRg_ 2791 ttyp0 00:00:00 tcsh
8^kGS-+^ 3092 ttyp0 00:00:00 ps
S50k>_a; % ps -A
^6jV_QM# PID TTY TIME CMD
l?E{YQq] 1 ? 00:00:03 init
]vz%iv_ 2 ? 00:00:00 kflushd
%2}-2}[> 3 ? 00:00:00 kpiod
](Xb_xMf 4 ? 00:00:00 kswapd
>,v`EIg 5 ? 00:00:00 mdrecoveryd
Y@NNrGDkT* .......
272q1~& % ps -aux
-zCH**y%1 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
'S20\hwt- root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
4`lLf root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
B*eC3ok3z root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
3RigzT3 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
+xRK5+}9 ........
I!ED?n 名称:pstree
2VPdw@"~} 使用权限:所有使用者
JOj;^h 使用方式:
$6#CqWhI pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
,j#XOy`mzy pstree -V
\J4L:.`qS 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
S:u:z=:r 参数:
mWv3!i;G<s -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
<S5BDk -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
gK+4C 范例:
rExnxQ<e pstree
l.(v^3:X _1!7V3|^ init-+-amd
T5|qRlW |-apmd
QpF;:YX^3 |-atd
W1WYej" |-httpd---10*[httpd]
FX;QG94! %pstree -p
q'+)t7! init(1)-+-amd(447)
3_C|z,\: |-apmd(105)
hl;u'_AB |-atd(339)
{WJ m %pstree -c
M
"ui0
ac init-+-amd
bAdn & |-apmd
M+-*QyCFK |-atd
SDL7<ZaE |-httpd-+-httpd
bs+f,j-oBN | |-httpd
)Fc%+TpKi | |-httpd
Lk|hQ
| |-httpd
e*sfPHt ....
JX<)EZ!F 名称:renice
+|*IZ:w) 使用权限:所有使用者
"x%Htq@ )z>|4@, 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
2L!u1
3Nl <p"= 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
-7SAK1c$ O8^A5,2@3> 把计?
_,kj:R. f}6s
Q5 -p pid 重新指定行程的 id 为 pid 的行程的优先序
p}jE -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
B)$| vK= -u user 重新指定行程拥有者为 user 的行程的优先序
Ig$(3p
范例:
e4-@f%5 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
u^&A W$ renice +1 987 -u daemon root -p 32
[m+2(I1 88Ey12$ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
v0ujdp,B rW<KKGsRWQ 名称:top
$Y;U[_l# 使用权限:所有使用者
?yZ+D z\ FSP+?(( 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] bw(a6qKK
LI'6R=
说明:即时显示 process 的动态 wrviR
^/uA?h:]\
把计? ``V"
D
`-.%^eIp
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s vGvf<ra;H
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 S
O4u9V
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 i3dkYevs?
s : 安全模式,将交谈式指令取消, 避免潜在的危机 F7A=GF'
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ^"2i
n : 更新的次数,完成后将会退出 top ]5mn ew
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 iM AfJ-oN
EH$1fvE
范例: tankR9(o
显示更新十次后退出 ; H=@}=aPf
top -n 10 2^Eg9y'
67VL@ ]
使用者将不能利用交谈式指令来对行程下命令 : vV6<^W:9F
top -s ? 8)'oMD
f6EZ(
v
将更新显示二次的结果输入到名称为 top.log 的档案里 : I+BHstF5um
top -n 2 -b < top.log !4]TXH0f
Z"Zmo>cV4
名称:skill g~ZvA(`
G(Lzf(
使用权限:所有使用者 |"?M 1*g
9l|@v=gw.
使用方式: skill [signal to send] [options] 选择程序的规则 * ;-*x6
%.vQU @2A
说明: jDKO}
bQ
~:0sk"t$1
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 0bz'&
;QWIsVz
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 wi;Br[d
}d&_q7L@@6
一般参数: ]|!OP
1cxrH+N
-f 快速模式/尚未完成 N+++4;
'GB.UKlR
-i 互动模式/ 每个动作将要被确认 8hXl%{6d3
,eOB(?Ku
-v 详细输出/ 列出所选择程序的资讯 `lQ3C{}
LyZ.l*h%=m
-w 智能警告讯息/ 尚未完成 ?<V?wsp
S\4tzz @
-n 没有动作/ 显示程序代号 K:!"+q
W6f/T3
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 !5.8]v
,X#2\r<|
-t 终端机代号 ( tty 或 pty ) <L`KzaA
6 2'j!"xv
-u 使用者名称 mlixIW2
?sab*$wG
-p 程序代号 ( pid ) 2#P*,
!HrKXy0{
-c 命令名称 可使用的讯号: z,Medw6[
pczug-nB
以下列出已知的讯号名称,讯号代号,功能。 4~y(`\0?4
H#@^R(
名称 (代号) 功能/ 描述 mX_a^_[G
Gnf~u[T6
ALRM 14 离开 ~kShq%
IHe/xQ@
HUP 1 离开 4NGA/
G
rQk<90Ar
INT 2 离开 OTy.VT|
e^d0zl{
KILL 9 离开/ 强迫关闭 pv*,gSS
QOjqQfmM;
PIPE 13 离开 ^=T$&gD
SNfr"2c'h~
POLL 离开 |s"nM<ZNZ
*i]=f6G
PROF 离开 }'""(,2
#OIcLEn%
TERM 15 离开 k,'L}SK
A9f)tqbc
USR1 离开 ZNf6;%oGG
WP?TX b`5
USR2 离开 |kw)KEi}H
sp#p8@Cj
VTALRM 离开 ;gBRCZ
i;NUAmx
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 f47Od-\-
OZx
W?wnd
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 mX\TD0$d
'ixwD^x
TSTP 停止 /产生与内容相关的行为 MNC*Glj=
(^@ra$.
TTIN 停止 /产生与内容相关的行为 d{XO/YQw
33#0J$j7
TTOU 停止 /产生与内容相关的行为 e<=cdze
'SCidN(n
STOP 停止 /强迫关闭 ]vgB4~4#LP
nN*w~f"
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 Fz1_w$^
9{-EJ)
PWR 忽略 /在某些系统中会离开 $UgA0]qn
GqWB{$J;"
WINCH 忽略 zN!ZyI$nqP
k%D+Y(WGz8
CHLD 忽略 *"D3E7AO
Tsgk/e9K2?
ABRT 6 核心 ]3VI|f$$
y$@ZN~8
FPE 8 核心 D[^m{ 9_
0|$v-`P$
ILL 4 核心 v'VD0+3[H
BlXB7q,
QUIT 3 核心 L%Ow#.[C2
VCn{mp*h
SEGV 11 核心 >+]_5qc
--HF8_8;'
TRAP 5 核心 L1ieaKw
!X"K=zt"
SYS 核心 /或许尚未实作 P^w#S
;\lW5ZX
EMT 核心 /或许尚未实作 h&`e) a>+
iTag+G4*
BUS 核心 /核心失败 *tgnYa[l
3E>frR\!I
XCPU 核心 /核心失败 Z$0uH* h
7qj9&bEy
XFSZ 核心 /核心失败 kMtwiB|7j
UVw~8o9s
范例: }RHn)}+
停止所有在 PTY 装置上的程序 ,!dh2xNH^
skill -KILL -v pts/*
/o[?D
]@uE#a:[
停止三个使用者 user1 , user2 , user3 A-4h
skill -STOP user1 user2 user3 mf}O-Igte
q)Fq
i
其他相关的命令: kill u>TZt]h8
名称:expr 4$*%gL;f^
使用权限:所有使用者 +m8!U=Zi
### 字串长度 {_S}H1,
\>CYC|
shell>> expr length "this is a test" 4?-.ZUT-1
14 ADpmvW f?
### 数字商数 WHjUR0NZ
shell>> expr 14 % 9 9(6I<]#
5 Td G!&:>
### 从位置处抓取字串 T}"6wywM
shell>> expr substr "this is a test" 3 5 L{(QpgHZ
is is 6xZ=^;H
### 数字串 only the first character b|+wc6
shell>> expr index "testforthegame" e (cN}Epi(D
2 G3rj`Sg^c
### 字串真实重现 P#fM:z@[
shell>> expr quote thisisatestformela Ti'}MC+0
thisisatestformela