linux常用命令
[+FiD <<
=cZ.HP 称:/etc/aliases
7 Td
9mkO 使用权限:系统管理者
Wpf~Ji6|| 使用方式: 请用 newaliases 更新资料库
.S:(O+#Gm 说明:
In4VS:dD sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
-pJ\_u/&%` @V>]95RX /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
!{,2uQXe # newaliases
.hckZx / st??CX2 下面命令会做相同的事,
4Kt0}W # sendmail -bi
$<nD-4p ,#N}Ni: 相关命令:
S?Cd,WxT mail, mailq, newaliases, sendmail
PkFG0 0v EQgx> ” mail [返回]
qJ5b;= 名称:mail
?Xpk"N7 2iKteJ@h) 使用权限:所有使用者
.Ao
_cx Wlg 1t~1= 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
V.8Vy1 $ CE{2\0Q 说明:
K:e[#b8:R mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
L_T+KaQCH ){mqo%{SO 参数:
DI(X B6 i 忽略 tty 的中断讯号。 (interrupt)
x _kT
Wq I 强迫设成互动模式。 (Interactive)
|L89yjhWBs v 列印出讯息,例如送信的地点、状态等等。 (verbose)
HjzAFXRG n 不读入 mail.rc 设定档。
@r<2]RXlc s 邮件标题。
d lAb`ne c cc 邮件地址。
^fN/ b bcc 邮件地址。
N
G vb] tSni[,4Kq 范例:
.5>]DZn6 >KQ/ c 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
oR%cG"y mail
user1@email.address
vH}VieU mail
user1@email.address user2
!r6Yq,3 IRR b^Q6 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
daCkjDGl\ IR3+BDE)> mail -s 标题 -c user1 user2 < mail.txt
/F^
Jn_ [xb'73 指令:mesg
'Hj([N 使用权限 : 所有使用者
t(vyi 'Sgz\=K 使用方式 : mesg [y|n]
^N^s|c' J@i9)D_ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
9*~";{O.Oa A:4&XRYZY 把计 ?
&*8.%qe; yXIJeo" y : 允许讯息传到终端机介面上。
mQt0?c _ n : 不允许讯息传到终端机介面上 。
74NL)|M 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
[uJS.`b N/#x 例子 :
KbciRRf!k 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Id8MXdV mesg n
F(/Ka@
与 mesg 相关的指令有: talk,write,wall。
.i )n1 名称:/etc/aliases
JoG(Nk] 使用权限:系统管理者
FWp ?l 使用方式: newaliases
}4piZ
ch 说明:
OrL4G
`O sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
KR R)pT 7/KK}\NE /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
gw">xt5 *q\>DE=7 参数:没有任何参数。 范例:
'ahZ*@kr # newaliases
RZVZ#q(DU > Xij+tt{ 下面命令会做相同的事,
`WMU'ezF # sendmail -bi
MOytxl:R #RyTa
/L 相关命令:
BaUuDo/ZO mail, mailq, newaliases, sendmail
x&JD~,Y 名称 : talk
hhWy-fP#
使用权限 : 所有使用者
B7Zi|-F 3A =\Mb 使用方式 :
XL; WU8> 5-H"{29 talk person [ttyname]
6Hy_7\$(- 说明 : 与其他使用者对谈
CQmozh- 8N |K 把计 :
VMo:pV person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name xDPR^xY ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Hj `\Fm*A '6g-]rE[ 例子.1 :
{,(iL8,^ w /PE )xA 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
(!efaj talk Rollaend
>Y\?v-^~; {61Y; 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
f;OB"p v>mK~0.$ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
Ek_<2!%X talk
Rollaend@linuxfab.cx pts/2
WCk. K o9C#5%9 " j_cI-@6 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
1D!MXYgm1b 6]?W&r|0I 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
^B}q@/KV e^x%d[sU 名称 : wall
k=d0%}
`M( 使用权限 : 所有使用者
$Xu/P5 O'@[f{ 使用方式 :
XWNo)#_3 wall [ message ]
cF EO} 使用说明:
}J-e:FUF# wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
8^_e>q*W /?b{*<TK 例子 :
\P"Ol\@ ~6O~Fth 传讯息"hi" 给每一个使用者 :
p*T[(\8{n wall hi
=}I=s@ 名称 : write
Eht8~"fj 使用权限 : 所有使用者
q\gbjci H;q[$EUNb 使用方式 :
CvEIcm=t ,!PV0(F( write user [ttyname]
m6}_kzFz 说明 : 传讯息给其他使用者
i\DU<lD5VN Lp4F1H2t- 把计 :
gNDMJ^` lF40n4} user : 预备传讯息的使用者帐号
Oz&*A/si+3 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
WIAukM8~ nZ#u#V 例子.1 :
7[K3kUm[ -okq=9 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
jP2#w{xq write Rollaend
5j0 Ib>\ a<E9@ 接下来就是将讯息打上去,结束请按 ctrl+c
1A#/70Mo vM$hCV~N 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
\I<R.49oW write Rollaend pts/2
vfXNN F o-AF_N 接下来就是将讯息打上去,结束请按 ctrl+c
e{XzUY6 c^puz2 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
v9KsE2Ei _% \% 名称:kill
O,vC:av 使用权限:所有使用者
iC>%P&|-)| .=d40m 使用方式:
"!eq~/nk -xN/H,xok kill [ -s signal | -p ] [ -a ] pid ...
qHo Hh kill -l [ signal ]
$e,r>tgD 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
hn/yX|4c( 把计?
oe3=QE
]w$cqUhM -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
ylS6D -p : 印出 pid , 并不送出信号
TXf60{:f -l (signal) : 列出所有可用的信号名称
o1*P|.`
范例:
D@ !r?E` G K3T w 将 pid 为 323 的行程砍掉 (kill) :
[kckE-y kill -9 323
x(4"!# D`'Cnt/ 将 pid 为 456 的行程重跑 (restart) :
)`ixT) kill -HUP 456
'iOaj0f ._<,
Eodv 名称:nice
SXO.|"M 使用权限:所有使用者
ue@W@pj #Q-#7|0& 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
1wdc4> '$'a .q1q9 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
j(K)CHH | WTWj 8t)gfSG 把计?
nD]MgT .}Ys+d1b9c -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
B*Om\I --help 显示求助讯息
?E}gm> --version 显示版本资讯
jAv3qMQA 范例:
iVf7;M8O 将 ls 的优先序加 1 并执行 :
G`Z<a nice -n 1 ls
,=c(P9}^ ?,+&NX3m 将 ls 的优先序加 10 并执行 :
o2hZ=+w> nice ls将 ls 的优先序加 10 并执行
Doq}UWp mh`uvqY 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
SD:`l<l AkdO:hVtG 名称:ps
@uN+]e+3 使用权限:所有使用者
6BEpnw>p( 使用方式:ps [options] [--help]
KsK]y,^Z 说明:显示瞬间行程 (process) 的动态
;T8(byH ? 参数:
R#8cOmZ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
suW|hh1/Ya -A 列出所有的行程
~ qaT
jSP -w 显示加宽可以显示较多的资讯
wJp1Fl~ -au 显示较详细的资讯
G51-CLM, -aux 显示所有包含其他使用者的行程
LHu kumo%TXB& au(x) 输出格式 :
o:"(\$ 9^`cVjD5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
BafNFPc USER: 行程拥有者
iQT0%WaHl PID: pid
DHuvHK0# %CPU: 占用的 CPU 使用率
quC$<Y %MEM: 占用的记忆体使用率
XP:fL
NpQ VSZ: 占用的虚拟记忆体大小
j6$@vA) RSS: 占用的记忆体大小
8 4reyA TTY: 终端的次要装置号码 (minor device number of tty)
skTaIGRL STAT: 该行程的状态:
n9k D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
pR=R{=}wV R: 正在执行中
!$ii*} S: 静止状态
m\/) m]wR T: 暂停执行
d#$Pf=} Z: 不存在但暂时无法消除
!Fxn1Z, W: 没有足够的记忆体分页可分配
8t, &dq <: 高优先序的行程
1>Vq<z N: 低优先序的行程
u^c/1H:6 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
3O1Lv2)_ START: 行程开始时间
`d4xX@
TIME: 执行的时间
{hN<Ot COMMAND:所执行的指令
NZADHO@0 范例:
8g-Z~~0W1 ps
?"<m {,yQI PID TTY TIME CMD
@qjN>PH~ 2791 ttyp0 00:00:00 tcsh
9 BU#THDm 3092 ttyp0 00:00:00 ps
@JLN3 % ps -A
lcy+2)+ PID TTY TIME CMD
? u".*!% 1 ? 00:00:03 init
h6<i,1gQ1 2 ? 00:00:00 kflushd
y;4g>ma0 3 ? 00:00:00 kpiod
?p 4iXHE 4 ? 00:00:00 kswapd
bj 8pqw|; 5 ? 00:00:00 mdrecoveryd
*=v%($~PK6 .......
|M
t2 % ps -aux
f<nK; USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Y8IC4:EO root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
a.JjbFL root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
f\q5{#"z root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
!O}e)t root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
Vkd_&z7 ........
=A{'57yP 名称:pstree
"AKr;|m 使用权限:所有使用者
Q8QB{*4 使用方式:
ht>/7.p] pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
(JnEso-V pstree -V
OT=1doDp
说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
M6qNh`+HO 参数:
6GVAR -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
j%Z5[{!/,X -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
(vzYgU, 范例:
k{b|w') pstree
x5pu+-h #Z
`Tk)u/ init-+-amd
3vAP&i'I |-apmd
S% Ky+0 |-atd
1=sL[I 7< |-httpd---10*[httpd]
/38I(0 %pstree -p
_1Ne+"V init(1)-+-amd(447)
&(Hw:W9 |-apmd(105)
XkoPN]0n |-atd(339)
'W54 T %pstree -c
,WnZ^R/n init-+-amd
fl9VokAT |-apmd
:AqtPV'
|-atd
aUc#,t;Qd |-httpd-+-httpd
L\c3D| | |-httpd
4oryTckS | |-httpd
ePv`R'# | |-httpd
eLXL5&}`fh ....
G973n 名称:renice
yI07E "9 使用权限:所有使用者
Pec Zuv WJa7
使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
45<gO1 c'Ibgfx%m 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
-wl&~}%M +_S0 把计?
|S@ t:P]bp^# -p pid 重新指定行程的 id 为 pid 的行程的优先序
EL z5P}L6 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
gp $Rf9\ -u user 重新指定行程拥有者为 user 的行程的优先序
0YfmAF$/ B 范例:
+|pYu<OY 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
gN[t renice +1 987 -u daemon root -p 32
BBV>QL ZfVY:U:o> 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
~dLbhjden V\r{6-%XiW 名称:top
8<C@I/ 使用权限:所有使用者
6w
m-uu g=qaq
使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] Xc"
%-
B^GMncZO
说明:即时显示 process 的动态 ~EXCYUp4v
,2^A<IwR
把计? %0}}Qt
8==M{M/eM
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ?vI2mra+
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 |#yT]0L%pA
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ,mi7WW9
s : 安全模式,将交谈式指令取消, 避免潜在的危机 0_+
& [g}
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 >m<T+{`
n : 更新的次数,完成后将会退出 top /Qef[$!(
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 $ #GuV'
W_ Hoa*~
范例: CRNi*u
显示更新十次后退出 ; mQ`2c:Rn&7
top -n 10 v.>K
)%`#
=Bm|9A1
使用者将不能利用交谈式指令来对行程下命令 : !hS)W7!ik
top -s \QF0(*!!
zOFHdd ,"g
将更新显示二次的结果输入到名称为 top.log 的档案里 : 1n7'\esC*
top -n 2 -b < top.log B3?rR-2mEE
|42;171
名称:skill /'_<~A
I\c7V~^hnG
使用权限:所有使用者 2*#i/SE_
)uR_d=B&
使用方式: skill [signal to send] [options] 选择程序的规则 y^nT
G
Pi9?l>
说明: ;PU'"MeB "
vZ57
S13
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 x^pt^KR;
|_7k*:#q:
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 >#l:]T
[UC_
一般参数: WQiRbb X
}gt)cOaY
-f 快速模式/尚未完成 G{>PYLxOb
LYd:S
-i 互动模式/ 每个动作将要被确认 7I&o
'r\RN\PT
-v 详细输出/ 列出所选择程序的资讯 :g|NE\z`)/
-vY5h%7kf
-w 智能警告讯息/ 尚未完成 +S-60EN*A
%xQ'i4`
-n 没有动作/ 显示程序代号 UQ7]hX9
" Y^9g/
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 jV%=YapF
mv~?1aIKD
-t 终端机代号 ( tty 或 pty ) K\8zhY
G%>[7 ]H
-u 使用者名称 ^?sP[;8S!
.oT'(6#
-p 程序代号 ( pid ) 2QAP$f0Ln
fc<y(uX
-c 命令名称 可使用的讯号: FPF$~ sX
>qr/1mW
以下列出已知的讯号名称,讯号代号,功能。 o,c}L9nvt
N|>JLZ>
名称 (代号) 功能/ 描述 Tbv w?3
rWDD$4y
ALRM 14 离开 |K{d5\_
|j9aTv[`
HUP 1 离开 f8N*[by
WcY_w`*L
INT 2 离开 Ok{1{EmP
2fu<s^9dh
KILL 9 离开/ 强迫关闭 HQ7g0:-^a>
~I;x_0iY4
PIPE 13 离开 Ev7v,7`z
`aG_ m/7|
POLL 离开 fsw[R0B
{I$iD
PROF 离开 .|hsn6i/-
i$6rnS&C
TERM 15 离开 jn(!6\n"
8zlvzp
USR1 离开 2\z|/
Q
c(2?./\|
USR2 离开 Cojs;`3iF:
4'*.3f'bp
VTALRM 离开 W SxoGly
s2|.LmC3|B
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 _
A#lyp
_&9P&Zf4
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 &QW&K
y?O-h1"3,
TSTP 停止 /产生与内容相关的行为 %g@\SR.
m;>G]Sbe
TTIN 停止 /产生与内容相关的行为 esBv,b?*
6m(? (6+;K
TTOU 停止 /产生与内容相关的行为 vWM&4|Q1~
^--R#$X
STOP 停止 /强迫关闭 T|D^kL%m!
fpC":EX@r
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 .[1 f$
U5~aG!E
PWR 忽略 /在某些系统中会离开 ]cS(2hP7
lMu-,Z="
WINCH 忽略 r4K9W90
rXMc0SPk
CHLD 忽略 p3mZw lO
1y1:<t
ABRT 6 核心 !z4I-a
\z FCph4
FPE 8 核心 fjy\Q
>4kQ9lXL
ILL 4 核心 `5wiXsNjLY
Db*b"/]
QUIT 3 核心 $|J+
AA=rjB9
SEGV 11 核心 JeNX5bXW
26k~Z}
TRAP 5 核心 G!I5Er0pdy
+}?%w|8||s
SYS 核心 /或许尚未实作 x"RF[d
k\T]*A
EMT 核心 /或许尚未实作 8,[ *BgeX
p!=8 Pq.
BUS 核心 /核心失败 #rGCv~0*l
^lZ7% 6
XCPU 核心 /核心失败 *aWh]x9TlU
HpIi- Es7C
XFSZ 核心 /核心失败 F02TM#Zi
Vq`/]&
范例: j?]+~
停止所有在 PTY 装置上的程序 JBJ?|}5k4c
skill -KILL -v pts/* 5WRqeSGh
GBRiU&D
停止三个使用者 user1 , user2 , user3 o&@ y^<UQ
skill -STOP user1 user2 user3 |zP~/
CL7/J[TS
其他相关的命令: kill Vn{;8hZ:a
名称:expr Pp69|lxV=k
使用权限:所有使用者 LK*9`dzv=G
### 字串长度 Z`GEF|eh
W=293mME
shell>> expr length "this is a test" BCz4
s{F
14 -UzWLVB^
### 数字商数 Nb_Glf
shell>> expr 14 % 9 o~9*J)X5i
5 nFG X2|d
### 从位置处抓取字串 R_GA`U\ {
shell>> expr substr "this is a test" 3 5 W1xPK*
is is Lk#)VGk:
### 数字串 only the first character l$c/!V[3
shell>> expr index "testforthegame" e }93FWo.
2 lV4TFt,
### 字串真实重现 _:tS-Mx@5
shell>> expr quote thisisatestformela C\BKdx5;
thisisatestformela