linux常用命令
7TnM4@*f x3gwG)Sf 称:/etc/aliases
.r7D)xNa@ 使用权限:系统管理者
XynU/Go, 使用方式: 请用 newaliases 更新资料库
Zo'/^S 说明:
;x,+*% sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
)-)ss"\+Ju Fgskb"k/ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
y-%nJD$ # newaliases
Xm%iPrl D 2ve
lH; 下面命令会做相同的事,
&K+ # sendmail -bi
^@ M [t< DakLD~H; 相关命令:
i^/
eN mail, mailq, newaliases, sendmail
L7s>su|c( r>E\Cco ” mail [返回]
hx*HY%\P 名称:mail
`i=JjgG@ h -Tsi:%b 使用权限:所有使用者
aMBL1d7 S^|$23} 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
,Y$F7& } /[_ 说明:
Qk+=znJ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
W]Y@WKeT ]cn/(U` 参数:
Fq vQk i 忽略 tty 的中断讯号。 (interrupt)
t8t}7XD
I 强迫设成互动模式。 (Interactive)
~5FS|[1L v 列印出讯息,例如送信的地点、状态等等。 (verbose)
1NuR/DO n 不读入 mail.rc 设定档。
fS5GICx8R s 邮件标题。
hyJ
ded&D c cc 邮件地址。
79TPg b bcc 邮件地址。
+.S#= J 5Wz4`' 范例:
j?Cr31 RP,A!pa@ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
c!tvG*{ mail
user1@email.address
gTqeJWX9wP mail
user1@email.address user2
N-XVRuv s.VUdR" 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
g Cg4;b6g XyvZ&d6(d mail -s 标题 -c user1 user2 < mail.txt
c9\B[@-q os}b?I*K 指令:mesg
yT[Lzv# 使用权限 : 所有使用者
J"/JRn 5dg-d\6S 使用方式 : mesg [y|n]
UN-T^ \R6;Fef 说明 : 决定是否允许其他人传讯息到自己的终端机介面
E}]I%fi F5<"ktnI 把计 ?
G/NTe ;[FW! y : 允许讯息传到终端机介面上。
KYnW7|* n : 不允许讯息传到终端机介面上 。
Sg/:n,68 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
!S~,>,yd O3_D~O
." 例子 :
_L?v6MTj 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
b ^uP^](J mesg n
>r;ABz/ 与 mesg 相关的指令有: talk,write,wall。
R#"U/8b>z 名称:/etc/aliases
%T`4!:vy 使用权限:系统管理者
q:TZ=bs^ 使用方式: newaliases
-@YVe:$%b 说明:
V<7R_}^_7 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
zj~8>QnKk Zx}NFcn /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Gojl0? x?%rx}h 参数:没有任何参数。 范例:
rFKo E% # newaliases
AeNyZ[40T v(qV\:s}m 下面命令会做相同的事,
`V]egdO # sendmail -bi
u&1j>`~qJ =nJOaXR0 相关命令:
g2+l@$W mail, mailq, newaliases, sendmail
XD;15a 名称 : talk
:*mA,2s 使用权限 : 所有使用者
e*Uz#w: l84h%, 使用方式 :
a9yIV5_N ArNur~ talk person [ttyname]
2(c<U6#C'l 说明 : 与其他使用者对谈
4a(g<5wfI JK@izI 把计 :
|HaU3E*R person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name aDm-X r ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
u~'m7 xaGVu0q 例子.1 :
T^/Gj|N* z1Bj_u{ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
LL|_c4$Ky talk Rollaend
4q\.I+r^ qWRNHUd 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
%00k1*$ Jo6~r- 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
]I{qp~^#n talk
Rollaend@linuxfab.cx pts/2
n.2E8m/ 3v9gb,)y\ uS!
35{.> 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
1$='`@8I t 3(%UB 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
o~i]W.SI( 8gVxiFjo 名称 : wall
5?V? 使用权限 : 所有使用者
lH#@^i|G 5;3c< 使用方式 :
"/4s8.dw+u wall [ message ]
#,f}lV,& 使用说明:
*kX3sG$8 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
|@o]X?^ 6Nfof 例子 :
rK(x4]I
l" 8w{#R{w 传讯息"hi" 给每一个使用者 :
xm%[}Dt] wall hi
TEaD-mY3 名称 : write
,W)IVc
使用权限 : 所有使用者
q|47;bK' z;fd#N: 使用方式 :
l}2%?d %\(y8QV write user [ttyname]
{Y3_I\H8{ 说明 : 传讯息给其他使用者
&%f ]-=~ 3bg4# c 把计 :
^D W# /(hP7_]`2 user : 预备传讯息的使用者帐号
:$SRG^7md ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
;
McIxvj <?q&PCAn^ 例子.1 :
jV,(P$ 5; Sy+]SeF& 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
Uy$U8b-ov write Rollaend
#a7Amh\nT }#\;np 接下来就是将讯息打上去,结束请按 ctrl+c
E< zT v @$evmA 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
-!C
Y,'3 write Rollaend pts/2
D&z'tf5 jm#d7@~4 接下来就是将讯息打上去,结束请按 ctrl+c
b2/N H1A
:f?,]|]+- 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
SQ~N X) APHtJoS 名称:kill
+!L_E6pyXE 使用权限:所有使用者
g:.,}L 1WUFk ?p 使用方式:
j,|1y5f p0[,$$pM kill [ -s signal | -p ] [ -a ] pid ...
zbIwH6 kill -l [ signal ]
zJG x5JC 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
.WL\:{G8; 把计?
=BqaGXr 0_,3/EWa -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
X YNUss -p : 印出 pid , 并不送出信号
|g?/~%7 -l (signal) : 列出所有可用的信号名称
#FQm/Q<0 范例:
)5GdvqA hSx+{4PZ 将 pid 为 323 的行程砍掉 (kill) :
$+lz<~R kill -9 323
68'-1} E1l\~%A 将 pid 为 456 的行程重跑 (restart) :
? !oVf> kill -HUP 456
yv!''F:9F TzevC$m;z 名称:nice
X5L(_0?F1 使用权限:所有使用者
hdsgOu 8zCGMhd 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
yNLa3mW r3c\;Ra7 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
MuFU?3ovG* Ew?/@KAV\ Z5*(W;; 把计?
}GoOE=rhY P[#WHbn -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
0'V- --help 显示求助讯息
pE(<XD3Q --version 显示版本资讯
L6rs9su=7 范例:
(.quX@w"m 将 ls 的优先序加 1 并执行 :
,rH)}C<Q+ nice -n 1 ls
&-8-xw#. RXx?/\~yd; 将 ls 的优先序加 10 并执行 :
qa0JQ_?o] nice ls将 ls 的优先序加 10 并执行
r_g\_y7ua Cb@S </b 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
ohc/.5Kl <PfPh~ 名称:ps
CYFas:rPLT 使用权限:所有使用者
< ;%q
使用方式:ps [options] [--help]
!0. 5 说明:显示瞬间行程 (process) 的动态
XD+cs.{5 参数:
*0&i'0> ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
j quSR= -A 列出所有的行程
w}bEufU+2 -w 显示加宽可以显示较多的资讯
G"U>fwFuK -au 显示较详细的资讯
2W"cTm
-aux 显示所有包含其他使用者的行程
+3o)L?:g =qS^Wz. au(x) 输出格式 :
{o5K?Pb 9A}
kkMB: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
'a-5UTT USER: 行程拥有者
*nsnX/e(- PID: pid
pZ_FVID %CPU: 占用的 CPU 使用率
LKf5r,C %MEM: 占用的记忆体使用率
!aW*dD61 VSZ: 占用的虚拟记忆体大小
:`>+f.) RSS: 占用的记忆体大小
Z z;<P TTY: 终端的次要装置号码 (minor device number of tty)
{Jw<<<G STAT: 该行程的状态:
W
&0@&U D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
XJxs4a1[t R: 正在执行中
G%p!os\> S: 静止状态
:WfB!4%! T: 暂停执行
[BZ(p Z: 不存在但暂时无法消除
T24#gF~ W: 没有足够的记忆体分页可分配
-4^@)~Y <: 高优先序的行程
Z'EO N: 低优先序的行程
)(ZPSg$/F L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
i3kI2\bd/ START: 行程开始时间
ILr6W@o5A TIME: 执行的时间
p\]LEP\z, COMMAND:所执行的指令
DO- K 范例:
Ji}IV ps
L$u&~"z- PID TTY TIME CMD
qT<qu(V: 2791 ttyp0 00:00:00 tcsh
$NGtxZp 3092 ttyp0 00:00:00 ps
bhm~Ii % ps -A
$jeDVH PID TTY TIME CMD
:7DVc&0 1 ? 00:00:03 init
SVs~, 2 ? 00:00:00 kflushd
xwH|ryfs,Z 3 ? 00:00:00 kpiod
6dS1\Y 4 ? 00:00:00 kswapd
_@~kYz 5 ? 00:00:00 mdrecoveryd
FUqhSW .......
<C.$Db&9 % ps -aux
oIL+@}u7 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
qiKtR root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
A6x_! root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
^`>Ysc(@& root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
zWmo
OnK root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
u.L8tR:( ........
!
^*;c# 名称:pstree
v$Y1+Ep9 使用权限:所有使用者
Yqhz(&*) 使用方式:
9uq+Ve> pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
8apKp?~yW pstree -V
Pl5NHVr 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
Uo[5V|>X6 参数:
hq8/`u
YF -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
zUUxxS_? -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
_~S^#ut+ 范例:
QWW7I.9r pstree
(Q]Y>
' 4\'81"ei init-+-amd
|3T|F3uEX
|-apmd
SSsQu^A |-atd
:Ye#NPOI |-httpd---10*[httpd]
4FHX#` %pstree -p
f_P+qm init(1)-+-amd(447)
Oi%~8J> |-apmd(105)
@~U6=(+ |-atd(339)
]Y:
W[p %pstree -c
Hv7D+j8M init-+-amd
}Keon.N? |-apmd
.'2gJ"?, |-atd
dR, NC-* |-httpd-+-httpd
rNzhP*Fw | |-httpd
s)DNLx
| |-httpd
m6Cd^'J9^ | |-httpd
-^xKG'uth ....
J!fc)h 名称:renice
=#")G1A 使用权限:所有使用者
'SD|ObBY Y <i}"eI* 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
-MW(={# Y./}zCT 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
JHh9> .1 dj&m 把计?
>Hzb0N!VJ t?H;iBrpxd -p pid 重新指定行程的 id 为 pid 的行程的优先序
nTy,Jml -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
Qbt>}?- -u user 重新指定行程拥有者为 user 的行程的优先序
~Ow23N 范例:
GH+FZ (F 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
;s
B:s9M renice +1 987 -u daemon root -p 32
U W)&Eky FjLv*K[#d 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
. N} }cJq @NwM+^ 名称:top
f{5|}PL 使用权限:所有使用者
SU}oKii
/ V #\ZS{'J 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] j nA_!;b
F t8h=
说明:即时显示 process 的动态 f5qHBQ
D&6Qk&>
把计? I
3,e)Z
DoB3_=yJ+
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s EC!Cv;'
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 k|c0tvp
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 YGpp:8pen
s : 安全模式,将交谈式指令取消, 避免潜在的危机 x7kg_`\U
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Jq<`j<'9
n : 更新的次数,完成后将会退出 top u.4vp]eU
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 `1}?{ud
_3G)S+7#
范例: Bsk2&17z
显示更新十次后退出 ; o^"3C1j
top -n 10 0?;Hmq3
[T#a1!
使用者将不能利用交谈式指令来对行程下命令 : xI\s9_"Qy
top -s Fl3r!a!P,
HYnq x>L ~
将更新显示二次的结果输入到名称为 top.log 的档案里 : {1U*:@j
top -n 2 -b < top.log *k]S{]Y
a`X&;jH0ef
名称:skill z2q5f:d8
^Ro
du
使用权限:所有使用者 8*~:gZ7:
BW-P%:B1!R
使用方式: skill [signal to send] [options] 选择程序的规则 D!T4k]^
$M<