linux常用命令
$1.iMHb
Fp+^`;j 称:/etc/aliases
REB8_ H" 使用权限:系统管理者
?(>7v[=iT 使用方式: 请用 newaliases 更新资料库
-r]s #$ 说明:
-'3vQXj& sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
a+szA}; $&EZVZ{r /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
's@v'u3 # newaliases
[nn/a?Z4S ?c"No|@+ 下面命令会做相同的事,
a-x8LfcbF # sendmail -bi
l!Z>QE`.S 4O9HoX#-? 相关命令:
7xB#) o53 mail, mailq, newaliases, sendmail
gl:vJD T,Cq;|g5E ” mail [返回]
= t<!W 名称:mail
rIo`n2 \% !]qv 使用权限:所有使用者
u9"b,].b 'IFbD["r 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
je9[S_Z:Y _a8^AG 说明:
)NRY9\H mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
*:\-:* 1%^U=[#2` 参数:
o DPs xw i 忽略 tty 的中断讯号。 (interrupt)
X&MO} I 强迫设成互动模式。 (Interactive)
,f0cy\.? v 列印出讯息,例如送信的地点、状态等等。 (verbose)
\K`AO{ D@ n 不读入 mail.rc 设定档。
xO9,,w47 s 邮件标题。
$%`OJf*k c cc 邮件地址。
)9##mUt'} b bcc 邮件地址。
JxiLjvIq .hn{m9|U 范例:
'SYj Ehvw n7
4?W 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
muT+H(Z p} mail
user1@email.address
jr~ +}|@{ mail
user1@email.address user2
-
4' yp G~a;q+7v'$ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
*y5d&4G2 &E.0!BuqV mail -s 标题 -c user1 user2 < mail.txt
*W y0hnr;] D(Zux8l 指令:mesg
_ D1bR7 使用权限 : 所有使用者
,[,+ _A yx3M0Qo 使用方式 : mesg [y|n]
g~h`wv' "'94E,W 说明 : 决定是否允许其他人传讯息到自己的终端机介面
aWm0*W"(@ YNn,{Xi 把计 ?
ymY,*Rb hZY+dHa] y : 允许讯息传到终端机介面上。
kWjCSC>jA n : 不允许讯息传到终端机介面上 。
J
[2;&-@ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
!-2nIY! r-^Ju6w{ 例子 :
ggVB8QN{ 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
$n(?oyf mesg n
g}{Rk>k 与 mesg 相关的指令有: talk,write,wall。
bnUpH3 名称:/etc/aliases
z[0L?~$ 使用权限:系统管理者
7XT2d=)" 使用方式: newaliases
8UwL%"?YB 说明:
`O.*qs5 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
f";70}_ ,8;;#XR3 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
v[e$RH &sR{3pC} 参数:没有任何参数。 范例:
_:+W0YS # newaliases
D2E~c? V D`3}j 下面命令会做相同的事,
vpvPRwJ # sendmail -bi
aN).G1 L;Nz\sJ 相关命令:
%N|7<n<S mail, mailq, newaliases, sendmail
YgQ_P4B; 名称 : talk
} !pC}m 使用权限 : 所有使用者
$7jJV (B (+4gq6b 使用方式 :
zc'!a" )+RGXVp talk person [ttyname]
4fr/
C5M 说明 : 与其他使用者对谈
1Nx%uz 9j49#wG0"B 把计 :
$f_;>f2N person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name *hF5cM[ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
M cNj TD vs{i2!^ 例子.1 :
RxAWX?9Z ^.mQ~F 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
<6mXlK3N0 talk Rollaend
:)g=AhBF `R!0uRu 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
r,2x?Qi ;s3"j~5m) 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
<#7}'@
talk
Rollaend@linuxfab.cx pts/2
~YlbS- UB|Nx(V s y,DK@X 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
"6Nma)8 n/pM[gI 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
UN`-;! >9esZA^'; 名称 : wall
',z'.t 使用权限 : 所有使用者
&~6Z)} 1e'-rm
F 使用方式 :
xh#ef=Bw wall [ message ]
JZD27[b 使用说明:
uDafPTF wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
FGr0W|?v fH`P8?](x 例子 :
"#rlL^9v S!#7]wtbP 传讯息"hi" 给每一个使用者 :
?%JH4I2 wall hi
qK:.j 名称 : write
+@cf@}W6QC 使用权限 : 所有使用者
X@JDfn?A U2ecvq[T 使用方式 :
r1}OlVbK @=K> uyB write user [ttyname]
xRv1zHZ 说明 : 传讯息给其他使用者
{p9y{$ I=D`:u\H 把计 :
>
9JzYI^ _Eq:Qbw# user : 预备传讯息的使用者帐号
BpDf4)| ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
yh]#V"W3 X3!btxa%t 例子.1 :
bRLmJt98P lR{eO~'~V 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
#|A
@ write Rollaend
Y%^&aac Z =5oFutg` 接下来就是将讯息打上去,结束请按 ctrl+c
}dAb}0XK. Zul]ekv 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
EqUiC*u8{I write Rollaend pts/2
"%A/bv\u VaZS_qGe: 接下来就是将讯息打上去,结束请按 ctrl+c
gpHI)1i'H o8KlY?hX 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
]0ouJY ^\e:j7@z 名称:kill
$*b>c: 使用权限:所有使用者
b-M[la}1" $Z+N* w~8 使用方式:
t<|=- hAfR Hd kill [ -s signal | -p ] [ -a ] pid ...
)}~k7bb}Y kill -l [ signal ]
NX@TWBn% 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
.m;1V6 把计?
WQv~<]1JF @-kzSm -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
iq5h[ -p : 印出 pid , 并不送出信号
+m:U9K(\h -l (signal) : 列出所有可用的信号名称
!b rN)b)f 范例:
=XQ3sk6U n6O1\}YB 将 pid 为 323 的行程砍掉 (kill) :
UG
Fx kill -9 323
9D(M>'Bh L;,Nh 将 pid 为 456 的行程重跑 (restart) :
q0`Vw% kill -HUP 456
q_OIzZ@ %Q1v8l.} 名称:nice
R@=ve
%a- 使用权限:所有使用者
O*H:CW |ng[s6uf 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
9C|T/+R 9 ?MOeOV8 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
u 6la -*e$>w[.N >kz5azV0 把计?
V/"0'H\"1 6xk"bIp -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
9{70l539 --help 显示求助讯息
/-^gK^ --version 显示版本资讯
WE|L{ 范例:
fS1N(RZ1 将 ls 的优先序加 1 并执行 :
y"cK@sOo nice -n 1 ls
9s73mu`Twg Ea!}r|~]0 将 ls 的优先序加 10 并执行 :
z;#}uC nice ls将 ls 的优先序加 10 并执行
q&jZmr [53@'@26 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
+]I;C ujmW {() 名称:ps
^zsCF0 使用权限:所有使用者
`r_qvrC 使用方式:ps [options] [--help]
iBN,YPo~ 说明:显示瞬间行程 (process) 的动态
9^v|~f 参数:
"Z&qOQg%3 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
^yy\CtG -A 列出所有的行程
O4\GL -w 显示加宽可以显示较多的资讯
|rW}s+Kcr -au 显示较详细的资讯
"SLN8x49( -aux 显示所有包含其他使用者的行程
w]tv<U={ Eqp?cKrji au(x) 输出格式 :
Mr2dhSQ! Fdm7k){A USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
BxG0vJN| USER: 行程拥有者
aNn < NW PID: pid
nLto=tNUO %CPU: 占用的 CPU 使用率
gWy2$) %MEM: 占用的记忆体使用率
~K:#a$!%, VSZ: 占用的虚拟记忆体大小
]hF[f|V RSS: 占用的记忆体大小
a=p3oh?%-O TTY: 终端的次要装置号码 (minor device number of tty)
pUwx`"DrR STAT: 该行程的状态:
MA(\r D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
F=iz\O!6 R: 正在执行中
S.t+HwVodO S: 静止状态
%3fHitCikc T: 暂停执行
[NeOd77y Z: 不存在但暂时无法消除
Y&Pi`E9= W: 没有足够的记忆体分页可分配
``w,CP ? <: 高优先序的行程
C~'}RM N: 低优先序的行程
T*k
K-@.i L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Q!GB^P START: 行程开始时间
hrU.QF8 TIME: 执行的时间
;fee<7Ty COMMAND:所执行的指令
Xa[gDdbL 范例:
&1]}^/u2 ps
e`k
2g^ PID TTY TIME CMD
YXrTm[P 2791 ttyp0 00:00:00 tcsh
0x[vB5R 3092 ttyp0 00:00:00 ps
;o%r{:lng % ps -A
0RtqqNFD PID TTY TIME CMD
4K0N$9pd: 1 ? 00:00:03 init
P~ffgzP 2 ? 00:00:00 kflushd
^q
FFF3<8 3 ? 00:00:00 kpiod
[m3G%PO@Da 4 ? 00:00:00 kswapd
^:{l~~9iKp 5 ? 00:00:00 mdrecoveryd
jBI VZ!X .......
Nf-IDK % ps -aux
9y.C])(2 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tz1iabZ{ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
h(GgkTj4+ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
"* %=k%' root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
cQ*:U@ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
oIoJBn ........
?*[t'D9f- 名称:pstree
wd..{j0& 使用权限:所有使用者
9Hlu%R 使用方式:
hd/5*C{s pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
qIA!m
.GC pstree -V
f
IQ$a> 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
!?O:%QG 参数:
z[ z'.{;D -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
p*#SSR9< -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
[7|}h/ 范例:
;op+~@*! pstree
c!{.BgGN pR`.8MMc8 init-+-amd
F~W*"i+EZ |-apmd
,dzbI{@6 |-atd
<MT_zET |-httpd---10*[httpd]
-("79v># %pstree -p
Pa0tf: init(1)-+-amd(447)
jY87NHg |-apmd(105)
1ww|km |-atd(339)
&vdGKYs 6 %pstree -c
p7zHP init-+-amd
:Gy
.P |-apmd
;Jv)J3y |-atd
si3i#l&.b_ |-httpd-+-httpd
qi7dcn@d | |-httpd
?#pL\1"E | |-httpd
u"X8(\pOn | |-httpd
>@h0@N ....
(;~[}" 名称:renice
s8@f Z4 使用权限:所有使用者
MZv&$KG4m@ 3"I 1'+ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
fm&l0 !G`w@E9M) 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
2ZIf@C{P. .Zf#L'Rf 把计?
8Nc i1o ` mALx! ` -p pid 重新指定行程的 id 为 pid 的行程的优先序
w
V27 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
6tzZ j:yq -u user 重新指定行程拥有者为 user 的行程的优先序
Ujq)h:` 范例:
&[R&@l Y 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
(5_o H renice +1 987 -u daemon root -p 32
AWD &K! ={={W 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
vQu) uml tQo"$ JN} 名称:top
W=I%3F_C"R 使用权限:所有使用者
oUltr hl6al:Y 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] C:EF(/>+-
~NU~jmT2
说明:即时显示 process 的动态 q_cqjly<
PJO;[:
.I
把计? 0S/&^
\ E[0KvN;O
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s PCt&66F
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 8Q#&=]W$
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 97F$$d54T
s : 安全模式,将交谈式指令取消, 避免潜在的危机 iO<O2A.F
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ^h^j:!76j
n : 更新的次数,完成后将会退出 top +n2x@ 0op
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ;E*^AW
rUx%2O|qu
范例: 3Y=T8Gi#
显示更新十次后退出 ; OjrQ[`(E
top -n 10 Y<a/(`
^6J*yV%
使用者将不能利用交谈式指令来对行程下命令 : =jg!@H=_i
top -s Y*wbFL6`
E%H,Hk^
将更新显示二次的结果输入到名称为 top.log 的档案里 : K8284A8v
top -n 2 -b < top.log FY#`]124*
}@1LFZx
名称:skill ^Ud`2 OW;2
6kIq6rWF9
使用权限:所有使用者 t M A
,,fLK1
使用方式: skill [signal to send] [options] 选择程序的规则 Rg0\Ng4|G
2S!=2u+7
说明: e|+uLbN&;c
HV>|f'45
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 K{q(/>:
a`/[\K6
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 "UVV/&`o
t@4X(i0
一般参数: 1DZGb)OU
-VRu^l#
-f 快速模式/尚未完成 TN/I(pkt1B
L d#
-i 互动模式/ 每个动作将要被确认 9&rn3hmP
b-~`A;pr
-v 详细输出/ 列出所选择程序的资讯 :4(7W[r6
e5veq!*C?
-w 智能警告讯息/ 尚未完成 prIq9U|@
2Q1* Xq{
-n 没有动作/ 显示程序代号 .JQR5R |Q
W%vh7>.
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 \?g)jY
H26j]kY
-t 终端机代号 ( tty 或 pty ) %,6@Uu#%6
N_/&xHw
-u 使用者名称 0FEb[+N
'e{e>>03
-p 程序代号 ( pid ) VMen:
+k8><_vr}
-c 命令名称 可使用的讯号: 9;h1;9sC|
EWH'x$z_q
以下列出已知的讯号名称,讯号代号,功能。 7J$ ^R6rh
3@6f%Dyj
名称 (代号) 功能/ 描述 @jwUH8g1
6
D!,vu
ALRM 14 离开 ;]<$p[m
mRQ F5W6
HUP 1 离开 .0\Wu+
li/O&@g`
INT 2 离开 Q?[k>fu0
Z~$& h
KILL 9 离开/ 强迫关闭 FUq@
dUv
9W'#4
PIPE 13 离开 .lTGFeJqZ4
p(f)u]1`
POLL 离开 3y 0`G8P'h
"b -KVZ
PROF 离开 o Q{gh$6*
9D8el}uHf
TERM 15 离开 ;y"E}h
W&+UF'F2
USR1 离开 #c?\(qjWA
tw*qlb FHv
USR2 离开 )O2^?Q quS
EkXns%][L
VTALRM 离开 AQ+w%>G6
YW/YeID
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 3fM
N15{7,
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 1s!hl{n<~
H6'xXS
TSTP 停止 /产生与内容相关的行为 w ="I*7c@
n"_EDb
TTIN 停止 /产生与内容相关的行为 wXNFL9F8
O- r"G
TTOU 停止 /产生与内容相关的行为 [@>Kd`!'
zFQxW4G
STOP 停止 /强迫关闭 /6L\`\g
;O{AYF?,N
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 .bnoK
CXA)Zl5#
PWR 忽略 /在某些系统中会离开 fyQAQZT
6Y}#vZ
WINCH 忽略 2psLX
,F:l?dfB\I
CHLD 忽略 oVmGZhkA@'
|y;+xEl6
ABRT 6 核心 "d.qmM
! daXF&q
FPE 8 核心 NG S/lKz
%) q5hB
ILL 4 核心 b/O~f8t
M^g"U`
QUIT 3 核心 %&z9^}Vd[
,ci
tzh
SEGV 11 核心 JrCm >0g
Fz>J7(Y.j
TRAP 5 核心 dc%+f
Is?0q@
SYS 核心 /或许尚未实作 6ng
.
=
qIO)Z
EMT 核心 /或许尚未实作 fE_QB=9 cz
ApS/,cV
BUS 核心 /核心失败 P8;|>OLZ)
u-j Gv| ,|
XCPU 核心 /核心失败 Y
Xn)?
VCvuZU{<
XFSZ 核心 /核心失败 4-cnkv\~
=I7#Vtd^K<
范例: M;3uG/E\
停止所有在 PTY 装置上的程序 O'$:wc#
skill -KILL -v pts/* :ykQ[d`:|
r6MQ|@
停止三个使用者 user1 , user2 , user3 r 97 VX>
skill -STOP user1 user2 user3 O]lWaiR`
Q[8L='E
其他相关的命令: kill n*bbmG1
名称:expr KvktC|~?
使用权限:所有使用者 G H^i,88
### 字串长度 PTL52+}/
X3RpJ#m"'
shell>> expr length "this is a test" D!)'c(b
14 |!rD2T\Ef
### 数字商数 dos$d3B4
shell>> expr 14 % 9 rD<@$KpP
5 lR;<6
### 从位置处抓取字串 "t4~xs`~X
shell>> expr substr "this is a test" 3 5 ::adT=
is is 2eb
:(D7Cq
### 数字串 only the first character [ &R-YQ@
shell>> expr index "testforthegame" e 37M7bB0
2 ^qV*W1|0
### 字串真实重现 w*Kw#m'U
shell>> expr quote thisisatestformela ("H:T?4Qs
thisisatestformela