linux常用命令
mex@~VK )-h{0o 称:/etc/aliases
8"A0@fNz 使用权限:系统管理者
+11 oVW 使用方式: 请用 newaliases 更新资料库
KUC%Da3 说明:
"rVM23@
tq sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Asy2jw\V D={$l'y9p /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
*?VB/yO=0 # newaliases
~6+Um_A_L c:+UC 下面命令会做相同的事,
I}m>t}QRI_ # sendmail -bi
h)aLq J4s`U/F 相关命令:
(j(9'DjP mail, mailq, newaliases, sendmail
1~j,A[&|< U ,!S1EiBs ” mail [返回]
DiZ;FHnaG? 名称:mail
@!|h!p; J%
ZM
V 使用权限:所有使用者
F5OQM?J N34bB>_ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
d[*NDMO Sy<io@df 说明:
rbs&A{i mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
uo*lW2&U ?j)#\s2 参数:
?A~=.u@[d i 忽略 tty 的中断讯号。 (interrupt)
Kzy9i/bL I 强迫设成互动模式。 (Interactive)
tK
`A_hC v 列印出讯息,例如送信的地点、状态等等。 (verbose)
ggpa!R n 不读入 mail.rc 设定档。
l@]Fzl s 邮件标题。
19RbIG/X c cc 邮件地址。
b@sq}8YD|z b bcc 邮件地址。
(`u+(M!^ .4[M-@4+] 范例:
?}S!8;d 44KWS~ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
r"p"UW9og mail
user1@email.address
o{ccO29H/ mail
user1@email.address user2
:9(w~bB9$ L(X}37 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
lQ"t#b+ P ?96; mail -s 标题 -c user1 user2 < mail.txt
Q5u3~Q'e O2fFh_\ 指令:mesg
Zu>CR_C 使用权限 : 所有使用者
bjN"H`Q f#hmMa 使用方式 : mesg [y|n]
G^SDB!/@J NE3/>5 说明 : 决定是否允许其他人传讯息到自己的终端机介面
'#~Sb8
AgB$
w4 把计 ?
<y"lL>JR %o`Cp64`Q y : 允许讯息传到终端机介面上。
#qJ6iA6{ n : 不允许讯息传到终端机介面上 。
+vPCr&40 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
=#wE*6T9 T+FlN-iy) 例子 :
;!OME*?m< 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
I*mBU^<9V mesg n
ie7TO{W 与 mesg 相关的指令有: talk,write,wall。
ej&o,gX 名称:/etc/aliases
o =F!&]+ 使用权限:系统管理者
<l>L8{-3 使用方式: newaliases
A5O; C 说明:
fSGaUBiq} sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
a)6?:nY$ }VVtv1 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
nE:Wl FY]Et=p 参数:没有任何参数。 范例:
G {a;s-OA3 # newaliases
Yi19VU|/ GB>T3l" 下面命令会做相同的事,
akwS;|SZ # sendmail -bi
h(^[WSa maV*+!\ 相关命令:
a`Q-5*\;z mail, mailq, newaliases, sendmail
9Z3Vf[n5\ 名称 : talk
t 1G2A` 使用权限 : 所有使用者
pwF])uf*{\ 8P&z@E{y 使用方式 :
:%U
lNk w2K>k/v{- talk person [ttyname]
ytV4qU82G 说明 : 与其他使用者对谈
Ev48|X6 +Lo,* 把计 :
0f;|0siTAm person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name u0$}VO5/a ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
wqyF"^It" s##XC^;p[ 例子.1 :
KnK\X>: v,US4C|^3i 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
&@qB6!^ talk Rollaend
?Uhjyi T\Jm=+]c! 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
5)gC< a
JQ_V 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
2}5@:cwR+ talk
Rollaend@linuxfab.cx pts/2
YCyh+%Q( mH'om
SCz 2V$YZSw6q 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
WTZuf9: |s!n7%|,7 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
}IKU^0M9<T =':B 名称 : wall
F_V/&OV 使用权限 : 所有使用者
mf2Qu qc6d,z/ 使用方式 :
qi8~bQ{rH wall [ message ]
BqOMg$<\[ 使用说明:
al4X} wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
kB-<17 m\K1Ex 例子 :
a%wa3N=v /qd~|[Kx: 传讯息"hi" 给每一个使用者 :
QVD^p;b wall hi
%O>_$
4q 名称 : write
AQ,%5MeqJ 使用权限 : 所有使用者
s6I/%R3 85+w\KuEY 使用方式 :
,6wGd aMR vGp`P write user [ttyname]
PxJvE*6^H 说明 : 传讯息给其他使用者
.y#>mXm>
AHLXmQl 把计 :
Lx3`.F\mG
L$ [1+* user : 预备传讯息的使用者帐号
f5.Be% ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Vv>hr+e zBqNE` 例子.1 :
Bo/i =/7% h9 +76 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
' h|d-p\`9 write Rollaend
+qyx3c+ gE6{R+sp 接下来就是将讯息打上去,结束请按 ctrl+c
S2$r 6T eak+8URo 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
=n MAw&` write Rollaend pts/2
l D]?9K29
=#vU$~a 接下来就是将讯息打上去,结束请按 ctrl+c
N gOc2I Vc
"+|^ 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
- 4S4I zHvW@A'F 名称:kill
.H5^ N\V| 使用权限:所有使用者
4HyD=6V# ,f[Oy:fr 使用方式:
0y/P h ?+vH{}j kill [ -s signal | -p ] [ -a ] pid ...
kT&GsR/ kill -l [ signal ]
?O/!pUAu 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
/Fp@j/50 把计?
+<c(;Ucl? UFr5'T -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
}/F9(m -p : 印出 pid , 并不送出信号
M V~3~h8 -l (signal) : 列出所有可用的信号名称
[S[@ Q[zP@ 范例:
VqdR Qh4Z{c@ 将 pid 为 323 的行程砍掉 (kill) :
^+9i~PjL kill -9 323
8' +I8J0l AXpyia7nU 将 pid 为 456 的行程重跑 (restart) :
P? LpI`f kill -HUP 456
.OD{^Kq2 4% 2MY\ 名称:nice
dxF)) Z 使用权限:所有使用者
2;YL+v2 Bet?]4\_ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
}zHG]k,j {OW.^UIq^ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
Ba;tEF{X 2r#W#z%vS Yfx'7gj 把计?
~
6Hi"w ?) VBkA5j -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
l~GcD --help 显示求助讯息
o1u?H4z --version 显示版本资讯
AM4
:xz 范例:
:Pi=" 将 ls 的优先序加 1 并执行 :
6>/g`%`N nice -n 1 ls
RMBPm*H UQ+!P<>w
将 ls 的优先序加 10 并执行 :
-2*Pm1\Z nice ls将 ls 的优先序加 10 并执行
qbQH1<yS< GhY MO6Q4 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
l%MIna/Tp t
x#(K#/ 名称:ps
wRj&k(?* 使用权限:所有使用者
Lz}mz-N 使用方式:ps [options] [--help]
9K_p4
mq 说明:显示瞬间行程 (process) 的动态
$jv/00:& 参数:
Cb;49;q ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
P:v|JER
-A 列出所有的行程
zgA/B{DaC; -w 显示加宽可以显示较多的资讯
of?'FrU -au 显示较详细的资讯
X?q,m4+ -aux 显示所有包含其他使用者的行程
O4Hc"v ?-9It|R au(x) 输出格式 :
0o-KjX?kP qX!P:M USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
4$jb-Aw USER: 行程拥有者
2< Q3-|/i PID: pid
Y%)@)$sK %CPU: 占用的 CPU 使用率
[V.#w|n %MEM: 占用的记忆体使用率
x8E!Ko]( VSZ: 占用的虚拟记忆体大小
^Euqy,8} RSS: 占用的记忆体大小
zX ?@[OT TTY: 终端的次要装置号码 (minor device number of tty)
:/FT>UCL STAT: 该行程的状态:
aak[U;rx D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
<LA!L R: 正在执行中
uOprA`3 S: 静止状态
zsha/:b T: 暂停执行
>TZyax<: Z: 不存在但暂时无法消除
= $awUy W: 没有足够的记忆体分页可分配
g:CMIe4 <: 高优先序的行程
e khx?rz N: 低优先序的行程
X\'+);Z L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Kq2,J&Ca3 START: 行程开始时间
^%k[YJtB=i TIME: 执行的时间
KcNh3CR COMMAND:所执行的指令
:I^I=A%Pe( 范例:
mA>u6Rlc ps
C.oC@P PID TTY TIME CMD
IJV1=/NJW 2791 ttyp0 00:00:00 tcsh
\t\ZyPxn 3092 ttyp0 00:00:00 ps
V.Ki$0> % ps -A
O%?d0K PID TTY TIME CMD
QAmb_:^"d 1 ? 00:00:03 init
Fb9!x/$tGV 2 ? 00:00:00 kflushd
l|p
\8= 3 ? 00:00:00 kpiod
Ud[Zv?tA: 4 ? 00:00:00 kswapd
l9Sx'< 5 ? 00:00:00 mdrecoveryd
$M 1/74 .......
T`.RP&2/d % ps -aux
or{X{_X7 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
%>Y86>mVz root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
Pn|*(sTl root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
beCTOmC root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
~]&,v|g& root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
rkz_h ........
V[T`I a\ 名称:pstree
UN6Du\)]d 使用权限:所有使用者
]Uee!-dZ 使用方式:
NRgNW1# pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
({_Dg43O'[ pstree -V
P(#by{s 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
1rmK#ld"=Z 参数:
Ot#O];3 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
cy-Bhk0H -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
{@8TGHKv 范例:
'8b/TL pstree
4PzCm k DoA+Bwq@ init-+-amd
9dFSppM |-apmd
Z U^dLN-N |-atd
KixS)sG |-httpd---10*[httpd]
Q-g}{mFS %pstree -p
2po>%Cp init(1)-+-amd(447)
1^4z/<ZWm |-apmd(105)
xVn"xk |-atd(339)
UfUboxT %pstree -c
#A '|O\RGP init-+-amd
U,w J8 |-apmd
s]z-d!G
|-atd
{q-<1|xj/J |-httpd-+-httpd
"Wz#<! .r | |-httpd
. w_oW mD | |-httpd
}+fMYgw | |-httpd
8I`t`C/4 ....
5 UQbd8 名称:renice
xF4>D!T%8 使用权限:所有使用者
tgP x!5U Y]SX2kk(2 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
~Yw`w2 ZFAi 9M 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
;Xw'WMb*= "+6:vhP5 把计?
W+C@(}pt `Y~EL? -p pid 重新指定行程的 id 为 pid 的行程的优先序
~K-c-Zs#z -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
`N69xAiy -u user 重新指定行程拥有者为 user 的行程的优先序
dMnJ)R 范例:
%ur_DQ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
Z`=[hu renice +1 987 -u daemon root -p 32
,r-l^I3< lj4D:>Ov 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
H8g1S MT EGZF@#N 名称:top
xA-u%Vf7@ 使用权限:所有使用者
A@kp`- JQhw>H9& 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] QKAo}1Pq
Xo{|m[,
说明:即时显示 process 的动态 Gs% cod
q@}eYQ=P|e
把计? !e}LB%zf
.1[[Y}
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s &GC`4!H
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 dvAvG.;U
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 w K_I"
s : 安全模式,将交谈式指令取消, 避免潜在的危机 "AzA|zk')"
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 LyRU2A
n : 更新的次数,完成后将会退出 top 4nfpPNt
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 d&dp#)._8
&3Q!'pJJ
范例: Z*}5M4
显示更新十次后退出 ; rl0sN5n
top -n 10 ~e,D`Lv
i9qn_/<c
使用者将不能利用交谈式指令来对行程下命令 : y3]7^+k
top -s vT#$`M<
VZ`L-P$AF
将更新显示二次的结果输入到名称为 top.log 的档案里 : OKo39 A\fu
top -n 2 -b < top.log G/2| *H
i,{'}B
名称:skill x>?jfN,e
>>**n9\q
使用权限:所有使用者 ndIf1}
3 9|4)1e
使用方式: skill [signal to send] [options] 选择程序的规则 bvf}r
,`Q7
)jh4HMvmC
说明: =,/08Cs
W3XVr&
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 |hp_<F9.
\BV$p2m5-
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 Q]Ymv:M,
0wxlsny?
一般参数: k}5Sz
]"jJgO^
-f 快速模式/尚未完成 r+}5;fQJ
8b0!eB#_Ee
-i 互动模式/ 每个动作将要被确认 !ys82
4xg7oo0iJ
-v 详细输出/ 列出所选择程序的资讯 '.sS"QdN
D5wy7`c
-w 智能警告讯息/ 尚未完成 ;\F3~rl
7fVlA "x
-n 没有动作/ 显示程序代号 |a(%a43fC
_&Hq`KJm
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 tFY;q##z
>IL[eiiPG
-t 终端机代号 ( tty 或 pty ) ,X[lC\1a
Z'P>sV
-u 使用者名称 |mSF a8G@
/kl41gx
-p 程序代号 ( pid ) q K sI}X~
\GL!x 7s1A
-c 命令名称 可使用的讯号: y#4f^J!V
a@ E+/9
以下列出已知的讯号名称,讯号代号,功能。 F__j]}?
@WV}VKm
名称 (代号) 功能/ 描述 td:GZ %
kEH(\3,l
ALRM 14 离开 h|=<I)}z
j4ARGkK5B
HUP 1 离开 qUH02"z@9
bbDl?m&bq
INT 2 离开 GOT@
ax]Pa*C}
KILL 9 离开/ 强迫关闭 WOW:$.VO^
tOJK~%'
PIPE 13 离开 i8F^ N=
Qi
3di
POLL 离开 ^x Wu7q
Vv"JN?dHi
PROF 离开 aZ[
aZU
Uxla,CCp-
TERM 15 离开 _Eus<c
82S?@%}#J
USR1 离开 FT*OF 3
,_STt)
USR2 离开 8oM]gW;J~
K%Dksx7ow
VTALRM 离开 B0_[bQoc1
%^e~;i=2
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 [0M2`x4`
4fK(<2i
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 > 3<P^-9L
,/d
R
TSTP 停止 /产生与内容相关的行为 ' }G!D
W'3&\}
TTIN 停止 /产生与内容相关的行为 <r6e23
85>WK+=
TTOU 停止 /产生与内容相关的行为 K4]42#
*h+@a
STOP 停止 /强迫关闭 Pm2T!0
Y<~Nx~w{
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 X6+2~'*t
I%.96V
PWR 忽略 /在某些系统中会离开 (8M^|z}q
8Iz-YG~%3
WINCH 忽略 + 9vd(c
:lF[k`S T
CHLD 忽略 }LXS!Ff:
aNZJs<3;'D
ABRT 6 核心 3kAmRU
?^F*M#%?
FPE 8 核心 m!{}Y]FZn
I)wjTTM5
ILL 4 核心 5|&:l8=
Jr0D:
QUIT 3 核心 Oeua<,]Z~
?vHow$
SEGV 11 核心 4>q^W $
PV_E3,RY
TRAP 5 核心 @,Je*5$o"
d>ltL`xn
SYS 核心 /或许尚未实作 %9|}H [x
p&B
c<+3e
EMT 核心 /或许尚未实作 jft%\sY
a&>Tk%
BUS 核心 /核心失败 %+PWcCmn
J.
]~J|K
XCPU 核心 /核心失败 b`x7%?Qn
P3w]PG@
XFSZ 核心 /核心失败 2C9wOO
:} r^sD
范例: q#fj?`k
停止所有在 PTY 装置上的程序 /u9Md 3q*'
skill -KILL -v pts/* X!+#1NPM
8"!Z^_y)
停止三个使用者 user1 , user2 , user3 l2v4SvbX
skill -STOP user1 user2 user3 mL\j^q,Y
;>*l?m-S@n
其他相关的命令: kill OBGA~E;%
名称:expr 3t
使用权限:所有使用者 GCN(
### 字串长度 >Ab>"!/'K
DqgYc[UGA
shell>> expr length "this is a test" yo)a_rY
14 Of)EBa<5^
### 数字商数 v 4@=>L
shell>> expr 14 % 9 1<hj3
5 VE4Z;Dr"
### 从位置处抓取字串 C4Pi6.wf
shell>> expr substr "this is a test" 3 5 # 2As-9
is is aGK =VN}r
### 数字串 only the first character Q>\y%&df
shell>> expr index "testforthegame" e HGuY-f
2 l0cws`V
### 字串真实重现 3"28=)o
shell>> expr quote thisisatestformela 5):2;h k
thisisatestformela