linux常用命令
+#2@G}j dvH67 x 称:/etc/aliases
[NR0] #h 使用权限:系统管理者
WoN]eO 使用方式: 请用 newaliases 更新资料库
o>!~*b';g, 说明:
9 ;! uV>-H sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
**
"s~ \n( 'KVbf /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
M\x7=*\ # newaliases
`s]zk {x P-*RN
下面命令会做相同的事,
6'X.[0M # sendmail -bi
X]f#w J^e|"0d 相关命令:
S
a#d?:L mail, mailq, newaliases, sendmail
Q}`2Y^. )@};lmPR ” mail [返回]
9=sMKc%!- 名称:mail
lqwJ F & b]s%B.h 使用权限:所有使用者
e=NQY8? m78MWz]Yo 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
Rg!aKdDl$ U~QCN[gh 说明:
o8yEUnqN mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
v:so85(S< Ii2g+SlQDa 参数:
Qc)RrqYNGF i 忽略 tty 的中断讯号。 (interrupt)
mYU dh L^ I 强迫设成互动模式。 (Interactive)
[~&:`I1 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_*-'yu8# n 不读入 mail.rc 设定档。
N*c?Er@8U s 邮件标题。
oBGst t@ c cc 邮件地址。
*~MiL9m+? b bcc 邮件地址。
)y
[[Se EKI+Dq, 范例:
qhHRR/p ag*Hs<gi 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Toa#>Z*+Rb mail
user1@email.address
0DP%44Cv 9 mail
user1@email.address user2
Aghj) V f1,$<Y|qU 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
_yXeX 71,0v`Z< mail -s 标题 -c user1 user2 < mail.txt
smQpIB; gx{~5&1 指令:mesg
L@x8hUG" 使用权限 : 所有使用者
js$a^6 "$wPq@ 使用方式 : mesg [y|n]
u{dN>}{ R,b O{2O 说明 : 决定是否允许其他人传讯息到自己的终端机介面
TW;;OS[ (Os
OPTp 把计 ?
7Q4PjcD &?ed.V@E5 y : 允许讯息传到终端机介面上。
[Z`:1_^0} n : 不允许讯息传到终端机介面上 。
3qwYicq, 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
@R Yb-d q?'gwH37 例子 :
6
Ge vO3 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
YnL?t-$Gg mesg n
P(gID 与 mesg 相关的指令有: talk,write,wall。
T"0)%k8lJ 名称:/etc/aliases
oKqFZ,m[ 使用权限:系统管理者
`EW_pwZPA 使用方式: newaliases
{83He@ 说明:
, $F0D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
frO/
nx|9 88LbO(q\d /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
oVZ8p- c#-97"_8 参数:没有任何参数。 范例:
d"$oV~>P| # newaliases
9tW.}5V R)d7b,_Yd 下面命令会做相同的事,
l+kg4y # sendmail -bi
?9ho| ^T
J 相关命令:
9;WOqBD mail, mailq, newaliases, sendmail
:FgRe,D 名称 : talk
6}FDLBA 使用权限 : 所有使用者
x@RA1&c g|*eN{g]uE 使用方式 :
;w&yGm .mU.eLM talk person [ttyname]
k=/|?% 说明 : 与其他使用者对谈
B0SmE_u_N .KMi)1L) 把计 :
4oEq,o_ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name u$ / ]59 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
g"AfI ^+l\YB7pD 例子.1 :
?01""Om K@u."eaD 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
~rfjQPbh9x talk Rollaend
FH5 bC6 2A;[Ek6{q 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
cg5{o|x uNGxz*e 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
uM6!RR!~ talk
Rollaend@linuxfab.cx pts/2
j24 FwzA_
nn ') cgx9 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
gBS#Z. `G5wiyH}) 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
;Z~.54Pf{d F0(Sv\<:: 名称 : wall
Q]'!FmXf 使用权限 : 所有使用者
3tcsj0Rb ;GEu.PdxB 使用方式 :
4E(5Ccb wall [ message ]
<R8Z[H:bV 使用说明:
"$V2 $ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
-ZON']|<}k a~TZ9yg+HL 例子 :
DyTk<L g>-[-z$E3 传讯息"hi" 给每一个使用者 :
*^5,7}9Qo wall hi
xa*gQ%+F 名称 : write
nAC#_\ 使用权限 : 所有使用者
._nKM5. QYb?;Z 使用方式 :
Oydmq,sVe( 0-~x[\>> write user [ttyname]
,(=]6V 说明 : 传讯息给其他使用者
ymCIk/\ ~J{{n_G{ 把计 :
H?^#zj`Ex+ <|G~S<y} user : 预备传讯息的使用者帐号
J0! E@ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
6EWB3.x19 {EN@,3bA 例子.1 :
0>MI*fnY" }f'1x%RS^ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
j}*+-.YF write Rollaend
,#O8:s ?C2;:ol 接下来就是将讯息打上去,结束请按 ctrl+c
WkIV vp9<.*h 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
_7.y4zQJ write Rollaend pts/2
5hK\YTU ay|{!MkQ 接下来就是将讯息打上去,结束请按 ctrl+c
.4(f0RG xJGeIh5 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
s@iCfX U *?"{T;4u~O 名称:kill
k|C8sSH 使用权限:所有使用者
5z>\'a1U 28yxX431S 使用方式:
AAY UXY! {\zr_v`g kill [ -s signal | -p ] [ -a ] pid ...
4TE ?mh} kill -l [ signal ]
9v2 ; 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
,RO(k4 把计?
.p}Kl$K] /CE d14. -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
x@}Fn:c!5 -p : 印出 pid , 并不送出信号
,O!aRvzap -l (signal) : 列出所有可用的信号名称
I!O S&8:u 范例:
~=ys~em e !17Z\Ltqyj 将 pid 为 323 的行程砍掉 (kill) :
ybO,~TQ kill -9 323
.Y.#
d7TA mK4|=Q 将 pid 为 456 的行程重跑 (restart) :
jsQ$.)nO kill -HUP 456
(*BW/.Fq =7,UqMl_ 名称:nice
"6QMa,)D 使用权限:所有使用者
d]`,}vi#E9 *)I1gR~ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
;P~S/j[ 8 - S-1<xR 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
.Tv(1HAc2l $'*BS r ngw6?`n- 把计?
V5r7eC 6Qu*' -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
FM[To --help 显示求助讯息
RY<b]| --version 显示版本资讯
Uk6!Sb 范例:
)&Bv\Tfjt 将 ls 的优先序加 1 并执行 :
w%n]~w=8 nice -n 1 ls
AoeW<}MO -5.%{Go$[ 将 ls 的优先序加 10 并执行 :
|hoZ: nice ls将 ls 的优先序加 10 并执行
QovC*1' s\!vko'M 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
q:^Cw8 >IjLFM+U 名称:ps
<LN $[&f# 使用权限:所有使用者
q04Dj-2< 使用方式:ps [options] [--help]
|9eY
R 说明:显示瞬间行程 (process) 的动态
2A+,. S_!x 参数:
,eCXT=6 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
@D=`iG% -A 列出所有的行程
7d)' y -w 显示加宽可以显示较多的资讯
eUlb6{!y? -au 显示较详细的资讯
W<o0Z OO -aux 显示所有包含其他使用者的行程
qH"a ! -+|[0hpw au(x) 输出格式 :
v1)6")8o+ E2D8s=r USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
qw1J{xoHW USER: 行程拥有者
AAgA]OD, PID: pid
>oDP(]YGg %CPU: 占用的 CPU 使用率
xS1|Z|& %MEM: 占用的记忆体使用率
e]?S-J' z VSZ: 占用的虚拟记忆体大小
F2'cL @E3 RSS: 占用的记忆体大小
[hbp#I~*[ TTY: 终端的次要装置号码 (minor device number of tty)
#57z-x[1 STAT: 该行程的状态:
D[M?27 D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
H>6;I R: 正在执行中
IIiN1
Lu,5 S: 静止状态
iZk``5tPE T: 暂停执行
G9Tix\SpF Z: 不存在但暂时无法消除
Hc|U@G W: 没有足够的记忆体分页可分配
*pp1Wa7O <: 高优先序的行程
DU8LU*q' N: 低优先序的行程
S
'+"+%^tj L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
k1zt| START: 行程开始时间
]5/U}Um TIME: 执行的时间
GJPZ[bo COMMAND:所执行的指令
qCN7i&k, 范例:
ulJYJ+CC! ps
e]h'
PID TTY TIME CMD
tb3fz")UC 2791 ttyp0 00:00:00 tcsh
d.oFlT 3092 ttyp0 00:00:00 ps
^iS:mt % ps -A
vW3Zu B PID TTY TIME CMD
4'&BpFDUb 1 ? 00:00:03 init
\}NWR{= 2 ? 00:00:00 kflushd
I=a$1%BzEX 3 ? 00:00:00 kpiod
}*
JMc+!9@ 4 ? 00:00:00 kswapd
a=VT|CX[ 5 ? 00:00:00 mdrecoveryd
x`i`]6q .......
S\gP= .G % ps -aux
*wcoDQ b; USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
4+,Z'J%\[7 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
#SNI
dc>9\ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
pUG fm root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
w[YbL2p root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
=A6O}0z ........
%= y3 名称:pstree
4[ 0?F!% 使用权限:所有使用者
RNtA4rC># 使用方式:
1Z8oN3 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
m]q!y3 pstree -V
6qpV53H 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
d2yHfl]3 参数:
LfXr(2u -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
I.1l -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
5zna?(#} 范例:
J5( D7rp# pstree
ABmDSV5i Uy|=A7Ad
c init-+-amd
?I#hrv@ |-apmd
WPKTX,k |-atd
@6'E8NFl |-httpd---10*[httpd]
j)6B^! %pstree -p
n3j h\ init(1)-+-amd(447)
$IZZ`Z]B |-apmd(105)
6 <S&~q |-atd(339)
bKZ#>%|:o %pstree -c
OUO^/]
J1S init-+-amd
G$uOk?R#5c |-apmd
h]$?~YE |-atd
kA=~8N |-httpd-+-httpd
IF}c*uGj} | |-httpd
{bqKb=nyZ | |-httpd
x]cZm^ | |-httpd
fO!O"D5 ....
<dPxy`_ 名称:renice
$!C+i"q$ 使用权限:所有使用者
cY'To<v [j U 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
,!u@:UBT i9k]Q(o 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
}_l
-'t U*"cf>dB( 把计?
(ul-J4E\O %kFELtx -p pid 重新指定行程的 id 为 pid 的行程的优先序
UZXcKl>u -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
EFt`<qwj -u user 重新指定行程拥有者为 user 的行程的优先序
<`UG#6z8 范例:
r tmt 3 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
15o
*r renice +1 987 -u daemon root -p 32
,Ysl$^\ U]U)' 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
L^{;jgd&T9 $_zkq@ 名称:top
l~!fQ$~ 使用权限:所有使用者
|aAWWd5 =C>`}%XT} 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] |abst&yp
U3+_'"
说明:即时显示 process 的动态 <i\zfa'6
aevG<|qP
把计? 3]OP9!\6
bNpIC/#0K
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s D6)Cjc>a
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 S*m`'
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ^~<Rz q!
s : 安全模式,将交谈式指令取消, 避免潜在的危机 nf.:5I.
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 @))}\:
n : 更新的次数,完成后将会退出 top qTh='~m4[
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 %i
-X@.P
^ lc}FN
范例: &}6ES{Nr8
显示更新十次后退出 ; M:UB>-`bW
top -n 10 Ld3Bi2d|
$<
K)fbG
使用者将不能利用交谈式指令来对行程下命令 : hN:F8r+DG
top -s G1;'nwf}
&*]{"^
将更新显示二次的结果输入到名称为 top.log 的档案里 : y(3c{y@~X
top -n 2 -b < top.log Ma=6kX]
}vUlTH
名称:skill q?-3^z%u
ncJFB,4
使用权限:所有使用者 feI[M;7u
Z~phOv
使用方式: skill [signal to send] [options] 选择程序的规则 FO(0D?PCR
1'v !9
说明: <\d|=>;
)y/DGSd
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 PVD ~W)0m*
?%xhe
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 sE%<"h\_0
}L$Xb2^l
一般参数: 0fPHh>u
,8=`*
-f 快速模式/尚未完成 yw*mA1v
Ng'ZAG;O
-i 互动模式/ 每个动作将要被确认 _L4<^Etfm
4 %!{?[$
-v 详细输出/ 列出所选择程序的资讯 X=p3KzzX
&J^4Y!gt
-w 智能警告讯息/ 尚未完成 ^/ DII`A
,P@/=I5
-n 没有动作/ 显示程序代号 $D/bU lFx
TI[UX16Tz1
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 7moElh v
.qIy7_^
-t 终端机代号 ( tty 或 pty ) ~6-"i0k
si^4<$Nr%j
-u 使用者名称 m/<F 5R
:(l $^
M
-p 程序代号 ( pid ) O\4+_y
&vFqe,Z
-c 命令名称 可使用的讯号: Kl aZZJ
K(Q]&&<
以下列出已知的讯号名称,讯号代号,功能。 <K,%
y(]
O@r.>
名称 (代号) 功能/ 描述 zY1s7/$i
=CKuiO.j
ALRM 14 离开 G !1~i*P$u
Ev+HW x~Y
HUP 1 离开 p]h*6nH>~
i+)}aA
INT 2 离开 9QH9gdiw
+dCDM1{_a
KILL 9 离开/ 强迫关闭 xBL$]>
b'7z DZI]
PIPE 13 离开 8Q^6ibE
+^4BO`
POLL 离开 5oU`[&=Ob
r:c@17
PROF 离开 '_.q_Tf-^
Hbjb7Y?[
TERM 15 离开 C(V[wvL
~[|V3h4v
USR1 离开 L$29L:
$(@o$%d
USR2 离开 "?.'{,Q
4fw1_pv_D
VTALRM 离开 @e!Zc3
xb9Pc.A[
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 &o*s !u
&c!j`86y*
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 %NT`C9][
r zM Fof
TSTP 停止 /产生与内容相关的行为 Ew
%{ i(d
%XP_\lu]
TTIN 停止 /产生与内容相关的行为 D!bKm[T
n+{HNr
TTOU 停止 /产生与内容相关的行为 d ~{jEg
L$+d.=]
STOP 停止 /强迫关闭 <%d51~@={I
gDQkn {T.%
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 gppBFS
R^J.?>0
PWR 忽略 /在某些系统中会离开 t&GA6ML#s
9VoDhsKk
WINCH 忽略 YgE]d?_h
pk-yj~F }
CHLD 忽略 NP K#].F
OUEI~b1
ABRT 6 核心 vKNt$]pm=
q2x|%HRF
FPE 8 核心 (Wd_G-da
<<
3
a<I
ILL 4 核心 cGgM8
_ PXG AS
QUIT 3 核心 tcBC!_vF
xS6(K
SEGV 11 核心 =?/N5O(
lGdM80f
TRAP 5 核心 #TMm#?lC
9=t#5J#O
SYS 核心 /或许尚未实作 N\9}\Rk@
GWF/[%
EMT 核心 /或许尚未实作 ZCy`2Fir
3@^MvoC
BUS 核心 /核心失败 tHrK~|
]g{hhP3>
XCPU 核心 /核心失败 }JRP,YNh
ecr886
XFSZ 核心 /核心失败 Ua):y) A
L|&'jH)
范例: $.H:8^W
停止所有在 PTY 装置上的程序 $/u1chf
skill -KILL -v pts/* -O'{:s~
)!tCC-Cr
停止三个使用者 user1 , user2 , user3 B\Xh3l]+j
skill -STOP user1 user2 user3 F-_%>KJS
=%!e(N'p
其他相关的命令: kill T}C2e! _O
名称:expr 7#QLtU
使用权限:所有使用者 V,V*30K5
### 字串长度 6}ce1|mkg/
}$o*
shell>> expr length "this is a test" IUOxGJ|rO
14 "mP&8y9F
### 数字商数 h }<0 /
shell>> expr 14 % 9 Aj[?aL
5 sU\c#|BSC"
### 从位置处抓取字串 x&'o ]Y
shell>> expr substr "this is a test" 3 5 /\na;GI$
is is M70c{s`w5
### 数字串 only the first character kr%2 w
shell>> expr index "testforthegame" e XC=%H'p
2 Y[2Wt%2\6
### 字串真实重现 !RS9%ES_?
shell>> expr quote thisisatestformela rJ'/\Hh5P
thisisatestformela