linux常用命令
C2<CWPn< fMeZ]rb 称:/etc/aliases
\m@Y WO?L 使用权限:系统管理者
0ZC,BS`D^ 使用方式: 请用 newaliases 更新资料库
uu%?K@Qq 说明:
#^&jW sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
WjM>kWv \h3e-) /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
z]Acs # newaliases
VG*'"y*%w sFb4` 下面命令会做相同的事,
3]n0 &MZAR # sendmail -bi
{*/dD` )9P&= 相关命令:
~H[%vdR mail, mailq, newaliases, sendmail
., :uZyG _1jw=5^P\i ” mail [返回]
nDlO5 pe"d 名称:mail
IbWPlbH +#]|)VZ 使用权限:所有使用者
EX?h0Uy ~2/{3m{3 A 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
~F#A
Pt OCHm; 说明:
wH!#aB>kP mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
bj"z8 kP
m1.B\~S3 参数:
.yVnw^gu i 忽略 tty 的中断讯号。 (interrupt)
2W3W/> 2h I 强迫设成互动模式。 (Interactive)
dALK0U v 列印出讯息,例如送信的地点、状态等等。 (verbose)
4VIg>EL* n 不读入 mail.rc 设定档。
b
Dg9P^<n s 邮件标题。
G^Xd- 7 GQ c cc 邮件地址。
P Tnac b bcc 邮件地址。
+zRh
fIJHH %{STz 范例:
C=VIT*= 00M`%c/ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
p\U*;'hv mail
user1@email.address
DMkhbo&+ mail
user1@email.address user2
?En7_X{C? F@hYA 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
z/1hqxHl ma9ADFFT mail -s 标题 -c user1 user2 < mail.txt
Q[s2}Z!N; +$(0w35V5 指令:mesg
|5xz l 使用权限 : 所有使用者
kUHie ;aK.%-s-Z 使用方式 : mesg [y|n]
0RyFv+ Sl.o,W^ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Ko}2%4on :pd&dg!5 把计 ?
B
<+K<,S <lOaor
c y : 允许讯息传到终端机介面上。
(^H5EeGV{ n : 不允许讯息传到终端机介面上 。
cw+g
z!! 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
9bn2UiJk m4gU*? 例子 :
{Bvm'lq` 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
!"! ii$@ mesg n
/S/aUvN 与 mesg 相关的指令有: talk,write,wall。
"2mFC! 名称:/etc/aliases
feCqbWq: 使用权限:系统管理者
@\~tHJ?hQd 使用方式: newaliases
vbKQ* 说明:
,QS'$n sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
z{6YC~ 2cjEex:& /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Bn-J_-%M +a]j[# 参数:没有任何参数。 范例:
uMDtdC8 # newaliases
GEtbs+ [ SOH%Q_ 下面命令会做相同的事,
d~<QAh#rG # sendmail -bi
wsfysat$ /Ri,>}n 相关命令:
8ath45G @ mail, mailq, newaliases, sendmail
NV#')+Ba 名称 : talk
<9\,QR) 使用权限 : 所有使用者
01nsdZ- -]QguZE 使用方式 :
C<t RU5| ,xj3w#`zaf talk person [ttyname]
(zmNa}- 说明 : 与其他使用者对谈
{{E jMBg{ cDO:'- 把计 :
C|$L6n>DR6 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name /:Y9sz uW` ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
F;a3 l7Y8b` 例子.1 :
i>"dBJh]b DoG%T(M!a9 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
,F}r@ talk Rollaend
i_y:4 sVcdj|j 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
\c68n >i`8R 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
!a4cjc( talk
Rollaend@linuxfab.cx pts/2
!u%9;>T7 hBoP=X.~ 1$OVe4H1 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
jIZ+d;1 bx7\QU+ 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
K>LpN')d 9ET/I$n 名称 : wall
G)~MbesJ 使用权限 : 所有使用者
:;_#5 u0'i!@795 使用方式 :
/4H[4m]I wall [ message ]
6s5b$x 使用说明:
,$BgR2^ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
;24'f-Eri -s89)lUkS 例子 :
CfY7<o1> O8$~*NFJf 传讯息"hi" 给每一个使用者 :
Ft$^x-d wall hi
Nor`c+,4 名称 : write
NZ)b:~a 使用权限 : 所有使用者
oc((Yo+B WCoF{* 使用方式 :
HNFhH0+^ 4$F:NW,v:) write user [ttyname]
shy 说明 : 传讯息给其他使用者
mw Z'=H 7y;u} 1 把计 :
yIa[yJq nIR*_<ow user : 预备传讯息的使用者帐号
WT?b Bf ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
DH/L`$ HlF} 例子.1 :
UE{,.s bk0Y 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
IyT?-R write Rollaend
$^K]&Mft p6 <}3m$ 接下来就是将讯息打上去,结束请按 ctrl+c
M`bL5J; L=,Y1nO:p 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
&:q[-K@! write Rollaend pts/2
L!&$c&=xf 2@4x"F]U; 接下来就是将讯息打上去,结束请按 ctrl+c
m]1!-`(* N-D(y 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Yg$@ Wb6 '1]+8E
`Z 名称:kill
zfirb 使用权限:所有使用者
n'ehB%" XL&hs+Y 使用方式:
5pB^Y MP Y=3X9%v9g kill [ -s signal | -p ] [ -a ] pid ...
ckAsGF_B~! kill -l [ signal ]
QP+c?ct}hF 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
'xsbm^n6a& 把计?
:cEd [Jm9 QTeFR&q8 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
8i[".9}G\ -p : 印出 pid , 并不送出信号
6GY32\Ac -l (signal) : 列出所有可用的信号名称
z;ULQ 范例:
kAY@^vi Z6NJ)XQy6F 将 pid 为 323 的行程砍掉 (kill) :
K q/~T7Ru kill -9 323
Uld_X\;Q4 9e-*JYF]C 将 pid 为 456 的行程重跑 (restart) :
u>81dO]H kill -HUP 456
xJN |w\& iwB8I^ 名称:nice
0Y[*lM- 使用权限:所有使用者
~Vwk:+): m;1'u;
使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
0GS{F8f~, U)
+?$
Tbm 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
T.J`S(oI pn|p(6 DL
%S(l 把计?
xQX<w\s +O&RBEa[ -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
l_bL,-|E8 --help 显示求助讯息
i^/
eN --version 显示版本资讯
L7s>su|c( 范例:
r>E\Cco 将 ls 的优先序加 1 并执行 :
hx*HY%\P nice -n 1 ls
`i=JjgG@ h -Tsi:%b 将 ls 的优先序加 10 并执行 :
aMBL1d7 nice ls将 ls 的优先序加 10 并执行
S^|$23} +:fqL 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
} /[_ z~BD(FDI 名称:ps
W]Y@WKeT 使用权限:所有使用者
]cn/(U` 使用方式:ps [options] [--help]
Fq vQk 说明:显示瞬间行程 (process) 的动态
t8t}7XD
参数:
~5FS|[1L ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
1NuR/DO -A 列出所有的行程
fS5GICx8R -w 显示加宽可以显示较多的资讯
hyJ
ded&D -au 显示较详细的资讯
79TPg -aux 显示所有包含其他使用者的行程
+.S#= J 5Wz4`' au(x) 输出格式 :
CEbzJ y>>vGU; USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
qUifw @ USER: 行程拥有者
_{lx*dq PID: pid
;,<r|.6U %CPU: 占用的 CPU 使用率
".Lhte R? %MEM: 占用的记忆体使用率
ay=KfY5 VSZ: 占用的虚拟记忆体大小
g Cg4;b6g RSS: 占用的记忆体大小
@YEw^J~ TTY: 终端的次要装置号码 (minor device number of tty)
g&{gD^9)4 STAT: 该行程的状态:
)?F$-~7 D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
NQDLI 1o R: 正在执行中
BPwI8\V S: 静止状态
f<g>dQlE T: 暂停执行
jK\V|5k Z: 不存在但暂时无法消除
"}0)YRz% W: 没有足够的记忆体分页可分配
+R2^*
*< <: 高优先序的行程
a];BW)
N: 低优先序的行程
cSY2#u|v L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
u(8 _[/_B START: 行程开始时间
nu;}S!J TIME: 执行的时间
[u/zrpTk COMMAND:所执行的指令
kyy0&L 范例:
QpdujtH` ps
bc
`UA PID TTY TIME CMD
0|.7Kz^ 2791 ttyp0 00:00:00 tcsh
C<r(-qO{5 3092 ttyp0 00:00:00 ps
B*-ToXQQr % ps -A
mY$nI -P PID TTY TIME CMD
%y~`"l$- 1 ? 00:00:03 init
>W>##vK 2 ? 00:00:00 kflushd
\Ku9"x 3 ? 00:00:00 kpiod
x?%rx}h 4 ? 00:00:00 kswapd
rFKo E% 5 ? 00:00:00 mdrecoveryd
AeNyZ[40T .......
v(qV\:s}m % ps -aux
`V]egdO USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
u&1j>`~qJ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
=nJOaXR0 root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
g2+l@$W root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
XD;15a root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
:*mA,2s ........
e*Uz#w: 名称:pstree
l84h%, 使用权限:所有使用者
a9yIV5_N 使用方式:
ArNur~ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
u3Zzu \{ pstree -V
EO4"Z@ji 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
o>xxmyW| 参数:
?D RFsA -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
[ea6dv4p -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
*]{9K 范例:
tU+@1~
~ pstree
2"pE&QNd xB?S#5G} init-+-amd
JIyBhFI |-apmd
ddUjs8VvJ |-atd
`U{o: |-httpd---10*[httpd]
{toyQ)C7 %pstree -p
:)KTZ init(1)-+-amd(447)
l(h;e&9x |-apmd(105)
"wT~$I" |-atd(339)
cJU!zG %pstree -c
p{A}p9sjx init-+-amd
}4bB7,j |-apmd
p{mxk)A |-atd
qT4I Y$h |-httpd-+-httpd
zznPD%#Sc | |-httpd
K$MJ#Zx^ | |-httpd
;whFaQi 4 | |-httpd
pr0@sri@ ....
c[wQJc 名称:renice
OoAr% 使用权限:所有使用者
JVJ1Ay/be F<PWBs% 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
)'BJ4[aq\ Ee t+ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
MZUF! B
pm'@2dT 把计?
QOkE\ro Z$OF|ZZQ -p pid 重新指定行程的 id 为 pid 的行程的优先序
E3CiZ4=5 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
"TBQNWZ -u user 重新指定行程拥有者为 user 的行程的优先序
xZ9}8*Q&: 范例:
:GwSs'$O 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
;kyL>mV{ renice +1 987 -u daemon root -p 32
}S~ysQwT 9#Aipu\ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
aBqe+FXp4 s
T
:tFK\ 名称:top
!wLH&X$XT 使用权限:所有使用者
'(3Nopl EzD
-1sJ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] >gX0Ij#G
nZ`2Z7!
说明:即时显示 process 的动态 [a>JG8[,t
ooLnJY#
把计? `}k&HRn
#a7Amh\nT
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s }#\;np
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 E< zT
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 v @$evmA
s : 安全模式,将交谈式指令取消, 避免潜在的危机 'f=) pc#&g
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Ckl7rpY+
n : 更新的次数,完成后将会退出 top jm#d7@~4
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 _SBp66
r
H0D>A<Ue
范例: 9Sx<tj_4P{
显示更新十次后退出 ; WTV3p,;6a
top -n 10 c-s`>m
4! Oa4
使用者将不能利用交谈式指令来对行程下命令 : 1c<CEq:?e%
top -s 66^1&D"
v
GR
\GFm
将更新显示二次的结果输入到名称为 top.log 的档案里 : E&iWtwkz
top -n 2 -b < top.log =M/UHOY
.gM>FUH3L
名称:skill e_>rJWI}
o-Q]Dk1W
使用权限:所有使用者 #FQm/Q<0
Kh:#S|
使用方式: skill [signal to send] [options] 选择程序的规则 I |<+'G
/c_kj2& ]9
说明: XvA0nEi
L5zG0mC8
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 DK@w^ZW6JA
e~t}z_>F
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 :"<B@Z
6PzN>+t^y
一般参数: 7/^TwNsv
~q8V<@?
-f 快速模式/尚未完成 Zv1Bju*y
7'{Yz
-i 互动模式/ 每个动作将要被确认 r'9=kx
Y6;0khp
-v 详细输出/ 列出所选择程序的资讯 =XacG}_
~x0-iBF
-w 智能警告讯息/ 尚未完成 U>L=.\\|
7/D9n9F
-n 没有动作/ 显示程序代号 siss_1J
I7q?V1fu4
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 k[r./xEv+t
!dbA (
-t 终端机代号 ( tty 或 pty ) ^EuyvftZ
os(Jr!p_=
-u 使用者名称 w}U5dM`
(AM,4)lW,
-p 程序代号 ( pid ) .kB3jfw0,
_} X`t8L h
-c 命令名称 可使用的讯号: vHI"C %
TN |{P
以下列出已知的讯号名称,讯号代号,功能。 l|ZzG4]+l
9?}rpA`P
名称 (代号) 功能/ 描述 0>~6Z
ir@N>_
ALRM 14 离开 f1]AfH#
XY+aunLf
HUP 1 离开 G"U>fwFuK
2W"cTm
INT 2 离开 AG$-U2ap
+3o)L?:g
KILL 9 离开/ 强迫关闭 =qS^Wz.
DETajf/<F
PIPE 13 离开 Z|Lh^G
];b!*Z
POLL 离开 :i,c<k
,8J*S
PROF 离开 LKf5r,C
!aW*dD61
TERM 15 离开 %8}ksl07
S"KTL *9D
USR1 离开 ~\)&{'
d'AviW>
USR2 离开 E9Xk8w'+
5cNzG4z
VTALRM 离开 qh(-shZ4Du
UwL"%0u
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 jzJ1+/9
]!tYrSM!
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 y9G 57D
Cj4b]*Q,
TSTP 停止 /产生与内容相关的行为 YAC zznN
)(ZPSg$/F
TTIN 停止 /产生与内容相关的行为 owpJ7S1~
#`vGg9
TTOU 停止 /产生与内容相关的行为 ILr6W@o5A
^pQ;0[9Y0
STOP 停止 /强迫关闭 d"d)<f
%\{?(baOA
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 Eps\iykB
tFST.yT>zg
PWR 忽略 /在某些系统中会离开 bJ,=yB+0
$NGtxZp
WINCH 忽略 bhm~Ii
$jeDVH
CHLD 忽略 (fGJP*YO
P"PeLB9K
ABRT 6 核心 K_lL\
Wse*gO
FPE 8 核心
DT(Zv2
b1,T!xL
ILL 4 核心 rd 35)
F{H0
%
QUIT 3 核心 -< dMD_
W'2-3J
SEGV 11 核心 R:IS4AaS
|v%RjN
TRAP 5 核心 l3 pW{p
#L4Kwy
SYS 核心 /或许尚未实作 .vOpU4
|b'<XQ&l5
EMT 核心 /或许尚未实作 k89gJ5B$
(+Kof
BUS 核心 /核心失败 '3_B1iAv
=
a.n`3`Q
XCPU 核心 /核心失败 v!RB(T3
zju,#%
XFSZ 核心 /核心失败 "MS`d+rf\
l6DIsR
范例: xc]C#q
停止所有在 PTY 装置上的程序 $:gSc&mx
skill -KILL -v pts/* C(|T/rQ-
K9N0kBJ0<
停止三个使用者 user1 , user2 , user3 >->xhlL*
skill -STOP user1 user2 user3 >*i8RqU
#2vG_B<M)
其他相关的命令: kill ! lN a`
名称:expr ?nGf Wx^
使用权限:所有使用者 %:;[M|.
### 字串长度 v^18o$=K",
I'%H:53^0
shell>> expr length "this is a test" rPGE-d3
14 <:;:*s3]
### 数字商数 ZR q}g:
shell>> expr 14 % 9 e}O -I
5 NF\^'W@N
### 从位置处抓取字串 UE`4$^qs
shell>> expr substr "this is a test" 3 5 M>H^<N}'A
is is J!fc)h
### 数字串 only the first character =#")G1A
shell>> expr index "testforthegame" e 19-yM`O
2 &Cpxo9-
### 字串真实重现 U*fj5
shell>> expr quote thisisatestformela ;7`um
thisisatestformela