linux常用命令
b,7k)ND1F =;Au<| 称:/etc/aliases
eA2@Nkw~) 使用权限:系统管理者
ofm#'7P 0 使用方式: 请用 newaliases 更新资料库
-|$@-fY; 说明:
bCRV\myd` sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Kp%2k^U G<65H+)M\ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
>qnko9 V # newaliases
wW>A_{Y d;boIP`M; 下面命令会做相同的事,
s6 uG`F" # sendmail -bi
ztcp/1jIvS j eoz*Dz 相关命令:
(C\]-E> mail, mailq, newaliases, sendmail
f6hnTbJ +$ 'Zf0U ” mail [返回]
&u$Q4 名称:mail
'DP1,7 75T%g!c# 使用权限:所有使用者
(7wc *#} 5_GYrR2 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
M\uiq38 3lrT3a3vV 说明:
11Q1AN mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
0CnOL!3.I @0Ic3C[rH6 参数:
"g5^_UP i 忽略 tty 的中断讯号。 (interrupt)
<? q?Mn I 强迫设成互动模式。 (Interactive)
*#,7d"6W5 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
n(1l}TJy n 不读入 mail.rc 设定档。
@LF,O}[2J s 邮件标题。
D+l AhEN c cc 邮件地址。
.s?L^Z^ b bcc 邮件地址。
PxvyN_B#> P)Jgs 范例:
L+b6!2O, X_q\S g 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
q+yQwX{ mail
user1@email.address
f\|w' mail
user1@email.address user2
n@<YI }|h# \$w 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
Ua:}V n&! I fK,b*% mail -s 标题 -c user1 user2 < mail.txt
?+))}J5N\ YL!P0o13r 指令:mesg
g];!&R- 使用权限 : 所有使用者
p_RsU`[ Wf+cDpK 使用方式 : mesg [y|n]
Snj'y,p[ >FeX<L 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Cjn#00 h79}qU 把计 ?
Ouk^O}W6 q}3`|'3 y : 允许讯息传到终端机介面上。
rDdoOb]B n : 不允许讯息传到终端机介面上 。
x[
SDl(<@; 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
7`*h2 mgY ROH|PKb7 例子 :
=Qy<GeY 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
IPS4C[v mesg n
"{A(x
}'Y4 与 mesg 相关的指令有: talk,write,wall。
C7]f*TSC4 名称:/etc/aliases
T^zXt? 使用权限:系统管理者
S\CCrje 使用方式: newaliases
?qb}?&1 说明:
(d(CT; sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Amtq"<h9a wW Lj?;bx /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
u+9hL4 k
R?qb6 参数:没有任何参数。 范例:
y6g&Y.:o # newaliases
>xN
.F/[K M[NV)q/) 下面命令会做相同的事,
j
*
% # sendmail -bi
nGC/R& &h}#HS>l 相关命令:
KYB`D.O mail, mailq, newaliases, sendmail
2R[:]-b 名称 : talk
(Lbbc+1m 使用权限 : 所有使用者
&sl0W-;0 " s,1%Ltt 使用方式 :
z}.e]|b^H '6DBs8>1 talk person [ttyname]
[F+}V, 说明 : 与其他使用者对谈
b!+hH Hv: 8=!D$t\3 把计 :
l5~os> person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name A[B<~ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
1a/++4O.| 0Fq}
N 例子.1 :
2IK}vDsis P?%s
#I: 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
ez7A4>/ talk Rollaend
|NlO7aQ>2H ;xy"\S] 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
1v y*{D kBS9tKBWg 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
B.=FSow talk
Rollaend@linuxfab.cx pts/2
Lw1Yvtn <3nMx^ 8C40%q.. 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
jVi) Efy EAUEQk?9 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
7P} W
* 'B|JAi? 名称 : wall
6%' QjwM_ 使用权限 : 所有使用者
MxKS4k $z6_@`[ 使用方式 :
GblA9F7 wall [ message ]
Y/F6\oh 使用说明:
-E[Kml~U wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
I^.Om]) O2V 例子 :
Cp\6W[2+B y
RqL9t 传讯息"hi" 给每一个使用者 :
YP oSRA L wall hi
[NTzcSN. 名称 : write
:
6jbt: 使用权限 : 所有使用者
}{Pp]*I<A ./Xz}<($8 使用方式 :
ROI7eU ijv(9mR write user [ttyname]
xo^b&ktQd 说明 : 传讯息给其他使用者
2DA]i5
3Tcms/n 把计 :
Da*?x8sSL J0WxR&%a) user : 预备传讯息的使用者帐号
\
#F ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
+Ze}B*0 hPkp;a # 例子.1 :
=IZT(8 iT+8|Yia 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
#\{l"- write Rollaend
E_rI?t^ gT.sjd 接下来就是将讯息打上去,结束请按 ctrl+c
C[cbbp >>r(/81S 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
yX>K/68 write Rollaend pts/2
u,ho7ht3( WCZjXDiwJ 接下来就是将讯息打上去,结束请按 ctrl+c
:U|1 xgB )rU 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
e+7"/icK (TtkFo'!U 名称:kill
NWESP U):w 使用权限:所有使用者
/8'NG6"H` K8|r&`X0 使用方式:
q>_.[+6 I9A~Ye
5O& kill [ -s signal | -p ] [ -a ] pid ...
P8:dU(nlW kill -l [ signal ]
b#%hY{$j 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
C^Yb\N}S 把计?
-m zIT4 +HpA:]#Y -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
tU5zF.% -p : 印出 pid , 并不送出信号
a=_g*OK}D -l (signal) : 列出所有可用的信号名称
o'aEY<mZ7 范例:
QE+g
j8 /KaZHR. 将 pid 为 323 的行程砍掉 (kill) :
b~P`qj[ kill -9 323
{
'eC`04E x;.Jw6g 将 pid 为 456 的行程重跑 (restart) :
9.M4o[ kill -HUP 456
)
w5SUb H7Rx>h_ 名称:nice
?=msH=N<l 使用权限:所有使用者
/U*C\ xMm DCO\c9 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
`g?Negt\v oSKXt}sh 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
xj)F55e? F{e@W([ 8NJqV+jn)t 把计?
oCv.Ln1;Z {w O|)| -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
m])y.T --help 显示求助讯息
3pROf#M --version 显示版本资讯
n38p !oS 范例:
%IA\pSE 将 ls 的优先序加 1 并执行 :
G_8R K,H. nice -n 1 ls
Y5Bo|*b BwEN~2u6 将 ls 的优先序加 10 并执行 :
_.Nbt(mz nice ls将 ls 的优先序加 10 并执行
,8uqdk-D s\(k<Ks 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
|^I0dR/w:
_"yh.N& 名称:ps
pU}(@oy 使用权限:所有使用者
:S83vE81WK 使用方式:ps [options] [--help]
S3 %FHS 说明:显示瞬间行程 (process) 的动态
W(Fv
l 参数:
\:'/'^=#| ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Rok7n1gW -A 列出所有的行程
r+i($jMs -w 显示加宽可以显示较多的资讯
I]t!xA~ -au 显示较详细的资讯
.VJMz4$]O -aux 显示所有包含其他使用者的行程
CsR$c,8X. Kk0g0C:"EO au(x) 输出格式 :
,-c6dS OZF
rtc+ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
M)+H{5bt USER: 行程拥有者
/Iy]DU8 PID: pid
%(#y5yJ ] %CPU: 占用的 CPU 使用率
[!uG1 GJ> %MEM: 占用的记忆体使用率
U$.@]F4& VSZ: 占用的虚拟记忆体大小
oulVg]; RSS: 占用的记忆体大小
gCS<iBT(7 TTY: 终端的次要装置号码 (minor device number of tty)
HZB>{O STAT: 该行程的状态:
P )"m0Lu< D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
2;`1h[,-^ R: 正在执行中
b5I I/Y S: 静止状态
/9*B)m" T: 暂停执行
N)| yu1S Z: 不存在但暂时无法消除
6<SAa#@ey W: 没有足够的记忆体分页可分配
%lhEM}Sm <: 高优先序的行程
c|y(2K)o[= N: 低优先序的行程
/{l$sBUL L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
,4e:I.b START: 行程开始时间
)[6U^j4 TIME: 执行的时间
.V/Rfq COMMAND:所执行的指令
<?6|.\& 范例:
#U4F0BdA ps
Gr'
CtO PID TTY TIME CMD
1CD+B=pQG 2791 ttyp0 00:00:00 tcsh
34O
`@j0-3 3092 ttyp0 00:00:00 ps
4r#= * % ps -A
85$m[+md PID TTY TIME CMD
dr}`H,X"3 1 ? 00:00:03 init
bdrg(d6 2 ? 00:00:00 kflushd
S~bOUdV
Z 3 ? 00:00:00 kpiod
.t-4o<7 3 4 ? 00:00:00 kswapd
VBGuC c/ 5 ? 00:00:00 mdrecoveryd
6Q@j
.......
&j`} vg % ps -aux
".V$~n( USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
k68T`Ub\W6 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
'Cfl*iNb root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
Wx}8T[A} root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
LVfF[ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
DB|Y ........
*b}HNX| 名称:pstree
;O6;.5q& 使用权限:所有使用者
|Nn)m 使用方式:
RDi]2 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
o Q2Fjj pstree -V
`Bp.RXsd* 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
*uf'zQ<9 参数:
8 &LQzwa -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
+b<FO+E_ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
$E~`\o%Ev 范例:
S(I{NL}=$ pstree
]EBxl=C}D .-c4wm} init-+-amd
=E4LRKn |-apmd
u#$]?($}d |-atd
Y|f[bw |-httpd---10*[httpd]
<tNBxa$gS %pstree -p
Qf+\;@ init(1)-+-amd(447)
u@UMP@"# |-apmd(105)
c
/HHy, |-atd(339)
?k&Vy %pstree -c
L:j<c5 init-+-amd
_x'6]f{n |-apmd
,X-bJA@( |-atd
F=e8 IUr |-httpd-+-httpd
2!m/ | |-httpd
xp)sBM7A | |-httpd
T{.pM4Hd | |-httpd
?m}s4a ....
3>AMII 名称:renice
/{aj}M0kN 使用权限:所有使用者
`l
^9/_g'6 L-WT]&n_ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
)._; ~z! Fn;SF4KOm 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
q4:o#K# ,+DG2u 把计?
8,4"uuI { ]{/t-= -p pid 重新指定行程的 id 为 pid 的行程的优先序
/<=u\e'rE -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
EF[@$j
-u user 重新指定行程拥有者为 user 的行程的优先序
{_[N<U:QT& 范例:
i Dp)FQ$ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
D9=KXo^ renice +1 987 -u daemon root -p 32
+ T1pJ 89P H9`)BbR 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
%KlrSo x.!V^HQSN 名称:top
ZF9z~9 使用权限:所有使用者
]?kZni8j_ 2\MT;;ZTZ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] rNWw?_H-H(
$oID(P
说明:即时显示 process 的动态 | `2RShu
!}#8)?p
把计? WUe{vV#S'0
kW Ml
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s EReZkvseC
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 (z{#Eq4
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Iby\$~V
s : 安全模式,将交谈式指令取消, 避免潜在的危机 &tLgG4pd
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 #uG%j
n : 更新的次数,完成后将会退出 top 6$Xzpg(o
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 mI-]/:
{M4gF8(M
范例: UT~4x|b:O
显示更新十次后退出 ; [I,Z2G,Jb
top -n 10 QC
OM_$ y
{tuYs:
使用者将不能利用交谈式指令来对行程下命令 : .Ni\\
top -s 2/\r)$
2i
s^G.]%iU
将更新显示二次的结果输入到名称为 top.log 的档案里 : A@!qv#'
top -n 2 -b < top.log #C74z$
Z*]9E^
名称:skill 8yR.uMI$/
<sGVR5NR
使用权限:所有使用者 Db}j?ik/
;40/yl3r3[
使用方式: skill [signal to send] [options] 选择程序的规则 Fx_z 6a
r"3=44St
说明: 0y'H~(
:1.L}4"gg
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 shy-Gu&
qdJ=lhHM}
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 ~tS Z%q
F4-$~v@
一般参数: TVtvuvQ2K
TTX5EDCrC
-f 快速模式/尚未完成 ok"k*?Ov
Y|F9}hj(
-i 互动模式/ 每个动作将要被确认 mUAi4N
oQ/E}Zk@
-v 详细输出/ 列出所选择程序的资讯 93)sk/j
zlSNfgO
-w 智能警告讯息/ 尚未完成 ouvA~/5
JQ_sUYh~3
-n 没有动作/ 显示程序代号 ,GhS[VJjR
wtLO!=B
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 >UTBO|95y
Wq D4YGN
-t 终端机代号 ( tty 或 pty ) T@H^BGs
}z'8Bu
-u 使用者名称 hohfE3rd
$lfn(b,
-p 程序代号 ( pid ) $ZhFh{DQ.
b4%??"&<Y
-c 命令名称 可使用的讯号: !3c\NbU
1Z/(G1
以下列出已知的讯号名称,讯号代号,功能。 a{'vN93
@p9i
名称 (代号) 功能/ 描述 )Yh+c=6
?
gS!:+G%
ALRM 14 离开 t9GR69v:?
@muRxi
HUP 1 离开 ehGLk7@7&
HYD'.uj
INT 2 离开 htO+z7
Y!aSs3c
KILL 9 离开/ 强迫关闭 >NGj
=L<