linux常用命令
|t&>5HM Ugt/rf5n 称:/etc/aliases
Y>T-af49 使用权限:系统管理者
Apag{Z]^B 使用方式: 请用 newaliases 更新资料库
82qoGSD. 说明:
"]x'PI 4J sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
qzLPw*; ~i{(<.he /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
AW'0,b`v # newaliases
)Y0!~#
` G1tY) _-8[ 下面命令会做相同的事,
syj0.JD # sendmail -bi
t?&|8SId !cLo>,4 相关命令:
z`}qkbvi mail, mailq, newaliases, sendmail
r~8 $1" dNH08q8P ” mail [返回]
]t,BMu=% 名称:mail
`pS9_NYZ} |\t-g"~sN 使用权限:所有使用者
f:w?pE PO^ij2eS 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
~2N"#b&J P%VSAh\|n 说明:
4G0m\[Du mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
4Uo&d#o)C- 7#a-u<HF" 参数:
>J?fl8 i 忽略 tty 的中断讯号。 (interrupt)
EwT"uL*V; I 强迫设成互动模式。 (Interactive)
EU;9*W< v 列印出讯息,例如送信的地点、状态等等。 (verbose)
qkY:3Ozw n 不读入 mail.rc 设定档。
70nqD>M4 s 邮件标题。
,HV(l+k {| c cc 邮件地址。
MYvY]Jx3 b bcc 邮件地址。
RJ&RTo EGS)b 范例:
vWv" xml7Uarc 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
,V m
< rK mail
user1@email.address
hEH?[>9 mail
user1@email.address user2
b3[!V{| 69NeQ$]( 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
UnV.~ u~ 4f@rv^f(X mail -s 标题 -c user1 user2 < mail.txt
i$#;Kpb`^ _8J.fT$${ 指令:mesg
JR21>;l#2 使用权限 : 所有使用者
P4'Q/Sj &`r-.&Y 使用方式 : mesg [y|n]
iHf $ ZJJY8k ` 说明 : 决定是否允许其他人传讯息到自己的终端机介面
1(R}tRR7 R u4?L 67x 把计 ?
Gj?t_Zln BwpqNQN y : 允许讯息传到终端机介面上。
@*XV`_!h n : 不允许讯息传到终端机介面上 。
&PHTpkaam 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
4E+e}\r:6 /C:gKy4
例子 :
pYEMmZ?L 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
gZXi]m& mesg n
lrE5^;/s1 与 mesg 相关的指令有: talk,write,wall。
&
J'idYD 名称:/etc/aliases
I$G['`XX/ 使用权限:系统管理者
4F:\-O 使用方式: newaliases
z&\a:fJ& 说明:
'JE`(xD sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
adcE'fA<_ Dx?,=~W9 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Q3~H{)[Kq ,[KD,)3y 参数:没有任何参数。 范例:
t{9GVLZ # newaliases
nR~@#P\ oZgjQM$YP 下面命令会做相同的事,
O0v}43J[ # sendmail -bi
h;"4+uw qe#tj/aZ 相关命令:
hi(;;C9 mail, mailq, newaliases, sendmail
!f[_+CD 名称 : talk
9cF[seE"0 使用权限 : 所有使用者
<kqo^ cuITY^6 使用方式 :
KV *#T20T (?c"$|^J talk person [ttyname]
T!#GW/? 说明 : 与其他使用者对谈
UI0VtR] (w3YvG. 把计 :
6nvz8f3*r] person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ouQ T ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
03Ycf'W g3y~bf 例子.1 :
{!L~@r Q)h(nbbVak 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
#;yZ talk Rollaend
r#a=@ x 9fip- 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
a;+9mDXx: "!^"[mX4 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
q0vQa talk
Rollaend@linuxfab.cx pts/2
73;GW4, ~$^XP.a. &h/Xku&0 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
3=j"=-= #\m<Sz5Gp# 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
f+!(k)GWd wmLs/:~ 名称 : wall
m{HS0l' 使用权限 : 所有使用者
zrb}_ NBGH_6DROw 使用方式 :
^1.By^
$ wall [ message ]
5\nAeP 使用说明:
b\2
ds, wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
G"t5nHY\. =aW9L)8D 例子 :
L!xi 9%9#_?RW 传讯息"hi" 给每一个使用者 :
?Ir:g=RP* wall hi
+I28|*K" 名称 : write
P&Vv/D 使用权限 : 所有使用者
6'f;-2 SmO~,2= 使用方式 :
0g8NHkM:2a 3JR+O<3D write user [ttyname]
;$g?T~v7 说明 : 传讯息给其他使用者
"w<#^d_6 (tW`=]z-< 把计 :
~P-mC@C dR]m8mdqc1 user : 预备传讯息的使用者帐号
G3T]`Atf ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
xAm6BB
c C3g_!dUs 例子.1 :
)^hbsMhO hhvyf^o 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
C0Z=~Q% write Rollaend
dWBA1p
]ZS
OM\} 接下来就是将讯息打上去,结束请按 ctrl+c
8&dF HGg@ _9tW 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
w0unS`\4 write Rollaend pts/2
,V}WM%Km ^iYj[~ 接下来就是将讯息打上去,结束请按 ctrl+c
u*9V&>o U6s[`H3I{ 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
veECfR; I]q% 2ie 名称:kill
u ^RxD^=L 使用权限:所有使用者
G3v5KmT j'K/22 使用方式:
|y!A&d=xYn X}0cCdW kill [ -s signal | -p ] [ -a ] pid ...
dAj$1Ke kill -l [ signal ]
Eh4=ZEX 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
gBD]}vo- 把计?
TD_Oo-+\ ,R|BG -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
g9F?z2^ -p : 印出 pid , 并不送出信号
ddR>7d}N -l (signal) : 列出所有可用的信号名称
ybUaTD@?}b 范例:
9N3eN #X"@<l4F 将 pid 为 323 的行程砍掉 (kill) :
x,V r=FB kill -9 323
/ XIhj *8XEYZa 将 pid 为 456 的行程重跑 (restart) :
Kc(FX%3LU kill -HUP 456
E_LN]v TS5Q1+hWHV 名称:nice
#$y?v%^ 使用权限:所有使用者
rrv%~giU L/^I*p, 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
xId.GWY1 E4xa[iZ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
gZ1?G-Q Y
nZiTe@ `9.r`&T6K 把计?
ReeH@.74 _J [P[(ab -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
po7q mLq --help 显示求助讯息
>F&47Yn --version 显示版本资讯
sp`Dvqx0 范例:
`@s^(hc7i 将 ls 的优先序加 1 并执行 :
-Y;3I00( nice -n 1 ls
=nHgDrA_ #R
RRu2 将 ls 的优先序加 10 并执行 :
Ti&z1_u nice ls将 ls 的优先序加 10 并执行
&
ZB dC4'{n|7 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
=mmWl9'mJ >@AB<$A 名称:ps
xn|(9#1o 使用权限:所有使用者
u>/ TE 使用方式:ps [options] [--help]
5NLDYi@3 说明:显示瞬间行程 (process) 的动态
;6hOx(>`= 参数:
CVR3
A' ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
!5?<% * -A 列出所有的行程
@ur+;IK$ -w 显示加宽可以显示较多的资讯
dnuu&Rv -au 显示较详细的资讯
*HB-QIl -aux 显示所有包含其他使用者的行程
H7+,* s(roJbJ_; au(x) 输出格式 :
/|&*QLy 8e"gW >f USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
FNId; USER: 行程拥有者
vSLtFMq^( PID: pid
8sK9G`
k %CPU: 占用的 CPU 使用率
ji,kkipY?w %MEM: 占用的记忆体使用率
ymcLFRu, VSZ: 占用的虚拟记忆体大小
f'3$9x RSS: 占用的记忆体大小
w:l
V"]1 TTY: 终端的次要装置号码 (minor device number of tty)
dcWD(- STAT: 该行程的状态:
Lq!>kT<]! D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
Mh
7DV R: 正在执行中
w"&n?L S: 静止状态
-`TEVS?`l T: 暂停执行
U|j`e5) Z: 不存在但暂时无法消除
n@[O|?S W: 没有足够的记忆体分页可分配
w^0nqh <: 高优先序的行程
"Os_vlapHo N: 低优先序的行程
'>C5-R:O L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
S?BG_J6A7 START: 行程开始时间
njA#@fU TIME: 执行的时间
0Z]!/AsC COMMAND:所执行的指令
eO[b1]WLP 范例:
j^2j&Ta ps
4]}'Hln*U PID TTY TIME CMD
@49S` 2791 ttyp0 00:00:00 tcsh
6Sn .I1Wy 3092 ttyp0 00:00:00 ps
3|Xyl`i4o % ps -A
Tc3yS(aq PID TTY TIME CMD
2Q:+_v 1 ? 00:00:03 init
Fh9h,'
V" 2 ? 00:00:00 kflushd
^@NU}S):yN 3 ? 00:00:00 kpiod
dzrio-QU~ 4 ? 00:00:00 kswapd
x.R4%Z 5 ? 00:00:00 mdrecoveryd
K8Y=S12Ti .......
jsi!fx2Rm % ps -aux
EI^C{$Y USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
OJy#w{4 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
cD'V>[h root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
YLn?.sV{[0 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
n#_$\
p>Yd root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
Xh;# ........
."y1_dDql 名称:pstree
C8i^P}y 使用权限:所有使用者
i@M[>~ 使用方式:
rguC p}r pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
y9}>: pj4 pstree -V
WaR`Kp+> 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
mF^v ~ 参数:
iTU5l5U z -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
e'D&8z_; -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
^eYVWQ' 范例:
l"]}Ts# pstree
\.#>=!Ie j]/RC(;? init-+-amd
SQt4v" |-apmd
@@%.t|= |-atd
!H>R%g#28_ |-httpd---10*[httpd]
:1KpGj*F %pstree -p
r<Kx0`y init(1)-+-amd(447)
C/6V9;U |-apmd(105)
!5uGd`^I |-atd(339)
9\JF`ff_ %pstree -c
l$bu%SZ init-+-amd
.z}~4BY |-apmd
** G9H |-atd
F;0}x;:> |-httpd-+-httpd
B%+T2=&$7 | |-httpd
dQR-H7U | |-httpd
yhA6i | |-httpd
qVwIo.g! ....
]G< Vg5 名称:renice
Is?La 使用权限:所有使用者
Q9G;V]./ [!]2djc 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
Y,t={HiclX gi
_ 5?$ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
mmRJ9OhS N `F~n%N 把计?
UVIKQpA]A 5>N2:9We -p pid 重新指定行程的 id 为 pid 的行程的优先序
CDR@
`1- -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
Oh6fj}eK -u user 重新指定行程拥有者为 user 的行程的优先序
t$#jL5 范例:
j@uOOhy 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
uurh??R renice +1 987 -u daemon root -p 32
!Bq3Z?xA} Ob`d 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
JKmIvZ)8 4s{~r 名称:top
ly_HWuFJ3 使用权限:所有使用者
g0Gf6o>2 _k~KZ;l 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] I5n^,@md
A='N=^Pm
说明:即时显示 process 的动态 8=uu8-l8g
,a]?S^:y]
把计? /Uy"M:|V1
O%KsD[W;
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s T@&K-UQ
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 qPy1;maXP
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 (w/T-*
s : 安全模式,将交谈式指令取消, 避免潜在的危机 Jx](G>F4f1
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 aYS!xh206
n : 更新的次数,完成后将会退出 top usK*s$ns
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 "x*egI
sjwo/+2
范例: }Nm#q@o$P
显示更新十次后退出 ; m\r@@!
top -n 10 %Iv,@}kvT+
8xV9.4S
使用者将不能利用交谈式指令来对行程下命令 : h"_;IUZ!
top -s wFsyD3
7k9G(i[-+
将更新显示二次的结果输入到名称为 top.log 的档案里 : q?DTMKx
top -n 2 -b < top.log EGzzHIZ`!
CpeU5 o@
名称:skill !1DKLQ
W~~7C,!
使用权限:所有使用者 s!c`=
v)l8@.
使用方式: skill [signal to send] [options] 选择程序的规则 W;L7SF g)
B9$jSD
说明: nvJf/90$
,t9^j3Ixg
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 Yu[ t\/
Raxrb=7
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 +*T7@1
4C-jlm)V
一般参数: 2w_W Adi
3U.88{y
-f 快速模式/尚未完成 kabnVVn~
1H@>/QC
-i 互动模式/ 每个动作将要被确认 !tMuuK?IL=
o-{[|/)Tk
-v 详细输出/ 列出所选择程序的资讯 UAFwi%@!-q
Vq5k+3W+
-w 智能警告讯息/ 尚未完成 + SFVv_n
d + / &?3
-n 没有动作/ 显示程序代号 0Lc9M-Lg
h[1MtmNw
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 6c"0})p
i2YuOV!
-t 终端机代号 ( tty 或 pty ) V |/NB
*4xat:@{{
-u 使用者名称 v!P b`LCqK
^3{TZ=_;|
-p 程序代号 ( pid ) QP)pgAc
lBhLf@
-c 命令名称 可使用的讯号: SAK!z!t
*x])Y~oQ
以下列出已知的讯号名称,讯号代号,功能。 ,M6Sy]Aj
V7[zAq
名称 (代号) 功能/ 描述 e7(ucE
OQT;zqup
ALRM 14 离开 |8=nL$u
P%=#^T&`}
HUP 1 离开 _$f9]bab
9C[ywp
INT 2 离开 U{z9>
Y"Ql!5=
KILL 9 离开/ 强迫关闭 M^iU;vo
\2}bi:e6
PIPE 13 离开 /yF QeE
@t`Xq1
POLL 离开 ;SaX;!`39+
!Mim@!5M
PROF 离开 dBe`p5Z
*l;B\=KR
TERM 15 离开 s]mY*@a%
&S]@Ot<z
USR1 离开 >teOm?@U
%]6~Eq%s
USR2 离开 z$GoaS(
:l&V]}:7*
VTALRM 离开 .YnFH$;$
tBT<EV{ G
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 f=!VsR2o
,FMx5$
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 t" 7yNs(I
}gMDXy}
TSTP 停止 /产生与内容相关的行为 199]W Hc
Ru>uL@w
TTIN 停止 /产生与内容相关的行为 R8UYP=Kp
A"l?:?rtw]
TTOU 停止 /产生与内容相关的行为 MJCzo |w
+1!qs,
STOP 停止 /强迫关闭 6"t;gSt4
5qkH|*Z3
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 RJH,
<[J[idY1he
PWR 忽略 /在某些系统中会离开 xD /9F18
B Ma)O
WINCH 忽略 drd/ jH&
e9Pk"HHl
CHLD 忽略 hj$e|arB
A@D2+fS
ABRT 6 核心 ELjK0pE}-
KdUnD4d
FPE 8 核心 Y<b-9ai<w
7`H
1f]d
ILL 4 核心 ;v~-'*0
*;U'[H3Q
QUIT 3 核心 <zy,5IlD
s/e"'Hz
SEGV 11 核心 #:|+XLL
ror|R@;y
TRAP 5 核心 Z!&Rr~i
<
^*= 85iyo
SYS 核心 /或许尚未实作 u=NSsTP&
0\~Z5k`IT
EMT 核心 /或许尚未实作 8dOo Q
bo=ZM9
BUS 核心 /核心失败 h~,JdDV8l*
-/dEsgO
XCPU 核心 /核心失败 OR Wm
C!
(zYy}g#n
XFSZ 核心 /核心失败 n*'<uKpM
qxMnp}O
范例: iH2n.M
"
停止所有在 PTY 装置上的程序 CG&`16KN7
skill -KILL -v pts/* /DO/Tqdfe
desThnTw
停止三个使用者 user1 , user2 , user3 !lmWb-v%36
skill -STOP user1 user2 user3 @l(vYJ:f
=}fd6ea(o
其他相关的命令: kill 6V+ qnUk
名称:expr daAyx-
使用权限:所有使用者 "4j:[9vR\
### 字串长度 Ti;Ijcq8
b~C$R[S
shell>> expr length "this is a test" m:O(+Fl
14 /Go
K}W}
### 数字商数 '69ZdP/xX
shell>> expr 14 % 9 0i8hI6d
5 jN+N(pIi.o
### 从位置处抓取字串 ?vGffMm
shell>> expr substr "this is a test" 3 5 3%<C<(
is is kao}(?x%
### 数字串 only the first character 8Chu"PM%-J
shell>> expr index "testforthegame" e %YlTF\-
2 FkupO
[KI
### 字串真实重现 q1hMmMi
shell>> expr quote thisisatestformela y466A]|
thisisatestformela