linux常用命令
uxC ;5Vk01R 称:/etc/aliases
R g0
XW6 使用权限:系统管理者
4ZJT[zi 使用方式: 请用 newaliases 更新资料库
y|;8 :b32 说明:
rw8J:?0x sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
_A,-[*OKI `+hy#1] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
52MCU l # newaliases
o%+A<Ri [p W1=tI 下面命令会做相同的事,
cl8_rt # sendmail -bi
&@W4^-9 %kZ~xbY 相关命令:
1( ?CNW[ mail, mailq, newaliases, sendmail
!
[|vx!p ? gA=39[j ” mail [返回]
%<wQ 名称:mail
HTUYvU*- +f\pk \Ith 使用权限:所有使用者
sm2p$3v hnsa)@ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
hINnb7o s3Krob`C5 说明:
T Oco({/_/ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
EtR@sJ< ^p"4)6p-W 参数:
3{Ek-{9 i 忽略 tty 的中断讯号。 (interrupt)
v?YdLR I 强迫设成互动模式。 (Interactive)
us\%BxxI9 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
"rjv5*z^& n 不读入 mail.rc 设定档。
V#gF*]q s 邮件标题。
xm}q6>jRV c cc 邮件地址。
1H&?UP4=( b bcc 邮件地址。
}\`(m\2xo 5W[3_P+ 范例:
FXOT+9bg bmj8WZ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
aCU7w5 mail
user1@email.address
r/CEYEJ&X mail
user1@email.address user2
C.yY8?| (
}]37 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
1u"R=D9p,= CB*` mail -s 标题 -c user1 user2 < mail.txt
#<a_: m)@ , @%C8Z 指令:mesg
JqI6k6~Q^ 使用权限 : 所有使用者
~vW)1XnK @9OeC
O 使用方式 : mesg [y|n]
Z:#.;wA "n{9- VEmN 说明 : 决定是否允许其他人传讯息到自己的终端机介面
[c&2i`C 8 A2if9E3 把计 ?
`pP9z;/Xq ? .c?Pu y : 允许讯息传到终端机介面上。
BN+V,W n : 不允许讯息传到终端机介面上 。
y#b;uDY 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
R#Y50hzT 9 '2= 例子 :
.cw!ls7d 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
L7SEswMti mesg n
/a@ k S 与 mesg 相关的指令有: talk,write,wall。
r#LnDseW 名称:/etc/aliases
?Wwh
_TO 使用权限:系统管理者
]UK`?J=t2g 使用方式: newaliases
_FL<egK 说明:
|.1qy,|!X sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
]}BB/KQy^ .|T2\M /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
i4 hJE 'b8R#R\P 参数:没有任何参数。 范例:
?K0U3V$s # newaliases
-Bj.hx* g<fP:/ 下面命令会做相同的事,
GA.BI"l # sendmail -bi
LRWOBD 8|w-XR 相关命令:
<# >Oy&E mail, mailq, newaliases, sendmail
uii7b7[w 名称 : talk
Z,3 CC \ 使用权限 : 所有使用者
u0xQ;BQ pP3U,n
使用方式 :
~
9=27p 5!~!j
"q talk person [ttyname]
sN-oEqS 说明 : 与其他使用者对谈
d5Qd' P2Onkl 把计 :
m`'=)x| person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ?gLAWz ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
VQ2Fnb4 SWT:frki` 例子.1 :
qh$X^%g WJAYM2
6\ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
@.k5MOn talk Rollaend
A]j}' r]0(qg 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
}hCaNQ&jH f4
Q(
1(C 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
>&1um5K talk
Rollaend@linuxfab.cx pts/2
H-Pq!9[DB SBX|Bcyk* [7RheXO< 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
WV2~(/hX& M\dO({o 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
EX4
C.C|d {|XQO'Wg 名称 : wall
dnwdFsf 使用权限 : 所有使用者
`dO}L ?ql2wWsQO 使用方式 :
R4SxFp wall [ message ]
gH'_ymT=
3 使用说明:
7G"7wYc>R wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
EI\v H UkerV 例子 :
p qeL%="p; sQtf,e|p 传讯息"hi" 给每一个使用者 :
UWw}!1 wall hi
5>P7]?U.] 名称 : write
YDFCGA 使用权限 : 所有使用者
a.DX%C/5 ZBJ3 VK 使用方式 :
's.~$ &bLC(e] write user [ttyname]
xs%LRF#u 说明 : 传讯息给其他使用者
^dfx~C :+:6_x 把计 :
f05=Mc&) W' ep6O user : 预备传讯息的使用者帐号
l{5O5%\, ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
30_ckMG"g 'gDe3@ci! 例子.1 :
2tf6GX: %iJ|H(P 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
xGRT"U( write Rollaend
c
0-w6 C(o.Cy6 接下来就是将讯息打上去,结束请按 ctrl+c
9tk" :ld *d>vR1 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
94{)"w] write Rollaend pts/2
Q0~j$Jc V7C1FV2 接下来就是将讯息打上去,结束请按 ctrl+c
%hINpZMr nm @']
注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
0^#DNq*NQ n+;vjVS% 名称:kill
qS.)UaA 使用权限:所有使用者
*vnXlV4L //.>>-~1m 使用方式:
-;pOh;WG ArzDI{1 kill [ -s signal | -p ] [ -a ] pid ...
2\0Oji\6 kill -l [ signal ]
eOnTW4 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
B1$ikY 把计?
_ 08];M| 9?EVQ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
+xj "hX>3 -p : 印出 pid , 并不送出信号
B4yh3cf -l (signal) : 列出所有可用的信号名称
T2weAk#J 范例:
S|K}k:v8 v <Hb-~ 将 pid 为 323 的行程砍掉 (kill) :
B:9.e?t kill -9 323
SRL-Z&M q*8lnk 将 pid 为 456 的行程重跑 (restart) :
ZL_[4Y kill -HUP 456
n &}s-`D
,2`~ NPb 名称:nice
!/hsJ9 使用权限:所有使用者
q`Q}yE>9 "&QH6B1U6H 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
5~r2sCDPk p=gX!4,9< 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
?)i1b\4Go nQ=aLV+' :ejJV
6. 把计?
&[j]Bp? }9&9G% -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
IR$(_9z --help 显示求助讯息
lTz6"/ --version 显示版本资讯
T PYDs+U 范例:
Q_O*oT(0 将 ls 的优先序加 1 并执行 :
}htPTOy5 nice -n 1 ls
6E^~n MYdx .NZT 将 ls 的优先序加 10 并执行 :
!buz<h nice ls将 ls 的优先序加 10 并执行
(E!!pz h-mTj3p-K 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
<z) E(J\ h6M;0_' 名称:ps
x-_vl
9P) 使用权限:所有使用者
/Ox)|)l 使用方式:ps [options] [--help]
&;>4N"] 说明:显示瞬间行程 (process) 的动态
!'W- 6f 参数:
J?Iq9f ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
P(ZQDTbM
: -A 列出所有的行程
PC/!9s0W -w 显示加宽可以显示较多的资讯
c K <)$* -au 显示较详细的资讯
-:`V< -aux 显示所有包含其他使用者的行程
u#jC#u^M `}8&E(< au(x) 输出格式 :
t9u|iTY
f! Ade}g' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
?[TW<Yx USER: 行程拥有者
0I%: BT PID: pid
c`kQvXx %CPU: 占用的 CPU 使用率
fRHKQ(a# %MEM: 占用的记忆体使用率
eOY^$#Y VSZ: 占用的虚拟记忆体大小
= `t^~.5 RSS: 占用的记忆体大小
A3R#z]Ub TTY: 终端的次要装置号码 (minor device number of tty)
QLr9dnA STAT: 该行程的状态:
@Icq1zb]
y D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
:uK
btoA R: 正在执行中
(S9f/i^ S: 静止状态
jw>hk T: 暂停执行
jP=Hf=:$ Z: 不存在但暂时无法消除
>^SEWZ_[ W: 没有足够的记忆体分页可分配
' [p)N, <: 高优先序的行程
+^ yq;z N: 低优先序的行程
qL
5>o>J L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
6/Y1 wu START: 行程开始时间
I/uy>* TIME: 执行的时间
>l5u54^3K COMMAND:所执行的指令
x;#zs64f 范例:
A lwtmDa ps
#R5U
PID TTY TIME CMD
k`VM2+9h'^ 2791 ttyp0 00:00:00 tcsh
pIO4,VL;W 3092 ttyp0 00:00:00 ps
OAe#Wf!c % ps -A
Pe ~c PID TTY TIME CMD
sYn[uPefj 1 ? 00:00:03 init
1W,(\'^R 2 ? 00:00:00 kflushd
PHra+NY#A 3 ? 00:00:00 kpiod
Qn+:/zA; 4 ? 00:00:00 kswapd
,sQ93(Vo 5 ? 00:00:00 mdrecoveryd
P+(i^=S .......
,+1m`9} % ps -aux
ejePDgi_[ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
cxP&^,~ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
zG9|K root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
_8fA?q= root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
SW 8x]B root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
~~qWI>.4 ........
;hDa@3|]34 名称:pstree
hYg'2OG 使用权限:所有使用者
fZN><3MO> 使用方式:
}DjYGMrTB pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
%dttE)oH? pstree -V
p{tK_ZBy]c 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
QU5Sy oL[ 参数:
\:_3i\2p -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
SoQR#(73HK -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
"v]%3i.*
- 范例:
cy3Td28, pstree
B!S 167Op VLvS$0(}Z init-+-amd
:E_a0!' |-apmd
A o/vp-e |-atd
^twivNB |-httpd---10*[httpd]
0Y+FRB]u %pstree -p
\vbk#G
hH init(1)-+-amd(447)
r@}bDkx |-apmd(105)
lxb zHlX |-atd(339)
=
[@)R!3H %pstree -c
{7"0,2 Hb? init-+-amd
NC"yDWnO' |-apmd
k4\UK#ODe |-atd
LBlN2)\@ |-httpd-+-httpd
_M5%V>HO | |-httpd
Frm;Ej3?$ | |-httpd
4[2_,9} | |-httpd
1TN}GsAj ....
Ol@_(U 名称:renice
963aW*r 使用权限:所有使用者
5 t{ja 1= VJ&D; 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
)P
Jw+5 0D&> Gyc*0 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
4B[D/kIg Mt>oI SN&d 把计?
OM83S|1s 7=}F{U -p pid 重新指定行程的 id 为 pid 的行程的优先序
qYB~VE03 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
kBWrqZ6 -u user 重新指定行程拥有者为 user 的行程的优先序
>t+
qe/ 范例:
LDj<?' 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
t'qL[r%? renice +1 987 -u daemon root -p 32
e{w>%)rcP &l2TeC@; 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
ja=w5 YV'pVO'_+ 名称:top
`#s#it'y 使用权限:所有使用者
eny/
fm cNK)5-
U 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] 9q[;u[A8^
4mYCSu14:`
说明:即时显示 process 的动态 y0bq;(~X~
_k66Mkd#b
把计? Rd&9E
@E9" Zv-$
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s a$11PBi[9
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 %/9;ZV
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 IzLF'F
s : 安全模式,将交谈式指令取消, 避免潜在的危机 P7 y q^|
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 $hrIO+
n : 更新的次数,完成后将会退出 top ]1`g^Z@ 0
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 wD\ZOn_J
k%'m *T f
范例: jQs>`P-CM
显示更新十次后退出 ; a>mMvc"
top -n 10 >7Jr^o#|_x
0?Q_@Y
使用者将不能利用交谈式指令来对行程下命令 : oDB`iiBXQ
top -s w!^~<{Kz
CON0E~"
将更新显示二次的结果输入到名称为 top.log 的档案里 : L{{CAB!
top -n 2 -b < top.log AIijCL
< B g8,;
名称:skill :\
QUs}
cW8\d
使用权限:所有使用者 f2I6!_C!+
s 0u{dqP
使用方式: skill [signal to send] [options] 选择程序的规则 _D7 ]-3uC!
hcCp,b
说明: csZc|kDI
V7Yaks
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 t~7V{ xk
}YhtUWz].
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 ]bdFr/!'S+
Ucw yxXI
一般参数: 2;3f=$3
4-GXmC
-f 快速模式/尚未完成 M\<w#wZ
vdDludEv
-i 互动模式/ 每个动作将要被确认 Mj=$y?d ]
`Nh"
-v 详细输出/ 列出所选择程序的资讯 eJCjJ)
0U/,aHvhP
-w 智能警告讯息/ 尚未完成 y@V_g'
FCj{AD
-n 没有动作/ 显示程序代号 %(/!ljh_
YcX/{L[9o
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 [4&#*@
FyoEQ%.bI
-t 终端机代号 ( tty 或 pty ) (h-*_a}F4
d%@~mcH>
-u 使用者名称 penlG36Q
-Ng'<7
-p 程序代号 ( pid ) `Hx~UH)
d&8 APe
-c 命令名称 可使用的讯号: lq:}0 <k
&)F*@C-
以下列出已知的讯号名称,讯号代号,功能。 -5l6&Y
#zUXyT#X
名称 (代号) 功能/ 描述 1k%k`[VC
[k$*4u>
ALRM 14 离开 wd@aw /
$h[QQ-
HUP 1 离开 :K82sCy%5
)}%O>%
INT 2 离开 Qe"pW\
"<+ih0Ma
KILL 9 离开/ 强迫关闭 nR>r2wMk@
y4:H3Sk
PIPE 13 离开 UM*jKi2]"
XZNY4/25G
POLL 离开 YNrp}KQ
^I6^g
PROF 离开 W,@
If}
U_l'3oPJw
TERM 15 离开 OX:O^ (-r,
S\6[EQ65
USR1 离开 DD9 ?V}Yx
# {fTgq
USR2 离开 ZI;<7tF_z
;8S/6FI
VTALRM 离开 t2" (2
:HxA`@Ok
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 [
=x s4=
FOwDp0
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 vKwQXR~C
R2L;bGI*J
TSTP 停止 /产生与内容相关的行为 3cS2gxF
e^YHJ>@
TTIN 停止 /产生与内容相关的行为 K
]OK:hY4
m@`8A
TTOU 停止 /产生与内容相关的行为 lDC$F N
\k`n[{
STOP 停止 /强迫关闭 H`8``#-|@S
_{vkX<s
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 Mr--4D0Hk
&bz:K8c
PWR 忽略 /在某些系统中会离开 v1k)hFjPK
@UBjq%z
WINCH 忽略 GT hL/M
M}_i52
CHLD 忽略 8By,#T".
!}\4utHY
ABRT 6 核心 Ee1LO#^_6
&AuF]VT
FPE 8 核心 Giq=*D+
Bx"7%[
ILL 4 核心 +(O~]Q-Ez
b 6t}{_7
QUIT 3 核心
o47r<>t
fl
Jp4-nx
SEGV 11 核心 @cRZk`|1n
=z{JgD/
TRAP 5 核心 o]{uc,
q1y/x@
SYS 核心 /或许尚未实作 #>Y'sd5'A
'sp-%YlM -
EMT 核心 /或许尚未实作 zJM S=r
`G1&Z]z
BUS 核心 /核心失败 2nb:)
5!C_X5M
XCPU 核心 /核心失败 7@.cOB`y@3
9p 4"r^
XFSZ 核心 /核心失败 k"kJ_(
NVIK>cT6
范例: r4x3$M c
停止所有在 PTY 装置上的程序 !@u>A_
skill -KILL -v pts/* e&ANp0|W
!$A 37j6
停止三个使用者 user1 , user2 , user3 TUT][
=.=
skill -STOP user1 user2 user3 VHOfaCE
#tt?!\8C
其他相关的命令: kill !KKT[28v
名称:expr A392=:N+Q
使用权限:所有使用者 "+KJop
### 字串长度 |o'Q62`%}
$@\mpwANl
shell>> expr length "this is a test" h@7FY
14 OQ :dJe6
### 数字商数 %CZ-r"A
shell>> expr 14 % 9 `=#01YX[0
5 _a_xzv'
### 从位置处抓取字串 sGY_{CZ:
shell>> expr substr "this is a test" 3 5 jk\ dG16
is is 2)?(R;$,
### 数字串 only the first character C0.'_
shell>> expr index "testforthegame" e -B#yy]8
2 h9$ Fx
### 字串真实重现 q,<[hBri-
shell>> expr quote thisisatestformela GwsY-jf
thisisatestformela