linux常用命令
y\"Kur*O VlQaT7Q 称:/etc/aliases
~<#!yRy>r 使用权限:系统管理者
j5>3Td. 使用方式: 请用 newaliases 更新资料库
v=I 'rx 说明:
|cE 69UFB sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
$>fMu ^h@1t FF /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
:|?nz$ # newaliases
As7Y4w* + mN:p=.&
< 下面命令会做相同的事,
RK`C31Ws # sendmail -bi
?N*|S)BN r8E)GBH-| 相关命令:
/Z*XKIU6v/ mail, mailq, newaliases, sendmail
Xy(o0/7F9 u`vOKajpH$ ” mail [返回]
7 a}qnk% 名称:mail
Z>H
y+Q4 dLMKfh/4Q 使用权限:所有使用者
nZ 0rxx[V? U&\8~h 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
!4f0VQI l4sFT)}-J 说明:
;:l\_b'Z} mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
>~sAa+Oxi IA XoEBlMs 参数:
80M"`6 i 忽略 tty 的中断讯号。 (interrupt)
eD4o8[s I 强迫设成互动模式。 (Interactive)
*h>KeIB; v 列印出讯息,例如送信的地点、状态等等。 (verbose)
]D;X"2I2'b n 不读入 mail.rc 设定档。
P+~{q.|._c s 邮件标题。
vA*Ud;%R c cc 邮件地址。
~)JNevLZ b bcc 邮件地址。
O+o1R24JI VSlIeZ 范例:
?x(]U+ F#w=z/ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
&O5W mail
user1@email.address
1 f;k)x mail
user1@email.address user2
E$'Zd,|f= Sb&[V>!2^ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
5 :ZM-kZT ']hB_4v mail -s 标题 -c user1 user2 < mail.txt
Wb/q&o <QyJJQM 指令:mesg
*c+Kqz- 使用权限 : 所有使用者
^Z{W1uYi 0]c 2 T 使用方式 : mesg [y|n]
s3*h=5bX= M@V.?;F}, 说明 : 决定是否允许其他人传讯息到自己的终端机介面
N*6Y5[g!\ ~^*IP1.3 把计 ?
i$HA@S VT1Nd y : 允许讯息传到终端机介面上。
aa:Oh^AJy n : 不允许讯息传到终端机介面上 。
Fy!uxT-\ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
R/8>^6 9U1cH qV 例子 :
iXN"M` nhm 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
ad^7t<a}< mesg n
dIiQ^M 与 mesg 相关的指令有: talk,write,wall。
8&FnXhZg4 名称:/etc/aliases
d&K2\n 使用权限:系统管理者
JBa( O-T 使用方式: newaliases
?n o.hf 说明:
0Lcd@3XL sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Sc
Uh
-y_ z(]14250 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
^c?2n )rJ{}U:S 参数:没有任何参数。 范例:
X;JptF^ # newaliases
W=YFe<Q ?c712a ? 下面命令会做相同的事,
=!{7ZSu\ # sendmail -bi
]k~k6#),; rjzRZ 相关命令:
4$Oakl*l mail, mailq, newaliases, sendmail
t,$4J6 名称 : talk
nb}* IExd 使用权限 : 所有使用者
s5? 1w FHpS ?htRy 使用方式 :
g{K*EL< BS<5b*wG talk person [ttyname]
@,
v'V! 说明 : 与其他使用者对谈
7PG&G5 4DY\QvW5 把计 :
Vae}:8'} person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name H8d%_jCr ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
%00KOM: 0M^7#), 例子.1 :
JWhi*je 6Yw;@w\ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
I}JC ~=`j talk Rollaend
u0M[B7Q k<p$BZ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
B"rV-,n{ bt3v`q+V 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
R;+vE'&CO talk
Rollaend@linuxfab.cx pts/2
qcau(#I9. >-EJLa o'Q"
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
7:7i}`O 9
cU]@j}2 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
/VFh3n>I2 l{tpFu9v 名称 : wall
Ne7HPSWiOP 使用权限 : 所有使用者
&''lOS| #-S%aeB 使用方式 :
Fc{M
N" wall [ message ]
J3Ipk-'lx 使用说明:
'qR)f\em wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
U .?N
#R2wt7vE 例子 :
t[HfaW1W mx`QBJ 传讯息"hi" 给每一个使用者 :
e}%~S9\UL5 wall hi
RsnKB/ 名称 : write
J~.8.]gXW 使用权限 : 所有使用者
1F`1(MYt9 #mhR^60, 使用方式 :
#.1+-^TQk ;+ : C write user [ttyname]
~z;G$jd 说明 : 传讯息给其他使用者
L1P.@hJ {D6lSj 把计 :
tzH~[n, N %;bV@A9 user : 预备传讯息的使用者帐号
TVy\%FP^L ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
.%~m|t+Rt 0?@;zTE0 例子.1 :
Ife/:v h=<x%sie 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
FU]jI[ write Rollaend
{lv@V*_Y0 eK8y'VY 接下来就是将讯息打上去,结束请按 ctrl+c
d v8q&_
CKB~&>xx 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
94uAt&&b( write Rollaend pts/2
42E%&DF B!J~ t8 接下来就是将讯息打上去,结束请按 ctrl+c
^l;N;5L tk]>\}% 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
"pRi1Y5)l SM?rss.= 名称:kill
,,}&
Q%5 使用权限:所有使用者
WdtZ{H LH_VdLds 使用方式:
ya`Z eQ-p \mp2LICQg kill [ -s signal | -p ] [ -a ] pid ...
;T-`~ kill -l [ signal ]
$kAal26 z 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
2!kb? 把计?
,8Eg/ xLN$!9t -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
c_~tCKAZ -p : 印出 pid , 并不送出信号
Z;'5A2 -l (signal) : 列出所有可用的信号名称
uW 7Yem& 范例:
{JGXdp:SB lVptA3F 将 pid 为 323 的行程砍掉 (kill) :
.DrGr:UW kill -9 323
&x"hM bJ!(co6t 将 pid 为 456 的行程重跑 (restart) :
eeVzOq( kill -HUP 456
3[*x'"Q;H ~rfUqM]I 名称:nice
qu`F,OG 使用权限:所有使用者
)x&4 Q= Tebu?bj 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
2Q;g|*] Y 8Dn&W 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
Nu,t,&B
APUpqY =v !'? 把计?
f^]^IXzXw. Xh?J"kjof -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
N"[r_! --help 显示求助讯息
MwE^.6xl{ --version 显示版本资讯
,>3b|-C- 范例:
?QRoSQ6 将 ls 的优先序加 1 并执行 :
XjFaP { nice -n 1 ls
4(mRLr%l@` w,zm$s ^ 将 ls 的优先序加 10 并执行 :
pY$DOr-r` nice ls将 ls 的优先序加 10 并执行
2J &J 2= RQ,@s 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
pP)> x*1 fn3DoD+I 名称:ps
n2N:rP 使用权限:所有使用者
<Kk[^.7C; 使用方式:ps [options] [--help]
D6fGr$(N% 说明:显示瞬间行程 (process) 的动态
BJP^?FUd=, 参数:
/St d6B* ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
\R.Fmeko -A 列出所有的行程
,<O|#`?"@G -w 显示加宽可以显示较多的资讯
CyKupJ.Fq -au 显示较详细的资讯
z{(c-7* -aux 显示所有包含其他使用者的行程
0RF<:9@x2 fO{'$?K au(x) 输出格式 :
s*tzU.E( OrRU$5Lo USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
-Gj."ks USER: 行程拥有者
$h|8z PID: pid
v$~ZT_"(9 %CPU: 占用的 CPU 使用率
)U+Pt98" %MEM: 占用的记忆体使用率
*@E&O^%cO VSZ: 占用的虚拟记忆体大小
2>F`H7W RSS: 占用的记忆体大小
#9/S2m2\YG TTY: 终端的次要装置号码 (minor device number of tty)
#gSIa6z1W STAT: 该行程的状态:
9xRor< D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
>jRH<|Az R: 正在执行中
f^[u70c82 S: 静止状态
w)<h$<tU T: 暂停执行
{s3 j}& Z: 不存在但暂时无法消除
:pNu$%q W: 没有足够的记忆体分页可分配
xlm:erP <: 高优先序的行程
^K?Mq1"Db N: 低优先序的行程
55V&[>|K5 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
+nKf ^rG START: 行程开始时间
+kM*BCPYE TIME: 执行的时间
OE(!^"5?[ COMMAND:所执行的指令
."h>I @MH 范例:
df8aM<&m3 ps
vq8&IL PID TTY TIME CMD
X8~gLdv8 2791 ttyp0 00:00:00 tcsh
D8=a +!l- 3092 ttyp0 00:00:00 ps
PS/00F/Ak % ps -A
iUOGuiP PID TTY TIME CMD
[J6q(}f 1 ? 00:00:03 init
4*?JU
v 2 ? 00:00:00 kflushd
^~DClZ 3 ? 00:00:00 kpiod
0#!Z1:Y 4 ? 00:00:00 kswapd
QN8.FiiD 5 ? 00:00:00 mdrecoveryd
WV,j
<x9w .......
Ixr#zt$T-G % ps -aux
7b
hJt_`Q USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Lb0B m R%0 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
F2C v,&' root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
Yg!xlrxA root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
c.Do b?5 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
K)nn;j= ........
j9O"!9$vQ 名称:pstree
e"]DIy4s 使用权限:所有使用者
tS
sDW!!M 使用方式:
8+8P{_ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
q:3HU< pstree -V
"a]Ff&T- 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
JAS!eF 参数:
;2Za]%' -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
*v0}S5^/" -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
89l{h8R 范例:
T]y^PT<8? pstree
C^9bur/ `t Zw(Z=h init-+-amd
}Oe9Zq |-apmd
!~a1xI~s |-atd
^<v]x;
3 |-httpd---10*[httpd]
S1E=EVG %pstree -p
V"W)u#4, init(1)-+-amd(447)
*S\/l-D |-apmd(105)
MzCZj |-atd(339)
t_{rKb,
%pstree -c
B$&&'i% init-+-amd
Z)dE#A_X |-apmd
;`}b
.S=n |-atd
0|OmQ\SQ |-httpd-+-httpd
#(o( p | |-httpd
[a\>"I\[ | |-httpd
RtScv | |-httpd
BV512+M ....
b(?A^a 名称:renice
gs9VCaIa 使用权限:所有使用者
@1tv/W
}8?1)l 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
[LrA_N L7 g4' 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
U=>4=gsG Z*M-PaU} 把计?
#NR9\ 8~eYN-#W& -p pid 重新指定行程的 id 为 pid 的行程的优先序
"bk'#?9 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
(VH0+ -u user 重新指定行程拥有者为 user 的行程的优先序
h$I
2T 范例:
707-iLkt.1 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
|c3Yh,Sv renice +1 987 -u daemon root -p 32
NiO|Aki{ )@\m0bnF 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
X0Zr?$q
WJ
m:?, 名称:top
hwB>@r2 使用权限:所有使用者
M$+2f.(>k) Y|y X]\, 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] B4ky%gF4
8jm\/?k|
说明:即时显示 process 的动态 M,/{ 53
=3<@{^Eg
把计? N[8y+2SZ
["
nDw<U
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s O/bpm-h`8c
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ]Q*eCt;l"K
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Sp^jC
Xu
s : 安全模式,将交谈式指令取消, 避免潜在的危机 &~a/Upz0]_
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 6/&aBE=
n : 更新的次数,完成后将会退出 top `6`oLu\l
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 )R]gJ_,c
m9m]q&hx
范例: [m{uJdj\
显示更新十次后退出 ; k{d)'\FM
top -n 10 BuIly&qbm<
r4(Cb_
使用者将不能利用交谈式指令来对行程下命令 : ju%t'u\'
top -s g
xf|L>=
7(<z= F
将更新显示二次的结果输入到名称为 top.log 的档案里 : _
ZC[h~9H
top -n 2 -b < top.log d vTsbs/6
P1Chmg
名称:skill SVc5mS|up
{ehAF=C
使用权限:所有使用者 Ri&?uCCM
_$YT*o@0J
使用方式: skill [signal to send] [options] 选择程序的规则 [t}$W*hY
[Csv/
说明: %9P)Okq
CxW-lU3G`
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 7d"gRM;
3^J~ts{*
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 kEpCF:@A
9;k!dM
一般参数: ^lCQHz
GO=3<Q{;
-f 快速模式/尚未完成 )OgQ&,#
PDH00(#;+
-i 互动模式/ 每个动作将要被确认 6m!%X GZT
i%a jL
-v 详细输出/ 列出所选择程序的资讯 x0 dO^D
1} h''p
-w 智能警告讯息/ 尚未完成 m_n*_tX
yk7 l{F
-n 没有动作/ 显示程序代号 Bk9? =
UM QsYD)
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 56Gc[<nR
("$ ,FRTQ:
-t 终端机代号 ( tty 或 pty ) __N#Y/e ]
5\|u]
~b
-u 使用者名称 M4m90C;dq
I:9jn"
-p 程序代号 ( pid ) ,}hJ)
nax(V
-c 命令名称 可使用的讯号: &@anv.D
G,6Zy-Y9
以下列出已知的讯号名称,讯号代号,功能。 _6,Tb]
9X6l`bo'
名称 (代号) 功能/ 描述 F"*.Qq
dDoKmuY>5
ALRM 14 离开 S0uEz;cE
!p#+I=
HUP 1 离开 F4%vEn\!
5v@-.p
INT 2 离开 jaq`A'o5
K=`;D
KILL 9 离开/ 强迫关闭 bPHqZ*f
$pOgFA1'
PIPE 13 离开 +bv-! rf
Ar:ezA
POLL 离开 2UGnRZ8:1Y
-g;cg7O#(
PROF 离开 Z(=UZI?
t@1bu$y
TERM 15 离开 zjVQ \L
!04zWYHo
USR1 离开 !<P|:Oo*Dl
E6FT*}Q
USR2 离开
mtQlm5l
ejuw+@ _
VTALRM 离开 k_}aiHdG
Im* ~6[
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 %]15=7#'y
5/>W(,5}
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体
!=w&=O0(
*tD`X(K
TSTP 停止 /产生与内容相关的行为 {zf)im[.
t/4&=]n\u
TTIN 停止 /产生与内容相关的行为
")cJA f
jQc.@^#+x
TTOU 停止 /产生与内容相关的行为 &/7D4!N]
;[~:Y[N
STOP 停止 /强迫关闭 ZLRAiL
a7Fc"s*
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 6]*~!al?
ueM[&:g&MU
PWR 忽略 /在某些系统中会离开 }&{z-/;H
I3wv6xZ2
WINCH 忽略 w6 x{<d
X\a*q]"_
CHLD 忽略 :Vyr8+]
kA1C&
ABRT 6 核心 @Pt,N
qj:
=oPc\VYW
FPE 8 核心 =Q!)xEK
h/t{=
@
.5
ILL 4 核心 (pFPuV
ic4mD:-up
QUIT 3 核心 ,py:e>+^t
X/D^?BKC
SEGV 11 核心 _FRwaFVJ3
And|T 6u
TRAP 5 核心 U0Y;*_>4
fZ*LxL
SYS 核心 /或许尚未实作 .<Lbv5m
P e\AH
EMT 核心 /或许尚未实作 RrPo89o
+TQMA>@g<
BUS 核心 /核心失败 !k= ~5)x
nbGB84
XCPU 核心 /核心失败 #`>46T
{B_pjs
XFSZ 核心 /核心失败 fuQb h
z+Cw*v\Y
范例: 4R~f
停止所有在 PTY 装置上的程序 *<[Nvk^
skill -KILL -v pts/* n4YedjHSN
y[W<vb+F
停止三个使用者 user1 , user2 , user3 \
M_}V[1+
skill -STOP user1 user2 user3 keBf^NY
fW,,@2P
其他相关的命令: kill b&l/)DU
名称:expr }c"1;C&{
使用权限:所有使用者 jv
C.T]<B
### 字串长度 .=nx5yz
![{>$Q?5
shell>> expr length "this is a test" ;B'5B]A3
14 :RH0.5)
### 数字商数 DeAi'"&
shell>> expr 14 % 9 dHtbl\6
5 kYVn4Wq
### 从位置处抓取字串 soH
M5<U
shell>> expr substr "this is a test" 3 5 J*lKXFq7
is is l|O)B #
### 数字串 only the first character 7HpfHqJ7
shell>> expr index "testforthegame" e =ca<..yh[d
2 WI?iz-,](
### 字串真实重现 7I,/uv?
shell>> expr quote thisisatestformela huu v`$~y
thisisatestformela