linux常用命令
1DcYc-k# sw*k(i 称:/etc/aliases
{npKdX 使用权限:系统管理者
l1`Zp9I 使用方式: 请用 newaliases 更新资料库
6, ag\ 说明:
<Xw 6m$fr: sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
XboOvdt^| `< y[V /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
o)n8,k&nm # newaliases
"Ks%! ]>E9v&X0 下面命令会做相同的事,
eG# (9 # sendmail -bi
M
"p6xp/ 3hR7 ./ 相关命令:
Bt,qG1>$- mail, mailq, newaliases, sendmail
dv4)fG]W;_ Jf`;F : ” mail [返回]
M4M
4*o 名称:mail
(d993~|h tZ>>aiI3 使用权限:所有使用者
u]E% R& @&+h3dV.V 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
?t)y/@eG x=1G|<z% 说明:
8+a/x#b- mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
4q@o4C<0 b7v] g]* 参数:
wd*T"V3 i 忽略 tty 的中断讯号。 (interrupt)
F-k1yZ?^ I 强迫设成互动模式。 (Interactive)
8!>uC&bE8 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
z1!ya#,$ n 不读入 mail.rc 设定档。
m|~,# d@ s 邮件标题。
f]$g9H c cc 邮件地址。
%H<w.]> b bcc 邮件地址。
_KmpC>J+ eJ{"\c( 范例:
~'fa,XZ< BO[Q"g$Kon 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
X_s;j5ur mail
user1@email.address
#CV(F$\1{ mail
user1@email.address user2
2 )RW*Qu;+ e_]1e7t 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
i )3Y\u i[3$Wi$ mail -s 标题 -c user1 user2 < mail.txt
Ms1\J2 nIph[Vs-Z 指令:mesg
ygpC1nN 使用权限 : 所有使用者
d;lp^K
M MBcOIy[&A 使用方式 : mesg [y|n]
XP2=x_"y 2!68W
X 说明 : 决定是否允许其他人传讯息到自己的终端机介面
+6<MK; LDV{#5J 把计 ?
\07Vh6cj 1b3Lan_2 y : 允许讯息传到终端机介面上。
+Q-~~v7, n : 不允许讯息传到终端机介面上 。
(~Zg\(5#
如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
'4Z%{.; ::H jpM 例子 :
@T/C<- /: 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
vW$]:). mesg n
jn}6yXB 与 mesg 相关的指令有: talk,write,wall。
}r^MXv ~( 名称:/etc/aliases
gK)B3dH*& 使用权限:系统管理者
tY# F8a& 使用方式: newaliases
5@[%P= 说明:
}sJ%InL sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
0SKt8pL` ;t?pyFT2Z /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Ur&: Rr 8QC:ro 参数:没有任何参数。 范例:
w5|@vB/pj # newaliases
'2[ _U&e ^"buF\3L 下面命令会做相同的事,
Bl`e+&b # sendmail -bi
6w1:3~a Kyl( 相关命令:
dje3&a mail, mailq, newaliases, sendmail
) 0}o bPp 名称 : talk
LiV]!*9$KG 使用权限 : 所有使用者
>^InNJd u]dpA 使用方式 :
y
Fp1@*ef Ds}6{']K talk person [ttyname]
Wnf`Rf)1z 说明 : 与其他使用者对谈
|=%$7b\C a}>GQu*y 把计 :
t&r?O dc&m person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ae!_u
\$ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
}f-rWe{gs> 7gQt
k 例子.1 :
r1?LKoJOn A{+ZXu} 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
-;~_]t^a talk Rollaend
wkm
SIN: ^E:;8h4$9 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
.!6ufaf$ T3?kabbF 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
~{NDtB) talk
Rollaend@linuxfab.cx pts/2
i-ogeR? IB;y8e, 5~[Fh2+ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
7L<oWAq @~N#)L^ 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
"t\9@nzdX IS=)J( 0 名称 : wall
QM _~w\ 使用权限 : 所有使用者
H+ M~|Ju7 Ppp&3h[dW) 使用方式 :
&Y#9~$V= wall [ message ]
HE,wEKp 使用说明:
6)bfd^JYn wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
s[s^z<4G 9n%W-R. 例子 :
ljf9L:L ]g)%yuox9F 传讯息"hi" 给每一个使用者 :
ovfw _ wall hi
\@F{Q- 名称 : write
X|q0m3jt 使用权限 : 所有使用者
zYs? w= (f.A5~e 使用方式 :
jyT(LDsS VI+Y 4T@ write user [ttyname]
ePY K^D 说明 : 传讯息给其他使用者
~ZDdzp> tllg$CQ5 把计 :
qzmZ/z96 #tfJ?w` user : 预备传讯息的使用者帐号
4OIN@n*4 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
8'quQCx*= 7SM/bJ-M# 例子.1 :
3&*%>) Rd!.8K[ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
n&Tv]- write Rollaend
.ev]tu2N [{c8:)ar 接下来就是将讯息打上去,结束请按 ctrl+c
~G$OY9UC "l@~WE 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
0y1t%C075 write Rollaend pts/2
s`TBz8QO$ hg&AQk 接下来就是将讯息打上去,结束请按 ctrl+c
Fca?'^X wvYxL
c#p0 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Bl1I "B ]f c:CR 名称:kill
q>X:z0H 使用权限:所有使用者
97g-*K Q:LuRE!t 使用方式:
Umd!j, S:j0&* kill [ -s signal | -p ] [ -a ] pid ...
*Xo f;)Z^ kill -l [ signal ]
";xEuX 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
>@|<1Fx| 把计?
-Tt}M#W $k?L?R1 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
>*(>%E~H -p : 印出 pid , 并不送出信号
M]{!Nx -l (signal) : 列出所有可用的信号名称
sd6Wmmo 范例:
#}Cwn$ 0t&H1xsxX 将 pid 为 323 的行程砍掉 (kill) :
sg y kill -9 323
kO#`m] )}aF=% 将 pid 为 456 的行程重跑 (restart) :
4~/6d9f kill -HUP 456
tv{.iM|V c t5qAH++axN 名称:nice
s [!SG`& 使用权限:所有使用者
j
AE0$u~. 7l p VK] 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
u rOG Oa$ .G]# _U 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
gdT_kb5HL8 vP2QAGk< !L_ SHlU 把计?
uj@<_|7 w\ :b(I -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
&|4Uo5qS=Z --help 显示求助讯息
LNb![Rq --version 显示版本资讯
4tU~ ^z 范例:
Y[DKj!v 将 ls 的优先序加 1 并执行 :
,+RO 5n nice -n 1 ls
cmeyCyV* ? `KOW 将 ls 的优先序加 10 并执行 :
w;(gi nice ls将 ls 的优先序加 10 并执行
{|%O)fr, Dfo9jYPf 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
8GP}g?% (
A) wcB 名称:ps
*J=ol 使用权限:所有使用者
1`t?5|s>
使用方式:ps [options] [--help]
NZuFxJ-` 说明:显示瞬间行程 (process) 的动态
THp `!l 参数:
v\eBL&WK ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
8iN As#s -A 列出所有的行程
o~K 2K5I -w 显示加宽可以显示较多的资讯
-(.7/G'Vk> -au 显示较详细的资讯
57>ne)51 -aux 显示所有包含其他使用者的行程
_ XZ=4s h"ylpv+ au(x) 输出格式 :
OKVYpf <&2,G5XA USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
=1VH5pVr} USER: 行程拥有者
m { fQL PID: pid
ar|[D7Xrq\ %CPU: 占用的 CPU 使用率
\gkajY-? %MEM: 占用的记忆体使用率
dWy1=UQfP VSZ: 占用的虚拟记忆体大小
Z]f2& RSS: 占用的记忆体大小
x,dv~QU TTY: 终端的次要装置号码 (minor device number of tty)
q@9i3*q; STAT: 该行程的状态:
mmL~`i/ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
;Y^RF?un R: 正在执行中
<^Tj}5)n S: 静止状态
m #QI*R
XP T: 暂停执行
0 l@P]_qq` Z: 不存在但暂时无法消除
l,FoK76G W: 没有足够的记忆体分页可分配
s>\g03= <: 高优先序的行程
6~ `bAe`} N: 低优先序的行程
+df?N L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
e 63|Z[8 START: 行程开始时间
o3qv945 TIME: 执行的时间
D3xaR COMMAND:所执行的指令
CE,Om^ 范例:
@U{M"1zZe ps
836m5/kH[ PID TTY TIME CMD
_vH!0@QFU 2791 ttyp0 00:00:00 tcsh
.M2&ad : 3092 ttyp0 00:00:00 ps
e9_+$Oo % ps -A
6sl<Z=E# PID TTY TIME CMD
VWy:U#;+8 1 ? 00:00:03 init
HW726K* 2 ? 00:00:00 kflushd
dA/o4co 3 ? 00:00:00 kpiod
|vz;bJG 4 ? 00:00:00 kswapd
=7fh1XnW 5 ? 00:00:00 mdrecoveryd
"ru1 ;I
.......
(N|xDl&; % ps -aux
&o@5%Rz2/ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
8
-;ZPhN& root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
N RSse" root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
v:MS0] root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
gc3 U/
jM root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
OeGuq.>w ........
PV6*-[ 名称:pstree
J.2]km 使用权限:所有使用者
ZHlin#" 使用方式:
\)ZX4rs{8 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
t[,T}BCy. pstree -V
ddDJXk)!0 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
Y&f[2+?2NK 参数:
3b@1Zahz -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
jA4v?(AO}# -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
$L8s/1up 范例:
K)UOx#xe1 pstree
"!6~*!]c Y0O<]2yVx init-+-amd
y~c[sW |-apmd
ptyDv |-atd
H)T# R? |-httpd---10*[httpd]
S\g7wXH %pstree -p
BON""yIC init(1)-+-amd(447)
!9 LAXM |-apmd(105)
Y~hd<8 ~ |-atd(339)
-^Km}9g %pstree -c
`AHNk7 t= init-+-amd
5zw23! |-apmd
)|R0_9CLV |-atd
1vK(^u[ |-httpd-+-httpd
`Mn{bd | |-httpd
OXX(OCG> | |-httpd
7TPLVa=hO | |-httpd
a~>0JmM+N ....
Bj($_2M%+ 名称:renice
u|>U`[Zpj 使用权限:所有使用者
[I<'E
LX MQH8Q$5D 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
O\F^@;]F6 0*IY%=i 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
:'rZZeb' i^ cM@? 把计?
t>GLZzO 'a/6]%QFd! -p pid 重新指定行程的 id 为 pid 的行程的优先序
H&=4y) /. -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
h9w^7MbO -u user 重新指定行程拥有者为 user 的行程的优先序
wQrPS 范例:
o p5^9`" 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
DD6`k*RIk. renice +1 987 -u daemon root -p 32
us,,W(q 9
roth 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
j X!ftm2 UFAMbI 名称:top
hPi
:31-0 使用权限:所有使用者
0R 5^p 2td|8vDA 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] -kri3?Y,
X.AWs=:-
说明:即时显示 process 的动态 'j<:FUDJ
[(P[qEY
把计? l^y?L4hg)
<_{4-Q>S3#
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s fRa-bqQ
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 RQ)!KlY
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 IfmIX+t?
s : 安全模式,将交谈式指令取消, 避免潜在的危机 9Bvn>+_K
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 C`~4q<W'
n : 更新的次数,完成后将会退出 top :f
!=_^}
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 @uM3iO7&
(T#(A4:6S
范例: vl{_M*w
;
显示更新十次后退出 ; m57tOX
top -n 10 S}p&\w H
yZ~eLWz
使用者将不能利用交谈式指令来对行程下命令 : `_g?y)
top -s J%-lw{FC
Gp3nR<+
将更新显示二次的结果输入到名称为 top.log 的档案里 : `ToRkk&&>{
top -n 2 -b < top.log k1Mxsd
Gg pQ]rw
名称:skill #b"5L2D`y'
qqt.nrQ^
使用权限:所有使用者 NZ+?Ydr8k
'oHOFH9:{b
使用方式: skill [signal to send] [options] 选择程序的规则 wI]R+.
k E#_Pc
说明: L[D/#0qp
Rr;LV<q+
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 )3`
#nf%ojh
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 QOh w
mLk6!&zN
一般参数: XAULD]Q
lF}$`6
-f 快速模式/尚未完成 i h$@:^\
vPl6Dasr
-i 互动模式/ 每个动作将要被确认 WVT5VJ7*
$6&GAJe
-v 详细输出/ 列出所选择程序的资讯 z Jo#3
<E7Vbb9*
-w 智能警告讯息/ 尚未完成 j
zmSFK g*
C`th^dqBV
-n 没有动作/ 显示程序代号 B:A1W{l
k.=S+#"}
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 (|a$N.e&K
x+*L5$;h
-t 终端机代号 ( tty 或 pty ) o~.o^0Y
$YGIN7_Gg
-u 使用者名称 U3|&Jee
y%IG:kZ,
-p 程序代号 ( pid ) @(,{_c]
F3Ak'h{Ay
-c 命令名称 可使用的讯号: */5<L99v
fdq^!MWTi
以下列出已知的讯号名称,讯号代号,功能。 6PQJgki
z5yb$-j
名称 (代号) 功能/ 描述 ;*g*DIR
H6PXx
ALRM 14 离开 kO,VayjT
wUIsi<Oj
HUP 1 离开 /VmCN]2AZ
H ?=pWB
INT 2 离开 '[=yfh
srChY&h?<
KILL 9 离开/ 强迫关闭 ll<9f)
z7t'6Fy9'
PIPE 13 离开 ;oY(I7
s7UhC.>'@
POLL 离开 JJ
N(M*;
BudWbZ5>Ep
PROF 离开 WDoKbTv
p'%: M
TERM 15 离开 =ve*g&
&8X
.!r`f
USR1 离开 4*D fI
[N+ m5{tT
USR2 离开 B::4Qme
=mi:<q
VTALRM 离开 G1?0Q_RN
94p:| 5@
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 =;k+g?.@I
+C'TW^
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 e$ XY\{
A'~%_}
TSTP 停止 /产生与内容相关的行为 [yYH>~SuwZ
;Txv-lfS
TTIN 停止 /产生与内容相关的行为 #4P3xa
EZ%w=
TTOU 停止 /产生与内容相关的行为 !Ig|m+
Z92iil;t
STOP 停止 /强迫关闭 HvqF@/xh
R%Ui6dCLo
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 $KwI}>E4
B0b[p*gIl
PWR 忽略 /在某些系统中会离开 Uw2,o|=O
z_:eM7]jv
WINCH 忽略 #hD}S~
3wN?|N
CHLD 忽略 L(WL,xnBy
`j&0VIU>>
ABRT 6 核心 7xv4E<r2
u0bfX,e2U
FPE 8 核心 YGq=8p7.R
kf%&d}2to
ILL 4 核心 v"P&`1=T
D00G1:Ft(T
QUIT 3 核心 aN^]bs?R
j4~7akG
SEGV 11 核心 H&w:`JYDL3
&a%WM
TRAP 5 核心 {fGd:2dh
..t,LU@|
SYS 核心 /或许尚未实作 :]P~.PD5,
0dgP
EMT 核心 /或许尚未实作 s<[A0=LH
]pW86L%
BUS 核心 /核心失败 %
v;e
R)0N0gH
XCPU 核心 /核心失败 X+=-f^)&
/y}"M
XFSZ 核心 /核心失败 #O2wyG)oU
uije#cj#O
范例: 2v0!` &?M{
停止所有在 PTY 装置上的程序 aWyUu/g<A`
skill -KILL -v pts/* Vy-28icZ`
c_
La^HS
停止三个使用者 user1 , user2 , user3 Iz
DG&c
skill -STOP user1 user2 user3 ?b||Cr
*IC^IC:
其他相关的命令: kill 1HMUHZT
名称:expr 6iG(C.b
使用权限:所有使用者 10p8|9rE}B
### 字串长度 y|$R`P
f|OI`
shell>> expr length "this is a test" 8wr8:(Y$
14 6+.>5e
### 数字商数 Vy__b=ti?
shell>> expr 14 % 9 l , ..5
5 .%q$d d>>
### 从位置处抓取字串 '"y}#h__T
shell>> expr substr "this is a test" 3 5 8{dEpV*
is is bW53" `X
### 数字串 only the first character X0`j-*,FX
shell>> expr index "testforthegame" e 11@]d]v ,
2 iOX Z]Xj5
### 字串真实重现 ~g6"'Cya?k
shell>> expr quote thisisatestformela C,/O
thisisatestformela