linux常用命令
Cj-&L< x@Z{5w_a 称:/etc/aliases
!zF07.(E 使用权限:系统管理者
5l1R")0`t_ 使用方式: 请用 newaliases 更新资料库
7<!x:G?C 说明:
f^B'BioW( sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
KFHZ3HZ:> T=tW'tlT\v /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
v0oVbHO5< # newaliases
'QG`^@Z 8+}rm6Y+ 下面命令会做相同的事,
V~j^ # sendmail -bi
1L4-;HYJm 1b3k|s4 相关命令:
>_ZEQC mail, mailq, newaliases, sendmail
\DS*G7.A+& g:)iEw>a ” mail [返回]
LX7P?j 名称:mail
'LPyh ;!f te-xhJ&K 使用权限:所有使用者
(9I(e^@] q9rm9#}[J# 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
FsJk"$} ZAn @NA= 说明:
n4S`k%CI mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
xw}yl4WT{ v{t
pRL0 参数:
hZ*vk i 忽略 tty 的中断讯号。 (interrupt)
tt?`,G.(] I 强迫设成互动模式。 (Interactive)
2}pZyS v 列印出讯息,例如送信的地点、状态等等。 (verbose)
BYEZ[cM n 不读入 mail.rc 设定档。
JS^DyBXc s 邮件标题。
/Tm+&Jd c cc 邮件地址。
L7buY(F( b bcc 邮件地址。
6CHb\k 0H>gMXWE] 范例:
gR# k' M9R'ONYAa 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Eqz|eS*6 mail
user1@email.address
(JlPe)Q5 mail
user1@email.address user2
z+Fu{<#( eZ(ThA*2=t 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
Gm:s;w-;v EG t
50 mail -s 标题 -c user1 user2 < mail.txt
er7(Wph sk3 9[9 指令:mesg
SkmTW@v 使用权限 : 所有使用者
-`XS2 O)vGIp?f't 使用方式 : mesg [y|n]
8bdO-LJ9 R&.&x'< 说明 : 决定是否允许其他人传讯息到自己的终端机介面
0}NDi|o hxMRmH[f: 把计 ?
E|c(#P{ 1k4\zVgi y : 允许讯息传到终端机介面上。
%_5#2a n : 不允许讯息传到终端机介面上 。
tdxzs_V,- 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
;hDk gp uxD3+Q 例子 :
uPl}NEwU| 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
f^1J_}cL mesg n
&Ril[siw 与 mesg 相关的指令有: talk,write,wall。
__9FQ{Ra 名称:/etc/aliases
7>gjq'0
使用权限:系统管理者
mW'3yM 使用方式: newaliases
mA$y$73=T 说明:
?j/FYi sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
|8CxMs %Hd[,duwO /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Ez|NQ:o LEPLoF3, 参数:没有任何参数。 范例:
*4%pXm; # newaliases
EOu[X'gLr d%0Gsga} 下面命令会做相同的事,
q`r| DcN~ # sendmail -bi
v%cCJ SO# B_ict)}ld 相关命令:
!xck
~EAS mail, mailq, newaliases, sendmail
rN|=cn 名称 : talk
p=nbsS~": 使用权限 : 所有使用者
5Z_C(5)/Y zTB&Wlt 使用方式 :
^zV_vB)n C\5G43` talk person [ttyname]
QyVAs ; 说明 : 与其他使用者对谈
bVU4H$k D#1R$4M= 把计 :
Og% Y._ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name SgxrU&:: ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
i%.NP;Qq]M njxLeDe- 例子.1 :
aBReIK o ?H PAX 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
q( ~rk talk Rollaend
:5&D6 37kFbR@x 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
kH hp;< RVm-0[m} 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
#&kj> talk
Rollaend@linuxfab.cx pts/2
/J-'[Mc'D[ xkRMg2X.>9 kqih`E9P7B 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
Skci;4T( 1}la)lC 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
k^;n$r"i5 wO%lM 名称 : wall
xSD*e 0
使用权限 : 所有使用者
B@M9oNWHu g=nb-A{# 使用方式 :
_:Xmq&<W wall [ message ]
K0(
S%v|,} 使用说明:
_-({MX[3k< wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
kQbZ!yl>[ }ZVond$y4 例子 :
b)'CP Cu* eg/itty 传讯息"hi" 给每一个使用者 :
].xSX0YQ% wall hi
%:`v.AG 名称 : write
C5V}L 使用权限 : 所有使用者
Z qn$ >mG- `$JvWN,kB 使用方式 :
/5Qh*.(S Qb?a[[3 write user [ttyname]
kll!tT-N- 说明 : 传讯息给其他使用者
r craf4% "dIWHfQB 把计 :
Ll; v[Y RBf#5VjOG! user : 预备传讯息的使用者帐号
%Ve@DF8G ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
nu+K
N,3R" |#o' =whTl 例子.1 :
VB*c1i 4Pc-A 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
wJ2cAX;" write Rollaend
G?$o+Y'F ^L$`)Ja 接下来就是将讯息打上去,结束请按 ctrl+c
Ty&1R? YSGE@ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
hQx*#:ns write Rollaend pts/2
+'gO%^{l |OCiq|# 接下来就是将讯息打上去,结束请按 ctrl+c
f> Jj5he/ {7m2vv? Z 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
h# 4n {rMf/ RAE 名称:kill
2{=D)aC$f 使用权限:所有使用者
B1|nT?}J( xK_UkB-$i 使用方式:
PI%l 9k71h`5 kill [ -s signal | -p ] [ -a ] pid ...
0>CG2 SRn kill -l [ signal ]
[ K/l;Zd 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
cJ$jU{} 把计?
9*s8%pL KDEyVYO: -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
n~yHt/T -p : 印出 pid , 并不送出信号
cy,6^d -l (signal) : 列出所有可用的信号名称
}O~D3z4l0 范例:
q]: 72+
sG#O s 将 pid 为 323 的行程砍掉 (kill) :
=JE<oVP8 kill -9 323
wicsf<] #Q7:Mu+ 将 pid 为 456 的行程重跑 (restart) :
z8a{M$-Q kill -HUP 456
.B~yI3D`M B)@Xz<Q 名称:nice
qc,E azmU 使用权限:所有使用者
xwsl$Rj agwbjkU/ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
H.l0kBeG Q +l{> sL 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
(v?@evQ E va&/o?P| aB~k8]q. 把计?
m,+PYq 9J7yR}2-F -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
I>.pkf<V --help 显示求助讯息
Td|,3
n --version 显示版本资讯
BEb?jRMjLg 范例:
Xxh^4vKjX 将 ls 的优先序加 1 并执行 :
Awfd0L;9 nice -n 1 ls
=Ks&m4 UNb7WN 将 ls 的优先序加 10 并执行 :
Ue Ci{W nice ls将 ls 的优先序加 10 并执行
JzN "o' WDxcV% 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
>(H:eRKq x/{-U05 名称:ps
-5og)ZGVUA 使用权限:所有使用者
5:gpynE| 使用方式:ps [options] [--help]
2&S^\kf 说明:显示瞬间行程 (process) 的动态
~`e!$= 参数:
c}OveR$'& ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
+$ djX=3 -A 列出所有的行程
^n~Kr1}nj -w 显示加宽可以显示较多的资讯
*<cRQfA1 -au 显示较详细的资讯
BKTTta1mY -aux 显示所有包含其他使用者的行程
4ZUtK/i+r ~N9k8eT au(x) 输出格式 :
[.|& /O e^q^AP+* USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
*sp")h#Z USER: 行程拥有者
yj_/:eX PID: pid
2* `kkS %CPU: 占用的 CPU 使用率
C&0f8PnD %MEM: 占用的记忆体使用率
r|}Pg}O VSZ: 占用的虚拟记忆体大小
7<70\6 RSS: 占用的记忆体大小
5,XEN$^ TTY: 终端的次要装置号码 (minor device number of tty)
}!fIY7gv STAT: 该行程的状态:
a+z>pV| D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
p\_3g!G' R: 正在执行中
`_LQs9J0J S: 静止状态
X n0HJ^"_ T: 暂停执行
xp:I( Z: 不存在但暂时无法消除
|+8rYIms` W: 没有足够的记忆体分页可分配
V8F!o <: 高优先序的行程
Oq<3&* N: 低优先序的行程
]EF"QLNN( L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
'uz o[>p START: 行程开始时间
[4qvQ7Y
! TIME: 执行的时间
5D/Td#T04 COMMAND:所执行的指令
;ja~Q .}4 范例:
oD2! [& ps
W="pu5q$5 PID TTY TIME CMD
rJf{YUZe 2791 ttyp0 00:00:00 tcsh
a++gwl 3092 ttyp0 00:00:00 ps
@)Vb?|3 % ps -A
.&]3wB~ PID TTY TIME CMD
2va[= >_ 1 ? 00:00:03 init
p?Ux1S 2 ? 00:00:00 kflushd
]{i0?c 3 ? 00:00:00 kpiod
.DwiIr' 4 ? 00:00:00 kswapd
j#c@dze 5 ? 00:00:00 mdrecoveryd
=\8 x .......
tAjT-CXg % ps -aux
![{/V,V]~ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
\l0!si root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
Fi+DG?zu root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
G$*=9` root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
jm&[8ApW root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
|;V-;e* ........
,>(X}Q
名称:pstree
/C`AA/@ 使用权限:所有使用者
ByoI+n* U 使用方式:
-[>J"l pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
se3EI1e pstree -V
ec^{ez@` 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
)qX.!&|I 参数:
s!gVY!0 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
F_@`
<d! -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
%eHr^j~w$ 范例:
Pt-mLINvG pstree
:k_)Bh?+ N>L)2WKFT init-+-amd
)=glN<*? |-apmd
?:GrM!kq76 |-atd
{1UU `d |-httpd---10*[httpd]
[xfg6 %pstree -p
p `oB._
R init(1)-+-amd(447)
nRq[il0 `i |-apmd(105)
Xq"9TYf$ |-atd(339)
V=1yg24B< %pstree -c
a]V#mF |{ init-+-amd
`mZ1!I-T |-apmd
[G+@[9hn% |-atd
U\{I09@E 0 |-httpd-+-httpd
[4;_8-[Nv | |-httpd
B2BG*xa | |-httpd
OPq6)(Q | |-httpd
F-~Xbz% ....
&% (1?\~u 名称:renice
WzdlrkD 使用权限:所有使用者
Eos;7$u[ CucW84H`J 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
fk2Uxg=[ DKlHXEt> 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
01aw+o RM%Z"pc Y6 把计?
tg%<@U`7= |Cfo(]>G -p pid 重新指定行程的 id 为 pid 的行程的优先序
|j8#n`' -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
uRuu!{$ -u user 重新指定行程拥有者为 user 的行程的优先序
UK8k`;^KI 范例:
dj,lbUL 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
3uvl'1(%J renice +1 987 -u daemon root -p 32
rP6k} Cx) N;x 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
s!Id55R] 3!?QQT,!) 名称:top
x )q$.u+ 使用权限:所有使用者
~Wm'~y> g*9&3ov 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] 8z&/{:Z@pH
;%>X+/.y0
说明:即时显示 process 的动态 x1CMW`F
4^6Oh#p0
把计? :w4 H$+j
,:81DA
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s $Ixd;`l*
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 da8
R.1o
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ~Ty6]A
s : 安全模式,将交谈式指令取消, 避免潜在的危机 4g.S!-H@R
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 S[rfcL"
n : 更新的次数,完成后将会退出 top A}"uEk(R
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 oY@]&A^ah
m1 p%,
范例: el^<M,7!
显示更新十次后退出 ; t!ZFpMv]n
top -n 10 q<fj1t1w
p7*7V.>X
使用者将不能利用交谈式指令来对行程下命令 : =Y3 d~~
top -s ,*p(q/kJh~
9I|Q`j?p`
将更新显示二次的结果输入到名称为 top.log 的档案里 : {#{nU NW
top -n 2 -b < top.log %
e70*;
$i
`@0+:
名称:skill LR17ilaa'
+hWeN&A
使用权限:所有使用者 xJvalb
mL,{ZL ^
使用方式: skill [signal to send] [options] 选择程序的规则 l4^8$@;s
,6U=F#z
说明: "yXqf%CGE
Y}x_ud,
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 F|WH=s3
okW'}@jD
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 Pb :6nH=
\ItAc2,Fl
一般参数: ~1{~iB2G
~#zb
-f 快速模式/尚未完成 MD+eLA7
PzLV}
-i 互动模式/ 每个动作将要被确认 -1!s8G
AWmJm)
-v 详细输出/ 列出所选择程序的资讯 Ly/5" &HD
eR8>5:V_
-w 智能警告讯息/ 尚未完成 K*MI8')
z<<aT
-n 没有动作/ 显示程序代号 fli7Ow?M~
|VoYFoiQ
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 X`daaG_l
W!Rr_'yFe)
-t 终端机代号 ( tty 或 pty ) ,H su;I~
~H gN'#Y?
-u 使用者名称
ZW8;?#_
DZ;2aH
-p 程序代号 ( pid ) (WS<6j[q
'seuO!5
-c 命令名称 可使用的讯号: -(.\> F
-_Iuvw
以下列出已知的讯号名称,讯号代号,功能。 iwEHEi%
YpbJoHiSH
名称 (代号) 功能/ 描述 7o M]qLF
EY!P"u;
ALRM 14 离开 $%J$
o Bp.|8-
HUP 1 离开 5 s2/YG=
>5]w\^QN9_
INT 2 离开 !]WC~#|{B
4>[tjz.?k
KILL 9 离开/ 强迫关闭 *FoPs
QnDLSMx)
PIPE 13 离开 fm,:8%
j: B,K.:
POLL 离开 2HvzMo-4
1 ^=[k
PROF 离开 4=n%<U`Z/
27jZ~Bp$
TERM 15 离开 >z a= v
L`Q9-#Y
USR1 离开 `r8bBzr@%
D61e
USR2 离开 }=."X8zOI8
6NqLo^ "g
VTALRM 离开 GUK3`}!%
4?&CK
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Bcy$"F|r
gIXc-=Ut
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 A,#hYi=-,
S1n'r}z8
TSTP 停止 /产生与内容相关的行为 Y~bGgd]T
su]ywVoRT
TTIN 停止 /产生与内容相关的行为 rO{"jJ
j~Xn\~*n
TTOU 停止 /产生与内容相关的行为 4&LoE~
./;*LD
STOP 停止 /强迫关闭 -Qco4>Z 8
|k9A*7I
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 s97L/iH
_`Sz}Yk
PWR 忽略 /在某些系统中会离开 ed)!Snz
N[,/VCW
WINCH 忽略 _.Bite^
) N"gW*
CHLD 忽略 MtO p][i
%4E7 Tu,1
ABRT 6 核心 Ycx$CUC
(gv
~Vq
FPE 8 核心 D+
**o
M+TF0c
ILL 4 核心 ETVT.R8
>taZw'
QUIT 3 核心 &9'JHF!l
>(HUW^T/9z
SEGV 11 核心 9w FQ<r
I2=Kq{
TRAP 5 核心 R OQIw
=<[ZFO~v
SYS 核心 /或许尚未实作 p{Gg,.f!HM
s2ys>2k
EMT 核心 /或许尚未实作 i(c'94M
DP_bB(
BUS 核心 /核心失败 62LQUl]<
1P\_3.V{
XCPU 核心 /核心失败 Z;mDMvIu (
ZvO:!u0+"
XFSZ 核心 /核心失败 uQ.VW/>
BPd]L=,/
范例: yMa5?]J
停止所有在 PTY 装置上的程序 3?uP$(l
skill -KILL -v pts/* , 0rC_)&B
v+=_
停止三个使用者 user1 , user2 , user3 J=U7m@))Y#
skill -STOP user1 user2 user3 Q$9`QY*6"p
b\\?aR
|
其他相关的命令: kill vu.f B4
名称:expr Ic/<jFZXM
使用权限:所有使用者 JhDjY8?86
### 字串长度 :1>R~2
|E]YP~h
shell>> expr length "this is a test" }q
?iJ?P
14
Z{n7z$s*
### 数字商数 /bylA`IMW
shell>> expr 14 % 9 `"CF/X^
5 uS|Zkuk[!
### 从位置处抓取字串 u;:N 4d=f'
shell>> expr substr "this is a test" 3 5 \9/n~/{
is is $P@P}%2
### 数字串 only the first character
t5N4d
shell>> expr index "testforthegame" e |R*fw(=W
2 _H8)O2mJ
### 字串真实重现 +o/;bm*U<K
shell>> expr quote thisisatestformela O'-lBf+<
thisisatestformela