linux常用命令
Qksw+ZjY#{ 8y|(]5
'r 称:/etc/aliases
fQOaTsyA 使用权限:系统管理者
%6Hn1'7+v 使用方式: 请用 newaliases 更新资料库
Gps 说明:
1;? L:A sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
'v6Rd)E\z 6TfXz2D'J /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
>f`}CLsY # newaliases
sUj#:X w\$b(HC 下面命令会做相同的事,
Plm3vk= # sendmail -bi
t9 &O0tpe }pTw$B 相关命令:
o<V-gS mail, mailq, newaliases, sendmail
g](m& O '\_ic=&u ” mail [返回]
#GWQ]r? 名称:mail
[POy"O >4h4t/G 使用权限:所有使用者
`kekc.*-[@ fK4laDBTO 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
8 ehC^Cg nr s!e 说明:
E62*J$wN@ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
X 8[T*L. u6(7#n02 参数:
WY*}|R2R i 忽略 tty 的中断讯号。 (interrupt)
=1\'xz}p? I 强迫设成互动模式。 (Interactive)
!my5-f>{( v 列印出讯息,例如送信的地点、状态等等。 (verbose)
9]AKNQq m n 不读入 mail.rc 设定档。
?#FAa, s 邮件标题。
^e&,<+qY c cc 邮件地址。
s-8>AW
ep b bcc 邮件地址。
jg%D
G2 jj.]R+.G 范例:
ghms-.:b8 <<UlFE9" 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
k{@z87+& mail
user1@email.address
<JKPtF2b mail
user1@email.address user2
}jIb ^|#CD [oKB1GkA 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
tH W"eag YI\^hP# mail -s 标题 -c user1 user2 < mail.txt
rbP.N
?YU% (TnYUyFP` 指令:mesg
1XHGW=n 使用权限 : 所有使用者
9oGsrClH L`Qiu@ 使用方式 : mesg [y|n]
2<.}]yi @]2cL 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Crww\#E; JBU
qZ 把计 ?
@|d|orMC x6$P(eN y : 允许讯息传到终端机介面上。
r)7A# 3wId n : 不允许讯息传到终端机介面上 。
B\<zU 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
9cj=CuE wHIS}OONz 例子 :
u$a%{46 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
$"_D"/* mesg n
Z ,T TI>P 与 mesg 相关的指令有: talk,write,wall。
=x[`W9.D 名称:/etc/aliases
hob%'Y5%D 使用权限:系统管理者
%ecg19~L/} 使用方式: newaliases
TF{
xFb) 说明:
=(hEr=f>7 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
,u\M7,a^ @Z |cUHo /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
A Ys<IMQ h|jsi*4NnL 参数:没有任何参数。 范例:
7J')o^MG # newaliases
$ cK9E:v
gZvl
D 下面命令会做相同的事,
nR
,j1IUF # sendmail -bi
^KlMBKWyB =v8#@$ 相关命令:
nE/T)[1| mail, mailq, newaliases, sendmail
H"n"Q:Yp 名称 : talk
E%40u.0 使用权限 : 所有使用者
/5wvXk|@ 7H./o Vl 使用方式 :
hd^?svID C\fc 4 talk person [ttyname]
*[ A%tj% 说明 : 与其他使用者对谈
zIm$S/Qe* ea B-u 把计 :
`Th!bk person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 98V9AOgk ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
~rKo5#D O(!wDnhc 例子.1 :
Os[^ch ;=_KLG < 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
5[;p<GqGN talk Rollaend
JEBx|U$'Y ))k^7g9M` 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
/@% Z !hDTT 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
;AHa|35\ talk
Rollaend@linuxfab.cx pts/2
H!s &]b 1Z*-@%RX OcIJT1 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
~+4OG 0 r5r K> 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
}_Jai4O Ig S.U 名称 : wall
O":x$>'t 使用权限 : 所有使用者
/Nxy?g|, sV{[~U,| 使用方式 :
;O.U-s wall [ message ]
L$Ss]Ar= 使用说明:
+mH Kk wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
f?
ko%c_p \|wVIi 例子 :
\1|T &@{Ba~S 传讯息"hi" 给每一个使用者 :
0y6nMI wall hi
2MJ0[9 名称 : write
J *^|ojX 使用权限 : 所有使用者
]D<r5P% x{IOn;>R 使用方式 :
/G</ [ N5 whRc YnJ write user [ttyname]
|\elM[G"g 说明 : 传讯息给其他使用者
U3p=H^MB. "iOT14J!7 把计 :
DJ=miJI' HO$s&}t user : 预备传讯息的使用者帐号
191O(H ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
iF<VbQP=X^ ^
zo"~1 例子.1 :
$|sRj!F "-N%`UA 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
'w!Hjq]$ write Rollaend
&9TG&~(+ g$$uf[A-SL 接下来就是将讯息打上去,结束请按 ctrl+c
4Mnne'7 J]Uki*s 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
'{Iv?gh" write Rollaend pts/2
g+)T\_#u ud!iy 接下来就是将讯息打上去,结束请按 ctrl+c
y%3Yr?] [@.%6aD 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Qt!l-/flh uKhfZSx0w 名称:kill
JCS$Tm6y<_ 使用权限:所有使用者
Vb0hlJb OTalR;:]r 使用方式:
^Cpvh}1# z\Qg 3BS kill [ -s signal | -p ] [ -a ] pid ...
He&dVP kill -l [ signal ]
]<TgBo| 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
K4A=lD+ 把计?
!QP~#a% o;-)84Aa -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
TRX; m|
-p : 印出 pid , 并不送出信号
@cSz!E} -l (signal) : 列出所有可用的信号名称
-1Tws|4gc 范例:
Q%q_ a?&oOQd-iP 将 pid 为 323 的行程砍掉 (kill) :
jC <<S kill -9 323
glPOW ym<G.3%1 将 pid 为 456 的行程重跑 (restart) :
Z2hRTJJ[A kill -HUP 456
NDCZc_ Bd)Qz(>rw 名称:nice
?%B%[u 使用权限:所有使用者
ZZ?=^g e9"<.:& 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
d-39G*;1 /]iv9e{uh( 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
Rq9v+Xq2 UiF ?Nx~ 1JJQ(b 把计?
>8o RO LlX 7g_! -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
vM|?;QM --help 显示求助讯息
n%W~+ --version 显示版本资讯
EKq9m=Ua@o 范例:
VO[s:e9L 将 ls 的优先序加 1 并执行 :
3*XX@>|o nice -n 1 ls
qdNYY&6>?u (fb&5=Wzw 将 ls 的优先序加 10 并执行 :
C6:<.`iD87 nice ls将 ls 的优先序加 10 并执行
!x|OgvJ h7kGs^pP 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
Y <Ta2H WX]kez{<uP 名称:ps
Yb6(KT 使用权限:所有使用者
M|6
W<y 使用方式:ps [options] [--help]
gx@b|rj; 说明:显示瞬间行程 (process) 的动态
jA<v<oV 参数:
ZrXvR`bsw ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Ah)_mxK -A 列出所有的行程
[6)`wi -w 显示加宽可以显示较多的资讯
l+y/ Mq^QB -au 显示较详细的资讯
q-X)tH_+w@ -aux 显示所有包含其他使用者的行程
|OhNQoTY Xn9TQ"[4 au(x) 输出格式 :
C] \r~f h+}`mi USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
%Mz(G-I.\ USER: 行程拥有者
`A$yF38! PID: pid
dX,2cK[aG %CPU: 占用的 CPU 使用率
lMF j"x\ %MEM: 占用的记忆体使用率
??ah VSZ: 占用的虚拟记忆体大小
"JKrbgN@;L RSS: 占用的记忆体大小
T&X*[kP TTY: 终端的次要装置号码 (minor device number of tty)
M($dh9 A_ STAT: 该行程的状态:
v8Bi 1,g D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
D8C@x` R: 正在执行中
a[[u>oHyd S: 静止状态
j*rra T: 暂停执行
UYD(++ Z: 不存在但暂时无法消除
Z?O aY4 W: 没有足够的记忆体分页可分配
lmo>z'< <: 高优先序的行程
`lqMifD N: 低优先序的行程
<s)+V6\E L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
FsTE.PT START: 行程开始时间
qun#z$ TIME: 执行的时间
=>n:\_*M COMMAND:所执行的指令
]?/[& PP, 范例:
rhHX0+ ps
-=s7Q{O8Z PID TTY TIME CMD
8s6[?=nM 2791 ttyp0 00:00:00 tcsh
o_vK4%y( 3092 ttyp0 00:00:00 ps
wVP{R3 % ps -A
w}K<,5I> PID TTY TIME CMD
0^?(;AK 1 ? 00:00:03 init
:p%nQF,*f 2 ? 00:00:00 kflushd
VfAIx]Fa 3 ? 00:00:00 kpiod
vZq7U]RW 4 ? 00:00:00 kswapd
oslV@v
F 5 ? 00:00:00 mdrecoveryd
)g(2xUk-y .......
i/NY86A % ps -aux
cRDjpc] USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
,AhQA root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
K%1'zSAyK root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
''s]6Jjw root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
)PVX)2P_C root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
593D/^}D ........
%o.{h 名称:pstree
GL(R9Y 使用权限:所有使用者
c{ +Y$ 使用方式:
xoA\^AA pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
4Fgy<^94` pstree -V
xbxU`2/ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
q]`XUGC 参数:
F'|D -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Xd!=1:: -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
Azxy!gDT" 范例:
^
RU"v> pstree
"|gNNmr @=E@
*@g init-+-amd
Z6
E-FuO |-apmd
&D\~-fOGb |-atd
A?06fo, |-httpd---10*[httpd]
l[fU0;A %pstree -p
1;i[H[hNY init(1)-+-amd(447)
wBTnI>l9[ |-apmd(105)
o;7!$v>uK |-atd(339)
LZqx6~]O %pstree -c
GE\@mu *pO init-+-amd
5lu620o |-apmd
KcF2}+iM |-atd
xwW[6Ah |-httpd-+-httpd
#6[FGM | |-httpd
& ;ie+/B | |-httpd
q*SX.A>YR | |-httpd
vq
B)PL5) ....
L0/0<d(K 名称:renice
s_yY,Z: 使用权限:所有使用者
}Gqx2 )H }b~;x6 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
MW=2GhD= \(R(S!xr_
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
DI'wZySS^ Ratg!l|'- 把计?
8j. 9Sk/ hub1rY|No -p pid 重新指定行程的 id 为 pid 的行程的优先序
Mf^ ;('~ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
wLAGe'GX -u user 重新指定行程拥有者为 user 的行程的优先序
Nc()$Nl8 范例:
3ybEQp9 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
lY
yt8H renice +1 987 -u daemon root -p 32
$cHA_$ ` [R iCa 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
MM"{ehd{^a a.L ?J 名称:top
+O`0Mc$%' 使用权限:所有使用者
CaX&T2( H,9e<x#own 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] 0%7c?3#
dW
Y0
说明:即时显示 process 的动态 A_6b 4T
IKb 7#Ut
把计? lwIU|T<4
US 9cuah1/
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s &EYO[~D06
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ?*zRM?*
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 |d?0ZA:z
s : 安全模式,将交谈式指令取消, 避免潜在的危机 {x40W0
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 m*tmmP4R
n : 更新的次数,完成后将会退出 top /v7U~i5
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 qd6XKl\5
'9>z4G*Td
范例: P^#<h"Ht
显示更新十次后退出 ; a$.(Zl
top -n 10 f'Dl*d
dWwh?{n
使用者将不能利用交谈式指令来对行程下命令 : ^CX=<
top -s <ppM\$
=ltT6of@o
将更新显示二次的结果输入到名称为 top.log 的档案里 : ]e@'9`G-'
top -n 2 -b < top.log P(8zJk6h),
*D!$gfa
名称:skill N%'=el4L
*aT3L#0(
使用权限:所有使用者 'z0@|a
LRW7_XYz
使用方式: skill [signal to send] [options] 选择程序的规则 (?Fz{
Ho9 a#9
说明: O+A/thI%*S
TXD\i Dq
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 V4ml& D
6;i]v|M-
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 T},Nqt<
OV8Y)%t"
一般参数: q$7WZ+Y\
^\Gaf5{
-f 快速模式/尚未完成 48nZ
H=(Eh
,Ua`BWF
-i 互动模式/ 每个动作将要被确认 y[BUWas(
6|+I~zJ88
-v 详细输出/ 列出所选择程序的资讯 @JVax -N
:KGUO{_u
-w 智能警告讯息/ 尚未完成 V\r!H>
QL%&b\K
-n 没有动作/ 显示程序代号 #G%[4.$n.
9ar+P h@*
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 DyIuM{Owj
ue@ fry
-t 终端机代号 ( tty 或 pty ) |fkz=*rn
#?-2f{
-u 使用者名称 . S4Xw2MS
ohklLZoZ
-p 程序代号 ( pid ) me"}1REa
//S/pCqED
-c 命令名称 可使用的讯号: NPF"_[RoeV
PMC5qQ%x
以下列出已知的讯号名称,讯号代号,功能。 ya8MjGo
W;en7v;#I}
名称 (代号) 功能/ 描述 =S7Xj`/
PRcW}"m]Qg
ALRM 14 离开 %H Pwu &
~fbFA?g3
HUP 1 离开 musZCg$
'|V"!R)
INT 2 离开 ,\ [R\s
w}nc^6qH
KILL 9 离开/ 强迫关闭 M|nTO
VgLrufJ
PIPE 13 离开 N#
$ob9
&g%9$*gmT
POLL 离开 ;DbEP. %u$
H=O/w3
PROF 离开 +Z99x#
da<B6!
TERM 15 离开 @."_XL74
=0!PnBGYn
USR1 离开 {2QCdj46
mDZ/Kp{
USR2 离开 L,6v!9@
Hy}oSy26
VTALRM 离开 30 e>C
b8Gu<Q1k
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 r&6X|2@
=wbgZr^2
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 \2F{r<A\@
NbnahhS
TSTP 停止 /产生与内容相关的行为 LCKCg[D
1$nlRQi
TTIN 停止 /产生与内容相关的行为 Ud@D%?A7
ehehTP
TTOU 停止 /产生与内容相关的行为 ~5S[Sl
03Czx `
STOP 停止 /强迫关闭 3fA.DK[4[
`F-<P%k
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 eW%Cef
cCOw7<
PWR 忽略 /在某些系统中会离开 g:&YSjO>G
g{0a]'ph
WINCH 忽略 ,=!_7'm
KWwEK]
CHLD 忽略 }t5-%&gBY0
?}p~8{ '
ABRT 6 核心 .yK~FzLs
;\1/4;m
FPE 8 核心 hc#LniR3$
o3C7JG
ILL 4 核心 %%d3M->C}
C{Y0}ZrmlF
QUIT 3 核心 39Nz>Nu:
U~h
f,Oxi
SEGV 11 核心 :De@_m
ktE~)G
TRAP 5 核心 %a\!|/;6
k2]fUP
SYS 核心 /或许尚未实作 va6e]p*Oy
r:rM~``
EMT 核心 /或许尚未实作 ol^uM .k%_
n[|*[II
BUS 核心 /核心失败 K,B qVu
i{T mn
XCPU 核心 /核心失败 1{%3OG^'
$wnK"k%G
XFSZ 核心 /核心失败 haTmfh_|
EL/~c*a/
范例: C=k]g
停止所有在 PTY 装置上的程序 s0EF{2<F
skill -KILL -v pts/* OGA_3|[S
.AHf]X0
停止三个使用者 user1 , user2 , user3 al#BfcZW
skill -STOP user1 user2 user3 =17d7#-
0<ze'FbV]
其他相关的命令: kill 04o>POR
名称:expr ,hO*W-a%1
使用权限:所有使用者 3:H[S_q
### 字串长度 S=f:-?N|
UYLCzv~W
shell>> expr length "this is a test" ,oin<K
14 :`jB1rI
### 数字商数 z?Hi
u6c-
shell>> expr 14 % 9 /2s=;tA1
5 Hsdcv~Xr;l
### 从位置处抓取字串 kD}w5 U
shell>> expr substr "this is a test" 3 5 ZwzN=03T
is is u4eA++eT
### 数字串 only the first character *P:!lO\|
shell>> expr index "testforthegame" e /w|!SZB
2 V=
wWY*C
### 字串真实重现 5)@UpcjUA
shell>> expr quote thisisatestformela #3~ #`&
thisisatestformela