linux常用命令
q~}oU5 U3N
d\b'0 称:/etc/aliases
~2k.x*$ 使用权限:系统管理者
z0rYzn?MR 使用方式: 请用 newaliases 更新资料库
5@xR`g- 说明:
oT\K P sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Ga5s9wC cjL)M=pIS /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
a_c(7bQ # newaliases
pL,XHR@Iv NWn*_@7; 下面命令会做相同的事,
QQW}.>N # sendmail -bi
:6(\: )G)6D"5,+G 相关命令:
RyK~"CWT mail, mailq, newaliases, sendmail
|p/*OFC6 /p<9C? ” mail [返回]
`o#(YEu 名称:mail
inU5eronuj
x\Q}fk?{t 使用权限:所有使用者
=p4n@C ]t)N3n6Bc 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
9>4 #I3 lC#wh2B6 说明:
Q!q6R^5!K mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
d'W2I*Zc< F9eEQ{L 参数:
4"@;.C"" i 忽略 tty 的中断讯号。 (interrupt)
?7NSp2aq2A I 强迫设成互动模式。 (Interactive)
UK,bfLPt~ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
?L0;,
\-t n 不读入 mail.rc 设定档。
-u@ ^P7 s 邮件标题。
, mz;$z6i c cc 邮件地址。
}OEL] 5 b bcc 邮件地址。
i!2k f FQ4R>@@5 范例:
26/<\{q~ e$s&B!qJ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
XnP?hw% mail
user1@email.address
Z5v_- +K mail
user1@email.address user2
r\"R?P$y| b[:,p?:@ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
iz=cjmV? '/<\X{l8 mail -s 标题 -c user1 user2 < mail.txt
"a2|WKpD 4vbGXb}! 指令:mesg
lO cFF0' 使用权限 : 所有使用者
8?82 p HK :K~h 使用方式 : mesg [y|n]
lPR^~&/ KS8@A/f 说明 : 决定是否允许其他人传讯息到自己的终端机介面
kKlNhP( OvT[JpV 把计 ?
9.(|ri ,+df=>$W y : 允许讯息传到终端机介面上。
t|'%0 W n : 不允许讯息传到终端机介面上 。
hk=[v7 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
[KBa=3>{ 8;pY-j
# 例子 :
aUNA`
L 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
G4c@v1#%. mesg n
*KNfPh#wi} 与 mesg 相关的指令有: talk,write,wall。
/%;J1{O 名称:/etc/aliases
BeFyx"NBg 使用权限:系统管理者
bhpaC8| 使用方式: newaliases
^S`hKv&87 说明:
ZY8.p sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
f5F-h0HF`[ bz>\n"' /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
K W&muD HsTY* ^V 参数:没有任何参数。 范例:
R=.?el # newaliases
GcN}I=4| Lx>[`QT 下面命令会做相同的事,
+-qk\sQ # sendmail -bi
'GezIIaH Jd/d\P 相关命令:
$B?8\>_? mail, mailq, newaliases, sendmail
Ee MKo 名称 : talk
a0)w/A& 使用权限 : 所有使用者
3!F^vZ. zwC ,,U 使用方式 :
5{(4% .+S%hT,v6i talk person [ttyname]
sxr,]@ 说明 : 与其他使用者对谈
K3\a~_0 +%TgX&a 把计 :
_'w:Sx?d7 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name cEa8l~GC< ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Fy\q>(v. n@tt.n!{l 例子.1 :
xGyl7$J *bo| F%NAz 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
+pgHCzwJE talk Rollaend
^[SW07o~ aPlEM_escS 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
!2Ompcr1 1\,k^Je7 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
H0&wn#);6R talk
Rollaend@linuxfab.cx pts/2
*~GI-h MJX4;nbl (hOD 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
QlvP[Jtr BPv+gx(>k 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
Q&PWW#D @+t|Aa^g 名称 : wall
>{{ds-- 使用权限 : 所有使用者
t0fgG/f' @D-I@Cyl 使用方式 :
7WH'GoBh wall [ message ]
'qEw]l 使用说明:
Z":m(}u O wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
Vaf, syLdm3d| 例子 :
<gi~:%T :Ni#XZ{F-/ 传讯息"hi" 给每一个使用者 :
cQ<|Of wall hi
9Vq 名称 : write
;UXV!8SM 使用权限 : 所有使用者
h8O\sKn u(3 uZ: 使用方式 :
@{RhO|UR Y$XzZ>VW write user [ttyname]
68GH$ji 说明 : 传讯息给其他使用者
JAKs [@: 3mofp`e 把计 :
nygGI_[l HD#>K 7 user : 预备传讯息的使用者帐号
;39a` ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
zd 2_k 9 0kCo0{+n 例子.1 :
c;/vzIJj VF11eZ" 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
:0(^^6Q\ write Rollaend
7L/LlO/ }l+_KA 接下来就是将讯息打上去,结束请按 ctrl+c
|LJv* @TW:6v` 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
v&G9HiH write Rollaend pts/2
,&3+w~Ua Y(`Bc8h 接下来就是将讯息打上去,结束请按 ctrl+c
*YH!L{y ):4)8@]5M 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
x`+M#A()/ 5"40{3 名称:kill
\nP79F0%2 使用权限:所有使用者
o=94H7@ (rJ-S"^u 使用方式:
3}g>/F~ 6d8)] kill [ -s signal | -p ] [ -a ] pid ...
L"vk ^>E6 kill -l [ signal ]
6 Q7MAP M 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
z-K};l9y 把计?
`L$Av9X\ QZ(O2!Mg -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
~sn3_6{ -p : 印出 pid , 并不送出信号
?s>_^xfD -l (signal) : 列出所有可用的信号名称
QqF*SaO> 范例:
zqU$V~5;rG }\H. G 将 pid 为 323 的行程砍掉 (kill) :
jtfC3E,U kill -9 323
^m D$# FZU1WBNL%t 将 pid 为 456 的行程重跑 (restart) :
X&aQR[X kill -HUP 456
FTEC=j$ln /g*_dH)= 名称:nice
Ux?G:LLz 使用权限:所有使用者
^F?B_' x&u@!# d] 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
o$->|k ik?IC$*n3i 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
^y ', l Ow1+zltgj- "i&n;8?Y 把计?
K)l*$h&- D`Vb3aNB=L -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
#p;<X|Hc}8 --help 显示求助讯息
2=fLb7 --version 显示版本资讯
7}\AhQ, S 范例:
[-#1;!k 将 ls 的优先序加 1 并执行 :
OY|9V nice -n 1 ls
)40YA\V IeChz d 将 ls 的优先序加 10 并执行 :
,1|=_M31 nice ls将 ls 的优先序加 10 并执行
i)cG n&]J-^Tx 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
Z>w@3$\z &q4~WRnzJk 名称:ps
H/W&a2R^P 使用权限:所有使用者
~FI} [6Dd 使用方式:ps [options] [--help]
cuG;1,?b 说明:显示瞬间行程 (process) 的动态
S+6YD0 参数:
0V8G9Gj ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Q$'\_zV -A 列出所有的行程
?vD<_5K;I -w 显示加宽可以显示较多的资讯
d_:tiHw$ -au 显示较详细的资讯
4E!Pxjl 3a -aux 显示所有包含其他使用者的行程
gBI?dw N0D5N(kH% au(x) 输出格式 :
+N B5Fd4 k-*k'S_ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
A ?~4Pe USER: 行程拥有者
*WzPxQ_ PID: pid
z-0
N/?x1 %CPU: 占用的 CPU 使用率
t':*~b{V@7 %MEM: 占用的记忆体使用率
70*yx?T V VSZ: 占用的虚拟记忆体大小
&SZAe/3+ RSS: 占用的记忆体大小
"lA$;\& TTY: 终端的次要装置号码 (minor device number of tty)
`ALQSo~l STAT: 该行程的状态:
u0+<[Ia'q D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
)('{q}JxV R: 正在执行中
Nt<Ac&6
s S: 静止状态
WpI5C,3Z!l T: 暂停执行
WV|9d}5 Z: 不存在但暂时无法消除
YE"MtL { W: 没有足够的记忆体分页可分配
c7?|Tipc <: 高优先序的行程
RvVF^~u N: 低优先序的行程
@*T8> L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
3e;K5qSeo/ START: 行程开始时间
(|6!pQ7 TIME: 执行的时间
7S&O{Q7) COMMAND:所执行的指令
v"sU87+ 范例:
MS|1Q@S9 ps
;''S}; PID TTY TIME CMD
\FO
4A 2791 ttyp0 00:00:00 tcsh
}?GeU
Xhy 3092 ttyp0 00:00:00 ps
2qj0iRH#N< % ps -A
0j#$Swa PID TTY TIME CMD
xr)m8H 1 ? 00:00:03 init
'HvW&~i( 2 ? 00:00:00 kflushd
ER]C;DYX 3 ? 00:00:00 kpiod
ocp3J R_0 4 ? 00:00:00 kswapd
|@>Zc5MY$ 5 ? 00:00:00 mdrecoveryd
MhFj>t
.......
qP%[nY % ps -aux
T5-'|+ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
[nsTO5G$u root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
giddM2' root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
OJcI0(G root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
g;3<oI/P root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
&19z|Id ........
ON_GD" 名称:pstree
]=0D~3o3 使用权限:所有使用者
X.)1>zk 使用方式:
#>$w9}gFi pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
| qf8y pstree -V
C\[g>_J 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
Q},uM_"+ 参数:
f V/ -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
rlDJHR6 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
UB;~Rf( . 范例:
q*>|EJR^Rw pstree
A56aOI= xaSiG init-+-amd
E[_-s |-apmd
N
aiZU |-atd
o648
xUP |-httpd---10*[httpd]
l>>,~ %pstree -p
@2$iFZq~ init(1)-+-amd(447)
j7&0ckN&G |-apmd(105)
MdNV3:[ \ |-atd(339)
oxqD/fY %pstree -c
dG]s_lb9H init-+-amd
kmL~H1qd |-apmd
+Mh 9Jf |-atd
Tq.%_/@M< |-httpd-+-httpd
u"r1RG' | |-httpd
_{?/4ZhA\+ | |-httpd
o{QPW | |-httpd
!}uev ....
;,_c1x/F 名称:renice
?jBh=X\]: 使用权限:所有使用者
POUD*(DqNK ^Ul*Nm
使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
t3$+;K( ~{O@tt)F 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
=gr3a,2 {~d8_%:b 把计?
}NJ? .Y ~dqEUu!C -p pid 重新指定行程的 id 为 pid 的行程的优先序
*(@[E -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
rU1{a" { -u user 重新指定行程拥有者为 user 的行程的优先序
$y*["~TJ 范例:
5/{gY{ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
=l9H]`T/ renice +1 987 -u daemon root -p 32
=}AwA5G A|U_$!cLZ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
D3%`vqu& vo DTU]pf 名称:top
'roZ:NE 使用权限:所有使用者
x-{awP *[_>d.i 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] AU
+2'
nM)H2'%kL&
说明:即时显示 process 的动态 [P_1a`b
@oL<Ioh
把计? vl}uHdeP9
pn~$u
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s \uV;UH7qe
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 FPPGf!Eq
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 nMHs5'_y
s : 安全模式,将交谈式指令取消, 避免潜在的危机 $.@)4Nu!_
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 jlZW!$Iq
n : 更新的次数,完成后将会退出 top Ot}
E
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 sj @'C@oK
V<!E9/4rS
范例: /\9X0a2h|E
显示更新十次后退出 ; BqKh&m
top -n 10 zZ=.riK
:xT=uE.I
使用者将不能利用交谈式指令来对行程下命令 : Ls^$E
top -s =2eG j'}
ou@ P#:<B
将更新显示二次的结果输入到名称为 top.log 的档案里 : o5FBqt
top -n 2 -b < top.log ^25[%aJI
?qQRA|n*
名称:skill Y<S,Xr;J:
@kLpK
使用权限:所有使用者 ?9801Da#/
`jb?6;15
使用方式: skill [signal to send] [options] 选择程序的规则 |EaEdA@T
=e,2/Ep{i
说明: 8Mq]
V
v
U:`g12
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 `?VB)
oY{r83h{
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 h&vq}
|f~p3KCfV
一般参数: 'I_\ELb_
{^bs
}($J
-f 快速模式/尚未完成 +'x`rk
H{P"$zj`l
-i 互动模式/ 每个动作将要被确认 M+ gYKPP
'qhA4W9
-v 详细输出/ 列出所选择程序的资讯 }cE,&n
/tf}8d
-w 智能警告讯息/ 尚未完成 *r+i=i8{
V4!RUqK
-n 没有动作/ 显示程序代号 fD<3Tl8U0
}IGr%C(3%
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 RCq_FY
KutR l$,
-t 终端机代号 ( tty 或 pty ) ;Q2p~-0Q
wYS,|=y
-u 使用者名称 QO)Q%K,
16YJQ ue
-p 程序代号 ( pid ) $N=A, S
.Tdl'y:..
-c 命令名称 可使用的讯号: y@G5I>v
,bCPO`45
以下列出已知的讯号名称,讯号代号,功能。 (yAQm pp
t\]CdH`+
名称 (代号) 功能/ 描述 -C5Qh&~W
SD6xi\8
ALRM 14 离开 CV4r31w
_~DFZt@T
HUP 1 离开 y?M99Vo4?
928szUo:
INT 2 离开 M#d_kDMw
R/iw#.Yy
KILL 9 离开/ 强迫关闭 `W8GfbL
=1%3".
"n@
PIPE 13 离开 l\*}
1HBch]J
POLL 离开 |_%|
xUzSS@ot^
PROF 离开 kO\(6f2|x
JF_\A)<ki
TERM 15 离开 LeY\{w
Fp06a!7<
USR1 离开 >b |l6#%
yKa}U!$
USR2 离开 lBL;aTzo
^Yn{Vi2.
VTALRM 离开 e4ajT
h.g11xa
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 9QI\[lT&
?jBna
~
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体
~-6Kl3Y
A[!Fg0X0
TSTP 停止 /产生与内容相关的行为
7+j@0v\
t@!X1?`w
TTIN 停止 /产生与内容相关的行为 ,l`q
Sz"J-3b^
TTOU 停止 /产生与内容相关的行为 TjlKy
e0*',
STOP 停止 /强迫关闭 ZV_Z)<
h&5H`CR[
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 JMOQDo
g{f1JTJ7
PWR 忽略 /在某些系统中会离开 \A5cM\-
VD+8j29
WINCH 忽略 6,0pkx&Nv
oyJ/Oe
{
CHLD 忽略 :j
vx-jQ
?ae:9ZcH
ABRT 6 核心 2:/'
M&y!w
FPE 8 核心 #=b_!~:%
(( Ec:(:c
ILL 4 核心 _4rb7"b1
L;5jhVy
QUIT 3 核心 co<){5zOT
7vcYI#(2
Y
SEGV 11 核心 JHc|.2Oe
@k,u xe-
TRAP 5 核心 Z%XBuq:BY
Nd#t !=
SYS 核心 /或许尚未实作 us4.-L
X
c,UR.
EMT 核心 /或许尚未实作 ^Q4w<sX'
||}|=Sz
BUS 核心 /核心失败 <Ky\ ^
s+tS4E?
XCPU 核心 /核心失败 C%"h1zWE:
o~gduNG#
XFSZ 核心 /核心失败 rr*",a"}m
/[GOs*{zB
范例: f3V&i)w(
停止所有在 PTY 装置上的程序 sxO_K^eD
skill -KILL -v pts/* r NqJL_!
nV
McHN
停止三个使用者 user1 , user2 , user3 HQaKG4Z
skill -STOP user1 user2 user3 C1|e1
#'^p-Jdm
其他相关的命令: kill IL}pVa00{n
名称:expr /,/T{V[
使用权限:所有使用者 @o44b!i
### 字串长度 r1-?mMSU&
omECes)
shell>> expr length "this is a test" /pFg<
14 2#*Bw=
### 数字商数 g84~d(\?
shell>> expr 14 % 9 BYVp~!u
5 <jw`"L[D
### 从位置处抓取字串 }o=R7n%
shell>> expr substr "this is a test" 3 5 zScV 9,H1
is is X&^t 8
### 数字串 only the first character \ H<'W"
shell>> expr index "testforthegame" e eOD;@4lR
2 }9:\#
### 字串真实重现 }&rf'E9
shell>> expr quote thisisatestformela fbwo2qe@K
thisisatestformela