linux常用命令
[WN2ZQ `XK#sCC 称:/etc/aliases
=g<Y[Fi2 使用权限:系统管理者
fk'DJf[M 使用方式: 请用 newaliases 更新资料库
IvJ5J&! 说明:
aB)G!Rm& sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Q'c[yu Z1sRLkR^ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
2O
"
~k # newaliases
t&nK5p95( =fcRH:B: 下面命令会做相同的事,
bw*D!mm, # sendmail -bi
z2god 1" R7ExMJw 相关命令:
NY\-p=3c7= mail, mailq, newaliases, sendmail
n*y@3. #p/'5lA&j ” mail [返回]
x_OZdI 名称:mail
tN-B`d1 ldNWdz 使用权限:所有使用者
&D#B"XI Z.3*sp0
yv 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
C0-,<X L,*# 说明:
!= u
S mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
b*dEX%H8sf 1SY3 参数:
p0@l581 i 忽略 tty 的中断讯号。 (interrupt)
Yy4l -} " I 强迫设成互动模式。 (Interactive)
0JX/@LNg0 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_0!<iN L n 不读入 mail.rc 设定档。
N7}yU~j^ s 邮件标题。
aKk0kC c cc 邮件地址。
[A46WF>L b bcc 邮件地址。
oxJ#NGD 4KZ)`KPE 范例:
SS"Z>talw *}Nh7>d( 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
L0>w|LpRc mail
user1@email.address
0=c:O mail
user1@email.address user2
zJT,Hv . ^ Mw=!n[ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
@W\H%VR CpdQ]Ai[ mail -s 标题 -c user1 user2 < mail.txt
HFTDea +#
UVaz,bXla 指令:mesg
mBWhC<kKs 使用权限 : 所有使用者
*D;VZs0O <PTi>C8;r 使用方式 : mesg [y|n]
"7_qB8\ V|G[j\]E< 说明 : 决定是否允许其他人传讯息到自己的终端机介面
}I
^e:,{ eW zyydl 把计 ?
%LBT:Aw .aE%z/@s= y : 允许讯息传到终端机介面上。
OvtiFN^s' n : 不允许讯息传到终端机介面上 。
@d_;p<\l 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
4{J'p19 &$hT27A>k 例子 :
l$eKV(CZ4 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
'w!8`LPu mesg n
n9r3CLb[ 与 mesg 相关的指令有: talk,write,wall。
~#V1Gunq 名称:/etc/aliases
7T@"2WYat 使用权限:系统管理者
Cd51.Sk(l 使用方式: newaliases
0fU^ 说明:
|,OTGZgc sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
{GM8}M~D& `8N],X /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Trwk9 + M}W};~V2ng 参数:没有任何参数。 范例:
TLiA>`r= # newaliases
?UV^6 (y{nD~k 下面命令会做相同的事,
{qkd63X # sendmail -bi
_HkB+D0v C*fSPdg? 相关命令:
(VA:`pstP mail, mailq, newaliases, sendmail
&+>)H$5 名称 : talk
7+^4v(s 使用权限 : 所有使用者
=*?2+ ; lg!{?xM 使用方式 :
w=S7zzL) j2"Y{6c talk person [ttyname]
2e @zd\ 说明 : 与其他使用者对谈
1WMwTBHy+ POCF T0R} 把计 :
VIjsz42C person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name jboQ)NxT!, ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
2eh j2T $S0eERga 例子.1 :
>4} 2~; l
TJqWSV=f 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
k(v8zDq* talk Rollaend
63?fn~0\ bs_"Nn? 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
q$=EUB"C ^v].mV/ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
d.3O1TXK talk
Rollaend@linuxfab.cx pts/2
"nK(+Z Z 7M%}V% :
*Nvy={c 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
uoe5@j2 ,~_)Cf#CB 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
"jUr[X2J fuxBoB 名称 : wall
U-#t&yjh# 使用权限 : 所有使用者
{m/\AG)1I 6*,8 H& 使用方式 :
`[;b#. wall [ message ]
( |1 $zF+ 使用说明:
L:y}
L wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
i7[CqObzc <(Wa8PY2( 例子 :
a9q68 t_q`wKDE 传讯息"hi" 给每一个使用者 :
Upr:sB wall hi
#(53YoV_8 名称 : write
w\'Zcw,d 使用权限 : 所有使用者
qYW{$K u|=G#y;3 使用方式 :
sM?bUg0w WRJ+l_81 write user [ttyname]
JqO#W1h~R| 说明 : 传讯息给其他使用者
~7!J/LHg b\%=mN 把计 :
[ed%"f G^F4c{3c~ user : 预备传讯息的使用者帐号
Tv0|e'^ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
PiZt?r?5w| Lrr^obc 例子.1 :
}`$:3mb&f ^)b*"o 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
q0
:Lb write Rollaend
!UD62yw~ 9jiZtwRpk 接下来就是将讯息打上去,结束请按 ctrl+c
"RH2% B:tST( 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
xyx.1o
e! write Rollaend pts/2
M%:ACLYP aT F} 接下来就是将讯息打上去,结束请按 ctrl+c
+7o3TA]- ,SJB3if 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
;0}$zy1EZ |Gjd 名称:kill
K$Y!d"D 使用权限:所有使用者
,:-S<]fS{_ BpCzmU 使用方式:
!a3cEzs3 W
k'()N kill [ -s signal | -p ] [ -a ] pid ...
:9c
QK]O6 kill -l [ signal ]
[S":~3^B6 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
lMp)T** 把计?
!5 %c`4 XN]kNJX -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
GS~jNZx -p : 印出 pid , 并不送出信号
&oYX093di -l (signal) : 列出所有可用的信号名称
m$A|Sx&sG$ 范例:
uKh),@JV }MrRsvN 将 pid 为 323 的行程砍掉 (kill) :
.0#?u1gXsX kill -9 323
9wC q hti)<#f 将 pid 为 456 的行程重跑 (restart) :
;04doub kill -HUP 456
X'ryfa1| 2#ha Icm" 名称:nice
hp,bfcM 使用权限:所有使用者
2M=
gpy {DBgW}, 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
WU{G_Fqaz ar=uDb; 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
s{KwO+ UW jRXByi=9 [Pby
d 把计?
!iCY!: !u~( \Rb; -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
zhKb|SV --help 显示求助讯息
<y \>[7Y --version 显示版本资讯
}!(cm;XA" 范例:
[$]vi`c2 将 ls 的优先序加 1 并执行 :
,K6s'3O(LW nice -n 1 ls
e[yk'E -JaC~v(0 将 ls 的优先序加 10 并执行 :
EP'2'51 nice ls将 ls 的优先序加 10 并执行
TNUzNA U=QV^I Qm 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
L/"XIMI*Xg y!."FoQ 名称:ps
Qy*`s 使用权限:所有使用者
eFp4MD8? 使用方式:ps [options] [--help]
gE0k|Z(RF 说明:显示瞬间行程 (process) 的动态
7<mY{!2iF? 参数:
?^Q!=W<7 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
"D2`=D!+ -A 列出所有的行程
&o=
#P2Qd -w 显示加宽可以显示较多的资讯
^hq`dr|R= -au 显示较详细的资讯
; ob>$ _ -aux 显示所有包含其他使用者的行程
1xar
L)) C!]hu)E au(x) 输出格式 :
p./zW
)7+ D?)91P/R USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
*@S:f"i USER: 行程拥有者
tz)aQ6p\X PID: pid
/G9wW+1 %CPU: 占用的 CPU 使用率
MVs@~= %MEM: 占用的记忆体使用率
H? Z5ex VSZ: 占用的虚拟记忆体大小
r;g[<6`!S RSS: 占用的记忆体大小
\ty{KAc& TTY: 终端的次要装置号码 (minor device number of tty)
JZNRMxu STAT: 该行程的状态:
<[@AMd S D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
oa? bOm R: 正在执行中
JQj?+PI S: 静止状态
7;jwKA;k T: 暂停执行
}KEyJj3"DA Z: 不存在但暂时无法消除
<La$'lG4J W: 没有足够的记忆体分页可分配
Fo=Icvo <: 高优先序的行程
O; 7`*}m N: 低优先序的行程
2w>WS# L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
p#wQW[6 START: 行程开始时间
!1$QNxgi TIME: 执行的时间
$l@nk@ COMMAND:所执行的指令
Aw~
=U! 范例:
(/UW}$] h ps
_dky+ E PID TTY TIME CMD
hCV e05
2791 ttyp0 00:00:00 tcsh
47 xyS%X 3092 ttyp0 00:00:00 ps
6c,]N@,Zw % ps -A
thy)J.<J PID TTY TIME CMD
;gLHSHEA 1 ? 00:00:03 init
{VtmQU?cJ 2 ? 00:00:00 kflushd
<ZcJC+k 3 ? 00:00:00 kpiod
M!Q27wT8O 4 ? 00:00:00 kswapd
ebK/cPa8 5 ? 00:00:00 mdrecoveryd
s!(O7Ub .......
2fFZ70Yh % ps -aux
\{``r USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
yB0xa% root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
3eT5~Lbs root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
_uwM%M; root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
*(wkgn root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
tj$&89 ........
<qJI]P 名称:pstree
nX~Qt% 使用权限:所有使用者
dO]N&'P7 使用方式:
$;7,T~{ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
Wi7!J[ B pstree -V
VBnD:w"z 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
9Rl-Jz8g 参数:
t|-TG\Q X -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
=h5&:?X -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
`o/G0~T) 范例:
s8BfOl- pstree
7q\& NZT2ni4 init-+-amd
&!i'Q;q |-apmd
v~E\u |-atd
^u2unZ9BK! |-httpd---10*[httpd]
N{+6 V`\ %pstree -p
(bhMo^3/* init(1)-+-amd(447)
5i71@?q; |-apmd(105)
bd|ZhRsL |-atd(339)
D)shWJRlvW %pstree -c
<[.{aj]QV init-+-amd
p+x}$&<| |-apmd
RJ}%pA4I |-atd
#h=pU/R |-httpd-+-httpd
M2Q*#U>6r | |-httpd
eBT+| | |-httpd
!m]_tB | |-httpd
iA.:{^_)09 ....
/UWv}f
0 名称:renice
!AR@GuQPE 使用权限:所有使用者
lZ,w#sqbY I{nrOb1G( 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
IKo,P$
PE Sb QM!Q 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Cx~,wk;= y@XE! L 把计?
0*J},#ba$ }BYs.$7 -p pid 重新指定行程的 id 为 pid 的行程的优先序
H8!;
XB -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
op8[8pt% -u user 重新指定行程拥有者为 user 的行程的优先序
2xxw8_~C 范例:
!l9i)6W 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
DpbprT7_ renice +1 987 -u daemon root -p 32
kR0/jEz
C 7&`Yl[G 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
)L+>^cJI< 8*x/NaH
/\ 名称:top
!kW~s_gUb* 使用权限:所有使用者
PAD&sTjE* \+Nn>wW. 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] qtR/K=^i
MA1y@
说明:即时显示 process 的动态 R4_BP5+
MV.&GUez{
把计? fK/|0@B8
u> @@
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ]Uj7f4)k
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 T`$!/BlZ
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 uqHI/4
s : 安全模式,将交谈式指令取消, 避免潜在的危机 <dWms`QcO
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 r91b]m3xL
n : 更新的次数,完成后将会退出 top 1j_
6Sw(
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 )NLjv=ql
u>\u}c
范例: ugV/#v O
显示更新十次后退出 ; d-{1>\-_
top -n 10 6s.>5}M!
2{|mL`$04<
使用者将不能利用交谈式指令来对行程下命令 : nPR*mbW
top -s jdf3XTw
^k2g60]
将更新显示二次的结果输入到名称为 top.log 的档案里 : 4+B&/}FDLo
top -n 2 -b < top.log 5~FXy{ZIH
bLsN?_jy
名称:skill .+A2\F.^
O0_kLH$.
使用权限:所有使用者 nN%Zed2O@6
' OXL'_Xl
使用方式: skill [signal to send] [options] 选择程序的规则 X?aj0# Q
XK{K FB-
说明: K3^2;j1F Q
g[L}puN
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 T@R2H&L
ne|N!!Dmk
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 ` InBhU>
|>/m{L[
一般参数: 9jI5bi)
Hrg -5_
-f 快速模式/尚未完成 E_H.!pr
('6sW/F*ab
-i 互动模式/ 每个动作将要被确认 lho0Xy
gn
|"+UCAU
-v 详细输出/ 列出所选择程序的资讯 T4Io+b8$
o(stXa
-w 智能警告讯息/ 尚未完成 S0WKEv@Hn
n{"e8vQx
-n 没有动作/ 显示程序代号 c7@[RG !
Ay|K>8z
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 *?~&O.R"
dmYgv^t
-t 终端机代号 ( tty 或 pty ) ,In}be$:
%\B@!4]
-u 使用者名称 AGV+Y6
\hDjZ
-p 程序代号 ( pid ) A5^tus/y
d`3>@*NR<
-c 命令名称 可使用的讯号: jm0v=m7
,&LGAa
以下列出已知的讯号名称,讯号代号,功能。 RA*W Ys&xb
_i2guhRs*Q
名称 (代号) 功能/ 描述 ozkmZ;
}8dS[-.
ALRM 14 离开 h|N!U/(U
Yu:!l>
HUP 1 离开 "H|hN
Lnc>O'<5P9
INT 2 离开 J0UF(
-d*je{c|
KILL 9 离开/ 强迫关闭 b,lIndj#
>dfk2.6e
PIPE 13 离开 ;uaZp.<um&
J_d!` Hhe
POLL 离开 .9!?vz]1
kqZ+e/o>O9
PROF 离开 qsHjqK@(
K9c5HuGy
TERM 15 离开 QBLha']'%
S3sxK:
USR1 离开 :|N(:W>=$Y
>?(}F':
USR2 离开 6XI$ o,{
%<h+_(\h
VTALRM 离开 C n.x:I@r
li&&[=6A
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ;mSJZYnT
h`pXUnEZ
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 }o7"2hht
a1gaB:w5n
TSTP 停止 /产生与内容相关的行为 6.k>J{GG
5?-@}PL!Y
TTIN 停止 /产生与内容相关的行为 '<Jqp7$dL
HBcL1wfS
TTOU 停止 /产生与内容相关的行为 !1xX)XD4y
~c${?uf
STOP 停止 /强迫关闭 2-_d~~O1N
M1J77LfS8
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 15CKcM6
Bb*P);#.K
PWR 忽略 /在某些系统中会离开 9_lWB6
TgvBy
WINCH 忽略 p>= b|Qy|
@]@6(To
CHLD 忽略 0 ![
UOcO\EA+
ABRT 6 核心 #9(L/)^
TyN]P a
FPE 8 核心 p
#Y2v
Q$8K-5U%
ILL 4 核心 &z?:s
G$-[(eu-
QUIT 3 核心 /7hC
/!@
?k+>~k{}a
SEGV 11 核心 mcq.*at
^(~%'f
TRAP 5 核心 agj_l}=gO
Wph@LRB]
SYS 核心 /或许尚未实作 %IK[d#HO
wOF";0EN
EMT 核心 /或许尚未实作 Qgxpq{y
-;j
'=?
BUS 核心 /核心失败 i2X%xYv ^
tWaM+W
XCPU 核心 /核心失败 FS7@6I2Ts
!30BR|K*
XFSZ 核心 /核心失败 tPaNhm[-q7
u_jhmKr~
范例: ;%!]C0?
停止所有在 PTY 装置上的程序 +\U#:gmw
skill -KILL -v pts/* oe,yCdPs
Qz`v0"'w
停止三个使用者 user1 , user2 , user3 9z kRwrQ
skill -STOP user1 user2 user3 ^]X\boWlI
5aJd:36I
其他相关的命令: kill {3eg4j.Z
名称:expr `%Dz 8Z
使用权限:所有使用者 [(*?
### 字串长度 xP-\)d-.aN
\^x`GsVy
shell>> expr length "this is a test" +{L=cWA"
14 L)X[$:
### 数字商数 wf2v9.;X:<
shell>> expr 14 % 9 <5o
oML]nP
5 \EW<;xq
### 从位置处抓取字串 D.*o^{w|
shell>> expr substr "this is a test" 3 5 Jsf"h-)P
is is SGP)A(,k9
### 数字串 only the first character v@QfxV2
shell>> expr index "testforthegame" e N~tq]
2 OE=.@Ry"
### 字串真实重现 OBL2W\{
shell>> expr quote thisisatestformela 7UsU03
thisisatestformela