linux常用命令
kN}.[enI~ @F,HyCSN 称:/etc/aliases
:=i0$k<E/ 使用权限:系统管理者
wh*OD 使用方式: 请用 newaliases 更新资料库
q1?2
U< 说明:
x7NxHTL sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
,%KB\;1mn' q!AS}rV /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
|xf%1(Rl@ # newaliases
t S!~>X gcv,]v8 下面命令会做相同的事,
N}dJ)<(2~ # sendmail -bi
pg>P]a{ -9aht}Z 相关命令:
'm2,7] mail, mailq, newaliases, sendmail
5T ?L'k2J ” mail [返回]
S>"dUM 名称:mail
,#c-"xY ^
1J;SO| 使用权限:所有使用者
n:#ji|wM Xp{gh@#dr 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
QPFpGS{d ;<MaCtDt 说明:
B'
:ZX-Q) mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
hG
]j m |Pj _L`G 参数:
\DQ; v i 忽略 tty 的中断讯号。 (interrupt)
Jx{,x-I I 强迫设成互动模式。 (Interactive)
X,OxvmDm v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_X]? n 不读入 mail.rc 设定档。
|/<iydP s 邮件标题。
m.^6ef c cc 邮件地址。
@C!q S7k) b bcc 邮件地址。
ED$gnFa3I gf3/ kll9 范例:
8wy"m=>=b} ]7VK&YfN 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
/S;?M\ mail
user1@email.address
}Ns_RS$ mail
user1@email.address user2
db4&?55Q P0z "Eq0S 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
bu hxC5i% ]Ny]Ox< mail -s 标题 -c user1 user2 < mail.txt
I9u=RIs D^TKv;%d 指令:mesg
_n_i*p
'2 使用权限 : 所有使用者
F_21`Hj o3W5FHFAv 使用方式 : mesg [y|n]
u#P7~9ZG- 'PO1{&M 说明 : 决定是否允许其他人传讯息到自己的终端机介面
4o=G) KO{ t6"4+:c!> 把计 ?
t*<c+Ixu 'rF TtT
y : 允许讯息传到终端机介面上。
6XG+YIG6w n : 不允许讯息传到终端机介面上 。
-[7.VP 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
p5[uVRZ Kp&d9e{
Yc 例子 :
?_^9e 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
%idnm mesg n
z[k2&=c 与 mesg 相关的指令有: talk,write,wall。
T }8aj 名称:/etc/aliases
.K93VTzy 使用权限:系统管理者
0SDCo\ 使用方式: newaliases
AVJF[t , 说明:
# / 4Wcz< sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
-Kc-eU-&q |/(5GX,X /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
stDn{x. s=d?}.E$ 参数:没有任何参数。 范例:
j=gbUXv/ # newaliases
EP8LJzd" J\{)qJ*jp 下面命令会做相同的事,
$_ NaxV # sendmail -bi
D{4
Y:O&J e-s@@k
相关命令:
Vnl~AQfk| mail, mailq, newaliases, sendmail
#2MwmIeA 名称 : talk
h\dIp`H 使用权限 : 所有使用者
h!Q>h7 %*/[aq, # 使用方式 :
%sq=lW5R{b givK{Yt<B talk person [ttyname]
F0!r9U(( 说明 : 与其他使用者对谈
$K iMu YM;^c%
_7 把计 :
hT_snb;ow person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name cshUxabB ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
"2h#inS v_ J.M ] 例子.1 :
f*I5m= t.zSJ|T_&O 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
a=J?[qrx talk Rollaend
_+. t7q^ 5bAXa2Vt 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
226s:\d a}
/Vu" 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
w Vof_'F1 talk
Rollaend@linuxfab.cx pts/2
Uyh l&rDa=m.J 3xe8DD 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
WLpn,8qsY SN+Bmdup 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
5[3hw4 A/QVotcU 名称 : wall
Za} |Ee 使用权限 : 所有使用者
^4[\-L8Lpq J!H5{7.efN 使用方式 :
k`t'P6
bU wall [ message ]
JTI m`t"d= 使用说明:
J.&q[ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
k@~-|\ooG 3 x'30 例子 :
`~}7k)F( Z^|C~lp;n 传讯息"hi" 给每一个使用者 :
e!8_3BE wall hi
5B2,=?+o 名称 : write
I>xB.$A 使用权限 : 所有使用者
xo%iL W>~%6K>p 使用方式 :
W
wE)XE [vi4,'wm write user [ttyname]
o
,!"E^ 说明 : 传讯息给其他使用者
GlZ9k-ZRF $O>@(K 把计 :
Dmi;# WY 9e&#;6l user : 预备传讯息的使用者帐号
8.^U6xA ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
e^GW[lT AN>`M?EQ 例子.1 :
^;3rdBprm 5{a(
+' 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
9c^EoYpy- write Rollaend
]*@$%iCPE Ak1) 接下来就是将讯息打上去,结束请按 ctrl+c
PPPwDsJ aX%Zuyny 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
{t:ND write Rollaend pts/2
%MJ7u} !S!03| 接下来就是将讯息打上去,结束请按 ctrl+c
,m?D\Pru [8P2V 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
w2+]C&B* N]}+F w\5 名称:kill
cv4M[]U~ 使用权限:所有使用者
c.Y8CD.tqL uq%3;#[0 使用方式:
)T5h\ZO`; 7 !.8#A': kill [ -s signal | -p ] [ -a ] pid ...
A4FDR# kill -l [ signal ]
y7-:l u$9 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
mJ>99:W+ 把计?
&U*J{OP| *UoHzaIqz -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
)hW {>Y3x -p : 印出 pid , 并不送出信号
bMZn7c -l (signal) : 列出所有可用的信号名称
|a$w;s>\ 范例:
.GN$H>') !s*''v* 将 pid 为 323 的行程砍掉 (kill) :
)x x/di kill -9 323
XHM"agrhSQ Gy6qLM 将 pid 为 456 的行程重跑 (restart) :
i;zGw.;Q kill -HUP 456
F]A~~P P&3/nL$9N 名称:nice
>DUE8hp;< 使用权限:所有使用者
fEG3b#t N <GgtP55 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
[F)/mN *t M7> 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
-0o6*?[Z FgQ_a/* QcG5PV 把计?
MupW=3.38 n~ >h4=h -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
px}7If --help 显示求助讯息
TflS@Z7C --version 显示版本资讯
+
lB+|yJ+ 范例:
IO!1|JMr6 将 ls 的优先序加 1 并执行 :
XBQ< nice -n 1 ls
'<&EPUO 3hXmYz( 将 ls 的优先序加 10 并执行 :
q _] nice ls将 ls 的优先序加 10 并执行
8yWu{'G QPe9s[Y 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
'ztL3(|X6 rbK#a)7 名称:ps
Z&]+A, 使用权限:所有使用者
=,d* {m~A 使用方式:ps [options] [--help]
s"=F^# 说明:显示瞬间行程 (process) 的动态
|J<pLz 参数:
~1=.?Ho ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
?z@v3(b[ -A 列出所有的行程
% O&m#)| -w 显示加宽可以显示较多的资讯
sUbz)BS#. -au 显示较详细的资讯
:PD`PgQ -aux 显示所有包含其他使用者的行程
`\ef0 }(+=/$C"# au(x) 输出格式 :
uZo`IK J c{,y{2c]LT USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
=X`]Ct8Z USER: 行程拥有者
d{2y/ PID: pid
Im?= e %CPU: 占用的 CPU 使用率
tt7PEEf %MEM: 占用的记忆体使用率
gVa+.x] VSZ: 占用的虚拟记忆体大小
3|K=%jr[ RSS: 占用的记忆体大小
Q"_T2fl]vP TTY: 终端的次要装置号码 (minor device number of tty)
QtnM(m STAT: 该行程的状态:
Db#W/8
a8k D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
fVH*dX'Jz R: 正在执行中
[ZKtbPHb S: 静止状态
GX7 eRqz > T: 暂停执行
2q-:p8 Z: 不存在但暂时无法消除
sb}K%- W: 没有足够的记忆体分页可分配
(ET ;LH3 <: 高优先序的行程
@ .Z[M N: 低优先序的行程
+~w?Xw, L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
<V$Y6(uMs START: 行程开始时间
:dY.D|j* TIME: 执行的时间
f@!
fW& COMMAND:所执行的指令
i'W_;Y} 范例:
d; mmM\3] ps
]27>a"p59Y PID TTY TIME CMD
@],6SKbG6 2791 ttyp0 00:00:00 tcsh
:BL'>V 3092 ttyp0 00:00:00 ps
I|KY+k> / % ps -A
&'5@azU PID TTY TIME CMD
xvwD3.1 1 ? 00:00:03 init
Gur8.A;Y 2 ? 00:00:00 kflushd
(s}Rj)V[^ 3 ? 00:00:00 kpiod
aF&r/j+}o 4 ? 00:00:00 kswapd
SON^CvMs{ 5 ? 00:00:00 mdrecoveryd
;x:k-s2- .......
6R 1wn&8 % ps -aux
ny12U;'s, USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Sf
024 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
eJU;*] xfH root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
.'t (-eT, root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
2BoFyL* root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
bz,Da ........
O.@g/05C 名称:pstree
,wtFs!8 使用权限:所有使用者
5^/,aI 使用方式:
`zdH1 p^w pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
N]1V1c$G* pstree -V
1YOg1 n+k 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
$}qDV>
qo 参数:
%f3c7\=C -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
*Q bM*oH -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
Pm$F2YrO3 范例:
Km6Ub?/7o pstree
K0tV'Ml#" i\t753<Ys init-+-amd
xS=_yO9- |-apmd
iYk':iv}S |-atd
UWQtvQ
f |-httpd---10*[httpd]
;[(=kOI %pstree -p
+7| [b init(1)-+-amd(447)
]Nnxnp |-apmd(105)
@GN(]t&3 |-atd(339)
<Q2u)m' %pstree -c
kCj`V2go init-+-amd
iuiAK |-apmd
w Y8@1>ah |-atd
a?5WKO |-httpd-+-httpd
0CPxIF& | |-httpd
kUNj4xp) | |-httpd
Ct4LkmD | |-httpd
GwcI0~5 ....
>vUB%OLyP 名称:renice
}5Yj 使用权限:所有使用者
iaY5JEV:CA 60xa?8<cg 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
!\QeBd+ wk" l[cH> 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
3(1]FKZtt b6 $,Xh 把计?
T!MZ+Ph`F d; 9*l!CF -p pid 重新指定行程的 id 为 pid 的行程的优先序
iJFr4o/R -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
hT?6sWa -u user 重新指定行程拥有者为 user 的行程的优先序
a
"R7JjH 范例:
%1Yz'AiW[ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
oFWt(r renice +1 987 -u daemon root -p 32
+`ai1-vw 59V#FWe- 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
O/mR9[} r]v&t 名称:top
&=YSM.G 使用权限:所有使用者
Yl$X3wi m;dm|4L^ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] Sa L"!uAk
+}P%HH]E/p
说明:即时显示 process 的动态 W7t
>&3l
|~z3U>
把计? Odm#wL~E
IE2CRBfs
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 1j11|~
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 VM7 !0
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 $H'8
#:[d_
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ^7.XGWQ)-
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 1n_;kaY
n : 更新的次数,完成后将会退出 top Bp
:~bHf
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 =-_)$GOI'
<0#^7Z
范例: ;(7-WnU8N
显示更新十次后退出 ; C\7u<2c
top -n 10 ~8TF*3[}[
sI'a1$
使用者将不能利用交谈式指令来对行程下命令 : D}-o+6TI?
top -s %;7.9%
1pK6=-3w3
将更新显示二次的结果输入到名称为 top.log 的档案里 : ]fZ<`w8u}
top -n 2 -b < top.log /#f^n]v
{3LA%xO
名称:skill KF_ ?'X0=
%`e`g ^
使用权限:所有使用者 Mi]I:ka
(?vK_{
使用方式: skill [signal to send] [options] 选择程序的规则 8!&nKy<Y
$xT1 1 ^
说明: D|l,08n"?
r4u z} jl{
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 X1oGp+&
Oa!
m
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 I.1D*!tz
Y6A;AmM8
一般参数: t0q_>T-kt
OiF{3ae(
-f 快速模式/尚未完成 i\)3l%AK]T
Ql8bt77eI-
-i 互动模式/ 每个动作将要被确认 b._m 8z ~
;FU|7L$H
-v 详细输出/ 列出所选择程序的资讯 }k7_'p&yk
YGp)Oy}:
-w 智能警告讯息/ 尚未完成 /;Yy@oc
`N}d}O8
-n 没有动作/ 显示程序代号 S/.^7R7{f
pLnB)z?
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 h./P\eDc
yoQ\lk
-t 终端机代号 ( tty 或 pty ) C`QzT{6!
iCP~O
-u 使用者名称 Pz%~ST
&+01+-1hW
-p 程序代号 ( pid ) 9cG<hX9`F
^]>aHz9
-c 命令名称 可使用的讯号: %D`o
yS!(Ap
以下列出已知的讯号名称,讯号代号,功能。 )MSZ2)(
@E%DP9.I
名称 (代号) 功能/ 描述 L[y Pjw:0
)#C
mQXgG
ALRM 14 离开 zT[6eZ8m
w^HjZV
HUP 1 离开 Qqc]aVRF
O- #TZ
INT 2 离开 ?,)"~c$hZ
RNWX.g)b
KILL 9 离开/ 强迫关闭 b*EXIzQ
r8[T&z@_
PIPE 13 离开 w2dcH4&
C5*xQlCq}
POLL 离开 )*|(i]
ut_pHj@
PROF 离开 iidT~l
/7/0x ./{
TERM 15 离开 FJ54S
1$pb (OK
USR1 离开 XN;&qR^j
BMFF=
USR2 离开 dU_;2#3m
G-u]L7t&1
VTALRM 离开 Xj@+{uvQB
`)Ky0&?
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 \+m$
*jITOR!uF`
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 pK}=*y~$
<+v{GF#R
TSTP 停止 /产生与内容相关的行为 o&SSvW
pf&ag#nr
TTIN 停止 /产生与内容相关的行为 t
Rm+?
s^hR\iY
TTOU 停止 /产生与内容相关的行为 eGL<vX
HC*?DJ,
STOP 停止 /强迫关闭 2eb1lJdS
lG:kAtx4
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 !L$x:/R9M
?X9UTOx
PWR 忽略 /在某些系统中会离开 4w93}t.z
)nfEQ)L;h}
WINCH 忽略 Z>P*@S,6G
*if`/N-q(m
CHLD 忽略 xZ .!d.rn
np9dM
ABRT 6 核心 MYdO jcN
`<frgXu64
FPE 8 核心 [f/I2
-c*\o3)
ILL 4 核心 swcd&~9r
,Nm$i"Lg
QUIT 3 核心 ZDt?j
k N7Bd}
SEGV 11 核心 i=S~(gp
vB0RKk}d5
TRAP 5 核心 L] %l51U
kmPYx)o
SYS 核心 /或许尚未实作 646JDX[o
g)"gw+ZFc
EMT 核心 /或许尚未实作 sG7u}r
eWs&J24
BUS 核心 /核心失败 m Y,|J\w@
K.~q+IYP[
XCPU 核心 /核心失败 3Q^fVn$tk
E_T2z4lw
XFSZ 核心 /核心失败 ==N{1gO]
1q7tiMvV-
范例: ino:N5&;;
停止所有在 PTY 装置上的程序 xc@Ss[
skill -KILL -v pts/* =qy@Wvj$
`G9 l
停止三个使用者 user1 , user2 , user3 5GzFoy)j>
skill -STOP user1 user2 user3 3FE( }G
soRv1) el
其他相关的命令: kill yx38g
ca
名称:expr zeb=8Dg
:
使用权限:所有使用者 tq1CwzRX
### 字串长度 > L2HET
_}xd}QW
shell>> expr length "this is a test" VqSc;w
14 sgUud_r)4
### 数字商数 *ISZlR\#
shell>> expr 14 % 9 KLW n?`
5 avQJPB)}Sb
### 从位置处抓取字串 ^x>Qf(b
shell>> expr substr "this is a test" 3 5 Z @ dC+0[=
is is >$WQxbwM(
### 数字串 only the first character NoE*/!Sr
shell>> expr index "testforthegame" e ia @'%8
2 (t+;O;
### 字串真实重现 ZBT1Y.qA
shell>> expr quote thisisatestformela K<`osdp=&
thisisatestformela