linux常用命令
"?9fL#8f*! ^3yjE/Wi" 称:/etc/aliases
X7 ZaQ . 使用权限:系统管理者
|XH3$;=*h 使用方式: 请用 newaliases 更新资料库
Vi? Z`G]w! 说明:
f@/qW!o sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
F9+d7 Y$ ~V|!\CB /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
<zDe;& # newaliases
~!nd'{{9 c3pt?C 下面命令会做相同的事,
XWUTb\@ # sendmail -bi
YJ6vyG>%C Ti/iD2g 相关命令:
Q)}\4&4 mail, mailq, newaliases, sendmail
oF6MV&q/ jN<]yhqf ” mail [返回]
\rN_CBM 名称:mail
IGqmH=- h1gb&?w5P 使用权限:所有使用者
mcX akWmi }-Ma~/ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
Y}#^n7*w~ Yptsq@s 说明:
Y'HF^jv]R mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
?^!dLW =dw1Q 参数:
A_fU7'B i 忽略 tty 的中断讯号。 (interrupt)
[uY2 Nh I 强迫设成互动模式。 (Interactive)
(hV"z; rI v 列印出讯息,例如送信的地点、状态等等。 (verbose)
,6bMfz n 不读入 mail.rc 设定档。
@/u`7FO$& s 邮件标题。
A X#!9-m3 c cc 邮件地址。
PmY:sJ{M b bcc 邮件地址。
UKBMGzu2: \O?B9_ 范例:
R
_Y&Y- ykeUS
zz2 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
}:8>>lQ mail
user1@email.address
|G@)B!> mail
user1@email.address user2
!491
\W0ZH Iz8^?>X 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
*;d)'7< eC{Z mail -s 标题 -c user1 user2 < mail.txt
U:|v(U$"? vTEkh0Ys 指令:mesg
S}f<@-16P 使用权限 : 所有使用者
{4 d$]o0V XOwMT,=Z) 使用方式 : mesg [y|n]
T6r~OV5 z{jAt6@7 说明 : 决定是否允许其他人传讯息到自己的终端机介面
T!A}ipqb <^_?hN8. 把计 ?
NETC{:j uPXqTkod y : 允许讯息传到终端机介面上。
SkA'+( n : 不允许讯息传到终端机介面上 。
.rm7Sd4K 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
{wXN kq }gi'%e 例子 :
` W>B8 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Z+W&C@Uw mesg n
'uzv\[ 与 mesg 相关的指令有: talk,write,wall。
Kc\'s65.] 名称:/etc/aliases
P/9J!.Cm 使用权限:系统管理者
-b}S3<15@ 使用方式: newaliases
I{I
[N
&N 说明:
y;Ln ao7i sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
J\$l3i/I 3F} KrG /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
UjOhaj "h
}n%Rl\p 参数:没有任何参数。 范例:
C(HmLEB^ # newaliases
5l/l] yN<fmi};c 下面命令会做相同的事,
>m1V9A # sendmail -bi
0_mvz%[J [(F<|f:n 相关命令:
^p zxwt mail, mailq, newaliases, sendmail
4`P2FnJ? 名称 : talk
^[[b$h$ 使用权限 : 所有使用者
T$8~9qx +Cg"2~ 使用方式 :
[Um4\QvUx ls7A5 < talk person [ttyname]
NVqC|uEAF 说明 : 与其他使用者对谈
{3(.c, q@ u<shhb- 把计 :
E5BgQ5'
person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ;Fem<p)V ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Cm;qDvj+u mhLRi\[c ) 例子.1 :
J-\?,4mcP _+04M)q0 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
t<k[W'# talk Rollaend
<I%9O:R
B%J%TR_ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
4<Sa,~4 ?5v5:U(A 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
/Ej]X`F talk
Rollaend@linuxfab.cx pts/2
7Jx-W| JD{MdhhV "x|NG,<[9 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
0 {JK4]C +Sd,l>8\ 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
_/
}6 IbJ[Og^Qyu 名称 : wall
!UMo4}Y 使用权限 : 所有使用者
fEw=I7{Y Lkl|4L 使用方式 :
d$_q=ywc wall [ message ]
Hg9.<|+yo 使用说明:
{y:#'n wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
p + l_MB .K@x4
/1 例子 :
2yQ}Lxr( |N$?_<H 传讯息"hi" 给每一个使用者 :
{y^|ET7 wall hi
t+ S~u^ 名称 : write
5{ FM#@ 使用权限 : 所有使用者
JOdwv4(3V <m>l-] 使用方式 :
27a*H1iQ ;>Ca(Y2M write user [ttyname]
*F
szGn< 说明 : 传讯息给其他使用者
:G`L3E&1s T")i+v 把计 :
#$t}T@t> N2tkCkl^x9 user : 预备传讯息的使用者帐号
-jVaS wt ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
~y)bYG!G JEsLF{ 例子.1 :
F:;!)H* "X5_-l 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
}(ma__Ao write Rollaend
|}M0,AS >:jM}*dnL 接下来就是将讯息打上去,结束请按 ctrl+c
B` *f( {xv?wenE 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
9fNu?dE
write Rollaend pts/2
U=kx`j> 5 o#<`_=J 接下来就是将讯息打上去,结束请按 ctrl+c
`V&1]C8x V#NG+U.B 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
-^iUVO`z ou'~{-_xd 名称:kill
AfRW=&xdT 使用权限:所有使用者
j2} R<;OEN 使用方式:
|DE%SVZB h(@R]GUX kill [ -s signal | -p ] [ -a ] pid ...
oTCzY Y kill -l [ signal ]
> -y&$1 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
WR/o
@$/ 把计?
46bl>yk9< PS=e\(6QC -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
(#!]fF"!x -p : 印出 pid , 并不送出信号
qKdS7SoS -l (signal) : 列出所有可用的信号名称
%9C` 范例:
u5w&X8x J7BFk
?= 将 pid 为 323 的行程砍掉 (kill) :
;} l T kill -9 323
|h&<_9 *u>lx!g 将 pid 为 456 的行程重跑 (restart) :
/!3ZW XY\ kill -HUP 456
e-X HN mC i[Ps 名称:nice
%K[daXw6E8 使用权限:所有使用者
l|YT[LR7 AGOx@;w 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
X^}A*4j AF^T~?t 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
]^=|Zd- i"vawxm vS OT*0r 把计?
QyPg
|#T2> VeZey)Q -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
Q%ruQ# --help 显示求助讯息
Sd},_Kh --version 显示版本资讯
yN*:.al 范例:
v`JF\"}S 将 ls 的优先序加 1 并执行 :
LA-_3UJx nice -n 1 ls
xS'zZ%? ddsUz1%l 将 ls 的优先序加 10 并执行 :
UVB/vqGg nice ls将 ls 的优先序加 10 并执行
,c>N}*6h=W Q1Ux!$_ 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
^[k0k(_ Z@3l%p6V 名称:ps
nV}8M 使用权限:所有使用者
8j%'9vPi 使用方式:ps [options] [--help]
Sp:l;SGd 说明:显示瞬间行程 (process) 的动态
Bv$UFTz 参数:
mN;+TN'?{ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
TyF{tuF -A 列出所有的行程
n~tqO!q -w 显示加宽可以显示较多的资讯
fb.J$fX -au 显示较详细的资讯
[*8Y'KX < -aux 显示所有包含其他使用者的行程
IdPn%)>6 ~-TOsRvxR au(x) 输出格式 :
fN-Gk(Ic .NJ|p=fy USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-Ep!- a USER: 行程拥有者
xCWz\-; PID: pid
$r\"6e %CPU: 占用的 CPU 使用率
)6{<
i5nJ\ %MEM: 占用的记忆体使用率
+2RNZEc VSZ: 占用的虚拟记忆体大小
G?`-]FMO RSS: 占用的记忆体大小
B8T\s)fxnX TTY: 终端的次要装置号码 (minor device number of tty)
zB*euHIqZ STAT: 该行程的状态:
c%z'xM D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
BOvF)4` R: 正在执行中
o}8I_o&]U S: 静止状态
pMR,#[U< T: 暂停执行
@w\I qr
Z: 不存在但暂时无法消除
$ rUSKm# W: 没有足够的记忆体分页可分配
a?F!,=F <: 高优先序的行程
tdep|sD N: 低优先序的行程
_X4!xbP L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
yto[8;)_ START: 行程开始时间
X32C}4-B TIME: 执行的时间
`
#OSl COMMAND:所执行的指令
|7"$ w%2 范例:
n[,XU|2 ps
T%$jWndI PID TTY TIME CMD
5G[x }4U 2791 ttyp0 00:00:00 tcsh
DkDoA;m 3092 ttyp0 00:00:00 ps
mM_
k^4: % ps -A
{u"8[@@./ PID TTY TIME CMD
1vnYogL 1 ? 00:00:03 init
?>$l 2 ? 00:00:00 kflushd
=Mj0:rW 3 ? 00:00:00 kpiod
` qUX. 4 ? 00:00:00 kswapd
(YPi&w~S 5 ? 00:00:00 mdrecoveryd
F]EBD 8/b .......
/vxm"CJR % ps -aux
+l E90y USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Ag9?C* root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
:"Y*<=x#2 root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
_,haD)1g~ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
-TO\'^][X root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
;"kaF! ........
&c>?~-!W 名称:pstree
OhVs#^ 使用权限:所有使用者
oDn|2Sdqd 使用方式:
#wY0D_3@1 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
QA3/ pstree -V
@n-r-Q 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
k^\pU\J 参数:
e}hmS 1>H -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
q{0R=jb -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
&@% $2O.3 范例:
E&`Nh5 JfC pstree
G2Vv i[c `R"~v/x init-+-amd
@-HG`c ct |-apmd
? *>]")[> |-atd
FAsFjRS |-httpd---10*[httpd]
q%Yn;g|_ %pstree -p
/w (e init(1)-+-amd(447)
30>3 !Xqa |-apmd(105)
-=`#fDvBn |-atd(339)
#]P9b@@e %pstree -c
EV pi^>M init-+-amd
y5r4+2B |-apmd
MUnEuhXTr |-atd
QnQOm"" |-httpd-+-httpd
U8.7>ENnP& | |-httpd
Ep9W- n?} | |-httpd
1y#D?R=E | |-httpd
",6M)3{|c ....
rf~Y6U?7 名称:renice
/!h;c$ 使用权限:所有使用者
0k)rc$eDF+ w| `h[/, 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
>/[GTqi
]^'@[< 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
|a1{ve[ k:jSbbQ 把计?
S*o[ZA
wLc4Dm*V -p pid 重新指定行程的 id 为 pid 的行程的优先序
yY?b.ty -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
ls@i".[ -u user 重新指定行程拥有者为 user 的行程的优先序
X+UJzR90 范例:
(aOv#Vor]% 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
fU=B4V4@ renice +1 987 -u daemon root -p 32
YIw1 `]Q:-h 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
jCbV,0)^ !;?+>R)h 名称:top
Pj}66. 使用权限:所有使用者
Cj~'Lhmv'T DC{>TC[p1k 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] O
T.*pk+<)
T5a*z}L5
说明:即时显示 process 的动态 '>r7V
[w%
qV 6
把计? If\fLhM
R(q~ -3~
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s dFKM
8_jH
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 [Xb@Wh:yG
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 |*}4 m'c
s : 安全模式,将交谈式指令取消, 避免潜在的危机 `
,SiA-3*
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 E?_Z`*h
n : 更新的次数,完成后将会退出 top .l.a(_R
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 0`^&9nR
0#nPbe,Lj
范例: ~ 4kc/a
显示更新十次后退出 ; Y1]n^
top -n 10 EK4d_L]I
yu;P +G
使用者将不能利用交谈式指令来对行程下命令 : Hy^N!rBxfO
top -s PYGRsrcFd#
30SW\@
将更新显示二次的结果输入到名称为 top.log 的档案里 : Z]B~{!W1
top -n 2 -b < top.log rx] @A
@)fd}tV
名称:skill c@8 93<_
Q)IKOt;N]
使用权限:所有使用者 %44leINx
DQr Y*nH
使用方式: skill [signal to send] [options] 选择程序的规则 g*_cPU0~m
*{L)dW+:
说明: C#Na&m
#`)(e JF
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 "g1)f"pL
~{jcH
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 !wNr3LG
-4
SY=NC_
一般参数: [k/@E+;
sG
F aL
-f 快速模式/尚未完成 |'B7v i)
i%0ur}p
-i 互动模式/ 每个动作将要被确认 f=WDR m]
$7^o#2
B
-v 详细输出/ 列出所选择程序的资讯 ppVHLrUh
% ~H=sjg
-w 智能警告讯息/ 尚未完成 l4uMG]m
cWe"%I
-n 没有动作/ 显示程序代号 5Ou`z5S\k
oYm[V<nIl
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 \D*KGd]M0
[q8 P~l
-t 终端机代号 ( tty 或 pty ) F^];U+J
?fi,ifp*|l
-u 使用者名称 8|l\EVV6
~E2KZm
-p 程序代号 ( pid ) Y,^@P
$#9;)8J
-c 命令名称 可使用的讯号: #."-#"0
GLeK'0Q@
以下列出已知的讯号名称,讯号代号,功能。 Bf ~vA4
{#?N
名称 (代号) 功能/ 描述 E/|To
Lr~=^{
ALRM 14 离开 RAgg:3^
T[UN@^DP(
HUP 1 离开 kuszb~`zPY
pZqq]mHK
INT 2 离开 \Je0CD=e`
|B.Y6L6l
KILL 9 离开/ 强迫关闭 +M\`#i\g>
eg;~zv
PIPE 13 离开 \/zq7j
OR~8sU
POLL 离开 l5!|I:/*;
|
*2w5iR
PROF 离开 oAODp!_c
FWrX3i
TERM 15 离开 K*LlW@
<Tzrj1"Q3
USR1 离开 N8F~8lTi
r1 !@hT
USR2 离开 e>+i>/Fn{h
`ZYoA
t]C~
VTALRM 离开 7)`nD<j5
lb4Pcdj
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 =.Pw`.
|"ls\ 7
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 \XCe22x]
5F)C jQ
TSTP 停止 /产生与内容相关的行为 '3/4?wi
AG`L64B
TTIN 停止 /产生与内容相关的行为 y\4L{GlBM
.o(fe\KHf
TTOU 停止 /产生与内容相关的行为 =Y{(%sn
!/'t5~x[
STOP 停止 /强迫关闭 yVU^M?`#
V_:1EBzz
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 z+0I#kM"1
y-'$(x
PWR 忽略 /在某些系统中会离开 81? hY4
JVvs-bK5
WINCH 忽略 q9KHmhUD
X5zDpi|Dq
CHLD 忽略 Gw/Pk4R
dk[!V1x4\
ABRT 6 核心 5d Eh7XL
aH)}/n
FPE 8 核心 ?GKb7Oj
7Wf/$vRab
ILL 4 核心 6M @[B|Q(
44ek
IV+?
QUIT 3 核心 ?PuBa`zDE
X9v.1s,
SEGV 11 核心 %KCyb
0gW"i&7c
TRAP 5 核心 #^u$
&FMc?wq
SYS 核心 /或许尚未实作 @'#,D!U
w1Nm&}V
EMT 核心 /或许尚未实作 jFQQ`O V
\tf<B\oa
BUS 核心 /核心失败 9vuyv*-}e
fiK6@,
XCPU 核心 /核心失败 OcR$zlgs[v
-u6bAQ
XFSZ 核心 /核心失败 Qf~vZtJ+J
zqim R#u
范例: Xb|:vr\v
停止所有在 PTY 装置上的程序 bkOv2tZ
skill -KILL -v pts/* >:74%D0UF
u1J0$
停止三个使用者 user1 , user2 , user3 5kc/Y/4o
skill -STOP user1 user2 user3 ~qiJR`Jj
Zi *2nv'
其他相关的命令: kill f(>p=%=O
名称:expr faEt6
使用权限:所有使用者 (yH'{6g\
### 字串长度 F&!6jv
Bd!bg|uO*
shell>> expr length "this is a test" RD!&LFz/}
14 dPW#C5dm
### 数字商数 )tC5Hijq,
shell>> expr 14 % 9 pj\u9
L_
5 \\iQEy<i
### 从位置处抓取字串 ]FJjgu<