linux常用命令
_A;jtS)SY 1.4]T, ` 称:/etc/aliases
5M;fh)fT 使用权限:系统管理者
&>ii2% 4 使用方式: 请用 newaliases 更新资料库
g>CF|Wj 说明:
r=~yUT sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
|)B&-~a+p =hH>]$J[ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
~
b!mKyrZ # newaliases
E;fYL]j/oZ W7c(]
tg. 下面命令会做相同的事,
;oH17 # sendmail -bi
@TdPeTw\ !;x 相关命令:
dP=1* mail, mailq, newaliases, sendmail
s7A{<>: .9#4qoM' ” mail [返回]
y{0`+/\` 名称:mail
&.y:QVR,! Xw(e@: 使用权限:所有使用者
rW0# 6 u-=S_e 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
; =ai]AYW x$Ko|:- 说明:
O[+S/6uy mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
+y! dU{L^ Jx9S@L` 参数:
^/47*vcN5 i 忽略 tty 的中断讯号。 (interrupt)
>0k7#q}O I 强迫设成互动模式。 (Interactive)
AU)"L_
i} v 列印出讯息,例如送信的地点、状态等等。 (verbose)
@Y 1iEL%\y n 不读入 mail.rc 设定档。
>Vy=5)/i s 邮件标题。
YAv-5 c cc 邮件地址。
R]VY
PNns b bcc 邮件地址。
gbL99MZ@~ (C={/waJ 范例:
7L|w~l7R~ H$>D_WeJ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
1&\_|2 mail
user1@email.address
'S@% mail
user1@email.address user2
`re]Q0IO BG_m}3j 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
yH#zyO4fD- VO] Jvf mail -s 标题 -c user1 user2 < mail.txt
Q.7Rv
XNw8 iT1"Le/N 指令:mesg
f50qA;7k 使用权限 : 所有使用者
~Z!xS .7++wo!, 使用方式 : mesg [y|n]
[]/=!?5B VI,z7
\ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
3Bee6N> gV1&b
(h 把计 ?
0N$tSTo.-< $)\%i = y : 允许讯息传到终端机介面上。
@a#qq`b; n : 不允许讯息传到终端机介面上 。
s\_-` [B0 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
.\= GfF' !f-mC,d 例子 :
)_"Cz".|9 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
[X0Wfb}{ mesg n
0kS[`a(}J 与 mesg 相关的指令有: talk,write,wall。
N3g[,BE 名称:/etc/aliases
d|k6#f-E 使用权限:系统管理者
rpu9 使用方式: newaliases
767xCP 说明:
IE.JIi^w sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
e;~[PYeu kU$P?RD /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
-U)6o"O_CV b2u_1P\ 参数:没有任何参数。 范例:
+6@".< # newaliases
FKY|xG9 )[yM4QFl 下面命令会做相同的事,
EQ1wyKZS2g # sendmail -bi
Iz,a
Hrq &1YAPxX 相关命令:
km,}7^?F0r mail, mailq, newaliases, sendmail
~j}di^<{ 名称 : talk
L3lf2 8W 使用权限 : 所有使用者
6f,#O8]#5 /f~V(DK 使用方式 :
:]iV*zo_ rD<G_%hP talk person [ttyname]
o7S,W?;=5
说明 : 与其他使用者对谈
EzqYHY+_r L^3~gZ 把计 :
mG@xehH person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name %myg67u ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
D@*<p h= EL$l .
v 例子.1 :
)%Z<9k XSC._)ztEE 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
[U@#whE O talk Rollaend
tNg}:a|J Zc(uK{3W- 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
g0GCg VeeQmR?u- 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
fiqeXE?E talk
Rollaend@linuxfab.cx pts/2
`VY -3 Tm~a&p ~K]5`(KV 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
J[2c[|[- <gRv7 ?V[z 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
fBBNP) W- 5Z"m1I 名称 : wall
K n%[& 使用权限 : 所有使用者
\)'s6>58| {j O:9O@ 使用方式 :
Wcd;B7OH wall [ message ]
d?^bCf+< 使用说明:
`wz@l:e wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
hi4#8W swV/Mi> 例子 :
9gR@Q%b) KR4X&d6 传讯息"hi" 给每一个使用者 :
Lpd q^X wall hi
ee}&~% 名称 : write
3*C9;Q} 使用权限 : 所有使用者
':YFm !j[Oyr| 使用方式 :
5<h7+ %?t9 78&(>8@m write user [ttyname]
}qU(G3 说明 : 传讯息给其他使用者
7qj<|US hAq7v']m 把计 :
TY}9;QL: gFlUMfKh user : 预备传讯息的使用者帐号
:H($|$\h ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
A3D"b9<D Z9TmX
A@ 例子.1 :
ZP75zeH :k9n
9
传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
# rnO=N8 write Rollaend
M
^gva?{ xQ4 5B`$ 接下来就是将讯息打上去,结束请按 ctrl+c
OSACH0h fui;F"+1 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
)fSO|4 write Rollaend pts/2
k$]-fQM %6Wv-:LY 接下来就是将讯息打上去,结束请按 ctrl+c
]M%kt +u! Sh&n
DdF" 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
0
_4p>v: $M%<i~VXe& 名称:kill
S5B12P 使用权限:所有使用者
j$v2_q BPRhGG|9j 使用方式:
;Z:zL^rvn n:QFwwQ`Q; kill [ -s signal | -p ] [ -a ] pid ...
4#D=+70' kill -l [ signal ]
JG6"5:: 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
Y:UDte[Lb 把计?
qz]b8rX U Px7u%Do -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
iIrH&}2 -p : 印出 pid , 并不送出信号
{|dU|h -l (signal) : 列出所有可用的信号名称
$TU)O^c 范例:
:
&! >.Y j;%RV)e 将 pid 为 323 的行程砍掉 (kill) :
,]CZ(q9- kill -9 323
.FV
wZ:d x-W6W 将 pid 为 456 的行程重跑 (restart) :
C|"BMam kill -HUP 456
2@!Ou $W O [Q;[@ 名称:nice
H# P)n
R
M 使用权限:所有使用者
&dA{ <. jGV+ ~a 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
eAkC-Fm
r7dvj#^ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
Hzos$1DJ NR98I7 c{7<z9U 把计?
VE_% /Fs, ,V$PV,G -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
\gtI4zl*J --help 显示求助讯息
Z?XgY\(a(Q --version 显示版本资讯
#
MpW\yX 范例:
^5BLuN6 将 ls 的优先序加 1 并执行 :
;;6e
t/8 nice -n 1 ls
e-@=QI^, &RSUB;ymL 将 ls 的优先序加 10 并执行 :
q ERdQ~M, nice ls将 ls 的优先序加 10 并执行
RDFOUqS W
PDL$y 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
pxj}%LH !%v=9muay 名称:ps
fDq`.ZW)s 使用权限:所有使用者
[X9s\H 使用方式:ps [options] [--help]
a?^xEye 说明:显示瞬间行程 (process) 的动态
<4DSk9/ 参数:
l8O12 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
.tFMa: -A 列出所有的行程
>9?BJv2 -w 显示加宽可以显示较多的资讯
m\h. sg& -au 显示较详细的资讯
F0&BEJBkU -aux 显示所有包含其他使用者的行程
*ud"?{)Z y2XeD=_' au(x) 输出格式 :
+y}4^3Vx^ ~\0uy3% USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
f;Cu@z{b USER: 行程拥有者
hvc%6A\nm PID: pid
-~wGJM
VA %CPU: 占用的 CPU 使用率
lDBn3U&z> %MEM: 占用的记忆体使用率
n_8wYiBs( VSZ: 占用的虚拟记忆体大小
^:c:~F6J RSS: 占用的记忆体大小
fJjtrvNy) TTY: 终端的次要装置号码 (minor device number of tty)
HOEjLwH STAT: 该行程的状态:
l}#z#L2,` D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
K5oVB,z) R: 正在执行中
+N~?_5lv\s S: 静止状态
=K#12TRf T: 暂停执行
8ec6J*b Z: 不存在但暂时无法消除
SI/@Bbd= W: 没有足够的记忆体分页可分配
uU7s4oJ| <: 高优先序的行程
uude<d"U N: 低优先序的行程
&n5Lc` L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
S6J7^'h START: 行程开始时间
=Wb!j18] TIME: 执行的时间
9/La_:K COMMAND:所执行的指令
5>o<!0g 范例:
)v4?+$g ps
@R!f(\ PID TTY TIME CMD
Hl@)j 2791 ttyp0 00:00:00 tcsh
t1y
hU"(J 3092 ttyp0 00:00:00 ps
]i}3`e? % ps -A
Do&em8i
z PID TTY TIME CMD
`#X\@?'5 1 ? 00:00:03 init
ka3(sctZ5 2 ? 00:00:00 kflushd
%J_`-\)"{~ 3 ? 00:00:00 kpiod
W?*]'0 4 ? 00:00:00 kswapd
]A;{D~X^w 5 ? 00:00:00 mdrecoveryd
LuLnmnmB .......
uk8vecj % ps -aux
";I|\ T USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
B %|cp+/ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
(A6-9g> root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
B{:JD^V! root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
~@3X&E0S root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
q- U/JC ........
_N.N?> 名称:pstree
;:w?&4 使用权限:所有使用者
q#8$@*I 使用方式:
?5%0zMC pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
Jgf73IX[ pstree -V
^'UJ&UfX 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
J9tQ@3{f 参数:
L5E|1T -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
t-xw=&!w -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
MZpG1 范例:
l'_P]@* pstree
YQB. 3 %&c+}m init-+-amd
&&N]u e@> |-apmd
) o)k~6uT |-atd
Ha U6`IP |-httpd---10*[httpd]
+/g/+B_b %pstree -p
8P wobln init(1)-+-amd(447)
sknta0^=2 |-apmd(105)
kc0YWW Q-: |-atd(339)
MjO.s+I %pstree -c
1LgzqRq init-+-amd
yq3i=RB( |-apmd
^%^~:<N |-atd
<i~MBy.
( |-httpd-+-httpd
?a8 o.&`l | |-httpd
w8|38m | |-httpd
3NEbCILF | |-httpd
=:T pH>f* ....
'.n0[2> 名称:renice
H_RVGAbU 使用权限:所有使用者
rKlu+/G x Z3b)j2D 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
*x^W`i
we<m%pf 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
I8|7~jRB ])dq4\Bw 把计?
+doZnU, GqFDN],Wp -p pid 重新指定行程的 id 为 pid 的行程的优先序
pi>,>-Z -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
={Bcbj{ -u user 重新指定行程拥有者为 user 的行程的优先序
p'lL2n$E 范例:
, _K /e 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
?8cgQf$ renice +1 987 -u daemon root -p 32
b)+;#m ] m$;ra] 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
SxC A}(&At%n4 名称:top
Ae&470 使用权限:所有使用者
b'
1%g}
OT6uAm+\7_ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] &|;XLRHP}
aCu 8
D!
说明:即时显示 process 的动态 !d@q T.
3I87|5V,Z
把计? -L;sv0
3)jFv7LAU
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s Fa}3UVm
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 #KC& ct
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 d5/x2!mH8
s : 安全模式,将交谈式指令取消, 避免潜在的危机 LvlVZjT
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 -YF]k}|
n : 更新的次数,完成后将会退出 top 2!Bjs?K<bv
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 sEpY&6*
[If%+mHdU
范例: /U
|@sw4
显示更新十次后退出 ; 9ihB;m'C)
top -n 10 'CE3
|x\%K
vrr&Ve
使用者将不能利用交谈式指令来对行程下命令 : \-XQo
top -s aS
]bTYJ'
gi26Dtk(h
将更新显示二次的结果输入到名称为 top.log 的档案里 : #G'Y2l
top -n 2 -b < top.log n<
npJ*
oD_n+95B
名称:skill q)Qd+:a7{
blbL49;
使用权限:所有使用者 ~s#vP<QHa
^FaBaDcnl
使用方式: skill [signal to send] [options] 选择程序的规则 oMM+af
05]y*I
说明: .UxbwTup
60
D0z
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 DG2CpR)S
8SV.giG;
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 [sx J<
a?_!
一般参数: {bQi
z
}/dGC;p"
-f 快速模式/尚未完成 y5" b(nb
O[9>^y\,
-i 互动模式/ 每个动作将要被确认 Dt)O60X3>
O+8]y4%5
-v 详细输出/ 列出所选择程序的资讯 ii< /!B(
@xKfqKoqg
-w 智能警告讯息/ 尚未完成 $K_G|Wyi
/z'fFl^6O
-n 没有动作/ 显示程序代号 <4l;I*:2&
4z{jWNM)N
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 28/At
adi^*7Q] )
-t 终端机代号 ( tty 或 pty )
Zo=w8Hr
tc.`P]R
-u 使用者名称 +(a}S$C
U|[+M@F_L
-p 程序代号 ( pid ) mpsi{%gA
W~EDLL Z
-c 命令名称 可使用的讯号: 9 E@}@ZV(
d&N[\5q
以下列出已知的讯号名称,讯号代号,功能。 A.f!SYV6
hv]}b'M$
名称 (代号) 功能/ 描述 w+^z{3>
l_?r#Qc7
ALRM 14 离开 p\>im+0oh
dV~d60jOF
HUP 1 离开 F.N4Q'2Z
@<^_ _."
INT 2 离开 kNqIPvuMr
rM|] }M=_V
KILL 9 离开/ 强迫关闭 5eP0W#
n ]K`ofjl^
PIPE 13 离开 [{K
0 It[Pa qG
POLL 离开 <KBzZ
!n5
{ \r1A
PROF 离开 l(o;O.dLt
@Czj] t`
TERM 15 离开 <B3v4f
zi7>!#(
USR1 离开 7 3 Oo;
D'nO
USR2 离开 834E
]2
'N7AVj
VTALRM 离开 *8WcRx
JA")L0a_
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 l^LYSZg'R8
#3+-vyZm
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ZysZS%
W7sx/O9
TSTP 停止 /产生与内容相关的行为 +nLsiC{&
\!]Zq#*kH
TTIN 停止 /产生与内容相关的行为 ^Z6N&s#6
]< Ugg
TTOU 停止 /产生与内容相关的行为 _QS +{
CO)BF%?B
STOP 停止 /强迫关闭 $L@os2
!BQ:R(w
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 =m+'orJ1
9rd7l6$R"
PWR 忽略 /在某些系统中会离开 xlhc`wdm
e>GX]tK
WINCH 忽略 ;$0)k(c9
C0Oe$&
_
CHLD 忽略 5os(.
=Nc}XFq
ABRT 6 核心 Zn-F !Lsv
0-N"_1k|?
FPE 8 核心 Zy<gA >
ne~=^IRB
ILL 4 核心 DGQGV[9%4C
X}-)io
QUIT 3 核心 RCgn\
;q3"XLV(T[
SEGV 11 核心 9q4%s?)j
Ki8]+W37
TRAP 5 核心 i6.HR?n
_a?(JzLw5
SYS 核心 /或许尚未实作 U|NVDuo{{x
}8zw| (GR,
EMT 核心 /或许尚未实作 A-8[8J
]csfK${
BUS 核心 /核心失败 8
<~E;:
1pM"j!
XCPU 核心 /核心失败
UE-+P
C
`>1x`n
XFSZ 核心 /核心失败 Q&X#(3&'
1&wI*4
范例: F/QRgXV
停止所有在 PTY 装置上的程序 U)3*7D
skill -KILL -v pts/* N
N1(f
`u *:wJsv
停止三个使用者 user1 , user2 , user3 &* Aems{-
skill -STOP user1 user2 user3 DO^K8~]
+im>|
其他相关的命令: kill q#mw#Uw-
名称:expr ^O9_dP:
使用权限:所有使用者 kt0ma/QpP
### 字串长度 j~'a %P
T+0Z2H
shell>> expr length "this is a test" ,f]GOH
14 X<j(AAHE
### 数字商数 XEB1%. p
shell>> expr 14 % 9 nKO4o8js{{
5 q\`0'Z,
### 从位置处抓取字串 ?_ V oO
shell>> expr substr "this is a test" 3 5 Q8~|0X\.g
is is f\{ynC2m
### 数字串 only the first character |P>Yf0
shell>> expr index "testforthegame" e k^Gf2%k
2 v{T%`WuPRf
### 字串真实重现 !=Hu?F p
shell>> expr quote thisisatestformela ?|`Ba-
thisisatestformela