linux常用命令
2Qt!JXC "hi03k 称:/etc/aliases
9dmoB_G 使用权限:系统管理者
1YK(oRSDn 使用方式: 请用 newaliases 更新资料库
?lML+ 说明:
%&S9~E
D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
2VzYP~Jg 2+_a<5l~ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
,l Y4WO # newaliases
^t:dcY7 2RQ-L 下面命令会做相同的事,
PV:J>!] # sendmail -bi
F$bV}>-1k 7[PEiAI 相关命令:
C;j&Vbf mail, mailq, newaliases, sendmail
stUUez> |{v#'";O: ” mail [返回]
$,yAOaa 名称:mail
gB~^dv { ?~b(iZ 使用权限:所有使用者
C]p@7"l /'VbV8% 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
7Ja*T@ ! h ;tSAQ 说明:
j+@3.^vK mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
`BVmuUMm ]f0OmUHR5i 参数:
7i!Vg V i 忽略 tty 的中断讯号。 (interrupt)
!I.}[9N I 强迫设成互动模式。 (Interactive)
'%82pZ,? v 列印出讯息,例如送信的地点、状态等等。 (verbose)
\ 'Va(}v n 不读入 mail.rc 设定档。
#*:^\z_Jd s 邮件标题。
'ZB^=T c cc 邮件地址。
()48> || b bcc 邮件地址。
&gPP#D6A &O^-,n 范例:
[q Uv|l1 vxHFNGI 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
r!
HXhl mail
user1@email.address
iGkysU<wcp mail
user1@email.address user2
le]~Cy0 x x4GP2 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
uKXNzz nwh @F1| mail -s 标题 -c user1 user2 < mail.txt
1)MDnODJ &a;?o~%*]i 指令:mesg
"?.#z]'] 使用权限 : 所有使用者
4M|uT
9- 9v[V"m`M 使用方式 : mesg [y|n]
N!Rt040.% a eeor 说明 : 决定是否允许其他人传讯息到自己的终端机介面
MM_:2 ^P) 6y~F'/ww 把计 ?
Rq%Kw> {& !nCq8~# y : 允许讯息传到终端机介面上。
N-]/MB8 n : 不允许讯息传到终端机介面上 。
!~yBzH;K 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
bi^?SH\ n{i,`oQ" 例子 :
*67K_<bp] 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
fjVy;qJ32S mesg n
g(WP 与 mesg 相关的指令有: talk,write,wall。
//_H_ue$ 名称:/etc/aliases
S
YDE`- 使用权限:系统管理者
Q{RmE: 使用方式: newaliases
H=Ilum06 说明:
Pal=I) sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
OU"%,&J XS">`9o! /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
[d8Q AO1;) -X~mW
参数:没有任何参数。 范例:
Cf3!Ud # newaliases
qS2Nk.e]o Z sTtSM\Ac 下面命令会做相同的事,
k%sH0 9 # sendmail -bi
2h'Wu
qO }}{n|l+R5 相关命令:
8v4 o+wP mail, mailq, newaliases, sendmail
kB> ~Tb0 名称 : talk
IF|6iKCE 使用权限 : 所有使用者
yjg&/6 6FQi=}O 1 使用方式 :
8.#{J&h iBd6&?E?< talk person [ttyname]
%^pi 说明 : 与其他使用者对谈
XS [L-NHG -(8I ?{"4i 把计 :
jk{(o09 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name %)x9u$4W2 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
sfj+-se(K. DzQBWY]
) 例子.1 :
||_hET m|;(0
rft 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
-juG[zn talk Rollaend
=O![>Fu5 a+E&{pV 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
6t6Z&0$h~ by
X!, 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
`X6JZxGyd talk
Rollaend@linuxfab.cx pts/2
hPDKxYD]f S3E,0%yo+) xi=ApwNj 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
pn
gto /Hyz]46 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
&0Yg:{k$ .p&@;fZ 名称 : wall
*h!fqT%9 使用权限 : 所有使用者
DH-M|~.sf^ IW3k{z 使用方式 :
%w*)7@,+- wall [ message ]
fkBL`[v)4 使用说明:
?)xIn)#ls wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
h_vTA w +t@G`d 例子 :
hfaU-IPcFX )U?_&LY)[M 传讯息"hi" 给每一个使用者 :
:"\,iH wall hi
\^c4v\s<o# 名称 : write
[@vz0!@s5 使用权限 : 所有使用者
NQk aW) I6W`yh`I) 使用方式 :
z1PwupXt1 O?JJE8~'] write user [ttyname]
NXU:b"G
S 说明 : 传讯息给其他使用者
3/kT'r }}JMwT
把计 :
8Xotly QF#w$%7 user : 预备传讯息的使用者帐号
9=%zd z2_S ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
BBB@M u0q$`9J 例子.1 :
4wl1hp>, $;qi-K3j 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
G*fo9eu5$ write Rollaend
I,j4 BU4 Tlsh[@Q 接下来就是将讯息打上去,结束请按 ctrl+c
`Y#At3{ 5Q?Jm~H9 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
z8Q!~NN-K write Rollaend pts/2
*qd:f!Q3 `@~e<s`j 接下来就是将讯息打上去,结束请按 ctrl+c
Y'iX
~t`^|cr| 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
H}^ ' <v_=k],W 名称:kill
:v&[! 使用权限:所有使用者
SS=<\q#MS e1m?g&[ 使用方式:
t'eqk#rq Z!1D4`w kill [ -s signal | -p ] [ -a ] pid ...
9%/hoA) kill -l [ signal ]
KA5)]UF`l 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
gg'1q3OjM 把计?
`8:)? 0Ez zfIo]M` -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
O
VV@ -p : 印出 pid , 并不送出信号
m[9.'@ye -l (signal) : 列出所有可用的信号名称
v= 55{ 范例:
HN5m %R&` Td=4V,BN 将 pid 为 323 的行程砍掉 (kill) :
8\n3
i" kill -9 323
#~*v##^vFH )h{&O
,s 将 pid 为 456 的行程重跑 (restart) :
Z'z)Oo kill -HUP 456
rbw$=bX} )g0lI 名称:nice
`fu_){ 使用权限:所有使用者
@I_cwUO Dyov}y 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
)r2Y@+.FN _bFUr 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
M";qo6 3nq?Y8yac +)Z]<O 把计?
fE#(M +(< M tN>5k c -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
CVj^{||eF --help 显示求助讯息
oaY_6 --version 显示版本资讯
;O"?6d0 范例:
f-ltV<C_ 将 ls 的优先序加 1 并执行 :
*c0H_8e nice -n 1 ls
@T'^V0!-q: XH%L] 将 ls 的优先序加 10 并执行 :
\iuR+I nice ls将 ls 的优先序加 10 并执行
U<Pjn)M~B p8rh`7 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
l& :EKh ]K=#>rZrB 名称:ps
( ;FxKm<P@ 使用权限:所有使用者
eA/n.V$z 使用方式:ps [options] [--help]
$@g]?*L: 说明:显示瞬间行程 (process) 的动态
B VBn.ut 参数:
]P4WfV
d ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Kb.qv)6i* -A 列出所有的行程
D!<F^mtl -w 显示加宽可以显示较多的资讯
gD,&TW -au 显示较详细的资讯
?YhDjQs -aux 显示所有包含其他使用者的行程
w_9^YO!! JzyCeM = au(x) 输出格式 :
@KN+)q P #lYyL`B+~ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
P*|N)S)X% USER: 行程拥有者
q!Du
J PID: pid
aO6\e> %CPU: 占用的 CPU 使用率
LU1I
`E %MEM: 占用的记忆体使用率
h<9s&
p VSZ: 占用的虚拟记忆体大小
jUe@xis<T RSS: 占用的记忆体大小
!FEc:qH TTY: 终端的次要装置号码 (minor device number of tty)
]z'&oz STAT: 该行程的状态:
=~D? K9o D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
KkvcZs'4m R: 正在执行中
L4By5) S: 静止状态
0YH5B5b T: 暂停执行
=7Ln&tZ Z: 不存在但暂时无法消除
O[@!1SKT0 W: 没有足够的记忆体分页可分配
xQoZ[ <: 高优先序的行程
mw@Pl\= N: 低优先序的行程
+C(-f L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
<Xf6?nyZ( START: 行程开始时间
|{(<A4W TIME: 执行的时间
!8{VLg COMMAND:所执行的指令
uYJS=NGNA 范例:
sS D8Sx/ ps
fPR_3qgQ PID TTY TIME CMD
_y@28t 2791 ttyp0 00:00:00 tcsh
Y]z
:^D 3092 ttyp0 00:00:00 ps
<r%K i`u(p % ps -A
+;N]34>S7 PID TTY TIME CMD
LGP"S5V 1 ? 00:00:03 init
r$7. 2 ? 00:00:00 kflushd
CSM"Kz` 3 ? 00:00:00 kpiod
AIF?>wgq 4 ? 00:00:00 kswapd
6g(;2gY 5 ? 00:00:00 mdrecoveryd
bLqy7S9x .......
agIqca; % ps -aux
inh0p^ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
p{f R$-d root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
|z-f8$ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
Y:^hd809 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
'jev1u[ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
-Q
WvB ........
CM6% g f3 名称:pstree
144Y. 使用权限:所有使用者
Q!X?P 使用方式:
OO:S2-]Y>e pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
^T=9j.e'ja pstree -V
B8&q$QV 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
Gh;\"Qx 参数:
|OeyPD# -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
o`T.Zaik, -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
|v&)O)Jg 范例:
Xs03..S pstree
Tz
@<hE ``MO5${ init-+-amd
K'A+V |-apmd
3efOgP=L |-atd
Cxf K(F |-httpd---10*[httpd]
~7m`p3W@ %pstree -p
?<?Ogq"< init(1)-+-amd(447)
c&['T+X |-apmd(105)
c_/BS n |-atd(339)
\CB^9-V3 %pstree -c
!np_B0` init-+-amd
|t,sK aL |-apmd
,=/9Ld2w9 |-atd
,Py\Cp=Dw |-httpd-+-httpd
0.MB;gm: | |-httpd
<)qa{,GX\ | |-httpd
AHf 9H? | |-httpd
tUu'
gs| ....
7e_4sxg'(3 名称:renice
~ua(Qm 使用权限:所有使用者
xIdb9hm< JrP`u4f_ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
E=NjWO Gu;40)gm 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
b
74!Zw ;-d b/$O 把计?
U[]yN.J x]^d'o:cDP -p pid 重新指定行程的 id 为 pid 的行程的优先序
L]Tj]u) -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
>6es
5}
-u user 重新指定行程拥有者为 user 的行程的优先序
@iz Onc: 范例:
,NO[Piok 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
^ u$gO3D renice +1 987 -u daemon root -p 32
35h|?eN_m! `?VK(<w0q 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
z)Rkd0/X %bcf% 7 名称:top
1[P}D~ nQ 使用权限:所有使用者
pa-*&p K1
f1T 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] R
iZ)FW
GT6; I7
说明:即时显示 process 的动态 n:AZ(f
Yy~x`P'g!
把计? e$LC
^ AZ#tp%)
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s b8!oZ~K
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 6
AO(A
*
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 2;)IBvK
s : 安全模式,将交谈式指令取消, 避免潜在的危机 /xn|d#4
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 {_7hX`p
n : 更新的次数,完成后将会退出 top @ &jR^`Y.
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 qlhc"}5x }
fTxd8an{
范例: <IrhR,@M,L
显示更新十次后退出 ; Q%CrB>|@
top -n 10 ^B"LT>.[
}T_"Vg q
使用者将不能利用交谈式指令来对行程下命令 : xQR/Xp!h
top -s ; _%zf5;'
5BrN
uR$
将更新显示二次的结果输入到名称为 top.log 的档案里 : ju2H0AQ
top -n 2 -b < top.log `E~"T0RX
Y3@+aA
名称:skill :tWkK$
&dB@n15'A
使用权限:所有使用者 xM())Z|2
CvIuH=,
使用方式: skill [signal to send] [options] 选择程序的规则 f]*;O+8$LN
rtPo)#t
说明: )xp3
ElH
W@"Rdc-
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 QL0q/S1*
'a(y]QG
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 jV%
VN
4s{=/,f
一般参数:
b>5*G1
tY$@,>2 v
-f 快速模式/尚未完成 }$)~HmZw
m mF0RNE
-i 互动模式/ 每个动作将要被确认 p39$V[*g(
#(
.G;e;w
-v 详细输出/ 列出所选择程序的资讯 gj|5"'g%
mJ%^`mrI
-w 智能警告讯息/ 尚未完成 6{I7=.V
&D<6Go/)_*
-n 没有动作/ 显示程序代号 >p&"X 2
@
&5}YTKe}|
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 k7uX!}
~,,r\Y+
-t 终端机代号 ( tty 或 pty ) rDl/R^w"
ll__A|JQ
-u 使用者名称 B9l~Y/3|
-axKnfj
-p 程序代号 ( pid ) 4{>r_^8
s<*+=aIfu
-c 命令名称 可使用的讯号: e;v7!X
WOPIF~1v
以下列出已知的讯号名称,讯号代号,功能。 , S^y>
I(UK9H{0$
名称 (代号) 功能/ 描述 Q``1^E'
hq"nRH
ALRM 14 离开 rzdQLan
kNP-+o
HUP 1 离开 Vc0j)3
LYAGpcG
INT 2 离开 <hzHrx'o{
Cuylozj$&
KILL 9 离开/ 强迫关闭 r'ilJ("
Zzlt^#KLx
PIPE 13 离开 =lv(
*BxU5)O
POLL 离开 :E{)yT
e@c8Ce|0
PROF 离开 $c*fbBM(&n
^5Y<evjm
TERM 15 离开 7(5d$ W
qKSR5 #
USR1 离开 iK2f]h
#@nPB.
USR2 离开 !" FEp
dkC_Sh{
VTALRM 离开 |>P:R4P
[`|t( E'
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 -qpvVLR,
H M(X8iNt
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 N[9o6Nl|a
Ri"rT] '
TSTP 停止 /产生与内容相关的行为 j7d^ga-`
xJ#O|7N
TTIN 停止 /产生与内容相关的行为 xTk6q*NvT^
]G&[P8hzB
TTOU 停止 /产生与内容相关的行为 3N]ushMO
b+Sj\3fX
STOP 停止 /强迫关闭 !pfpT\i]N:
C!_=L?QT^
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 "[/W+&z[~
(]k Q9}8
PWR 忽略 /在某些系统中会离开 g3s5ra[
J3+qnT8X
WINCH 忽略 ,1~B7Zd
2cu2S"r
CHLD 忽略 =H: N!!:
A99;bf}"
ABRT 6 核心 Zk7!CJVM
Lww&[|k.
FPE 8 核心 ,aWI&ve6
}2Ge??!
ILL 4 核心 DI/d(oFv`
t.&JPTK-H
QUIT 3 核心 <=!t!_
{%6
'|<`[
SEGV 11 核心 Ag3+z+uS
LD{~6RP
TRAP 5 核心 alxIc.[
'"q+[zwv
SYS 核心 /或许尚未实作 Li8/GoJW-T
UQ hD8Z'I.
EMT 核心 /或许尚未实作 b4$g$()
1A93ol=
BUS 核心 /核心失败 aeYz;&K
2./z6jXW_
XCPU 核心 /核心失败 1z; !)pG.
DZ`,QWuA
XFSZ 核心 /核心失败 b L.Xby<Y
Q?.9BM1V
范例: +U'n|>t9
停止所有在 PTY 装置上的程序 vWW Q/^
skill -KILL -v pts/* I 8
?
j!L7r'AV5
停止三个使用者 user1 , user2 , user3 /=V!lRs
skill -STOP user1 user2 user3 \7UeV:3Ojn
6ImW|%
其他相关的命令: kill }<z[t5
名称:expr Dd
OK&
使用权限:所有使用者 J;V#a=I
### 字串长度 \{(cz/]G/
^tyqc8&
shell>> expr length "this is a test" MB5V$toC
14 >!PM5%G
### 数字商数 e\#aQ1?"
shell>> expr 14 % 9 $Q|6W &?[;
5 .|:(VG$MfI
### 从位置处抓取字串 ~hP]<$v
shell>> expr substr "this is a test" 3 5 <,*w$
is is ~urk
Uz
### 数字串 only the first character ;Srzka2
shell>> expr index "testforthegame" e e*<pO@Uy
2 nbw8YO(=
### 字串真实重现 17:7w
shell>> expr quote thisisatestformela u9 *ic~Nh
thisisatestformela