linux常用命令
lqzt[z gN mxc)Wm<4 称:/etc/aliases
Z\&f"z?L 使用权限:系统管理者
sD|l}f 使用方式: 请用 newaliases 更新资料库
4S_ -9&z 说明:
*S$vSDJCW sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Jt~Ivn, hI[}
- /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
&2'-v@kK # newaliases
tvkdNMyX%9
-m@o\9Ic 下面命令会做相同的事,
h`[$
Bp # sendmail -bi
,75) L/3A g*
] 相关命令:
.RD<]BxJ mail, mailq, newaliases, sendmail
=c8}^3L~7 qi-XNB`b ” mail [返回]
m|*B0GW 名称:mail
_O9V"DM Rr) 5[ 使用权限:所有使用者
B2`S0 H VPLf( 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
B(Sy.n [&x9<f6 说明:
`lhw*{3A mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
AGBV7Kk G0FzXtu)q 参数:
%mI0*YRma i 忽略 tty 的中断讯号。 (interrupt)
'yo@5*x7 I 强迫设成互动模式。 (Interactive)
FX:`7c]:9 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
x*7@b8J n 不读入 mail.rc 设定档。
Q>niJ'7WF s 邮件标题。
i'tMpS3 c cc 邮件地址。
!MbzFs~ b bcc 邮件地址。
[%W'd9`> 86&M Zdv6 范例:
KK|w30\f ,Oo`*'a[o7 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
NvK9L.K mail
user1@email.address
EF/d7 mail
user1@email.address user2
{X{R] C.j+Zb1Z( 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
KE?t?p W.wPy@yi mail -s 标题 -c user1 user2 < mail.txt
$8EEtr,! @"w4R6l+* 指令:mesg
-I< >Ab 使用权限 : 所有使用者
Vk5Z[w a C@M-_Ud>Q 使用方式 : mesg [y|n]
X>(1fra4 ,67Q!/O 说明 : 决定是否允许其他人传讯息到自己的终端机介面
MK<
y$B{} ('J/Ww< 把计 ?
o3WOp80hz ChBf:`e y : 允许讯息传到终端机介面上。
woI5a ee| n : 不允许讯息传到终端机介面上 。
a ~o<>H 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
yOM/UdWq [8V;Q 例子 :
~ |G&cg 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
lg%fjBY mesg n
Vax g 与 mesg 相关的指令有: talk,write,wall。
!-I,Dh-A 名称:/etc/aliases
4.A^5J'W 使用权限:系统管理者
q^X7x_ 使用方式: newaliases
w,|@e_|J 说明:
ns[/M~_r sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
5eAZfe%H UmKE]1Yw4r /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
SmXJQ@jN 7?lz$.*Avp 参数:没有任何参数。 范例:
Bk8}K=%w # newaliases
<JPN<
Kv cXweg; 下面命令会做相同的事,
6)[moR{N1 # sendmail -bi
"1o{mvCkR 7lC$UQ x8 相关命令:
!z?
mail, mailq, newaliases, sendmail
f-U zFlU 名称 : talk
kBUkE-~ 使用权限 : 所有使用者
D?Oe";"/ lg^'/8^f 使用方式 :
r[9m-#)> v>X!/if<y talk person [ttyname]
EEe$A?a; 说明 : 与其他使用者对谈
DYX{v`>f^ Upz)iOqLi 把计 :
y4\X~5kU person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name iSfRJ:_&6 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
S!K<kn`E3 U1\EwBK8*T 例子.1 :
jaS<*_~#R ammi4k/ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
fe .=Z& talk Rollaend
5SFr
E` }G4I9Py 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
If'q8G3]- }:$cK(| 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
XG#?fr}L talk
Rollaend@linuxfab.cx pts/2
C T~6T&' \p^V~fy7rU TE`5i~R* 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
B>{%$@4 (l5p_x 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
Q0A4} %:26v 名称 : wall
(Cr
使用权限 : 所有使用者
{lK2yi <ZT
C^=3 使用方式 :
eP~bl
wall [ message ]
4Kqo>|C 使用说明:
9qX$ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
Y S3~sA WZa6*pF 例子 :
@@R Mm$ ]*dYX=6 传讯息"hi" 给每一个使用者 :
s|IBX0^@ wall hi
$S>'0mL 名称 : write
le*+(aw
使用权限 : 所有使用者
:N8n6)#1= Bzz|2/1y 使用方式 :
e'b*_Ps' lxd{T3LU write user [ttyname]
z ]f(lwo{ 说明 : 传讯息给其他使用者
#-|fdcb 1dvP2E 把计 :
o
Mz{j: Ry95a%&/s user : 预备传讯息的使用者帐号
NuOA'e+i ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
"DN,1Q
lCp _2KIe(,; 例子.1 :
f y2vAwl )\])?q61 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
NQD5=/o write Rollaend
Nu qmp7C eA N{BPN[ 接下来就是将讯息打上去,结束请按 ctrl+c
y\v#qFVOZ ~\=D@G,9 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
7U7!'xU write Rollaend pts/2
cGm3LS6]* Z/,R{Jgt" 接下来就是将讯息打上去,结束请按 ctrl+c
#91^1jyMf %P}H3;2 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
%OoH<\w
w
k A=5Kc 名称:kill
kq| !{_ 使用权限:所有使用者
HMVP71 V
u")%(ix 使用方式:
3cHYe `E|i8M3g kill [ -s signal | -p ] [ -a ] pid ...
4eWv). kill -l [ signal ]
gWgp:;Me 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
Kyx9_2 把计?
fXWy9 #M %NQ
mV_1 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
4prJ!k -p : 印出 pid , 并不送出信号
(uX?XX^ -l (signal) : 列出所有可用的信号名称
{.Qv1oOa 范例:
Bq$IBAot f?d5Ltg 将 pid 为 323 的行程砍掉 (kill) :
=]%,&Se kill -9 323
ZtZ3I?%U3 lEl.'X$ 将 pid 为 456 的行程重跑 (restart) :
|ufL s kill -HUP 456
A~xw:[zy$a =rymd3/ 名称:nice
0
s+X:*C~ 使用权限:所有使用者
uD/@d'd_4L z5gVP8*z5 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
]Ea-MeH JDf>Qg{ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
7:B/?E 3;buC|ky 4Q !A w 把计?
m 3UK`~ji \k5"&]I3 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
{9(0s| pr --help 显示求助讯息
-ED}
6E --version 显示版本资讯
(F^R9G| 范例:
dC,C[7\ 将 ls 的优先序加 1 并执行 :
5r)8MklZ nice -n 1 ls
R?u(aY)P a/uo)']B 将 ls 的优先序加 10 并执行 :
%Bw:6Y4LZ nice ls将 ls 的优先序加 10 并执行
'IY?=#xr'` \ Bj{.jL 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
&]YyV . /4O))}TX 名称:ps
GXxI=,L8F 使用权限:所有使用者
2.WI".&y= 使用方式:ps [options] [--help]
L ~'98C 说明:显示瞬间行程 (process) 的动态
WOZuFS13 参数:
%|e)s_%XE ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-E1-(TS -A 列出所有的行程
nrY)i_\ -w 显示加宽可以显示较多的资讯
CNb(\] -au 显示较详细的资讯
@'>RGaPV -aux 显示所有包含其他使用者的行程
tC|?Kl7 i.'"`pn_ au(x) 输出格式 :
U',C-56z msxt'-$M USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
6yy%_+k* USER: 行程拥有者
O:#YLmbCN PID: pid
rJGh3% %CPU: 占用的 CPU 使用率
0U~$u %MEM: 占用的记忆体使用率
4GP?t4][ VSZ: 占用的虚拟记忆体大小
sJKr%2nVV RSS: 占用的记忆体大小
V?dwTc TTY: 终端的次要装置号码 (minor device number of tty)
M~\dvJ$cH STAT: 该行程的状态:
XA<h,ONE? D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
oi|N8a2R R: 正在执行中
y5F+~z}{ S: 静止状态
KANR=G T: 暂停执行
]+Lr'HF Z: 不存在但暂时无法消除
2$Xof W: 没有足够的记忆体分页可分配
]7}!3 m <: 高优先序的行程
~-Kx^3(# N: 低优先序的行程
oc)`hg2= L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
0 aH&M4 START: 行程开始时间
nHm29{G0 TIME: 执行的时间
Hrpz4E%\Aw COMMAND:所执行的指令
V\m"Hl>VIU 范例:
+r'&6Me! ps
kf>3T@ PID TTY TIME CMD
8OZasf 2791 ttyp0 00:00:00 tcsh
Hk;;+ '- 3092 ttyp0 00:00:00 ps
W6T4Zsg % ps -A
[3bPoAr\ PID TTY TIME CMD
G+N1#0,q 1 ? 00:00:03 init
1iY4|j;ahV 2 ? 00:00:00 kflushd
iO?AY 3 ? 00:00:00 kpiod
ic`BDkNO 4 ? 00:00:00 kswapd
iXy1{=BDv 5 ? 00:00:00 mdrecoveryd
FbroI>" e .......
]fzXrN_ % ps -aux
UstUPO USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
<L8|Wz root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
('J@GTe@xj root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
27fLW&b2 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
7(]F+\A3 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
r<fcZ)jt| ........
P}~MO)*1 名称:pstree
m6[}KkW 使用权限:所有使用者
,V,mz?d^9 使用方式:
ya1
aWs~ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
*VhEl7 pstree -V
f~wON>$K 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
%B\x
%e;P 参数:
s1Acl\l-uF -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Hh Q0> -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
j~>{P=_} 范例:
^Zz^h@+ pstree
:=y5713 zEU[u7% init-+-amd
Q&.uL}R |-apmd
0zNbux_ |-atd
@\w}p E |-httpd---10*[httpd]
+ZNOvcsV %pstree -p
\1G'{#Q init(1)-+-amd(447)
u ,3B[ |-apmd(105)
y:98}gW`n |-atd(339)
AC1RP`c %pstree -c
K7`6G[RMb init-+-amd
#dae^UjM |-apmd
uKAI->" |-atd
<~5O-.G] |-httpd-+-httpd
F:q4cfL6 | |-httpd
D%]S>g5k | |-httpd
'Z~ZSu | |-httpd
is8i_FoD,n ....
`{:Nt#7
名称:renice
Ht;Rz*} 使用权限:所有使用者
GIzB1cl: Op-z"inw 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
)9"^ D 2pdeJ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
FShjUl>mV I;NW!"pU 把计?
Qz(2Iu{E] c+3`hVV -p pid 重新指定行程的 id 为 pid 的行程的优先序
QO}~"lMj -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
Q~nVbj?c2v -u user 重新指定行程拥有者为 user 的行程的优先序
':pDlUA 范例:
ns>$ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
A
.&c>{B7 renice +1 987 -u daemon root -p 32
Xd%qebK X3G593ts 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
3GF67] 2>9\o]ac4 名称:top
F}So=Jz9h 使用权限:所有使用者
\85%d0@3 neM.M)0 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] nDdY~f.B
~'lT8 n_
说明:即时显示 process 的动态 IOZw[9](+
Ztmh z_u7
把计? =!q]0#
Uap0O2n
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s _jG|kjFTc
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 buX(mj:&
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Zb=NcEPGy
s : 安全模式,将交谈式指令取消, 避免潜在的危机 -c&=3O!
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 9Of;8R
n : 更新的次数,完成后将会退出 top d[9{&YnH !
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 SX"|~Pi(
uX_#NP/2
范例: cEu_p2(7!B
显示更新十次后退出 ; C/Q20
top -n 10 yS~Y"#F!.
UUDUda
使用者将不能利用交谈式指令来对行程下命令 : g)czJ=T2
top -s \JM6zR^Ef
[T_[QU:A
将更新显示二次的结果输入到名称为 top.log 的档案里 : aeUgr!
top -n 2 -b < top.log 6d]4
%Q T
a%Q`R;W
名称:skill ;SU<T^a
?h4[yp=w
使用权限:所有使用者 %cn1d>M+I
6"G(Iq'2t3
使用方式: skill [signal to send] [options] 选择程序的规则 Y^Buz<OiG
&*OwoTgk+
说明: : ir#7/
HjA~3l7
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 E~}H,*)
M,JwoKyg
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 }PK4
KRn
P1[.[q/-e
一般参数: DGGySO6=$e
hx0 t!k(3
-f 快速模式/尚未完成 zgjgEhnvU
4A@HR
-i 互动模式/ 每个动作将要被确认 Wd7*7']
8J'5%$3u
-v 详细输出/ 列出所选择程序的资讯 u;$qJjS
N
B0b|+5WhR
-w 智能警告讯息/ 尚未完成 4ct-K)Ris
!QwB8yK@
-n 没有动作/ 显示程序代号 CbM~\6R
NOs00 H
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 u W,J5!
e*T^:2oRl
-t 终端机代号 ( tty 或 pty ) aQmS'{d?^
o(e(|k
{
-u 使用者名称 ]~]TZb
_DSDY$Ec
-p 程序代号 ( pid ) h81giY]
VgXT4gO!
-c 命令名称 可使用的讯号: .)tQ&2
xMk>r1Ud
以下列出已知的讯号名称,讯号代号,功能。 uxxk&+M
[,Rc&7p~R
名称 (代号) 功能/ 描述 1sg:8AA
wp }Q4I
ALRM 14 离开 ys[xR=nbD
]mtiIu[
HUP 1 离开 QaO9-:]eN
t+A*Ws*o
INT 2 离开 u|wl;+.
$Mg O)bH
KILL 9 离开/ 强迫关闭 h$`m0-'
I@m(}
PIPE 13 离开 G_=i#Tu[
AAfU]4u0S
POLL 离开 w%`S>+kX&
spP[S"gI
PROF 离开 &V+_b$
$&.(7F^D
TERM 15 离开 ,$t1LV;o=
g0B-<>E
USR1 离开 SVVE b6&
.^A4w;jPU
USR2 离开 dn'|~zf.
DC).p'0VL
VTALRM 离开 <[ dt2)%L>
fPTLPcPP
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 wclj9&k
k+[oYd
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 rx|
,DI
~c v|,
TSTP 停止 /产生与内容相关的行为 +vJ}'uR3P
}8 ;,2E*z
TTIN 停止 /产生与内容相关的行为 H5d@TB,`
56YqYu.
TTOU 停止 /产生与内容相关的行为 91R7Rrne
vxf09v{-
STOP 停止 /强迫关闭 ABoB=0.l
Fp?M@
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 #@YKNS[
Ge=6l0
PWR 忽略 /在某些系统中会离开 5I[:.o0
}#.OJub
WINCH 忽略 e%:vLE
9
|^Yz*r?BJ
CHLD 忽略 PSAEW.L
.I|b9$V
ABRT 6 核心 vO?sHh
Zt41f PQ
FPE 8 核心 x2fqfrr_]
19R~&E's
ILL 4 核心 ~b*|V
l-r$czY
QUIT 3 核心 ,]JIp~=nsh
4#W$5_Ny
SEGV 11 核心 L}Sb0 o.
)/!HI0TU
TRAP 5 核心 eI`%J3BxR
(5`(H.(
SYS 核心 /或许尚未实作 H;a) `R3
D
dwFKc&
EMT 核心 /或许尚未实作 *>aVU'
30w(uF
BUS 核心 /核心失败 -h|[8UG^b
|4BD
XCPU 核心 /核心失败 '%e@7Cs
)Dv;,t
XFSZ 核心 /核心失败 |2TH[J_a
j."V>p8u$
范例: KJ&I4CU]^
停止所有在 PTY 装置上的程序 j-aTpN
skill -KILL -v pts/* 4+>~Ui_#
pIrL7Pb0
停止三个使用者 user1 , user2 , user3 !+Cc^{
skill -STOP user1 user2 user3 TG?>;It&
sw1gpkX
其他相关的命令: kill &)q>Z!C-l
名称:expr ^Hf?["m^@
使用权限:所有使用者 <aFB&Fm
### 字串长度 ,
DuyPBAms
W4qT]m
shell>> expr length "this is a test" 8:I-?z;S
14
StNA(+rT
### 数字商数 &!:mL],
shell>> expr 14 % 9 u9q#L.Ij
5 U7zd7O
### 从位置处抓取字串 AVz907h8
shell>> expr substr "this is a test" 3 5 2sqH
>fen
is is (G{:O
### 数字串 only the first character dJQwb
shell>> expr index "testforthegame" e vfDX~_N
2 Iza#v0
### 字串真实重现 ,Cm1~ExJ
shell>> expr quote thisisatestformela ;)f,A)(Z
thisisatestformela