linux常用命令
v\CBw" P3-O)m]jv 称:/etc/aliases
o.w/? 使用权限:系统管理者
x2a
?ugQ 使用方式: 请用 newaliases 更新资料库
S=lCzL;j" 说明:
wVFa51a)yy sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
ZZZ`@pXm; Pksr9"Ah /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
! L|l(<C # newaliases
e$_gOwB +nHr+7} 下面命令会做相同的事,
*xmC`oP # sendmail -bi
Lq
;~6 1L+hI=\O 相关命令:
}h1LH4 mail, mailq, newaliases, sendmail
4w'&:k47 pC0gw2n8M ” mail [返回]
^*4#ZvpG2 名称:mail
6"Lyv Q)BSngW+ 使用权限:所有使用者
bcjh3WP YFPse.2$a 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
pdER#7Tq Fx}v.A5 说明:
'jMs& mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
)/JVp> Y0kcxpK/ 参数:
}!k?.(hpE i 忽略 tty 的中断讯号。 (interrupt)
9H;Os:"\| I 强迫设成互动模式。 (Interactive)
}yn%_KQ0 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
[W{|94q n 不读入 mail.rc 设定档。
X Db% - s 邮件标题。
kTfRm^ c cc 邮件地址。
n0gjcDHQ b bcc 邮件地址。
ULu@" k{lo' 范例:
5Za<]qxr b;d7mh4 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
5%(whSKZF mail
user1@email.address
2bLc57j{`9 mail
user1@email.address user2
`7y3C\zyQ f4*(rX 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
@(oY.PeS<z _<jU! R mail -s 标题 -c user1 user2 < mail.txt
,mvFeo;@f H)E,([ 指令:mesg
~Q
Q1ZP3 使用权限 : 所有使用者
l3u+fE,;_ 568M4xzi 使用方式 : mesg [y|n]
xzA!,75@U &&52ji<3 说明 : 决定是否允许其他人传讯息到自己的终端机介面
h$$JXf .sQV0jF { 把计 ?
2]Cn<zJ x1`(Z|RJ y : 允许讯息传到终端机介面上。
T+~&jC:{ n : 不允许讯息传到终端机介面上 。
aM1WC 'c&) 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
Qj1%'wWG 3!@&7@p 例子 :
1|-C(UW> 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
-c1-vGW/ mesg n
17c`c.yP 与 mesg 相关的指令有: talk,write,wall。
ujE~#b}X 名称:/etc/aliases
sx;/xIU| 使用权限:系统管理者
|oSt%lQ1 使用方式: newaliases
A{B$$7% 说明:
`L <sZ;Cj sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
/6[vF)& +h/OQ]`/m /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Ksh[I,+N\ tj00xYY 参数:没有任何参数。 范例:
H|aC(c # newaliases
;Ccp1a~+ G7,v:dlK 下面命令会做相同的事,
7b-[# g # sendmail -bi
YqXN|& }j1;0 kb? 相关命令:
W7~_XI mail, mailq, newaliases, sendmail
9;vES^ 名称 : talk
~2XGw9`J2 使用权限 : 所有使用者
jqj}j2
9 }*%=C!m4R! 使用方式 :
]
s 2ec DwFvM0O6\ talk person [ttyname]
pX3E l$p 说明 : 与其他使用者对谈
g0a!auWM s nxwe 把计 :
v,N!cp1 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name Q2]7|C ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
"30=!k U
v>^ Z2 例子.1 :
!@Vj&>mH$ J32{#\By 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
u 1}dHMoX~ talk Rollaend
ZJGIib cdH`#X 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
y,Bj,zw SI%J+Y7 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
.3Smqwm=Y talk
Rollaend@linuxfab.cx pts/2
Vu~fF@
| C'l\4ij)7 j+/EG^*/ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
&.z-itiV *"F*6+}w" 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
h<?I?ZR0$ "FGgem%9 名称 : wall
P&5vVA6K7 使用权限 : 所有使用者
#q0xlF@ #\Q)7pgi. 使用方式 :
;9=4]YZt wall [ message ]
T}XJFV 使用说明:
Kb5}M/8 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
kIt1k w o0b\<} 例子 :
MfLus40;n jl]p e7- 传讯息"hi" 给每一个使用者 :
c[OQo~m$ wall hi
k^k1>F}yx 名称 : write
;tD?a7 使用权限 : 所有使用者
cY~lDLyB )0;O<G] d 使用方式 :
ih:%U d]=>U^K write user [ttyname]
7#*O|t/' 说明 : 传讯息给其他使用者
zn*i ;4oKF7]
把计 :
ke +\Z>BWN b%X}{/ n user : 预备传讯息的使用者帐号
#]} G{
P ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
=`gFwH< &.0 wPyw 例子.1 :
Hpp;dG Pc~)4>X< 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
F20%r 0 write Rollaend
XT==N-5, !:g\Fe] 接下来就是将讯息打上去,结束请按 ctrl+c
u`*$EP-% 2b#>~ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
?* dfIc write Rollaend pts/2
$~A\l@xAG zfml^N 接下来就是将讯息打上去,结束请按 ctrl+c
gp{P _ mA3yM# 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
etP`q:6^c FFF7f 5F 名称:kill
$:D hK 使用权限:所有使用者
Ahg6>7+R. kRz qgVr% 使用方式:
P'Jb')m .7#04_aP kill [ -s signal | -p ] [ -a ] pid ...
UZc{ Av kill -l [ signal ]
0j'k%R[l 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
C9T-4o1 把计?
Rmh,P > <,T#* fg -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
(]<G)+* -p : 印出 pid , 并不送出信号
SY2((!n._ -l (signal) : 列出所有可用的信号名称
R&}{_1dj8 范例:
Z:MU5(Te pC)S9Kl 将 pid 为 323 的行程砍掉 (kill) :
+(hr5 kill -9 323
UDa\* @L^30>?l 将 pid 为 456 的行程重跑 (restart) :
MWc{7, kill -HUP 456
GwlAEh P cFG%Ew@ 名称:nice
K~z9b4a> 使用权限:所有使用者
H*dQT y, /#?i +z 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
#+P)X_i` ?DJ,YY9P 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
( e(<4-& &nF7CCF C
F< 把计?
4T#Z[B[ TWQ{,
B -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
>E(IkpZ --help 显示求助讯息
*W<g%j-a --version 显示版本资讯
tZY(r
{ 范例:
wsfn>w?!V 将 ls 的优先序加 1 并执行 :
q|ZQsFZ nice -n 1 ls
^S`c-N Ucok&)7- 将 ls 的优先序加 10 并执行 :
v~HfA)#JK nice ls将 ls 的优先序加 10 并执行
-U_<: YJrZ 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
X?.LA7 )CK FY]z*= 名称:ps
30/( 使用权限:所有使用者
%"RgW\s[R 使用方式:ps [options] [--help]
ma26|N5 说明:显示瞬间行程 (process) 的动态
ag$UNV 参数:
lV !@h}mG ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
+2]{%= -A 列出所有的行程
w-MnJ(r -w 显示加宽可以显示较多的资讯
%!1:BQ,p,i -au 显示较详细的资讯
+EgQj*F* -aux 显示所有包含其他使用者的行程
!~k-Sexh niN$!k+Jr au(x) 输出格式 :
)Ikx0vDFQ ^?tF'l` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
>?A3;O] USER: 行程拥有者
Lv
,Ls PID: pid
(@?PN+68| %CPU: 占用的 CPU 使用率
N;\by<snN %MEM: 占用的记忆体使用率
@7';bfsix VSZ: 占用的虚拟记忆体大小
fM)R O7 RSS: 占用的记忆体大小
u_U51C\rb TTY: 终端的次要装置号码 (minor device number of tty)
j^Z3 STAT: 该行程的状态:
$
p{Q ]|ww D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
/CN^">|_ R: 正在执行中
nZM|8 S: 静止状态
yf7p0;$? T: 暂停执行
N8l(m5Kk,k Z: 不存在但暂时无法消除
';!02=-@ W: 没有足够的记忆体分页可分配
5lC "10 <: 高优先序的行程
GVp2|\-L N: 低优先序的行程
8V3SZ17 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
K]q OLtc START: 行程开始时间
}3!.e TIME: 执行的时间
PV%7m7=x COMMAND:所执行的指令
z|SLH<~ 范例:
R3$eq
) ps
2$? )VXtw PID TTY TIME CMD
=lG5Kc{B 2791 ttyp0 00:00:00 tcsh
8f | 3092 ttyp0 00:00:00 ps
0Q5ua`U % ps -A
-K)P|'-?m PID TTY TIME CMD
g=:C/>g 1 ? 00:00:03 init
`7|v 2 ? 00:00:00 kflushd
N|h}'p 3 ? 00:00:00 kpiod
=`rESb[ 4 ? 00:00:00 kswapd
d&0^AvM@ 5 ? 00:00:00 mdrecoveryd
iffRGnN^e .......
"ND 7,rQ % ps -aux
p_QL{gn USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
DY{JA
*N root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
xFS`#1 root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
dYJW`Q;j.| root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
eW+z@\d9Gz root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
R28h%KN ........
Bf F$ 名称:pstree
F/}PN1#T 使用权限:所有使用者
jfHVXu^M 使用方式:
'
7>V4\" pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
PhM3?$ pstree -V
nK6{_Y> 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
:nw4K(:f 参数:
70m}+R(` -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
y)!K@ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
810u+%fu 范例:
t1.5hsp pstree
uV *&a~ #2&_WM!
init-+-amd
jQ_j#_Vle |-apmd
dd>stp |-atd
0=&Hm). |-httpd---10*[httpd]
!K1[o'o# %pstree -p
W04-D init(1)-+-amd(447)
Y9 ,KOs |-apmd(105)
vh+IhGi |-atd(339)
T.aY{Y %pstree -c
h 5ST`jZ init-+-amd
dHzo_VV |-apmd
>t
O(S |-atd
BfIGw |-httpd-+-httpd
icHc!m? | |-httpd
4RNB\D | |-httpd
Hc4]2pf | |-httpd
cyG3le& +G ....
{v56k8uZ 名称:renice
5B@+$D[0?3 使用权限:所有使用者
.QzHHW4&0 QVI4<Rxg 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
$GYcZN& ep Eg6
说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
W)?B{\ hO@'WoniW 把计?
X)xQKkL0 Y:/z)"u,C -p pid 重新指定行程的 id 为 pid 的行程的优先序
SV}I+O_w -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
Lu6!W -u user 重新指定行程拥有者为 user 的行程的优先序
5R/!e`(m 范例:
k 0z2)3L 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
x(&o=Pu renice +1 987 -u daemon root -p 32
ZPY#<^WOzr _CBG? 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
[L"(flY(E SI)u@3hl&w 名称:top
HkD6aJ:kA! 使用权限:所有使用者
}i./, NI\jGR. 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] 6fQNF22E
@]t} bF]
说明:即时显示 process 的动态 ;zIAh[z
u)MdFz
把计? B3]q*ERAo
NB;8 e>8
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s noC]&4b
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 E=3<F_3W
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 YUat}-S
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ne4hR]:
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 I8)x0)Lx
n : 更新的次数,完成后将会退出 top 9^<t0oY
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 S
v$%-x^t
* f=H#
范例: 1j
"/}0fx
显示更新十次后退出 ; I1S*=^Z_U
top -n 10 DDyeNuK
V.6h6B!vB
使用者将不能利用交谈式指令来对行程下命令 : p@y?xZS
top -s %:sQ[^0
Tf)qd\
将更新显示二次的结果输入到名称为 top.log 的档案里 : K 38e,O
top -n 2 -b < top.log )'KkO$^&
\m~?mg"#
名称:skill 61HU_!A8S
iF?4G^
使用权限:所有使用者 M3c-/7
h.E8G^}@
使用方式: skill [signal to send] [options] 选择程序的规则 /\V-1 7-
(PE x<r1
说明: 8hZ+[E}
@-Tt<pl'L
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 6Lr G+p`
1WRQjT=o
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 a.#`>
UR44
iA]
一般参数: Ds?
@LE|
}9<pLk
-f 快速模式/尚未完成 ~tWIVj{
YD_hg#=n
-i 互动模式/ 每个动作将要被确认 4!64S5(7t
lM~ 3yBy
-v 详细输出/ 列出所选择程序的资讯 OaY.T
P3UU~w+s
-w 智能警告讯息/ 尚未完成 oOlqlv
_]@
-n 没有动作/ 显示程序代号 NKd}g
I !=ew |
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 X?&(i
s
U1}-]^\
-t 终端机代号 ( tty 或 pty ) +Kw:z?
?55t0
-u 使用者名称 :sAb'6u1EU
gQMcQV]C$
-p 程序代号 ( pid ) ^<49NUB>
FD:3;nUY7
-c 命令名称 可使用的讯号: kVR_?ch{
ZxLd h8v.
以下列出已知的讯号名称,讯号代号,功能。 (3~h)vaJ
jR[VPm=
名称 (代号) 功能/ 描述 lZ|+.T!g?
]Jz2[F"J
ALRM 14 离开 u0 myB/`
9+H C!Uot
HUP 1 离开 >W Tn4SW@
/j46`F
INT 2 离开 ]r|sU.Vl
Z;Q2tT/F
KILL 9 离开/ 强迫关闭 D])&>
[qbZp1s|(
PIPE 13 离开 4&%0%
,Ta k',
POLL 离开 B;x5os
ybNo`:8A;
PROF 离开 Yuo:hF\DH
E><$sN6
TERM 15 离开 {\zTE1X9
3/_rbPr
USR1 离开 *-uA\
Y;2WY0eq
USR2 离开 $eHYy,,
}C-K0ba7
VTALRM 离开 LCBP9Rftvd
U9"g;t+/
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 w5fVug/;P
#uTNf78X
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 _L?MYkD
)Y4;@pEU
TSTP 停止 /产生与内容相关的行为 W]Bc7JM]T+
#gW"k;7P
TTIN 停止 /产生与内容相关的行为 8/W(jVO(-
7PTw'+{
TTOU 停止 /产生与内容相关的行为 nv$>iJ^~H
6Qtyv
STOP 停止 /强迫关闭 jW]Q-
BoJpf8e'-e
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 Td,2.YMQ
zF:
:?L~
PWR 忽略 /在某些系统中会离开 M%&1j >d
EzII!0 F
WINCH 忽略 0?V{u`*
'q>2WP|UY9
CHLD 忽略 7R5m|h`M
a]H&k$!c
ABRT 6 核心 ^IQtXae6M
_[)f<`!g_V
FPE 8 核心 Hk&op P9)
^wass_8
ILL 4 核心 i~Q nw-^B
p1F{ v^
QUIT 3 核心 y{>T['"@
l,fwF ua
SEGV 11 核心 Q|KD$2rB
/]U),LbN
TRAP 5 核心 8*zORz
fQm3D%
SYS 核心 /或许尚未实作 !NqLBrcv 0
&=f] a
EMT 核心 /或许尚未实作 ,FIG5-e,}
xAwP
BUS 核心 /核心失败 af@R\"N9c
ZR]p7{8B
XCPU 核心 /核心失败 W3+;1S$k
%Ev)Hk
XFSZ 核心 /核心失败 gQQve{'
8|JPQDS7
范例: q$7w?(Lk
停止所有在 PTY 装置上的程序 V36u%zdX5n
skill -KILL -v pts/* [_T6
Ly46S
停止三个使用者 user1 , user2 , user3 h 8<s(WR
skill -STOP user1 user2 user3 P*|qbY
y3XR:d1cg
其他相关的命令: kill xiv8q/
名称:expr Vp$<@Y
使用权限:所有使用者 /np05XhEa
### 字串长度 G^ShN45
vRkVPkZ6|
shell>> expr length "this is a test" V~#8lu7;
14 Tuz~T
_M
### 数字商数 f_|pl^
shell>> expr 14 % 9 h3e
%(a
5 %OJ"@6A
### 从位置处抓取字串 DX0#q #
shell>> expr substr "this is a test" 3 5 '}l7=r
is is o,rK8x
### 数字串 only the first character q#6|/R*
shell>> expr index "testforthegame" e GX+Gqj.
2 %)ri:Q q
### 字串真实重现
eC[G4
shell>> expr quote thisisatestformela :]icW^%
thisisatestformela