linux常用命令
AME6Zu3Y hG.~[#[&6 称:/etc/aliases
_z \PVTT 使用权限:系统管理者
qU:Mvb^5& 使用方式: 请用 newaliases 更新资料库
{;ur~KE 说明:
X&({`Uw<K sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
1|%C66f^ &B>YiA /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
HtGGcO'bqg # newaliases
yX;v s~Od(,K 下面命令会做相同的事,
zmh3
Qa( # sendmail -bi
F#$[jh$ ejC== Fkc 相关命令:
X8=sk mail, mailq, newaliases, sendmail
*27*&&=)H m'suAj0 ” mail [返回]
6GtXM3qtS 名称:mail
qlfYX8edZ XxEKv=_bc 使用权限:所有使用者
LVp*YOq7 ]Vgl 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
QH_I<Y:n '1yy&QUZq 说明:
ok7yFm1\ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
*,d>(\&[f zE\@x+k. 参数:
CGkCLd*s] i 忽略 tty 的中断讯号。 (interrupt)
f6Io|CZWJ I 强迫设成互动模式。 (Interactive)
|lhVk\X v 列印出讯息,例如送信的地点、状态等等。 (verbose)
= A;B-_c n 不读入 mail.rc 设定档。
ghd*EXrF
H s 邮件标题。
yp:_W@ c cc 邮件地址。
ONw;NaE, b bcc 邮件地址。
jPf*qe>U ?4i:$.A
Y 范例:
4#BoS9d2I< )R`w{V 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
X#*|_(^ mail
user1@email.address
x0!5z1KQh mail
user1@email.address user2
;Y>cegG\ RZeU{u<O 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
#]!0$z|Z uM9[ mail -s 标题 -c user1 user2 < mail.txt
'9MtIcNb ,pz^8NJAI 指令:mesg
-6KGQc}U 使用权限 : 所有使用者
ki^c)Tqn ymLhSF][ 使用方式 : mesg [y|n]
:5`BhFAd ?E?dg#yk 说明 : 决定是否允许其他人传讯息到自己的终端机介面
$G5;y> -Vi"hSsUP 把计 ?
@i[z4)"S `9
y : 允许讯息传到终端机介面上。
k~st;FO n : 不允许讯息传到终端机介面上 。
,S i23S\ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
$MEKt}S e)~7pXYV) 例子 :
t%n3~i4X: 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
@P^8?!i+ mesg n
0=r.I}x 与 mesg 相关的指令有: talk,write,wall。
RqIic\aD 名称:/etc/aliases
/f7Fv*z/ 使用权限:系统管理者
`"<} B"s 使用方式: newaliases
6/Coi,om 说明:
|*im$[g=- sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
5Q.bwl : FN&.PdRT /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
U>z8gdzu bS+by'Ea1W 参数:没有任何参数。 范例:
Dm1;mR S+ # newaliases
y+XB .`OdnLGy 下面命令会做相同的事,
I
=t{ u; # sendmail -bi
Zq--m/ |"Js iT 相关命令:
&r6VF/ mail, mailq, newaliases, sendmail
~ (xIG 名称 : talk
s|U?{Byb! 使用权限 : 所有使用者
`V@{#+X u $N2uFc 使用方式 :
c%aY6dQG&% rlvo&(a talk person [ttyname]
T6|zT}cb 说明 : 与其他使用者对谈
O7shY4 Sr {@u;F2? 把计 :
_-*Lj;^V person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name BC0T[o(f8 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
x8sSb:N (L?fYSP! 例子.1 :
yFT)R hN "$?f&* 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
?#^_yd|< talk Rollaend
Z4Nl{
6 bGvALz' 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
d*Y&V$?zl "qRE1j@%a 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
T1pA
<6 talk
Rollaend@linuxfab.cx pts/2
xD;5z`A3 dlC)&Ai )z9)oM\ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
j5ZeYcQ- Vc3tKuMsiX 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
kL,{H~iq; Memz>uux 名称 : wall
? Ovl(4VG 使用权限 : 所有使用者
cbl2D5s+i] 'w`:p{E 使用方式 :
M* (]hu0! wall [ message ]
Bl-nS{9" 使用说明:
Da!A1|" wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
<LDVO'I0! gRuNC=sR 例子 :
3u7N/OQ( edqek jh 传讯息"hi" 给每一个使用者 :
h#?L6<*tm wall hi
Us'm9 J 名称 : write
rS>JzbWa 使用权限 : 所有使用者
kScq#<Y& #J]u3*Tn| 使用方式 :
]&1Kz
2/ y88FT#hR|5 write user [ttyname]
ZD] ^Y} 说明 : 传讯息给其他使用者
cs7TAX "_JGe#= 把计 :
{T
Z7>k V+X>t7.Q user : 预备传讯息的使用者帐号
_PrK6M@"L ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
.N8AkQ(Ok z!5^UD8"W 例子.1 :
^c}Z$V sn&y;Vc[$ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
`'[u%U E write Rollaend
u=feR0|8 F_=RY] 接下来就是将讯息打上去,结束请按 ctrl+c
o+SD(KVn- SIjdwr!+ZZ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
sTO* write Rollaend pts/2
E)m{m$Hb {[PoLOCI 接下来就是将讯息打上去,结束请按 ctrl+c
D0tmNV@ *z`_U]tP 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Ns2M8 >&tPIrz 名称:kill
V<AT"vU[ 使用权限:所有使用者
3qPj+@ j0!Z 20 使用方式:
!@!,7te 0&Q-y&$7 kill [ -s signal | -p ] [ -a ] pid ...
Mf%0Cx ` kill -l [ signal ]
v`MCV29!} 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
.oYUA} 把计?
Fd-PjW/E8 v2:A 4Pd:+ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
Y@N}XH<4R -p : 印出 pid , 并不送出信号
(7q!Z!2 -l (signal) : 列出所有可用的信号名称
;wIpch e 范例:
FyX\S= m(E-?VMHo 将 pid 为 323 的行程砍掉 (kill) :
~`c?&YixU kill -9 323
+~\1Zgw <<gk<_7` 将 pid 为 456 的行程重跑 (restart) :
YYHtd,0\+ kill -HUP 456
;1&%Wj"d CN@bJo2 名称:nice
M ()&GlNs 使用权限:所有使用者
D)XF@z; AzVON#rj 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
k DS >S3iP?V7 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
|GtTz& @FKNB.> +M! f}=H
把计?
pi:%Bd&F r k;k:<c -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
Ub*Gv(Pg --help 显示求助讯息
Tw"u{%t --version 显示版本资讯
`;4P?!WG 范例:
08{0i,Fs 将 ls 的优先序加 1 并执行 :
K O "U5v nice -n 1 ls
=4uL1[0' Mib(J+Il 将 ls 的优先序加 10 并执行 :
%mPIr4$Pg nice ls将 ls 的优先序加 10 并执行
'9%72yG U7O~ch[, 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
Bs(\e^} m!5P5U
x 名称:ps
6U6,Wu 使用权限:所有使用者
YU.aZdA&V3 使用方式:ps [options] [--help]
s~$ZTzV 说明:显示瞬间行程 (process) 的动态
ciVN-;vi 参数:
^%V'l-}/ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
lN#W -A 列出所有的行程
\ni?_F(Y -w 显示加宽可以显示较多的资讯
A;n3"" -au 显示较详细的资讯
PjNOeI@G -aux 显示所有包含其他使用者的行程
wgxr8;8`q "2q}G16K au(x) 输出格式 :
fy" q *n dXZ64 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
TJ8IYo|
D USER: 行程拥有者
@9g$+_"ZT PID: pid
St9W{ %CPU: 占用的 CPU 使用率
p9Zi}!
%MEM: 占用的记忆体使用率
=#dW^?p VSZ: 占用的虚拟记忆体大小
oBiJiPE=` RSS: 占用的记忆体大小
o<bZ. t TTY: 终端的次要装置号码 (minor device number of tty)
`"zXf -qeE STAT: 该行程的状态:
GZ,`? D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
m(SGE,("w R: 正在执行中
ol7%$:S S: 静止状态
?U.+SQ T: 暂停执行
G#-t&gO3 Z: 不存在但暂时无法消除
Tt#4dm- W: 没有足够的记忆体分页可分配
0>Iy`>] <: 高优先序的行程
FIhq>L.q4 N: 低优先序的行程
t?f2*N: L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
+X(@o START: 行程开始时间
o^FlQy\ TIME: 执行的时间
:UM>`Y COMMAND:所执行的指令
p;cNmMm 范例:
:,%~R2 ps
$(B|$e^:( PID TTY TIME CMD
^N#B(F 2791 ttyp0 00:00:00 tcsh
\=PnC}7I 3092 ttyp0 00:00:00 ps
}M-^A{C\% % ps -A
#'[4k: PID TTY TIME CMD
=aZgq99 1 ? 00:00:03 init
N,fEta6 2 ? 00:00:00 kflushd
&7_xr.c7 3 ? 00:00:00 kpiod
&SuWmtq 4 ? 00:00:00 kswapd
_Y@vO 5 ? 00:00:00 mdrecoveryd
W5 ^eCYHoi .......
4\
R2\ % ps -aux
-l)vl<} USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
[AkL6 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
!m8MyZ}% root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
Vc0C@*fVM root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
lWr=79 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
ln.'}P ........
{7swE(N 名称:pstree
XE8>&&X 使用权限:所有使用者
T1AD(r\W5 使用方式:
`L# pN5 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
KBJ%$OQV pstree -V
ScOiOz:Ha 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
v,bCj6 参数:
6Hoc F/Ye -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Gy 0 m -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
bQd'objpY 范例:
Ug(;\*yg pstree
A)6xEeyR Aiyx!Q6vT init-+-amd
$Y'}wB{pc |-apmd
F6XrJ?JM |-atd
7[=*#7}. |-httpd---10*[httpd]
%L(;}sJ. %pstree -p
lz1RAp0R" init(1)-+-amd(447)
"LZQ1P*ef$ |-apmd(105)
Bv-|#sdxm |-atd(339)
I!sh+e %pstree -c
} )DE init-+-amd
ZcJa: |-apmd
G*;?&;* |-atd
wJc~AP)I%z |-httpd-+-httpd
[0vgA#6I | |-httpd
*Rm"3S | |-httpd
ws}cMX]* | |-httpd
Xa o*h(Q@L ....
,',
S 名称:renice
)B"k;dLm 使用权限:所有使用者
W^dk: })#VO-J 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
T($d3Nn1 uBpnfIe 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
h&5bMW rdj_3Utv 把计?
S7oPdzcU- 7Yv1et
| -p pid 重新指定行程的 id 为 pid 的行程的优先序
rgq~lZ.U4K -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
l$[7pM[ -u user 重新指定行程拥有者为 user 的行程的优先序
Oly"ll*K 范例:
Nk
JOD3>U 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
*Wbs{>&No renice +1 987 -u daemon root -p 32
yV"k:_O{ AS1#_fC 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
(U_`Q1Jo 0FN;^hP5| 名称:top
\NZ(Xk 使用权限:所有使用者
6=pE5UfT TA4>12C6 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] WZ@hP'Zc
q8Jhs7fv
说明:即时显示 process 的动态 O$eNG$7
3#\++h]QZ
把计? 8Cx6Me>,=
=Ff _)k
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 4 H<.
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 wak:"B[
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 g49G7sk
s : 安全模式,将交谈式指令取消, 避免潜在的危机 KIRCye
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 % _.kd"
n : 更新的次数,完成后将会退出 top 7y?aw`Sw:
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 9ZJn 8ki
s!IX3rz
范例: {<}9r6k;f
显示更新十次后退出 ; #zf,%IYF
top -n 10 B}(r>8?dm
a Fh9B\n
使用者将不能利用交谈式指令来对行程下命令 : &xWej2a!
top -s @k-C>h()C
WrHY'
将更新显示二次的结果输入到名称为 top.log 的档案里 : 5FJ(x:k?z
top -n 2 -b < top.log F G:t2ea
Wa5B;X~
名称:skill <da-iY\5
A+=K<e
使用权限:所有使用者 39qIoaHT
%O|+`"
使用方式: skill [signal to send] [options] 选择程序的规则 H/2dVUU
$2E&~W %
说明: 9,?7mgZp
un F=";9H
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 bu8AOtY9E-
Z35(f0b
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 yE#.Q<4
EJW}&e/
一般参数: 4{QD: D(D
>Jk]=_%
-f 快速模式/尚未完成 ^O3i)GO
p:NIRs
-i 互动模式/ 每个动作将要被确认 3iIURSG@
,<(0T$o E[
-v 详细输出/ 列出所选择程序的资讯 ],~H3u=s3
h'nXV{N0
-w 智能警告讯息/ 尚未完成 8B`w!@hf
Fhrj$
-n 没有动作/ 显示程序代号 &J\<"3
FeT|
Fh:L
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 M<nH
50CjH"3PZ`
-t 终端机代号 ( tty 或 pty ) 6b1AIs8
bOolBKV
-u 使用者名称 :V0sKg|sS
ES)@iM?5
-p 程序代号 ( pid ) ]7{
e~U
bo-L|R&O
-c 命令名称 可使用的讯号: n_{az{~
y 2C Jk~
以下列出已知的讯号名称,讯号代号,功能。 K=Z.<f
t2(vtxrt
名称 (代号) 功能/ 描述 nN2huNTf:
{O6yJckH
ALRM 14 离开 'Rb
tcFb
(nwp s
HUP 1 离开 jdIAN
OWc~=Cr
INT 2 离开 I}+9@d
x
}@P
KILL 9 离开/ 强迫关闭 Jr=XVQ(F
JRR,ooN*i
PIPE 13 离开 F!<!)_8Q
g3
opN>W
POLL 离开 xpp>5d
!
W1&"dT@
PROF 离开 5]*!N
9$L2a
TERM 15 离开 v,kvLjqt
v?YxF}
USR1 离开 |=:<[FU
9&bJ]
USR2 离开 C~IE_E&Q`
NM"5.
VTALRM 离开 s6QD^[
P*]hXm85[K
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 A">R-1R
P]O=K
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 &I:ZJuQ4
OtbPrF5
TSTP 停止 /产生与内容相关的行为 Ig<# {V
CK#i 6!~r
TTIN 停止 /产生与内容相关的行为 NX5$x/uz
.^6yCs5~`
TTOU 停止 /产生与内容相关的行为 :'FCeS9
DP-0,Gt&Xj
STOP 停止 /强迫关闭 )b1X6w[
J$U_/b.mk
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 \YSprXe
1H?I?IT30
PWR 忽略 /在某些系统中会离开 w*]FJ-b<.j
HQNpf1=D
WINCH 忽略 [tR b{JsUd
6ZAZJn|
CHLD 忽略 PQ{5*}$N
Ciy%7_~\
ABRT 6 核心 q+} \(|
=!G{+&j
FPE 8 核心 \mL]xE-
<Uc
ILL 4 核心 ?./%7v
|\>Ifv%{
QUIT 3 核心 1ASoH,D/
$Ai zKiV
SEGV 11 核心 xf{ZwS%X
CEVisKcE:
TRAP 5 核心 4hxa|f
iuA_Jr
SYS 核心 /或许尚未实作 <I#M^}`
G^';9 UK
EMT 核心 /或许尚未实作 +i#s |kKs\
aU@1j;se@
BUS 核心 /核心失败 M?AKJE j5
1IlOU|4
XCPU 核心 /核心失败 E3]
8(P%D-
7X)4ec9H\
XFSZ 核心 /核心失败 gWL`J=DiU
'Z]wh .]T
范例: /=T:W*C
停止所有在 PTY 装置上的程序 UmArl)R/
skill -KILL -v pts/* T2n3g|4
F+ 7*SImv6
停止三个使用者 user1 , user2 , user3 JL>frS3M
skill -STOP user1 user2 user3 &F:.OVzX
[k0/ZfFwV
其他相关的命令: kill LJom+PxF$x
名称:expr -:kIIK
使用权限:所有使用者 >FKwFwT4D
### 字串长度 7#c4.9b?
`H 'wz7
shell>> expr length "this is a test" -w>ss&
14 1{wbC)
### 数字商数 @qYT/V*/
shell>> expr 14 % 9
M%Ksyr9
5 C#4_`4{
### 从位置处抓取字串 S;y4Z:!
shell>> expr substr "this is a test" 3 5 &YcOmI/MM
is is Ndmw/ae
### 数字串 only the first character 4UUbX
shell>> expr index "testforthegame" e yn"4qC#Z
2 T--%UZD]W
### 字串真实重现 ?;H}5>^8P
shell>> expr quote thisisatestformela =LODX29
thisisatestformela