linux常用命令
=g2\CIlVU6 h544dNo& 称:/etc/aliases
Kq6qXc\x 使用权限:系统管理者
WguV{#=H 使用方式: 请用 newaliases 更新资料库
6DZ2pT: 说明:
a}D&$yz2 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
X,53c$ APuu_!ez1 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
Ph\F'xROe # newaliases
DZAH"sb \[E-: 下面命令会做相同的事,
=+Tsknq # sendmail -bi
~[;{ fiqj;GW 相关命令:
^z?=?%{ mail, mailq, newaliases, sendmail
R7t
bxC "0Y&~q[= ” mail [返回]
"GB UQ} 名称:mail
hGKdGu`0 @}{VM)Fc+ 使用权限:所有使用者
"2K|#,%N }'_ :XKLj 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
-(ER4# e)og4 说明:
% NwoU%q mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
Ug` s @3zx 参数:
Nuo<` 6mV@ i 忽略 tty 的中断讯号。 (interrupt)
Es,0'\m& I 强迫设成互动模式。 (Interactive)
%,E7vYjT% v 列印出讯息,例如送信的地点、状态等等。 (verbose)
w`38DF@K n 不读入 mail.rc 设定档。
a!{hC)d* s 邮件标题。
.=aMjrME c cc 邮件地址。
3?6 Ber y= b bcc 邮件地址。
CCwK8`% g&8 .A( 范例:
W.sD2f ,DQ
>&_DK 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
],#ZPUn mail
user1@email.address
m&{rBz0 mail
user1@email.address user2
$q=hcu IT7:QEfKU 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
PE +qYCpP9 )%1&/uN) mail -s 标题 -c user1 user2 < mail.txt
_"`/^L`Q? P:vX }V |[ 指令:mesg
zkvH=wL 使用权限 : 所有使用者
gGD]t;<u [/n'@cjNZ 使用方式 : mesg [y|n]
2fbvU LDSbd,GF 说明 : 决定是否允许其他人传讯息到自己的终端机介面
yl|R:/2V aGe \.A= 把计 ?
Pyit87h{ 2}1!WIin y : 允许讯息传到终端机介面上。
4O9tx_<JG n : 不允许讯息传到终端机介面上 。
*,_2hvlz 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
!DCVoc]pV LE Jlo%M 例子 :
/Ir 7
DZK 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
yA457'R1 mesg n
@#J H=-06 与 mesg 相关的指令有: talk,write,wall。
Y-?51g [u 名称:/etc/aliases
72%
{Wh/ 使用权限:系统管理者
~9]Vy
(L 使用方式: newaliases
1gO//fdI 说明:
j=p|'` sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
D DZTqsws qRWJ-T:!F /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
047*gn.b S:DcfR=a 参数:没有任何参数。 范例:
+ 4++Z # newaliases
d
u_O} x 7Co3P@@ 下面命令会做相同的事,
6YB-}>? # sendmail -bi
4_Tb)?L+: !G@V<'F 相关命令:
A89Y;_4y mail, mailq, newaliases, sendmail
4{uJ||! 名称 : talk
1"N/ZKF-x 使用权限 : 所有使用者
30:HRF(: hlt9x.e.A 使用方式 :
lb=2*dFJ1 h6K!|-Gq. talk person [ttyname]
k{!iDZr&f, 说明 : 与其他使用者对谈
s$e K66H GXGN;,7EV 把计 :
dICnB:SSB person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name )I^)*(} ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
zV9
= w?*'vF_2:# 例子.1 :
4"rb&$E $v2S;UB v* 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
%!1@aL]pQ talk Rollaend
]M02>=1 6uv'r;U] 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
X:iG[iU* %l0_PhAB 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
"@F*$JGT y talk
Rollaend@linuxfab.cx pts/2
OD>u$tI9 BIwgl@t!> @*AYm-k 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
B`t)rBy 0EF,uRb 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
S8rW'}XJ=H `K@5_db\ 名称 : wall
>c~9wv 使用权限 : 所有使用者
-sruxF _S[Rvb1e 使用方式 :
T(t
<Ay?c wall [ message ]
[0(
E>vm 使用说明:
qhv4R| ) wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
!M#?kKj _oYA;O 例子 :
bUEt0wRR LL6ON
} 传讯息"hi" 给每一个使用者 :
)4 VLm wall hi
[U_Q 2<H 名称 : write
yAZ.L/jyr 使用权限 : 所有使用者
8tG/VE[ W_Ws3L1;N 使用方式 :
htNL2N @p?b"?QaB write user [ttyname]
@9
qzn&A 说明 : 传讯息给其他使用者
Q7OnhGA S:"z<O 把计 :
mUe@Dud o%9Ua9|RR user : 预备传讯息的使用者帐号
k1@
A'n ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
3tx0y !kjr>:)x 例子.1 :
v>yGsJnV' kfG 65aa>_ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
[7ek;d;'t write Rollaend
h|Teh-@A5 UGezo3} 接下来就是将讯息打上去,结束请按 ctrl+c
H_xQ>~b ~Iu21Q(* 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
/I`!iK write Rollaend pts/2
-hJ>wGI 8/kx 3 接下来就是将讯息打上去,结束请按 ctrl+c
HT1dvC$COo LmT[N@>" 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
l%Fse&4\ D+@/x{wX2 名称:kill
Sj=69>m]5 使用权限:所有使用者
?Sd~u1w8K !Sr0Im0 使用方式:
d%[`=fs]|m n+A'XBHk kill [ -s signal | -p ] [ -a ] pid ...
/oixtO) kill -l [ signal ]
C$Hl`>?$ 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
(qq$y
#$ 把计?
LbmB([p wb}N-8x -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
6vp8LNSW -p : 印出 pid , 并不送出信号
UVQ a
af -l (signal) : 列出所有可用的信号名称
%RK\Hz2q3 范例:
SBYMDKZ WEY97_@ 将 pid 为 323 的行程砍掉 (kill) :
xs83S.fHg kill -9 323
!xx>
lX5 \p=W4W/ 将 pid 为 456 的行程重跑 (restart) :
_|5FrN kill -HUP 456
~_^o?NE, Yqz[sz5+m 名称:nice
}i/2XmA ) 使用权限:所有使用者
c<t3y7 qyG636i 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
e8ig[:B>+ u^4 "96aXJ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
1RUbY>K#U >stVsFdV) p'w"V6k('~ 把计?
h1UlLy8 KE)D =P -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
\i;~~;D --help 显示求助讯息
1\.zOq# --version 显示版本资讯
P.H/H04+ 范例:
/B#lju! 将 ls 的优先序加 1 并执行 :
*~lgU4 nice -n 1 ls
K
{1ZaEH Lw+1| 将 ls 的优先序加 10 并执行 :
ws=9u- nice ls将 ls 的优先序加 10 并执行
GVHfN5bTqn +68K[s,FD 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
+h vIJv ? "!_
4%z- 名称:ps
94k)a8-! 使用权限:所有使用者
'|A5a+[ 使用方式:ps [options] [--help]
xvz5\s|b 说明:显示瞬间行程 (process) 的动态
;
K
6Fe) 参数:
{ALBmSapK" ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
A%czhF -A 列出所有的行程
G]NtX4'4 -w 显示加宽可以显示较多的资讯
>7Sl(
UY- -au 显示较详细的资讯
n4_:#L? -aux 显示所有包含其他使用者的行程
'rq#q)1MT E{]|jPdr au(x) 输出格式 :
'Tan6Qa sz2SWk^& USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
r/$)c_x` USER: 行程拥有者
22|M{ PID: pid
LXfeXWw?, %CPU: 占用的 CPU 使用率
{ `|YX_HS %MEM: 占用的记忆体使用率
E<G@LT VSZ: 占用的虚拟记忆体大小
a]=vq(N'r RSS: 占用的记忆体大小
?`*-QG} TTY: 终端的次要装置号码 (minor device number of tty)
:iOHc-x STAT: 该行程的状态:
Z6/~2S@ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
X.4ZLwX= R: 正在执行中
IWR q:Gw S: 静止状态
{s^ryv_} T: 暂停执行
+(P43XO08 Z: 不存在但暂时无法消除
!DUg"o3G> W: 没有足够的记忆体分页可分配
m ?"%&| <: 高优先序的行程
/zP)2q^ N: 低优先序的行程
T _9ZI|Jx L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
/$.vHt5nt START: 行程开始时间
@ un TIME: 执行的时间
;gu>;_ COMMAND:所执行的指令
RDZh>K
PG 范例:
a4qpnr]0 ps
?;#3U5$v PID TTY TIME CMD
_(kwD^x6O{ 2791 ttyp0 00:00:00 tcsh
[
*a>{sO[ 3092 ttyp0 00:00:00 ps
96E7hp !: % ps -A
>@89k^#Vc PID TTY TIME CMD
IEr`6|X 1 ? 00:00:03 init
,4T$ 2 ? 00:00:00 kflushd
'e)ze^Jq 3 ? 00:00:00 kpiod
yc4f\0B/ 4 ? 00:00:00 kswapd
y#Sw>-zRq 5 ? 00:00:00 mdrecoveryd
V7'x?
pt .......
r~!%w(N|M % ps -aux
pmD-]0 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
gx9sBkoq5D root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
*]| JX& root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
GvtI-\h] root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
V5@[7ncVf root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
<l
s/3! ........
>W]"a3E 名称:pstree
-:p1gg& 使用权限:所有使用者
nu%Nt"~[% 使用方式:
Dt'e<d Is pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
CZ%"Pqy&1L pstree -V
SR8Kzk{ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
#2'&=?J1r 参数:
Py0i%pZ -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
)n[Mh!mn -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
j.v _ 范例:
Y'%Iat(z pstree
^F0jI5j ). [)6E)E`_e init-+-amd
@' :um |-apmd
n~i4yn= |-atd
8jGoU9 |-httpd---10*[httpd]
kc']g:*]Y %pstree -p
WK)k -A^q init(1)-+-amd(447)
Ywk[VD+. |-apmd(105)
kJpHhAn4 |-atd(339)
c(g^*8Pb %pstree -c
@O0vh$3t0 init-+-amd
Nv]/L+i |-apmd
]Tw6Fg1o> |-atd
QN a3S* |-httpd-+-httpd
g
UAPjR | |-httpd
#_sVB~sn@ | |-httpd
"EkO>M/fr | |-httpd
jy|xDQ ....
ssbyvzQ 名称:renice
MW@b;=( 使用权限:所有使用者
$,#IPoi~X =0fx6V 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
959jp85 0(f;am0y 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
s/0FSv
x >:nJTr 把计?
}'v?Qq N ^`Efpvg -p pid 重新指定行程的 id 为 pid 的行程的优先序
,lYU#Hx* -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
&L`p4AZ -u user 重新指定行程拥有者为 user 的行程的优先序
_\[JMhd} 范例:
"A`'~]/hE 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
#X_ M renice +1 987 -u daemon root -p 32
{v/6| <rmV$_ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
@<JQn^M 4DM|OL`w 名称:top
vrx3O 使用权限:所有使用者
CnA)>4E*'
o*1`, n 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] leJd){
RA67w&
说明:即时显示 process 的动态 'E8Qi'g
w.-i !Ls
把计? /UyE- "S
wIHz TL
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s %d\+(:uu/
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 A8Y~^wn
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 wf$ JuHPt
s : 安全模式,将交谈式指令取消, 避免潜在的危机 (W/UR9x)|d
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ,dMi+c`ax
n : 更新的次数,完成后将会退出 top L KR,CPz
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ,R6$SrNcd
ZWEzL$VWi
范例: )
hB*Hjh
显示更新十次后退出 ; !qve1H4d2
top -n 10 t4f\0`jN
{0{$.L
使用者将不能利用交谈式指令来对行程下命令 : rrRC5h
top -s ;H|M)z#[Z
;KN@v5`p
将更新显示二次的结果输入到名称为 top.log 的档案里 : 3_/d=ZI\
top -n 2 -b < top.log E zUjt)wF
8}@a?QS(&
名称:skill <9ph c
a8c]B/
使用权限:所有使用者 ZA@"uqa 6b
'2oBi6|X
使用方式: skill [signal to send] [options] 选择程序的规则 vLS6Gb't
zH4#\d
说明: &>t1A5
A*;h}\n
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 mq9&To!
6*
w;xf
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 _
RT}Ee}Y
[wYQP6Cyy
一般参数: mn` Ae=
HEN9D/O=
-f 快速模式/尚未完成 NebZGD2K
(Cd`~*5
-i 互动模式/ 每个动作将要被确认 ,r4af<
=Ybu_>
-v 详细输出/ 列出所选择程序的资讯 aQ\O ]gCE
-&tiM
v
-w 智能警告讯息/ 尚未完成 =p$ Wo
+R$KEGu~0Y
-n 没有动作/ 显示程序代号 Ne_>%P|I_
Jq)k?WS
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 !I&Sy]G
Xw5"JE!.
-t 终端机代号 ( tty 或 pty ) z"`?<A&u
R 5zV=N
-u 使用者名称 f;a6ux#
U5=J;[w}N
-p 程序代号 ( pid ) Ccmbdw,Z5
$<PVzW,$o
-c 命令名称 可使用的讯号: \ S R
>O=V1
以下列出已知的讯号名称,讯号代号,功能。 2[eY q1f!
THVF@@q
名称 (代号) 功能/ 描述 V"73^
*^ BE1-
ALRM 14 离开 ~qH@Kz\%
^\%%9jY
HUP 1 离开 D%v yO_k
Wd#6Y}:
INT 2 离开 o 8U2vMH
'Ud5;?{
KILL 9 离开/ 强迫关闭 U>XGJQ<NS
$4pW#4/4
PIPE 13 离开 8Qh/=Ir
+/tD$
POLL 离开 GS%Dn^l
mHy]$Z
PROF 离开 2BY:qz%:
!$HWUxM;p
TERM 15 离开 jL<.?HE
X(9Ff=0.~
USR1 离开 D![Twlll
{ar}.U
USR2 离开 wDk[)9#A
wwz<c5
VTALRM 离开 Xs/hqIXB
K(^x)w r-:
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 }2S \-
oCS NA.z
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 `shB[Lt
cae}dHG2
TSTP 停止 /产生与内容相关的行为 ~S9nLb:O{
C
Qebb:y
TTIN 停止 /产生与内容相关的行为 |%} ?*|-
j&9~OXYv
TTOU 停止 /产生与内容相关的行为 NINiX(
*?S\0a'W@
STOP 停止 /强迫关闭 #0c`"2t&M
FW4 hqgE@
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 N>_7Ltw/
ia[wVxd
PWR 忽略 /在某些系统中会离开 Hw
I s7
Gmb57z&:
WINCH 忽略 F
7=-k/k
iu .{L(m
CHLD 忽略 V*N9D>C
FYJB.lAT
ABRT 6 核心 '"EOLr\Z,
*HRRv.iQ
FPE 8 核心 S^u!/ =&
v3p..A~XZ.
ILL 4 核心 j.K yPWO
':=C2x1d|
QUIT 3 核心 t65!2G"<
\ gN) GR
SEGV 11 核心 ,F[mh
TJ<PT
TRAP 5 核心 /D q]=P
>Pu*MD;
SYS 核心 /或许尚未实作 (bw;zNW
P|?z1JUd
EMT 核心 /或许尚未实作 R[(,wY_1
H_Yy.yi
BUS 核心 /核心失败 =cQwR:):
ATU@5,9
XCPU 核心 /核心失败 1\2 m'o
]kPco4
XFSZ 核心 /核心失败 Dj|S
`C1LR,J
范例: (R,eWWF8~
停止所有在 PTY 装置上的程序 ?OSd8E+itM
skill -KILL -v pts/* ]1K
&U5p
}fA3{Ro
停止三个使用者 user1 , user2 , user3 CY:pYke=
skill -STOP user1 user2 user3 Z#Fw 1
#df43_u
其他相关的命令: kill ms$o,[
名称:expr d09GD[5
使用权限:所有使用者 \@xnC$dd/
### 字串长度 .q=X58tHu
}yw\+fc
shell>> expr length "this is a test" }8svd#S+
14 *,. {Xf
### 数字商数 KQqlM
shell>> expr 14 % 9 ?z6C8T~+
5 ^ey\ c1K
### 从位置处抓取字串 Vf@/}=X *
shell>> expr substr "this is a test" 3 5 @.0,ka,X
is is sOJ~PRA
### 数字串 only the first character |LQmdgVr$
shell>> expr index "testforthegame" e &`9lIVB,K
2 wK3}K
### 字串真实重现 B5cTzY.h-
shell>> expr quote thisisatestformela oH;Y} h
thisisatestformela