linux常用命令
,$&&-p I] u\JNr}bL 称:/etc/aliases
l1Fc>:o{ 使用权限:系统管理者
k"w"hg&e 使用方式: 请用 newaliases 更新资料库
t\ewHZG" 说明:
v|2T%y_
u sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
q> C'BIr 65^9 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
GR32S=\ # newaliases
[!OxZ! 6)Lk-D 下面命令会做相同的事,
2jhxQL # sendmail -bi
Q]>.b%s[ 4HA<P6L 相关命令:
HHsmLo c4 mail, mailq, newaliases, sendmail
M =r)I~ #;nYg?d= ” mail [返回]
^gnZ+`3 名称:mail
M/K5#8Arj [ibu/W$ 使用权限:所有使用者
sON|w86B ?5
7Sk+ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
w`zTR0` C~iL3Cb 说明:
'Qe;vZ31K mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
_a T5jR= y
h9*z3 参数:
p.?rey<% i 忽略 tty 的中断讯号。 (interrupt)
d-dEQKI?; I 强迫设成互动模式。 (Interactive)
RrQJ/ts7} v 列印出讯息,例如送信的地点、状态等等。 (verbose)
[HZv8HU| n 不读入 mail.rc 设定档。
<W $mj04@ s 邮件标题。
Y/zj[> c cc 邮件地址。
JcxThZP~ b bcc 邮件地址。
?<'}r7D O@C@eW# 范例:
jtc]>]6i I9hK }D 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
hZ mail
user1@email.address
H~1jY4E mail
user1@email.address user2
N[
Og43Y E09:E 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
5]Y?m' 81
sG mail -s 标题 -c user1 user2 < mail.txt
|_@>*Vmg HCC#j9UN6 指令:mesg
A{D];pE` 使用权限 : 所有使用者
JrRH\+4K F@B]et7 使用方式 : mesg [y|n]
b!5~7Ub.No + @s"zp;F 说明 : 决定是否允许其他人传讯息到自己的终端机介面
_^%,x q9r[$%G 把计 ?
x-&@wMqkc CdjI` y : 允许讯息传到终端机介面上。
PBTnIU n : 不允许讯息传到终端机介面上 。
6zuTQ^pz 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
t=W}SH V{3x!+q 例子 :
+*/Zu`kzX 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
U>}w2bZ* mesg n
fSvM(3Y<Qh 与 mesg 相关的指令有: talk,write,wall。
:(*V?WI 名称:/etc/aliases
u^8{Z;mm 使用权限:系统管理者
ML56k~"BL 使用方式: newaliases
t)$:0 说明:
OU
$#5 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
_H7x9
y= PmEsN&YP] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
-3Z,EaG^ Vd+T$uC 参数:没有任何参数。 范例:
4yr'W8X_ # newaliases
=|y9UlsD `%"\@< 下面命令会做相同的事,
0gP}zM73 # sendmail -bi
">,|V-H Ww+IWW@ 相关命令:
,Np0wg0 mail, mailq, newaliases, sendmail
Nkth>7* 名称 : talk
3J|F?M"N7 使用权限 : 所有使用者
`MN4uC z3m85F%dR 使用方式 :
A>;bHf@ k1Y ? talk person [ttyname]
#:U%mHT(_ 说明 : 与其他使用者对谈
bSi%2Onj `w7v*h|P 把计 :
'9Xu
p person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name pG^ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
=M[bnq*\ -[9JJ/7y
例子.1 :
;LPfXpR M@H;pJ+B 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
}Gm>`cw- talk Rollaend
t[;LD_ J~zUp(>K 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
Val|n*% l<LP& 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
kY|utoAP talk
Rollaend@linuxfab.cx pts/2
7yH"l9Z `O!X(( O1U= X:Zl 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
4I
k{ ~IfJwBn-i 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
,,&*:<Q ~"&|W'he[ 名称 : wall
i$:*Pb3mV 使用权限 : 所有使用者
p{Yv3dNl qYjce]c 使用方式 :
~hnQUS`A wall [ message ]
y^,1a[U. 使用说明:
]}-7_n#cC wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
F|o:W75 G%AbC" 例子 :
L_uVL#To ~ Ei $nV 传讯息"hi" 给每一个使用者 :
mzaWST] wall hi
D9CaFu 名称 : write
p$NQyS5C"S 使用权限 : 所有使用者
Ustv{:7v J!v3i*j\ 使用方式 :
jk; clwyz/ [#<-ZC#T* write user [ttyname]
?wiCQ6*$ 说明 : 传讯息给其他使用者
fcRxp{*zO G_3O]BMKd) 把计 :
zl>nSndRE av}k)ZT_ user : 预备传讯息的使用者帐号
+eWQa`g ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
[fya)} +qtJaYf/0 例子.1 :
*v
jmy/3 N
,'GN[s 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
axv>6k write Rollaend
RE7?KR> =r?hgGWe 接下来就是将讯息打上去,结束请按 ctrl+c
;v)JnbsH} <y2U3;t 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
Zw
26 write Rollaend pts/2
<Dl*l{zba Xk~D$~4< 接下来就是将讯息打上去,结束请按 ctrl+c
oo/qb`-6 U2tV4_ e 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
b(eNmu :}L[sl\R 名称:kill
'Vzp2 使用权限:所有使用者
sQUM~HD\a `quw9j9`C\ 使用方式:
fa
jGZyd0: <.x{|p kill [ -s signal | -p ] [ -a ] pid ...
m)ky*"( kill -l [ signal ]
Q04al= 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
vjbASFF0= 把计?
9tU]`f oA7tEu -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
Dzpq_F!;V -p : 印出 pid , 并不送出信号
dc+>m,3$ -l (signal) : 列出所有可用的信号名称
^]>O;iB? 范例:
j"t(0m OZb-:!m* 将 pid 为 323 的行程砍掉 (kill) :
'Cb6Y#6 kill -9 323
SXSgld2uS h"[AOfTE$ 将 pid 为 456 的行程重跑 (restart) :
1jmjg~W kill -HUP 456
wjU9ZGM .Yamc#A- 名称:nice
t>L2 使用权限:所有使用者
fbyd"(V8r 2jA {SY- 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
fF!Yp iI" gldAP: 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
KaLzg5is l]
K3Y\#bP =Pyj%4Rs 把计?
<v"R.< #>a\>iKQ2q -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
BwN0!lsF3 --help 显示求助讯息
XnH05LQ --version 显示版本资讯
rP'me2
B 范例:
H9Gh>u]} 将 ls 的优先序加 1 并执行 :
pN,u`[ nice -n 1 ls
s-NX o #JqB ;'\ 将 ls 的优先序加 10 并执行 :
Gf%~{@7=u nice ls将 ls 的优先序加 10 并执行
(=FRmdeYl1 dUD[e,? 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
DcS+_>a\{l j}#w)M 名称:ps
"-E\[@/ 使用权限:所有使用者
c rQ8q;: 使用方式:ps [options] [--help]
!K#qe Y} 说明:显示瞬间行程 (process) 的动态
B5`EoZ 参数:
#]-SJWf3 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
$o!zUH~'v -A 列出所有的行程
qfX6TV5J}! -w 显示加宽可以显示较多的资讯
Mg+2.
8% -au 显示较详细的资讯
YByLoM* -aux 显示所有包含其他使用者的行程
8u"U1 XjB W9a au(x) 输出格式 :
gZVc 5u< y1z4ik)Sd@ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
"BAK !N$9 USER: 行程拥有者
[=C6U_vU PID: pid
r[e##M %CPU: 占用的 CPU 使用率
y-Fo=y %MEM: 占用的记忆体使用率
>:SHV W VSZ: 占用的虚拟记忆体大小
z xEL+ P RSS: 占用的记忆体大小
aI'&O^w+ TTY: 终端的次要装置号码 (minor device number of tty)
XMZ,Y7 STAT: 该行程的状态:
/>C^WQI^ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
pR<`H' R: 正在执行中
p;a,#IJu S: 静止状态
vN}#Kc\ T: 暂停执行
-au^;CM Z: 不存在但暂时无法消除
VCYwzB W: 没有足够的记忆体分页可分配
t6rRU~;} <: 高优先序的行程
cx,+k]9D N: 低优先序的行程
! 6 #X>S14 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
>\R+9p:o START: 行程开始时间
_IMW{ TIME: 执行的时间
@ 6\I~s( COMMAND:所执行的指令
RIR\']WN 范例:
ME$[=?7XX ps
'$Dn PID TTY TIME CMD
T}Tp$.gB 2791 ttyp0 00:00:00 tcsh
hwuiu* 3092 ttyp0 00:00:00 ps
2F;y;l% % ps -A
$V;i
'(&7 PID TTY TIME CMD
8bGd} ( 1 ? 00:00:03 init
E*&vy 2 ? 00:00:00 kflushd
B^=-Z8 3 ? 00:00:00 kpiod
JR|ck=tq 4 ? 00:00:00 kswapd
r;2^#6/Z 5 ? 00:00:00 mdrecoveryd
,p a {qne .......
_f,C[C[e& % ps -aux
BlO<PMmhT& USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
kZ:ZtE root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
qR{=pR root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
wlvgg root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Izc\V9+ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
kTB0b*V ........
i]4I [! 名称:pstree
}<r)~{UV 使用权限:所有使用者
vr l-$ii 使用方式:
Q&;9x? e pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
bJ%h53 pstree -V
,0 sm 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
xo&_bMO 参数:
rlLMT6r.8 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
w&#]-|$ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
yyJf%{ 范例:
/ SB;Von pstree
6gE7e|+ +'a^f5 init-+-amd
am'7uy!ka~ |-apmd
59A}}.@?m |-atd
dn3y\ |-httpd---10*[httpd]
8<.Oq4ku %pstree -p
fr3d init(1)-+-amd(447)
)10+@d |-apmd(105)
4VSU8tK|N] |-atd(339)
0S~rgq|O %pstree -c
eMsd37J init-+-amd
HV|,}Wks6s |-apmd
O>,e~#! |-atd
>bW#Zs,6 |-httpd-+-httpd
?a5! H*, | |-httpd
0h_|t-9j | |-httpd
cwg"c4V | |-httpd
5;EvNu ....
?tbrbkx 名称:renice
jLluj 使用权限:所有使用者
&QgR*,5eo %h@EP[\ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
5b*C1HS@X L0o\J` : 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
!|(NgzDP/ rILYI;'o 把计?
&u
!,Hp z}
#JK?u -p pid 重新指定行程的 id 为 pid 的行程的优先序
4pvMd -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
U xGApK=X -u user 重新指定行程拥有者为 user 的行程的优先序
e^voW"?% 范例:
xJe%f\UDu 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
})%{AfDRF renice +1 987 -u daemon root -p 32
Zh~'9 JH !a\^Sk
/ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
a7opCmL 2?Vd 5xkt 名称:top
ob]w;" 使用权限:所有使用者
Pm7}"D'/ Pq$n5fZC! 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ,P0) 6>
5 qA'
说明:即时显示 process 的动态 !N^@4*
0y\Z9+G:
把计? /;$[E
@6.vKCSE
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s DEgXQ[
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 AbM'3Mkz
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 <P<z N~i9j
s : 安全模式,将交谈式指令取消, 避免潜在的危机 Q>z8IlJ}
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ueNS='+m
n : 更新的次数,完成后将会退出 top 8ao _i=&x
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 dE3) |%
{!`6zBsP
范例: ]?4hyN
显示更新十次后退出 ; >$7B
wO
top -n 10 ['D]>Ot68
P+}h$_x
使用者将不能利用交谈式指令来对行程下命令 : v$9y,^p@e
top -s zQ PQ
a+QpM*n7Lq
将更新显示二次的结果输入到名称为 top.log 的档案里 : 46;uW{EY
top -n 2 -b < top.log Zd+bx*rD
W,u:gzmhw
名称:skill lTsjxw
o
vDvFL<`vmD
使用权限:所有使用者 =(^3}x
9+N-eW_U
使用方式: skill [signal to send] [options] 选择程序的规则 jEwIn1
2<3K3uz
说明: :Dp0?&_
,,r>,Xq6
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 5zJq9\)d+
Ys7]B9/1O
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 7EJ+c${e.-
*1"+%Z^
一般参数: 8Fub<UhJ
;VK.2^jW!
-f 快速模式/尚未完成 fqd^9wl>P6
'"Nr, vQo
-i 互动模式/ 每个动作将要被确认 VU#7%ufu&
&,/S`ke=
-v 详细输出/ 列出所选择程序的资讯 @)}L~lb[)
k:%%/
-w 智能警告讯息/ 尚未完成 (k P9hcV
{`_i`
-n 没有动作/ 显示程序代号 kx CSs7J/
\7_y%HR
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 r_d!ikOT(
qgB_=Q#E
-t 终端机代号 ( tty 或 pty ) /kG_*>.Z
gDzK{6Z}
-u 使用者名称 ,: ^u-b|
+|f@^-
-p 程序代号 ( pid ) }B^tL$k
8CE = 4
-c 命令名称 可使用的讯号: QWU-m{@~&
'fW-Y!k%
以下列出已知的讯号名称,讯号代号,功能。 HKe K<V
06jQE2z2R
名称 (代号) 功能/ 描述 I 6O
VaPG-n>Vf
ALRM 14 离开 R-14=|7a-
7Yy ;
HUP 1 离开 {G-kNU
"jCu6Rj d
INT 2 离开 r<\u6jF
8EY:tzw
KILL 9 离开/ 强迫关闭 /@5YW"1
Zd&S@Z
PIPE 13 离开 ! P4*+')M
`u\n0=go
POLL 离开 4K74=r),i
b Zt3|
PROF 离开 t,'<gI
.C(tMF]D,
TERM 15 离开 =c7;r]Ol
`mqMLo*
USR1 离开 IA(5?7x`<
^Dx&|UwiZa
USR2 离开 E"0>yl)
jdBLsy@
VTALRM 离开 .(vwIb8\_
11lsf/IP
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 2pAW9R#UV-
I@3MO0V^
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 s`UJ1eJ
#;<Y[hR{P
TSTP 停止 /产生与内容相关的行为 KSL`W2}
pJ{Y
lS{
TTIN 停止 /产生与内容相关的行为 "5
A!jq
.^g p?
TTOU 停止 /产生与内容相关的行为 KmF]\:sMD
uq{beC
STOP 停止 /强迫关闭 uw7zWJ
n
{b{s<@?
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 liSmjsk
H>C=zo,oiC
PWR 忽略 /在某些系统中会离开 c9Yrw^
`x|?&Ytmf9
WINCH 忽略
@8
6f
<}LC~B!
CHLD 忽略 *`U~?q}
Je{ykL?N
ABRT 6 核心 cu6Opq9
Ls%MGs9PI
FPE 8 核心 =#\:}@J5I
*](iS
ILL 4 核心 h\e.e3/
|{8Pb3#U
QUIT 3 核心 % `3jL7|
Lv%x81]K
SEGV 11 核心 kP"9&R`E
Q;u pau
TRAP 5 核心 }'.m*#Y
#F#%`Rv1
SYS 核心 /或许尚未实作 `9 L>*
}*-@!wc-N
EMT 核心 /或许尚未实作 <qSC#[xu
pUTr!fR
BUS 核心 /核心失败 kFB
:>*7=q=
XCPU 核心 /核心失败 weQ_*<5%
(?c-iKGc
XFSZ 核心 /核心失败 2?5>o!C
N0lC0
N?_J
范例: :0ep(<|;
停止所有在 PTY 装置上的程序 [~^0gAlQC
skill -KILL -v pts/* TO_e^A#
ZEQ Ex]Y
停止三个使用者 user1 , user2 , user3 J1vR5wbu
skill -STOP user1 user2 user3 /mMV{[
rZF*q2?
其他相关的命令: kill hc1N~$3!G
名称:expr +%&yJ4-
使用权限:所有使用者 <UI
[%yXj
### 字串长度 ?CZd Ol
[ }:$yg
shell>> expr length "this is a test" 9z0p5)]n>
14 y2v^-q3
### 数字商数 ebq4g387X
shell>> expr 14 % 9 :U\tv[
5 !W\+#ez
### 从位置处抓取字串 DqPw#<"H
shell>> expr substr "this is a test" 3 5 =vPj%oLp'a
is is [Zrr)8A
### 数字串 only the first character R/_&m$ZB
shell>> expr index "testforthegame" e FlQGgVN
2 )1z@
### 字串真实重现 =v\.h=~~
shell>> expr quote thisisatestformela >sF)BoLc
thisisatestformela