linux常用命令
6&QTVdK'O |J Q:.h 称:/etc/aliases
;v+uv f 使用权限:系统管理者
`O=;E`ep 使用方式: 请用 newaliases 更新资料库
!J=;Z9 说明:
WQLL[{mhS sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
TJ[jZuT: 0*;9CH=BE /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
:5K~/=6x # newaliases
q&$0i CotMV^ 下面命令会做相同的事,
y [9}[NMZ # sendmail -bi
A%*DQ1N R,w54}, 相关命令:
}Q=se[(( mail, mailq, newaliases, sendmail
Zc3:9 5652'p ” mail [返回]
,q@(L 名称:mail
&/hr-5k ar
qLp| 使用权限:所有使用者
y[WYH5&DJ D
,ZNh1xt 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
#8f"}>U9., .-u k 说明:
txfwLqx mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
Pv-V7`{ lzy$.H"W 参数:
mERZ_[a2 i 忽略 tty 的中断讯号。 (interrupt)
_ K+V?-= I 强迫设成互动模式。 (Interactive)
A[ECa{v v 列印出讯息,例如送信的地点、状态等等。 (verbose)
2V2x,! n 不读入 mail.rc 设定档。
UE,~_hp s 邮件标题。
%cr]ZR c cc 邮件地址。
PDq}Tq b bcc 邮件地址。
LYy:IBI7_ T3t~=b>&L 范例:
)Kk(P/s Fma`Cm. 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
;*4tVp, mail
user1@email.address
t6%xit+ mail
user1@email.address user2
FP'u)eU&3 \eMYw7y5M 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
J ]Gc &iND&>? mail -s 标题 -c user1 user2 < mail.txt
4}8+)Pd -m'3L7: 指令:mesg
a,57`Ks+n< 使用权限 : 所有使用者
>,"D9! !!+/Wgd:6 使用方式 : mesg [y|n]
af?\kBm KG-k$glD 说明 : 决定是否允许其他人传讯息到自己的终端机介面
^8-~@01.`_ \,%o>M' 把计 ?
QVG0>,+}$ ;[OJ-|Q y : 允许讯息传到终端机介面上。
@maZlw1q n : 不允许讯息传到终端机介面上 。
p[@oF5M 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
_KM $u>B8 O^R:_vb3I 例子 :
gKs/T'PW 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Q 9gFTLQ mesg n
Gx h~ 与 mesg 相关的指令有: talk,write,wall。
4j@kMe;RjZ 名称:/etc/aliases
ySuLt@X 使用权限:系统管理者
V:F+HMBk 使用方式: newaliases
Ef_F#X0# 说明:
H7tQ# sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
93^(O8. Hc&uE3=%sL /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
S QM(8*:X *t?~)o7 参数:没有任何参数。 范例:
wKi}@|0[@ # newaliases
}KD7 Y yYG3/Z3u5 下面命令会做相同的事,
A1|7(Sow # sendmail -bi
A^4kYOe EBIa%, 相关命令:
~D-JZx mail, mailq, newaliases, sendmail
fNAo$O4cm 名称 : talk
0[2BY]`Z. 使用权限 : 所有使用者
w`.T/ X #p o|,Q 使用方式 :
G>[
NZE BS-:dyBw talk person [ttyname]
! =\DC,-CB 说明 : 与其他使用者对谈
re ]Ste _d\u!giy 把计 :
C"U[ b% person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ;*wT,2;
ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
<*A|pns n?ZL"!$ 例子.1 :
:tjgg] 409x!d~it 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
_UH/}!nqB talk Rollaend
d-ag un$ Z7W/ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
+(=0CA0GE Qc&-\kQ:$u 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
SLQ\Y%F talk
Rollaend@linuxfab.cx pts/2
Q3NPwM wr3_Bf3] xs2,t*
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
j[m_qohd7 IDGQIg 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
{z5V{M(|w3 vgh^fa!/ 名称 : wall
j.=UI-&m 使用权限 : 所有使用者
gqP-E
o273|* 使用方式 :
}@rg5$W wall [ message ]
9S:{ 使用说明:
dN]Zs9] wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
inr%XS/m (C-,ljY 例子 :
4T-,'P{? KMxNH,5 传讯息"hi" 给每一个使用者 :
6?3/Ul} wall hi
J{Y6fHFi 名称 : write
fV.A=*1l# 使用权限 : 所有使用者
^eTDD T:K" 使用方式 :
u%6Irdx Z/89&Uy`h write user [ttyname]
[K/O5_ 说明 : 传讯息给其他使用者
NCowt|#t a"0B?3*r46 把计 :
4
[R8(U[g QHHW(InG< user : 预备传讯息的使用者帐号
ZdE>C ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
a)3O? Y
sBP}n.#$ 例子.1 :
5cyddlaat ZNzR`6} 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
_'!aj+{ write Rollaend
1s{ISWm u @{E{ 接下来就是将讯息打上去,结束请按 ctrl+c
]}mly`Fw d\~p5_5. 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
:r1;}hIA9 write Rollaend pts/2
U}tl_5%) x4CtSGG85f 接下来就是将讯息打上去,结束请按 ctrl+c
*'UhlFed 0K=Qf69Y 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
5kGxhD W4)kkJ 名称:kill
0Y2\n-`z 使用权限:所有使用者
$q Zc!Qc ^=eq .(> 使用方式:
! (2-(LgA 9
9Ba{qj kill [ -s signal | -p ] [ -a ] pid ...
]]el| kill -l [ signal ]
E
S#rs=" 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
u~$WH, P3 把计?
pyUNRqp iBG`43; -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
XXa(305 -p : 印出 pid , 并不送出信号
a{<p'_ -l (signal) : 列出所有可用的信号名称
vS7/ ~:C 范例:
C>*5=p|T 6-mmi7IfO 将 pid 为 323 的行程砍掉 (kill) :
N=OS\pz kill -9 323
)>(L{y|uYX Yta1` 将 pid 为 456 的行程重跑 (restart) :
lp,\]] kill -HUP 456
RY9+ 9i Hu<p?mF# 名称:nice
BX@pt;$ek7 使用权限:所有使用者
q>^hoW2$C w-
UKMW9" 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
/h/6&R0l 1|o$X 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
T#\p%w9d (7IqY1W ykxbX 把计?
q^Z~IZ8IT +p13xc?#j -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
-G8c5b[ --help 显示求助讯息
VBu8}}Ql --version 显示版本资讯
./#e1m?. 范例:
'dkXYtKCB 将 ls 的优先序加 1 并执行 :
#2h+dk$1 nice -n 1 ls
y)6,0K {k NA+&jV 将 ls 的优先序加 10 并执行 :
XR|"dbZW.0 nice ls将 ls 的优先序加 10 并执行
sa_R$ /H u FMIY(vB 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
>Y}7[XK UQ5BH%EPb 名称:ps
C1V# ?03eI 使用权限:所有使用者
Iph3%RaE
使用方式:ps [options] [--help]
tC2N>C[N 说明:显示瞬间行程 (process) 的动态
8O;Vl 参数:
U);OR ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
4py(R-8\ -A 列出所有的行程
1 ojhh7< -w 显示加宽可以显示较多的资讯
Q4X7Iu: -au 显示较详细的资讯
Xad*Iulj -aux 显示所有包含其他使用者的行程
{] O`gG ,:^
N[b au(x) 输出格式 :
x Y| yI> \3r3{X
_<` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
IeVLn^?+: USER: 行程拥有者
B]1HS`*7 PID: pid
x"vwWJNQ %CPU: 占用的 CPU 使用率
z+jh;!i %MEM: 占用的记忆体使用率
WM/#. VSZ: 占用的虚拟记忆体大小
Mec{_jiH&D RSS: 占用的记忆体大小
-PM)EGSk{ TTY: 终端的次要装置号码 (minor device number of tty)
h}avX*Lx_ STAT: 该行程的状态:
qtHfz"p D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
eK9TAW R: 正在执行中
-n$ewV S: 静止状态
|=\91fP68` T: 暂停执行
R aefj(^V Z: 不存在但暂时无法消除
1 o|T W: 没有足够的记忆体分页可分配
X:_<Y_JT <: 高优先序的行程
N<(HPE}; N: 低优先序的行程
/KAlK5< L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
?yp0$r/ START: 行程开始时间
_ENuwBYW- TIME: 执行的时间
Yj3 P 7k$c COMMAND:所执行的指令
Te;gVG * 范例:
:lK4
db ps
ymtd>P" PID TTY TIME CMD
:7\9xH 2791 ttyp0 00:00:00 tcsh
J^fm~P>. 3092 ttyp0 00:00:00 ps
PPa^o8jd
% ps -A
3%^z ?_ PID TTY TIME CMD
^/*KNnAWp 1 ? 00:00:03 init
0qv$:w)g+v 2 ? 00:00:00 kflushd
.jU Z 3 ? 00:00:00 kpiod
ZW*n /#GUC 4 ? 00:00:00 kswapd
0 O~p7D 5 ? 00:00:00 mdrecoveryd
azo0{`S? .......
NhA#bn9y? % ps -aux
XrS\+y3 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Ziz=]D_ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
y? "@v. root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
[?KJ9~+0 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
t+Z`n(> root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
/BpxKh2p ........
1TjZ#yP%1 名称:pstree
<*u C 使用权限:所有使用者
bD<qNqX$ 使用方式:
}E; F)=E pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
S5_t1wqBJ pstree -V
wVqd$nsY" 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
K;U39ofW 参数:
?z/Vgk+9| -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
`tE^jqrke5 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
gi]ZG 范例:
EvE,Dm?h pstree
WJ+>e+ Rg* J} init-+-amd
$
[7 Vgs |-apmd
k=/eM$": |-atd
@u)
'yS |-httpd---10*[httpd]
B8m_'!;; %pstree -p
H{V)g init(1)-+-amd(447)
VXm[- |-apmd(105)
wqD5d
|-atd(339)
\iU] s\{). %pstree -c
Y)XvlfJ,h? init-+-amd
>t3'_cBC! |-apmd
g:<? |-atd
M=y0PCD |-httpd-+-httpd
}"zC
>eX& | |-httpd
59*M"1['Q | |-httpd
M)!skU | |-httpd
9vI]LfP ....
^bUxLa[. 名称:renice
*Oo &}oAj 使用权限:所有使用者
}nud 6T+ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
GK{{ 7B ~p*1:ij 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Pxhz@":[ |d7$*7TvV 把计?
}+RB=#~o LdTdQ,s< -p pid 重新指定行程的 id 为 pid 的行程的优先序
wAYB RY[ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
C+%K6/J( -u user 重新指定行程拥有者为 user 的行程的优先序
lKKERO5+ 范例:
'r+PH*Mr 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
zgKY4R{V renice +1 987 -u daemon root -p 32
v-`h>J!Nx "Xn%at4 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
9"sDm}5% 0a2@b"l 名称:top
cDV^8 R 使用权限:所有使用者
VC-;S7k (j&A",^^S 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] (/h5zCc/v
rt4Z;
说明:即时显示 process 的动态 O~@fXMthh
g4&jo_3:p
把计?
xh0 xSqDM
. L;@=Yg)
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ,EEPh>cXc
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 Qw)9r{f
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 bJ3(ckhq
s : 安全模式,将交谈式指令取消, 避免潜在的危机 #cKqnk
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 R,Oe$J<
n : 更新的次数,完成后将会退出 top {6
.o=EyM{
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 `v nJ4*
wW`}VKu
范例: A6UO0lyu
显示更新十次后退出 ; uDayBaR
top -n 10 ^O6*e]C$
[-w@.^:]X
使用者将不能利用交谈式指令来对行程下命令 : RT*5d;l0
top -s nr2r8u9r
w'ybbv{c
将更新显示二次的结果输入到名称为 top.log 的档案里 : .T.5TMiOSq
top -n 2 -b < top.log $.K?N@(W
Cg!^S(U4
名称:skill or_+2aG
c3xl9S,5
使用权限:所有使用者 H+ZSPHs
>SCGK_Cr2
使用方式: skill [signal to send] [options] 选择程序的规则 +=P@HfVfiq
1n%8j*bJq
说明: 3qMNl>>
4]XI"-M^D
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 "x*-PFT
,&]MOe4@>
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 '2^
Yw
3071:W
一般参数: #DI$Oc
/-Qv?"
-f 快速模式/尚未完成 +,flE=5]s
c^.l2Q!
-i 互动模式/ 每个动作将要被确认 Q9>U1]\
Y=B3q8l5
-v 详细输出/ 列出所选择程序的资讯 [}o~PN:sT(
'ks{D(`
-w 智能警告讯息/ 尚未完成 &__DJ''+
`
2%6V)s
-n 没有动作/ 显示程序代号 (#Mp 5C'X
($!KzxF3
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 <94G
XZph%j0o
-t 终端机代号 ( tty 或 pty ) 8^yJqAXK
)]Ti>R O7
-u 使用者名称 @Hjea1@t
pyB~M9Bp/
-p 程序代号 ( pid ) hWEnn=BW
@}LZ! y
-c 命令名称 可使用的讯号: _sMs}?^
wNQqfqZ
以下列出已知的讯号名称,讯号代号,功能。 oXY Moi
/iM$Tb5
名称 (代号) 功能/ 描述 <8o(CA\
UTk r.T+2X
ALRM 14 离开 4zc<GL3[
45+{nN[
HUP 1 离开 @h?crJ6$
&a)vdlZSE=
INT 2 离开 OkH\^
grcbH
KILL 9 离开/ 强迫关闭 p2pAvlNoF
JWHSnu!
PIPE 13 离开 r|R7-HI
;#anZC;
POLL 离开 8L{u}|{
)iLM]m
PROF 离开 D-ADv3E,
y!Cc?$]_Y
TERM 15 离开 ^^?q$1k6r*
l},NcPL`
USR1 离开 <n0{7#PDqw
hKe30#:v
USR2 离开 \C|cp|A*&
(H#M<N
VTALRM 离开 +1`t}hO
9`Q@'(m
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 IB$7`7
jj&s}_75
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 tJZc/]%`H
SS3-+<z
TSTP 停止 /产生与内容相关的行为 fC<m^%*zgA
z@h~Vb&I
TTIN 停止 /产生与内容相关的行为 s3 QEi^~
"^rNr_
TTOU 停止 /产生与内容相关的行为 wyY*:{lZ
o'=VZT9
STOP 停止 /强迫关闭 4u1KF:g
isK;mU?<
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 ~brFo2
pB01J<@m
PWR 忽略 /在某些系统中会离开 +"!aM?o
B;t=B_oK
WINCH 忽略 E_:QSy5G
]T<^{jG
CHLD 忽略 Qi=*1QAkr
.ER 98
ABRT 6 核心 N}Vn;29
?y%t}C\W
FPE 8 核心 fE;Q:# Z.
8A2z 5Aa
ILL 4 核心 ">90E^
t1i(;|8|
QUIT 3 核心 [xaisXvI4
L\ j:
SEGV 11 核心 wGLF%;rRe4
Dkw7]9Qm
TRAP 5 核心 SI-X[xf
?d-70pm
SYS 核心 /或许尚未实作 R}{GwbF_\
0i@:KYP
EMT 核心 /或许尚未实作 j6>tH"i
%_f;G+fK\p
BUS 核心 /核心失败 .9M.|
`E>vG-9
XCPU 核心 /核心失败 Ijo(^v@
5K.+CO<
XFSZ 核心 /核心失败 m_lrPY-
Pl
范例: b1^cD6sT+
停止所有在 PTY 装置上的程序 RU_L<Lpi
skill -KILL -v pts/* T9jw X:n
TQ'E5^
停止三个使用者 user1 , user2 , user3 S@}4-\
skill -STOP user1 user2 user3 r6Nm!Bq7
r"_Y3SxxL
其他相关的命令: kill 32>x^>G=>
名称:expr _l&ucA
使用权限:所有使用者 `wO}Hz
### 字串长度 9([6d.`~
nX[;^v/
shell>> expr length "this is a test" ZKdh%8C
14 Sb"2Im >
### 数字商数 &Ocu#Cb
shell>> expr 14 % 9 |C-y}iQ:6~
5 :5#
V^\3*
### 从位置处抓取字串 >BoSw&T$Q
shell>> expr substr "this is a test" 3 5 ecFi(eMD
is is ~@9zil41
### 数字串 only the first character >FFVY{F
shell>> expr index "testforthegame" e %$9bce-fcG
2 <DmTj$
### 字串真实重现 `XMM1y>V9>
shell>> expr quote thisisatestformela T.Zz;2I
thisisatestformela