linux常用命令
c7T9kV8hS +F q`I2l| 称:/etc/aliases
_KiaeVE 使用权限:系统管理者
9frP`4<) 使用方式: 请用 newaliases 更新资料库
[ C d"@!yA 说明:
NfcY30}: sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Wh[+cH"M iA*Z4FKkT /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
32jOs|<\ # newaliases
9], ;i7c =$601r 下面命令会做相同的事,
h+F@apUS # sendmail -bi
8>a/x , Knsb`1"E^6 相关命令:
Pm; /Ua mail, mailq, newaliases, sendmail
BX$t |t;!m F^bC!;~x ” mail [返回]
E 5}T_~-{ 名称:mail
"6rZn_H/| ;AKtbS;H 使用权限:所有使用者
n
m(yFX?= !J!zi 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
T.="a2iS2 =Run 说明:
7r?O(0> mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
0(#HMBE8 B'6^E#9 参数:
o+{}O_r i 忽略 tty 的中断讯号。 (interrupt)
Yu=4j9e_mG I 强迫设成互动模式。 (Interactive)
%Q"zU9 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
u.iFlU n 不读入 mail.rc 设定档。
%~P]x7%| s 邮件标题。
d_#\^!9 c cc 邮件地址。
] ,Wh]q b bcc 邮件地址。
D4'"GaCv f ^mxj/%L 范例:
VA.jt}YGE \lHi=}0 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
:/ns/~5xa: mail
user1@email.address
uHBX}WH
mail
user1@email.address user2
<K:?<F 3P Twpq1 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
C3-l(N1O{
At%g^ mail -s 标题 -c user1 user2 < mail.txt
U,)Ngnd >bxT_qEm 指令:mesg
#C|:]moe 使用权限 : 所有使用者
G;615p1 #G{}Rd|! 使用方式 : mesg [y|n]
A=|LMJMWR >JS\H6 说明 : 决定是否允许其他人传讯息到自己的终端机介面
-_'M
*- DCX4!,ZF 把计 ?
{r.#R|
4v LfyycC2E y : 允许讯息传到终端机介面上。
YD2M<.U n : 不允许讯息传到终端机介面上 。
@]tFRV 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
Q6Q>b4 .3 5b9_6L6 例子 :
aAO[Y"-:,Y 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
C.@R#a' mesg n
5R4h9D5 与 mesg 相关的指令有: talk,write,wall。
k#`.!yI, 名称:/etc/aliases
x*5'
6 使用权限:系统管理者
i:OD)l 使用方式: newaliases
xXH%7%W'f 说明:
% Z&[wU~ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
%^^2 MUz.-YRt /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
N-jFA8n }r`!p5\$K0 参数:没有任何参数。 范例:
0sVCTJ@ # newaliases
J/w?Fa< .{HU1/! 下面命令会做相同的事,
oe`oUnN # sendmail -bi
\A:m<:: S +|aCRS 相关命令:
t-dN:1 mail, mailq, newaliases, sendmail
S4s\ tA< 名称 : talk
/fA:Fnv 使用权限 : 所有使用者
/MsXw/], X55Eemg/ 使用方式 :
aMuc]Wy# :<gmgI talk person [ttyname]
/4RKA!W 说明 : 与其他使用者对谈
A)040n !40{1U&@a` 把计 :
s!Y>\3rMW person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 9%oLv25{) ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
HoymGU`w Y[$[0 例子.1 :
ko
im@B |^Try2@ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
`>rdn*B talk Rollaend
"vH@b_>9| {i~qm4+o 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
y&lj+j W6&".2 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
)<DL' talk
Rollaend@linuxfab.cx pts/2
?F*gFW_k !#3#}R.$Fl 8l>/ZZ.NXi 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
)Be}Ev#)Zx nfy"M),et 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
6;dB %,a.431gi 名称 : wall
P~;NwHZ?k 使用权限 : 所有使用者
#PoUCRRC .zlUN0oe 使用方式 :
_zJY1cr wall [ message ]
]. 1[H~5N 使用说明:
itX<! wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
7\JRHw A[XEbfDO 例子 :
V. 'EP Hh$D:ZO 传讯息"hi" 给每一个使用者 :
8iK>bp wall hi
(8@._ 名称 : write
M=26@ n 使用权限 : 所有使用者
azPFKg+ !s\-i6S> 使用方式 :
$>OWGueq64 O9=vz% write user [ttyname]
oO$a4|&, 说明 : 传讯息给其他使用者
&Dqg<U 1`5d~>fV 把计 :
mcb0% Z)|*mJ user : 预备传讯息的使用者帐号
uV52ko, ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
/0!6;PC< F_zs"ex/ 例子.1 :
(O,|1 3VB{Qj 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
-2K`:}\y& write Rollaend
$}aLFb ~${.sD\ 接下来就是将讯息打上去,结束请按 ctrl+c
3Q~ng2Wv% _&.CI6 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
j?g{*M write Rollaend pts/2
syv6" 2Z'B H;G*tje/M 接下来就是将讯息打上去,结束请按 ctrl+c
]|Vm*zO _Wk!d3bsx 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
#J, `a. "[BuQ0(g 名称:kill
PZf^r 使用权限:所有使用者
N#6&t8;kTC 3vHEPm] 使用方式:
7zgU>$i Ue^upx kill [ -s signal | -p ] [ -a ] pid ...
^B1Q";#
B^ kill -l [ signal ]
r_-iOxt~5 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
f<!eJO:<' 把计?
Av_1cvR: tlCgW)<? -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
$0AN5 |`g\ -p : 印出 pid , 并不送出信号
3E+u)f lmB -l (signal) : 列出所有可用的信号名称
"So+ 范例:
i.)kV B g.s~Ph- G 将 pid 为 323 的行程砍掉 (kill) :
4Xe3PdE kill -9 323
kRTT
~ X@\rg}kP 将 pid 为 456 的行程重跑 (restart) :
.?<,J kill -HUP 456
lmp0Ye| T,!?+# 名称:nice
|bO}|X 使用权限:所有使用者
R% l=NHB} &`Z>z T} 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
<nvz*s B7fURL
Rqr 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
2Af1-z^^K n*9)Y~ DdN{=}A 把计?
|*fGG?} H8mmmt6g -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
t1 OnA#]/_ --help 显示求助讯息
TF^Rh4 --version 显示版本资讯
w=rh@S] 范例:
p4fU/ 将 ls 的优先序加 1 并执行 :
Oq|RMl nice -n 1 ls
A]WU*GL2H V[(zRGa{ 将 ls 的优先序加 10 并执行 :
38tRb"3zP nice ls将 ls 的优先序加 10 并执行
GghZ".O bfVKf} 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
@v2_gjRe NJI-8qTGI 名称:ps
ry*b"SO 使用权限:所有使用者
jri=UGf 使用方式:ps [options] [--help]
<2fZYt vt 说明:显示瞬间行程 (process) 的动态
^{DXin 1O` 参数:
O8wR#(/ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
G yvEc3|@ -A 列出所有的行程
[W,Ej -w 显示加宽可以显示较多的资讯
7ykpDl^ @ -au 显示较详细的资讯
2>Xgo% -aux 显示所有包含其他使用者的行程
0/6f9A ;*BG{rkr au(x) 输出格式 :
D8m1:kU L09YA USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
K63OjR>H USER: 行程拥有者
%|*tL7 PID: pid
N<zD<q %CPU: 占用的 CPU 使用率
-lQ8
&eB %MEM: 占用的记忆体使用率
/vYuwaWG= VSZ: 占用的虚拟记忆体大小
CCNrjaA RSS: 占用的记忆体大小
Q_$aiE TTY: 终端的次要装置号码 (minor device number of tty)
g=0`^APql STAT: 该行程的状态:
bX Q*d_]WT D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
h8&VaJ R: 正在执行中
4QARrG% S: 静止状态
p9 <XaJ} T: 暂停执行
=2F;'T\6 Z: 不存在但暂时无法消除
&xo_93 W: 没有足够的记忆体分页可分配
l~b# Y& <: 高优先序的行程
p[2`H$A N: 低优先序的行程
bBk_2lg=4) L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
[_Fj2nb* START: 行程开始时间
mSm:>hBd TIME: 执行的时间
A(V,qw8 COMMAND:所执行的指令
QbjO*:c4 范例:
6!sC ps
}F!tM"X\ PID TTY TIME CMD
WWhAm{m
2791 ttyp0 00:00:00 tcsh
1YV ;pEw3w 3092 ttyp0 00:00:00 ps
pX8TzmIB0 % ps -A
R.@ I}> PID TTY TIME CMD
Hb55RilC 1 ? 00:00:03 init
@{P<!x <Q 2 ? 00:00:00 kflushd
uH="l.u 3 ? 00:00:00 kpiod
i/E"E7 4 ? 00:00:00 kswapd
f^Sl(^f 5 ? 00:00:00 mdrecoveryd
,P ~jO .......
akATwSrU % ps -aux
S3 12#X(% USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
*eL&fC root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
f8 E,.$> root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
hGh91c;4 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
h*d1G9%Q1 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
"'U+T:S ........
sB`.G 名称:pstree
!xcLJ5^W 使用权限:所有使用者
TS4Yzq,f 使用方式:
CoZOKRoaH pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
gr1NcHu pstree -V
tf[)Q:| 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
ZDny=&># 参数:
*Tc lcu -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
RwKnNIp -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
0OCmyy 范例:
u+EZ"p;o pstree
K Q^CiX lldNIL6B% init-+-amd
MTXh-9DA |-apmd
<ks+JkW_ |-atd
W% @r |-httpd---10*[httpd]
rDI}X?JmX %pstree -p
_4,/uG|a O init(1)-+-amd(447)
41uiW, |-apmd(105)
R*0]*\C z |-atd(339)
#1fL2nlP*E %pstree -c
#No3}O;"g init-+-amd
B']-4X{SGa |-apmd
%9v l |-atd
Op()`x
m |-httpd-+-httpd
qofD@\- | |-httpd
J4?i\wD: | |-httpd
,="hI:*< | |-httpd
U45kA\[bZ ....
B@w/wH 名称:renice
6 &Lr/J76 使用权限:所有使用者
+~(SeTY QjOO^6Fh 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
"hid3"G BTc
}Kfae 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Zzn
N"Si, V82HO{ D 把计?
j%+>y;). uM)#T*( -p pid 重新指定行程的 id 为 pid 的行程的优先序
I'`90{I -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
w)N~u% -u user 重新指定行程拥有者为 user 的行程的优先序
gFpub_ 范例:
2OVN9_D% 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
}#r awVe= renice +1 987 -u daemon root -p 32
y0f:N
U ]A%]W ^G 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
/|0xOiib %u}#|+8} 名称:top
]f{3_M[ 使用权限:所有使用者
JR_%v=n~x s
Poh\n 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] .8wf {y
(^oN, 7
说明:即时显示 process 的动态 A^ofs*"Y
r=-b@U.fk>
把计? (/7b8)g
'8Cg2v5&w
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s iC{(vL0P+
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 U ,NGV0
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 !\VzX
s : 安全模式,将交谈式指令取消, 避免潜在的危机 577#A, O
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 |'Z+`HI
n : 更新的次数,完成后将会退出 top /!?b&N/d)
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 EXMW,
Q6T"8K/
范例: +E^2]F7Zk
显示更新十次后退出 ; |LW5dtQ
top -n 10 JC0# pU;
Z`_x|cU?J
使用者将不能利用交谈式指令来对行程下命令 : R_D&"&
top -s yg.o?eML
!2Gua1z!CJ
将更新显示二次的结果输入到名称为 top.log 的档案里 : Mz.C`Z>o
top -n 2 -b < top.log $PG(>1e
0W0GSDx
名称:skill B(WmJ6e
CBO*2?]s
使用权限:所有使用者 denxcDFu/~
(gnN</%
使用方式: skill [signal to send] [options] 选择程序的规则 -AD@wn!wCJ
Iprt
ZqiL
说明: AR!v%Z49i
hraR:l
D
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 3?K+wg s
p>,D F9W`
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 idB1%?<
i=L 86Ks
一般参数: {yv_Ni*6!
X::@2{-@y
-f 快速模式/尚未完成 t>Ye*eR*`U
Ni8%K6]z
-i 互动模式/ 每个动作将要被确认 =igTY1|af
^KdT,^6T
-v 详细输出/ 列出所选择程序的资讯 fF(AvMsO
]
)iP?2{
-w 智能警告讯息/ 尚未完成 cRH(@b
Xr
&#JYh=#
-n 没有动作/ 显示程序代号 [(2^oTSRaq
oi]XSh[_s
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 '<3h8\"
Ell14Iki
-t 终端机代号 ( tty 或 pty ) 1d~d1Rd
w[F})u]E
-u 使用者名称 Td,d9M
:2H]DDg(
-p 程序代号 ( pid ) W/\pqH
7m
ou
-c 命令名称 可使用的讯号: `+T 2IPN
De>e`./56
以下列出已知的讯号名称,讯号代号,功能。 [
:)F-
~r?tFE*+
名称 (代号) 功能/ 描述 1 $1>cuu
3b\s;!
ALRM 14 离开 sBYDo{01
i9Beap/t$
HUP 1 离开 z Ohv>a
yKuZJXGVo
INT 2 离开 q_6lD~~q^
[0qswsV
KILL 9 离开/ 强迫关闭 g%tUk M
p:4-b"O
PIPE 13 离开 O:8
u^TP
|JR`" nF`
POLL 离开 YhNrg?nS
l?$X.CwX
PROF 离开 Uj\t04
p2Gd6v.t
TERM 15 离开 1) K<x
X3 1%T"
USR1 离开 R<gAxO%8
hSxK*.W*3
USR2 离开 ;~DrsQb
MM]0}65KG
VTALRM 离开 nTc#I~\
Ky7.&6\n
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 tK[o"?2y
`q\F C[W
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 :%33m'EV}
ks sRwe%>;
TSTP 停止 /产生与内容相关的行为 (1q(6!
FX9W Xb4w
TTIN 停止 /产生与内容相关的行为 (tq);m&
|=v,^uo
TTOU 停止 /产生与内容相关的行为 |EdEV*.ej
n:B){'S
STOP 停止 /强迫关闭 )X," NJG
-W.-m2:1
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 *z6A ~U
v(R^LqE
PWR 忽略 /在某些系统中会离开 43y@9P0
}5 n\us
WINCH 忽略 'hPW#*#W<
Dq%}({+
CHLD 忽略 N%'(8%;
J zFR9DEt
ABRT 6 核心 *~4<CP+"0
c%O97J.5b
FPE 8 核心 aCH;l~+U
!<=(/4o&P
ILL 4 核心 5 (!F Q
w8~R=k
QUIT 3 核心 r_ +!3
w0@XJH:P
SEGV 11 核心 J @~g>
o3\^9-jmp
TRAP 5 核心 j@#RfVx
'5*&
SYS 核心 /或许尚未实作 h5T~dGRlR
.b`8
+
EMT 核心 /或许尚未实作 9{geU9&Z
sr[[xzL
BUS 核心 /核心失败 -dF (_ %C
qc.TYp
XCPU 核心 /核心失败 (e~9T MY
AxH`4=3<
XFSZ 核心 /核心失败 2Mq@5n
)(yaX
范例: :-U&_%#w
停止所有在 PTY 装置上的程序 =bP<cC=3b
skill -KILL -v pts/* pYm#iz
/=l!F'
停止三个使用者 user1 , user2 , user3 ^K: :g)
skill -STOP user1 user2 user3 %"oGJp
8kSyT'kC%
其他相关的命令: kill t~dK\>L
名称:expr As5l36
使用权限:所有使用者 G9xO>Xp^Al
### 字串长度 ZwY mR=
6C<GYzzo
shell>> expr length "this is a test" <\uDtbK
14 q&3(yhx
### 数字商数 |H,WFw1%}
shell>> expr 14 % 9 3TeRZ=2:*x
5 _qk&W_u
### 从位置处抓取字串 v5e*R8/
shell>> expr substr "this is a test" 3 5 |7n%8JsY!"
is is gaNe\
### 数字串 only the first character A /c
shell>> expr index "testforthegame" e S76MY&Vx23
2 )mI>2<Z!
### 字串真实重现 ~*\ *8U@7
shell>> expr quote thisisatestformela htrtiJ1
thisisatestformela