linux常用命令
d.+ Ob]\t/:%P 称:/etc/aliases
g)czJ=T2 使用权限:系统管理者
\JM6zR^Ef 使用方式: 请用 newaliases 更新资料库
m8F$h- 说明:
Ag9GYm sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
1ARtFR2C{b }{N#JTmjB# /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
'O)v@p " # newaliases
<@(\z
>u>
E !5O 下面命令会做相同的事,
b\ED<' # sendmail -bi
:bct+J}l~ f4 S:L& 相关命令:
xcw:H&\w6 mail, mailq, newaliases, sendmail
Oh1U=V2~ ]7_>l> ” mail [返回]
g/.FJ-I* 名称:mail
M}o.= Iqa Ld*Ds!*'/ 使用权限:所有使用者
#a=]h}&1? *,G<X^ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
[Ix6ArY ;xiN<f4B 说明:
)8oyo~4? mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
.t\J@?Z L;opQ~g 参数:
J.XkdGQ i 忽略 tty 的中断讯号。 (interrupt)
ks.p)F>] I 强迫设成互动模式。 (Interactive)
dY}5Kmt v 列印出讯息,例如送信的地点、状态等等。 (verbose)
L?nhm=D n 不读入 mail.rc 设定档。
MXaik+2 s 邮件标题。
t#P7'9Se8 c cc 邮件地址。
|.Vgk8oTl b bcc 邮件地址。
{2 q"9Ox" CrI<rD%' 范例:
&'12,'8 _DSDY$Ec 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Zuzwc [Z1 mail
user1@email.address
VgXT4gO! mail
user1@email.address user2
(nLzWvN xMk>r1Ud 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
uxxk&+M [,Rc&7p~R mail -s 标题 -c user1 user2 < mail.txt
x} =,'Ko}3 >oq\`E 指令:mesg
h<?Px"& J 使用权限 : 所有使用者
\uHC 9}0 Ag0
6M U 使用方式 : mesg [y|n]
l tNI+G W]Xwt'ABz 说明 : 决定是否允许其他人传讯息到自己的终端机介面
%R4 \[e MMrN#&r 把计 ?
Rp2h[_> GjwH C{ y : 允许讯息传到终端机介面上。
8g8eY pG n : 不允许讯息传到终端机介面上 。
%TI3Eb 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
UucX1% r8 YM#dF 例子 :
ROTKK8:+: 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
l\L71|3" g mesg n
[O\)R[J 与 mesg 相关的指令有: talk,write,wall。
3L==p`
名称:/etc/aliases
UUz{Qm% 使用权限:系统管理者
;V~x[J|x 使用方式: newaliases
G!VEV3zT 说明:
[gUD + sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
p,z>:3M uzQj+Po /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
O\Y*s 3.dSS 参数:没有任何参数。 范例:
a :*N0 # newaliases
1ik.|T<f0 &I
~'2mpk 下面命令会做相同的事,
;rL>{UhG # sendmail -bi
2|?U%YrHWs IY.M#Q] 相关命令:
}f;TG:6 mail, mailq, newaliases, sendmail
1:<n(?5JI 名称 : talk
p}==aNZK 使用权限 : 所有使用者
lGahwn: N>EMVUVS 使用方式 :
,k.") 0
J"g"= talk person [ttyname]
ABoB=0.l 说明 : 与其他使用者对谈
nt_Cb*K< #@YKNS[ 把计 :
Ge=6l0 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 5I[:.o0 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
}#.OJub e%:vLE
9 例子.1 :
J0k!&d8 Tr>_R%b K 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
V1Ft3Msq talk Rollaend
3BK
8{/ x2fqfrr_] 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
f8K0/z _t]Q*i0p 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
z{BgAI, talk
Rollaend@linuxfab.cx pts/2
GNHXtu6 uUp>N^mmVH 4#W$5_Ny 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
L}Sb0 o. IN6L2/Q 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
eI`%J3BxR (5`(H.( 名称 : wall
A]QGaWK 使用权限 : 所有使用者
D
dwFKc& =_E$* } 使用方式 :
8@;R2]Q wall [ message ]
IV1O/lGp 使用说明:
'%e@7Cs wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
,^1 #Uz8 N49{J~ 例子 :
KJ&I4CU]^ ' p!&&.% 传讯息"hi" 给每一个使用者 :
4+>~Ui_# wall hi
pIrL7Pb0 名称 : write
o4a@{nt^, 使用权限 : 所有使用者
!+Cc^{ TG?>;It& 使用方式 :
3LQu+EsS ?^:5` write user [ttyname]
}|/<!l+;$ 说明 : 传讯息给其他使用者
e
GAto \{*`-Pv 把计 :
g|^U?|;p mV}8s]29 user : 预备传讯息的使用者帐号
;x_T*} CH ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
to_dNJbv w"kBAi& 例子.1 :
X/%!p<}:' 9^sz,auB 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
JC$_Pg! write Rollaend
g]MgT-C| | LZ+_ 接下来就是将讯息打上去,结束请按 ctrl+c
M?sTz@tqq .pxUO3g 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
FS)C<T]t write Rollaend pts/2
m/g[9Y mm!JNb9( 接下来就是将讯息打上去,结束请按 ctrl+c
;)f,A)(Z asvM/ 9 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
3# 0Nd"/0 u&`rK7J 名称:kill
R Ee~\n+P^ 使用权限:所有使用者
BUI#y `J ;x|?N* 使用方式:
_Nz?fJ:$@ y9i+EV kill [ -s signal | -p ] [ -a ] pid ...
X+\=dhn69 kill -l [ signal ]
`}
'o2oZnG 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
FFVh~em{ 把计?
Xa'b@*o& LChwHkRHJI -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
?:vB_@ -p : 印出 pid , 并不送出信号
r<dvo%I#| -l (signal) : 列出所有可用的信号名称
^5!"[RB\ 范例:
`P|V&;}K 4e[ 0.2? 将 pid 为 323 的行程砍掉 (kill) :
(L1O;~$ kill -9 323
N-<,wUxf ?6\A$? 将 pid 为 456 的行程重跑 (restart) :
@v6{U? kill -HUP 456
{9F}2
SJ PM:u~D$Jd 名称:nice
7O=7lQ 使用权限:所有使用者
6h[fk.W_ :Ef$[_S> 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
W-1Ub |8C 9-=kVmT&g 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
zLS?:yq 1TN+pmc}@ ?ZKIs9E[m 把计?
vHymSU/J <&1hJ)O -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
^D
{v L --help 显示求助讯息
>I/~)B`jhE --version 显示版本资讯
7bM
H 范例:
v~!_DD
au 将 ls 的优先序加 1 并执行 :
CfOhk nice -n 1 ls
Q^lgtb M~saYJio 将 ls 的优先序加 10 并执行 :
R|O^7o nice ls将 ls 的优先序加 10 并执行
1$yS Ii 2+YM .Zl 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
YMwL(m1 |' kC9H[> 名称:ps
:N4?W}r. 使用权限:所有使用者
,{RWs^W2 使用方式:ps [options] [--help]
LwI 4 2 说明:显示瞬间行程 (process) 的动态
P=4o)e7E! 参数:
t.XuH# ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
1[Jv9S*f/ -A 列出所有的行程
_>{"vY -w 显示加宽可以显示较多的资讯
y<8o!=Tb5 -au 显示较详细的资讯
@A%\;oo -aux 显示所有包含其他使用者的行程
#@uF?8u %SMP)4Y/R au(x) 输出格式 :
?+{qmqN 2:^ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
f5CnJhE|) USER: 行程拥有者
=~$)Ieu PID: pid
U4y ?z %CPU: 占用的 CPU 使用率
bXWodOSN %MEM: 占用的记忆体使用率
N?s5h? VSZ: 占用的虚拟记忆体大小
2ZMVYa2%( RSS: 占用的记忆体大小
hya
$Vp TTY: 终端的次要装置号码 (minor device number of tty)
`=W#owAF STAT: 该行程的状态:
PtKrks|y D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
A$J?- R: 正在执行中
v kW2& S: 静止状态
WWIQ6EJO T: 暂停执行
d[e;Fj! Z: 不存在但暂时无法消除
7lQ:}& W: 没有足够的记忆体分页可分配
Zdu8axK: <: 高优先序的行程
Bnd Y\ N: 低优先序的行程
Wl>$<D4mO[ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
9>L{K
START: 行程开始时间
KSl@V>!_ TIME: 执行的时间
\v.YP19 COMMAND:所执行的指令
.t%`"C 范例:
^ G>/;mZ ps
lz0'E'%{P PID TTY TIME CMD
EK^["_*A 2791 ttyp0 00:00:00 tcsh
0\Myhh~DLE 3092 ttyp0 00:00:00 ps
N07FU\<9 % ps -A
J*f..:m PID TTY TIME CMD
LsV?b*^(p 1 ? 00:00:03 init
R%%h=] 2 ? 00:00:00 kflushd
b0Fr]oGp 3 ? 00:00:00 kpiod
nTXM/ 4 ? 00:00:00 kswapd
F='rGQK!1 5 ? 00:00:00 mdrecoveryd
BxXP]od .......
l`<u\], % ps -aux
0o&c8?@j USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
OD1>s6uA7 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
\]p[DYBY# root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
vM/D7YS: root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
'sAs# root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
!pe!Z-, ........
^sZ,(sc{G 名称:pstree
3l''
使用权限:所有使用者
$x1PU67 使用方式:
7{DSLKtN pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
E\=23[0 pstree -V
F5EsaF'e4 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
3ES3,uR 参数:
8#~x6\!b -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
pr"~W8 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
<-a6'g2y 范例:
-MH~1Tw6Z pstree
9iQc\@eGd rXg#_c5j init-+-amd
-D30(g{O |-apmd
NYN(2J |-atd
UkXf) |-httpd---10*[httpd]
/M8&` %pstree -p
]$a,/Jt init(1)-+-amd(447)
79Si^n1\ |-apmd(105)
K9N\E"6ZP |-atd(339)
XnI)s^ %pstree -c
G~Mxh,aD$> init-+-amd
.R>4'#8q |-apmd
J |TA12s |-atd
hNJubTSE+) |-httpd-+-httpd
TYh_uox6 | |-httpd
6(.]TEu0 | |-httpd
\ HZ]=B#0 | |-httpd
Rd{#cW~ ....
H$n{|YO ` 名称:renice
k'$UA$2d 使用权限:所有使用者
75t5:>"[ 9zK5Y+! 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
SPK%
' s W"L;8u 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
d|(@#*{T] -&\?Q_6 把计?
a8!/V@a N=P+b%%:Z -p pid 重新指定行程的 id 为 pid 的行程的优先序
7IH^5r -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
3[O;HS3| -u user 重新指定行程拥有者为 user 的行程的优先序
an9k2F.) 范例:
/SDDCZ`;|c 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
XT
'v7 renice +1 987 -u daemon root -p 32
MX{p)(HW ir*T,O
2J 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
H+ Y+8 VY=c_Gl 名称:top
Kn<z<>vO 使用权限:所有使用者
vg/:q>o @`6db 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] a\m@I_r.N
l^ aUN
说明:即时显示 process 的动态 <rs"$JJV
<n:j@a\up0
把计? zf>r@>S!L
*q.qO )X}3
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ?3
l4U
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 tv1Z%Mx?Cp
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 =8F]cW'1`
s : 安全模式,将交谈式指令取消, 避免潜在的危机 QjlwT 2o'
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 qc-4;m o
n : 更新的次数,完成后将会退出 top g [~"c}
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 oAgO3x
f}1R,N_fC
范例: +u:Q+PkM
显示更新十次后退出 ; pK~K>8\
top -n 10 |P"p/iY
_,JdL'[d
使用者将不能利用交谈式指令来对行程下命令 : ` E2@GX+,
top -s i;
3^vhbQ
.(8sa8{N
将更新显示二次的结果输入到名称为 top.log 的档案里 : V:w=h>z8
top -n 2 -b < top.log -gpF%g`H
elBmF#,j7
名称:skill _g(4-\
&_EjP
hZ
使用权限:所有使用者 T]%:+_,
<""
fJ`7
使用方式: skill [signal to send] [options] 选择程序的规则 do:3aP'S,
)./%/
_*K
说明: i2EXE0;
6(`Bl$M9
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 hKtc
~#b&UR
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 .WR+)^&zz
Z+< zKn}
一般参数: k-b0Eogp]
2vit{
-f 快速模式/尚未完成 A:3:Cr
9aE!!
(E
-i 互动模式/ 每个动作将要被确认 6_# >s1`R
d|9B3I*I
-v 详细输出/ 列出所选择程序的资讯 Lit@ m2{\
;{e ;6Hq
-w 智能警告讯息/ 尚未完成 9(>l trA
S"Dw8_y7}
-n 没有动作/ 显示程序代号 CR-6}T
QJaF6>m
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 V+mTo^
tp,e:4\8Q
-t 终端机代号 ( tty 或 pty ) od7 [h5r
|X6]#&g7
-u 使用者名称 NiwJ$Ah~X
#O<2wMb2<
-p 程序代号 ( pid ) s4RqMO5eI
DJv;ed%x
-c 命令名称 可使用的讯号: `&"-|
S'jH
以下列出已知的讯号名称,讯号代号,功能。 0"~`U.k~M
g$\Z-!(
名称 (代号) 功能/ 描述 TqM(I[J7\
R~$W
ALRM 14 离开 fJ3*'(
:n:Gr?
HUP 1 离开 <MlRy%3Z
|d* K'+
INT 2 离开 'Lw4jq
z@nJ-*'U8
KILL 9 离开/ 强迫关闭 S?bG U8R5
Zjz< Q-
PIPE 13 离开 =U6%Wdth
f*VBSg[`
POLL 离开 g9fS|T
m8q3Pp
PROF 离开 7[wHNJ7)r
A d0dg2Gw
TERM 15 离开 Cc?BJ
)19As8rL/o
USR1 离开 B*+3A!{s
idLysxN
USR2 离开 QeYO)sc`
K0#kW \4`
VTALRM 离开 asDq(J`sQ
'Jb6CRn
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 lD;="b
S
aCa
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ,7mRb-*p
(Yzy;"iAu
TSTP 停止 /产生与内容相关的行为 %E95R8SL
:GU6v4u
TTIN 停止 /产生与内容相关的行为 edh?I1/
*RQkL'tRf
TTOU 停止 /产生与内容相关的行为 "JLKO${ Y
.!ThqYo
STOP 停止 /强迫关闭 {
jnQoxN
}U=|{@%
CONT 从新启动 /如果在停止状态则从新启动,否则忽略
q$$:<*Uy
e>-a\g
PWR 忽略 /在某些系统中会离开 5} 9}4e
X]J]7\4tF\
WINCH 忽略 G:f\wK[
"#H@d+u
CHLD 忽略 J`T1 88
S~QL
x
ABRT 6 核心 =X(8[ e
=v4;t'_^
FPE 8 核心 WKf->W
K|-?1)Um
ILL 4 核心 pSQ)DqW
=)Cqjp
QUIT 3 核心 ffuV158a&
?=:wIMV
SEGV 11 核心 =#N;ZG
lMu}|d
TRAP 5 核心 oyGO!j
3"O)"/"Q.
SYS 核心 /或许尚未实作 CKShz]1
UXz0HRRS0
EMT 核心 /或许尚未实作 B!|<<;Da6
~c>* 3*
BUS 核心 /核心失败 -jc8ku3*
2\flTO2Ny
XCPU 核心 /核心失败 ;\@co5.=
olNgtSX
XFSZ 核心 /核心失败 =Rl?. +uE
), >jBYMJ
范例: M+<xX)
停止所有在 PTY 装置上的程序 d,fX3
skill -KILL -v pts/* <$#b3F"I
(U"Ub;[7
停止三个使用者 user1 , user2 , user3 .z/M (
skill -STOP user1 user2 user3 C WJGr:}&
{Mc^[}9
其他相关的命令: kill :` >|N|i
名称:expr V[<]BOM\v
使用权限:所有使用者 <MgR
x9
### 字串长度 2 %YtMkC5
>uS?Nz5/
shell>> expr length "this is a test" bi:m;R
14 adG=L9
"n
### 数字商数 nezdk=8J/
shell>> expr 14 % 9 vEJ2d&
5 9$&+0
### 从位置处抓取字串 cPh
U qET
shell>> expr substr "this is a test" 3 5 H6ff b)&
is is U$[C>~ r
### 数字串 only the first character v:*t5M
>
shell>> expr index "testforthegame" e $vNz^!zgV
2 2ZMYA=[!
### 字串真实重现 }]1=?:tX%
shell>> expr quote thisisatestformela 2Y~6~*8*~
thisisatestformela