linux常用命令
*^wm1|5 k4[|'Dk? 称:/etc/aliases
1cD! :[ 使用权限:系统管理者
u9EgdpD 使用方式: 请用 newaliases 更新资料库
6 jn3`D 说明:
wD]/{
jw sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
s=QAO!aw i0$kit /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
ZXuv CI # newaliases
%GS(:]{n #: [<iSk 下面命令会做相同的事,
Ch3jxgQY # sendmail -bi
U b* wuI uPl\I6k 相关命令:
`p;I} mail, mailq, newaliases, sendmail
9Q+'n$s0^ la+[bm<v ” mail [返回]
SrK) t.oK 名称:mail
8{X"h# 3^6
d]f 使用权限:所有使用者
ikSt"}/hd -xA2pYz" 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
|VNnOM nPy$D-L, 说明:
_<OSqE mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
vG"=h% uD@# 参数:
lH6OcD:kj i 忽略 tty 的中断讯号。 (interrupt)
+P`*kj-P\ I 强迫设成互动模式。 (Interactive)
Kiu_JzD v 列印出讯息,例如送信的地点、状态等等。 (verbose)
1jF`5k n 不读入 mail.rc 设定档。
PU1Qsb5 s 邮件标题。
trp0V4b8 c cc 邮件地址。
]n~ilS.rkl b bcc 邮件地址。
~"kb7Fxp Ot6aRk 范例:
pv Gf\pu +y3%3EKs1~ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
aN8|J?JH mail
user1@email.address
DuHu\>f<S mail
user1@email.address user2
%YC_Se7 1BpiV-]=
将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
hj.a&% bKN@j'M mail -s 标题 -c user1 user2 < mail.txt
<yH4HY J.xPv)1' 指令:mesg
*=I}Qh(1 使用权限 : 所有使用者
#/<&*Pu5t U5.LDv; 使用方式 : mesg [y|n]
/q`xCS 0p}D(m2B 说明 : 决定是否允许其他人传讯息到自己的终端机介面
2
Cv4=S ?1K#dC52# 把计 ?
vbC\?\_ W1|0Yd ;P y : 允许讯息传到终端机介面上。
zIu
E9l n : 不允许讯息传到终端机介面上 。
a+Kj1ix 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
!~rY1T~ NP/Gn6fr 例子 :
f m)pulz 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
'g
m0) r mesg n
A"G
1^8wvX 与 mesg 相关的指令有: talk,write,wall。
^Uf]Q$uCjE 名称:/etc/aliases
G'ei/Me6{ 使用权限:系统管理者
[Q/TlO t5 使用方式: newaliases
ov_j4j>6P 说明:
[8=vv7wS sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
)E-inHD / AN/;)wc /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
:lPb.UCY n
T{3o;A 参数:没有任何参数。 范例:
U$WxHYo # newaliases
K|hjEQRv F|e1"PkeoA 下面命令会做相同的事,
#\ X#w<\? # sendmail -bi
=pS5uR~ 4O )1uF; 相关命令:
n O\"HLM mail, mailq, newaliases, sendmail
0dGAP
名称 : talk
e'~J,(fB 使用权限 : 所有使用者
5?3Me59 b2OQtSr a 使用方式 :
=IQ5<;U3 #AL=f'2=f talk person [ttyname]
DkvF 5c& 说明 : 与其他使用者对谈
W"}M1o ~nh:s|l6%M 把计 :
pxCK;] person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name S/e2P|} ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
C(#u[8 pu
7{a 例子.1 :
0;AA/ '":lB]hS 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
]pNvxXbeW talk Rollaend
1+jAz`nA:T qQ?"@>PALD 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
-y8`yHb_ =E.t`x= 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
]%wVHC talk
Rollaend@linuxfab.cx pts/2
N`L0Vd =WyZX 7@R o7sT=x9 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
->y J5smtY }NzpiY9 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
,^w?6?,&l} di6QVRj1 名称 : wall
_/6!yyl 使用权限 : 所有使用者
zxbpEJzpn MHX?@.
v 使用方式 :
$_o-~F2i5 wall [ message ]
=}DR)
9 使用说明:
Rn9m]x wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
(`c
[#0=n V-Sd[ 例子 :
h?BFvbAt T"E6y"D 传讯息"hi" 给每一个使用者 :
g!?:Ye`5 wall hi
?fUlgQ}N 名称 : write
Jrti
cK$ 使用权限 : 所有使用者
r^3acXl
-EkWs/'h 使用方式 :
G
MX? $c:ynjL|P- write user [ttyname]
Vzdh8)Mu\ 说明 : 传讯息给其他使用者
W&&;:Fr [z`31F 把计 :
Mn2QZp4 j3{I /m user : 预备传讯息的使用者帐号
)FF>IFHG ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
>*#1ZB_l 1 u| wMO 例子.1 :
?'@8kpb 5q;GIw^L 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
T92UeG write Rollaend
X(]WVCu _wkVwPr 接下来就是将讯息打上去,结束请按 ctrl+c
|)b6>.^ sk,ox~0R 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
mpI5J'>] write Rollaend pts/2
q)S^P> aT)BR?OYSJ 接下来就是将讯息打上去,结束请按 ctrl+c
oX S1QT`B kI
4MiK 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Bm.:^:&k <acUKfpY 名称:kill
w)kNkD 使用权限:所有使用者
dZ rAn tD(7^GuR 使用方式:
+cgSC5nR RrX[|GLSJ kill [ -s signal | -p ] [ -a ] pid ...
h|VeG3H kill -l [ signal ]
<lw`
3aa( 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
j9?}j#@ 把计?
5iz{op<$, 5!DBmAB -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
wQP^WzNE -p : 印出 pid , 并不送出信号
.aAL]-Rj
-l (signal) : 列出所有可用的信号名称
u frW\X 范例:
i'H/ZwU ~]pE'\D7Ad 将 pid 为 323 的行程砍掉 (kill) :
)uj Ex7&c kill -9 323
OGde00 z3&]%Q& 将 pid 为 456 的行程重跑 (restart) :
Tl$[4heE kill -HUP 456
E^ P,*s Bg5Wba%NK 名称:nice
xO^:_8=&: 使用权限:所有使用者
=vQcYa ^W'fA{sr 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
!%^^ \, z=rT%lz6
说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
# {w9s0: P
`}zlml %QH)' GJQ 把计?
|Y$uqRdV `x
l -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
<49K>S9O --help 显示求助讯息
3nT^?;- --version 显示版本资讯
?t/~lv 范例:
r@v,T8 将 ls 的优先序加 1 并执行 :
K`iv c N" nice -n 1 ls
p7veQ`yNc *BR~}1
i 将 ls 的优先序加 10 并执行 :
;>
_$` nice ls将 ls 的优先序加 10 并执行
,Sq/y~ ohF JZ' 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
F~%]6^$w //T>G_1 名称:ps
)PG6gZYW 使用权限:所有使用者
rR9|6l
3 使用方式:ps [options] [--help]
mef<=5t 说明:显示瞬间行程 (process) 的动态
[5zx17' 参数:
T&%ux=Jt ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
,sA[)wP { -A 列出所有的行程
G;v8$)Zj -w 显示加宽可以显示较多的资讯
YP.5fq: -au 显示较详细的资讯
r"``QmM -aux 显示所有包含其他使用者的行程
%X4xv_o`f tk!t
Y8j au(x) 输出格式 :
TD'L'm|2 aGJC1x USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
6l5:1|8b,! USER: 行程拥有者
'MEz|Z PID: pid
U}6.h&$ %CPU: 占用的 CPU 使用率
[s"O mAy4 %MEM: 占用的记忆体使用率
4{hps.$?~ VSZ: 占用的虚拟记忆体大小
X%Z{K- RSS: 占用的记忆体大小
oFy=-p+C TTY: 终端的次要装置号码 (minor device number of tty)
`tHvD=`m. STAT: 该行程的状态:
i`QKH D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
+W:=e,= R: 正在执行中
{Or; S: 静止状态
%MrWeYd1 T: 暂停执行
CK,7^U Z: 不存在但暂时无法消除
_d"b;4l W: 没有足够的记忆体分页可分配
^HV>`Pjd}= <: 高优先序的行程
73V|6tmgY N: 低优先序的行程
q}~3C1 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
qQA}Z*(m START: 行程开始时间
q*F{/N** TIME: 执行的时间
dRj| g COMMAND:所执行的指令
V.O(S\ 范例:
xl6,s>ob ps
giZP.C"0 PID TTY TIME CMD
M,/mE~ 2791 ttyp0 00:00:00 tcsh
o*DN4oa) 3092 ttyp0 00:00:00 ps
\@8+U;d % ps -A
z.GMqW%B PID TTY TIME CMD
K8>zF/# + 1 ? 00:00:03 init
u+'tfFds& 2 ? 00:00:00 kflushd
IPgt|if^ 3 ? 00:00:00 kpiod
.QA }u ,EN 4 ? 00:00:00 kswapd
\hBG<nH{0 5 ? 00:00:00 mdrecoveryd
NdL,F;^ .......
nQ q=7Gu % ps -aux
@2Z#x USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
i\KQ!f>A root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
7NDr1Z#B6V root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
jUSmqm' root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Y( 3Bp\6 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
-u2P ?~ ........
SS$[VV 名称:pstree
*a58ZI@ 使用权限:所有使用者
oASY7k_3 使用方式:
}emN9Rj pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
M[6:p2u pstree -V
|/09<F:L[ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
x$1]M DAGb 参数:
fb{``,nO -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
RLbKD> -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
k Mu8"Az 范例:
*^f<W6xc pstree
W_kHj}dj,p `glBV`?^ init-+-amd
lrv3fPIW |-apmd
-amBB7g |-atd
A9wh(P0\ |-httpd---10*[httpd]
!q9+9 *6 %pstree -p
2
dAB-d:k init(1)-+-amd(447)
~kZ G{ |-apmd(105)
~ vJ,`? |-atd(339)
W7 Cc %pstree -c
Zy o[(`y init-+-amd
<)u`~$n2 |-apmd
5qr'.m |-atd
b]x4o#t |-httpd-+-httpd
/4g1zrU | |-httpd
l y(>8F | |-httpd
AS\F{ !O | |-httpd
BaSZ71>9]r ....
4WJ.^ ( 名称:renice
cFeXpj?GV
使用权限:所有使用者
yls
^ cyX d5oIH 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
'=Rs/EDME z"0I>gl 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
8Le||)y,\ t0IEaj75c 把计?
<-[wd.M_ pov)Z):}G< -p pid 重新指定行程的 id 为 pid 的行程的优先序
gLy&esJl1 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
m06ALD_ -u user 重新指定行程拥有者为 user 的行程的优先序
{buo^kgj`] 范例:
B)qWtMZx 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
k&,~qoU renice +1 987 -u daemon root -p 32
Q
aS\(_ G&4&-< 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
sOU1n !"\80LP 名称:top
P/Q!<I 使用权限:所有使用者
K#pNec LN@F+CyDc 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] |NpP2|4h
Zg'Q>.:
说明:即时显示 process 的动态 XDFx.)t
y~F,0"N\r
把计? *XT/KxLa7
_i20|v
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s Y*H|?uNF
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 go'-5in(
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Mdl{}P0)
s : 安全模式,将交谈式指令取消, 避免潜在的危机 maXG:l|
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 cNM3I,o7
n : 更新的次数,完成后将会退出 top T[j#M+p
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ZuS0DPS`L
`NgAT
3zq
范例: nv@8tdrc
显示更新十次后退出 ; ~c %hWt
top -n 10 hM{{\yZS
Uc@Ao:
使用者将不能利用交谈式指令来对行程下命令 : 4`!Z$kt
top -s B2C$N0R#
=Ur}~w&H8
将更新显示二次的结果输入到名称为 top.log 的档案里 : HbXPok
top -n 2 -b < top.log |Z=^`J
qI~xlW
名称:skill +f@U6Vv
rEv$+pP
使用权限:所有使用者 *a #rM"6P
{TX]\ufG
使用方式: skill [signal to send] [options] 选择程序的规则 z7Q?D^miy
%Ti}CwI`
说明: kPF9Z "l
(Q.waI
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 LIZRoG8
ha(Z<
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 .y@oz7T5
wPwXM!
一般参数: ;#oie<
Vit
`Ye\p6v!+
-f 快速模式/尚未完成 <8d^^0
UrYZ`J
-i 互动模式/ 每个动作将要被确认 QlO0qbG[y
RPE5K:P
-v 详细输出/ 列出所选择程序的资讯 vK_?<>
a hR ^
-w 智能警告讯息/ 尚未完成 A-T]9f9
B[Zjfc
-n 没有动作/ 显示程序代号 V3c l~
_Jme!Oaa
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 w8Sp<6*
=
c>Qx"Sw
-t 终端机代号 ( tty 或 pty ) ENGg
~D
;9#Z@]p
-u 使用者名称 ev#;t@^
V&Xe!S
-p 程序代号 ( pid ) -3;*K4z$/
V-Cv,8
-c 命令名称 可使用的讯号: .zn;:M#T
Db;G@#x
以下列出已知的讯号名称,讯号代号,功能。 L"{JRbh[
;)!Sp:mHX
名称 (代号) 功能/ 描述 ]8f ms(
m6',SY9T
ALRM 14 离开 ^!9~Nwn
Cb9;QzBVA#
HUP 1 离开 {`K m_<Te!
QrYpZZ;
INT 2 离开 *
v75O7l
D (h18
KILL 9 离开/ 强迫关闭 YEj8S5"Su\
X!m9lV<
PIPE 13 离开 t5#rps\;
0o9 3iu=&
POLL 离开 qL6
|6-?
? P(
ZA
PROF 离开 BI $
" e}3:U5n
TERM 15 离开 rfNm&!K
:j]vf8ec
USR1 离开 WnGGo'Z
}jVSlCF@t
USR2 离开 )e a :Q?
(Nx;0"5IX
VTALRM 离开 h\PHKC2
A9kzq_3
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 /ew
Ukc8,
}w1~K'ck}>
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 QoG cWJ
1;mW,l'`
TSTP 停止 /产生与内容相关的行为 72oF ,42y
p\JfFfC
TTIN 停止 /产生与内容相关的行为 %5A+V0D0'
dO4{|(z
TTOU 停止 /产生与内容相关的行为 %YSu8G_t
C@bm
STOP 停止 /强迫关闭 o]p|-<I Q
|Tm!VFd
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 DBT&DS
^9ePfF)5
PWR 忽略 /在某些系统中会离开 F$hYKT2|
LWHd~"eU
WINCH 忽略 qHP78&wUx
^",ACWF4Sk
CHLD 忽略 |j VM&R2s
82]vkU
ABRT 6 核心 k5C@>J
~Q>_uw}g#
FPE 8 核心 hWT[L.>k
A _XhuQB;d
ILL 4 核心 MHsc+gQiz
TH$N5w%
QUIT 3 核心 E[bd@[N
8
! ykx^z
SEGV 11 核心 tX"Th'Qi
\@1=stK:F
TRAP 5 核心 k:#P|z$UD
,iv|Pq$!
SYS 核心 /或许尚未实作 ")!,ZD
#*g5u{k'P
EMT 核心 /或许尚未实作 `zE}1M%y
%LZ({\5K#f
BUS 核心 /核心失败 a\:VREKj,
kJ-*fe'S
XCPU 核心 /核心失败 aBw2f[mo
* C6a?]
XFSZ 核心 /核心失败 i![dPM
(>I`{9x>6
范例: l+g9 5mjP
停止所有在 PTY 装置上的程序 pTyi!:g3W
skill -KILL -v pts/* y:h}z).
hweaGL t0
停止三个使用者 user1 , user2 , user3 ;x8k[p~2
skill -STOP user1 user2 user3 *L'>U[Pl7
jD`d#R
其他相关的命令: kill NU*fg`w
名称:expr SY^dWLf
使用权限:所有使用者 rJ!{/3e
### 字串长度 NM6Teu_
!\,kZ|#>
shell>> expr length "this is a test" ;XDz)`c
14 %bD}m!
### 数字商数 4|`Bq}sjZf
shell>> expr 14 % 9 W!"}E%zx
5 pKjoi{
Z
### 从位置处抓取字串 wj1{M.EF\
shell>> expr substr "this is a test" 3 5 p IKSs<IP
is is v^_mFp-}\
### 数字串 only the first character {|yob4N
shell>> expr index "testforthegame" e fz3lV
2 ~35U]s@v
### 字串真实重现 Y"6w,_'m
shell>> expr quote thisisatestformela RNhJ'&SYs
thisisatestformela