linux常用命令
0sxZa+G0o % H"A% 称:/etc/aliases
iaShxoIV 使用权限:系统管理者
*5KV DOd
使用方式: 请用 newaliases 更新资料库
}*vUOQQp* 说明:
8Q $fXB sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
(S~|hk^ 43_;Z| T /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
q:Lw!'Zh # newaliases
N^i<A2'6S; }~gBnq_DDU 下面命令会做相同的事,
Ec!fx\ # sendmail -bi
s"1:#.u "r@f&Ssxb 相关命令:
fAx7_}k/ m mail, mailq, newaliases, sendmail
z=ItKoM*< MF+J3) ” mail [返回]
~lB im$o 名称:mail
j9)WInYc: 3@u<Sa 使用权限:所有使用者
(#zSVtZ Rx';P/F0C 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
R7'a/ Vp3r 说明:
|Ld/{&Qr mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
vfb~S~|U6g B(}u:[
b^S 参数:
i1ph{;C i 忽略 tty 的中断讯号。 (interrupt)
n,KOQI; I 强迫设成互动模式。 (Interactive)
bj6-0` v 列印出讯息,例如送信的地点、状态等等。 (verbose)
Ie 3
F n 不读入 mail.rc 设定档。
H)XHlO^ s 邮件标题。
45cMG~]p c cc 邮件地址。
f<!3vAh b bcc 邮件地址。
fBgW0o.Bu ^T}6oUd 范例:
&zVF!xNy& *.g0;\HF 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
?Bg<74 mail
user1@email.address
` oBlv mail
user1@email.address user2
"S$4pj`< x,kZ>^]&b 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
t\[aU\4-7 uXx c2} mail -s 标题 -c user1 user2 < mail.txt
^G5BD_ }lN@J,q 指令:mesg
5k&tRg 使用权限 : 所有使用者
+APf[ZpU I]S8:w![ 使用方式 : mesg [y|n]
%lL^[`AR 7"L`|O?8) 说明 : 决定是否允许其他人传讯息到自己的终端机介面
+q z"+g FcR(uv< 把计 ?
[/.5{|&GSt iUcDj: y : 允许讯息传到终端机介面上。
eBZ^YY<*g n : 不允许讯息传到终端机介面上 。
hdFIriE3 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
L2v
j)( d,"?tip/SX 例子 :
\Qp #utC0s 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
x)'4u6;d mesg n
etY/K0 与 mesg 相关的指令有: talk,write,wall。
{?-@`FR- 名称:/etc/aliases
.SdHFWx 使用权限:系统管理者
_O!)aD 使用方式: newaliases
KH4
5A'o 说明:
.A;D-"! sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
zbL!q_wO r[P5
ufy2] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
G]q1_q4P1? 8FY.u{93 参数:没有任何参数。 范例:
c*+yJNm3> # newaliases
&_Py{Cv@Dw e}qG _* 下面命令会做相同的事,
[UJC/GtjS # sendmail -bi
fV[(s7vW @=KuoIV 相关命令:
+8+@Az[e0 mail, mailq, newaliases, sendmail
2FHWOy
/N@ 名称 : talk
8=
jl]q$< 使用权限 : 所有使用者
vRm.#+Td x"kc:F 使用方式 :
uo`O$k<; Mx,QgYSu talk person [ttyname]
h-rPLU;Bw 说明 : 与其他使用者对谈
w6F'rsko] FU-YI" 把计 :
; aA,H& person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ZVo%ssVt ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
chjXsq#Q^ -eKi}e 例子.1 :
vfG4PJ 6 _C`cO 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
F<8Rr#Z talk Rollaend
Ax[!7~s 1i;-mYGaMn 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
i?R+Ul`Q xpo<1Sr>S 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
v3 $+l1 talk
Rollaend@linuxfab.cx pts/2
^WDAW#f*< )+]8T6~
N K\5'pp1 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
Y9rW_m@B lWj|7 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
K9v@L6pY= hX#s3)87 名称 : wall
J)O1)fR 使用权限 : 所有使用者
3eUTV<! _D9`L&X} 使用方式 :
^4@~\#$z wall [ message ]
vywd&7gK 使用说明:
Do@:|n wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
SJY<#_b R["2kEF 例子 :
5m,{?M` )zK`*Fa
az 传讯息"hi" 给每一个使用者 :
neW_mu;~Z wall hi
e%VJ:Dj 名称 : write
<b74L 使用权限 : 所有使用者
et|P5%G =j[zMO 使用方式 :
!a&@y#x V|.3Z\( write user [ttyname]
d4c-(ZRl 说明 : 传讯息给其他使用者
Lq@pJ)a p8<Y5:` 把计 :
$x&@!/&|pv *@'4 A :A user : 预备传讯息的使用者帐号
/H+br_D9 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
b#p)bcz!I B9`^JYT< 例子.1 :
h?wNmLre ]=v_u9; 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
Sbub| write Rollaend
#W#GI"K ;Ab`b1B 接下来就是将讯息打上去,结束请按 ctrl+c
*ayn<Vlh`^ XE]YKJ?|k 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
$Xf1|!W%a% write Rollaend pts/2
6x KbK1W }>vf(9sF` 接下来就是将讯息打上去,结束请按 ctrl+c
wD>tR
SW ,<$6-3sC- 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
;2"#X2B A:Z$i5%' 名称:kill
55xv+|k 使用权限:所有使用者
-L>\ 58` q0Fq7rWP 使用方式:
Ojj:YLlY> O[Xl*9P kill [ -s signal | -p ] [ -a ] pid ...
;+]9KIa_Pq kill -l [ signal ]
M0`nr}g 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
$3BCA)5: 把计?
y3T-^ BcaMeb-Z -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
kR%bdN -p : 印出 pid , 并不送出信号
WrhC
q6 -l (signal) : 列出所有可用的信号名称
+}c
'4hRv 范例:
4,L( IVD1mk 将 pid 为 323 的行程砍掉 (kill) :
Q!/<=95E kill -9 323
xlVQ[Mt Eq-fR~<9 将 pid 为 456 的行程重跑 (restart) :
grEmp9Q ? kill -HUP 456
lyiBRMiP| 4fBgmL 名称:nice
9`}Wp2 使用权限:所有使用者
[\CQ_qs| Ms5m.lX 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
6U;pYWht X1U7$/t 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
=jdO2MgSg* ^,zE Nqg7 qq}EXq ^ 把计?
{<~0nLyJS 4kGA`XhS* -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
n k]tq3.[ --help 显示求助讯息
v0!>": --version 显示版本资讯
>B$ZKE 范例:
A+%oE 将 ls 的优先序加 1 并执行 :
F\!;}z nice -n 1 ls
=W)Fa6P3j( hGi"=Oud2 将 ls 的优先序加 10 并执行 :
mfOr+ nice ls将 ls 的优先序加 10 并执行
M.1bRB 3#R~>c2 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
SeAokz> ]c{Zh?0 名称:ps
_3<J!$]&p 使用权限:所有使用者
lbrob' '+ 使用方式:ps [options] [--help]
\FN"0P(G 说明:显示瞬间行程 (process) 的动态
X0
&1ICZ 参数:
u2K{3+r`' ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
";B.^pBv@; -A 列出所有的行程
6N(Wv0b $ -w 显示加宽可以显示较多的资讯
{snLiCl -au 显示较详细的资讯
q@;WXH O0 -aux 显示所有包含其他使用者的行程
f XxdOn. y [e$ au(x) 输出格式 :
fI}Z`* P\;lH"9 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
pH.wCD:1n USER: 行程拥有者
6}mbj=E` PID: pid
"|RP_v2 %CPU: 占用的 CPU 使用率
<4}zl'. %MEM: 占用的记忆体使用率
/b,M492 VSZ: 占用的虚拟记忆体大小
`L`*jA+_ RSS: 占用的记忆体大小
ghd~p@4 TTY: 终端的次要装置号码 (minor device number of tty)
<lZyUd STAT: 该行程的状态:
AbUPJF"F D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
>FPE%X0+ R: 正在执行中
|Q:$G!/ S: 静止状态
qgrRH' T: 暂停执行
I_.(&hMn Z: 不存在但暂时无法消除
x{<WJ|'B W: 没有足够的记忆体分页可分配
$7gzu4f <: 高优先序的行程
I z~#G6]M N: 低优先序的行程
SQ5SvYH L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Woa5Ov!n0 START: 行程开始时间
x3>K{ TIME: 执行的时间
CF9a~^+% COMMAND:所执行的指令
b!SGQv(^M 范例:
6NJ"ty9Bp ps
|$Dt6{h PID TTY TIME CMD
h8>7si 2791 ttyp0 00:00:00 tcsh
u7G@VZ Ux5 3092 ttyp0 00:00:00 ps
'vj45b % ps -A
L?&+*|VxI PID TTY TIME CMD
.Tt \U 1 ? 00:00:03 init
x3T)/'( 2 ? 00:00:00 kflushd
,eOOV@3C 3 ? 00:00:00 kpiod
>i~W$;t 4 ? 00:00:00 kswapd
`,H\j? 5 ? 00:00:00 mdrecoveryd
5%(J +d .......
NuI9"I/ % ps -aux
3;~1rw=$< USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
o%X_V!B{V root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
`x$d8(1J`# root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
`48jL3| root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
xc Wr hg root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
'#$%f ........
*3WK:0 名称:pstree
r&)/3^S ' 使用权限:所有使用者
0F=UZf& 使用方式:
jV8mn{< pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
+`9
]L]J]4 pstree -V
2<>n8 K 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
X}p#9^%N 参数:
%Fq"4% -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
-[i9a:eRM -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
A=!&2( 范例:
"C.'_H!Ex pstree
CCfuz & z*ZEw init-+-amd
2\l7=9 ]\3 |-apmd
pl
Ii |-atd
KCJ zE> |-httpd---10*[httpd]
1qbd6D|t %pstree -p
(7`goi7M init(1)-+-amd(447)
'IBs/9=ZC |-apmd(105)
Dk|S`3 |-atd(339)
(~xFd^W9o %pstree -c
&>0=v init-+-amd
5^cPG" 4@ |-apmd
'x<gC"0A |-atd
X'.}#R1 |-httpd-+-httpd
!1+L0,I6 | |-httpd
2,puu2F | |-httpd
Z!G_" 3 | |-httpd
rJ ?Y~Q ....
mm/U9hbp% 名称:renice
>4}+\ Q`S 使用权限:所有使用者
|TF,Aj X<\^*{ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
vi@a87w> Ttn=VX{
\ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
yxQxc5/X) #9EpQc[4 把计?
GV6!`@< W*;~(hDz -p pid 重新指定行程的 id 为 pid 的行程的优先序
qd~)Ya1 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
\.myLkm -u user 重新指定行程拥有者为 user 的行程的优先序
b')CGqbbmT 范例:
H)tYxW 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
<%hSBDG!x renice +1 987 -u daemon root -p 32
bBAZr`<&U H&E c*MT 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
l-_voOP d]VL(& 名称:top
v3Tr6[9 使用权限:所有使用者
l*HONl&j {5-4^|! 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] |@]J*Kh
gC;y>YGP
说明:即时显示 process 的动态 ?;,s=2
6AqHzeh
把计? \
lP
c,8)
=#^%; 6 6z
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ;nji<
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 x?KgEcnw2X
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 AnU,2[(
s : 安全模式,将交谈式指令取消, 避免潜在的危机 \ :8~na+(
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 N/DcaHFYo
n : 更新的次数,完成后将会退出 top dl'pl
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 k^J~l=?v
dc5w_98o
范例: -LzHCO/7(
显示更新十次后退出 ; 3qiE#+dC
top -n 10 T.d+@ZV<#
m;WUp{'
使用者将不能利用交谈式指令来对行程下命令 : W)1)zOD
top -s (WR&Vt4R