linux常用命令
{ 'b;lA]0 ^exU]5nvz 称:/etc/aliases
=%<=Bn 使用权限:系统管理者
7^dr[.Q[* 使用方式: 请用 newaliases 更新资料库
{&5lZ<nu8A 说明:
#Oka7.yz sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
@KQ>DBWQM T^v763% /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
JK$3qUDnI # newaliases
wf8{v t;* zr* 下面命令会做相同的事,
+?J N_aR # sendmail -bi
#9,8{ O" SBxpJsW> 相关命令:
+|/0sPW( mail, mailq, newaliases, sendmail
sOhn@*X #`iEb iSq ” mail [返回]
Fm`*j/rq 名称:mail
5,Fq:j)MxW <^YvgQ,m 使用权限:所有使用者
1jKpLTSs FX!KX/OE) 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
m)A:w.o VeQGdyhY 说明:
TAG@Ab mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
|dR}S!fmG W&hW N9iR 参数:
TtkHMPlm_ i 忽略 tty 的中断讯号。 (interrupt)
8dR `T} I 强迫设成互动模式。 (Interactive)
8UU
L= v 列印出讯息,例如送信的地点、状态等等。 (verbose)
L6h<B
:l n 不读入 mail.rc 设定档。
F0!Z1S0g s 邮件标题。
|OeWM c cc 邮件地址。
t+v%%N_ b bcc 邮件地址。
4EM+ Ye xX-r<:'tmi 范例:
]W;6gmV ].Yz
=: 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
5Npxs&Ea mail
user1@email.address
&dtst?? mail
user1@email.address user2
#G#gc`S-, Hs)Cf)8u 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
:\[l~S >@7$=Y>D mail -s 标题 -c user1 user2 < mail.txt
*QQeK#$s ,ayEZ#4.m 指令:mesg
QF/ULW0G! 使用权限 : 所有使用者
V8/4:Va7s - VJx)g 使用方式 : mesg [y|n]
jfG of* v,iZnANZ&P 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Lf((
zk:pt $z[S0C m 把计 ?
J$}]p x|m9?[
!_ y : 允许讯息传到终端机介面上。
X$5 n : 不允许讯息传到终端机介面上 。
:.5l 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
=p_*lC%N 0Fb];:a 例子 :
'4uu@?!dVk 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
@Fc:9a@ mesg n
O q$_ q 与 mesg 相关的指令有: talk,write,wall。
Dizz ?O 名称:/etc/aliases
9:p-F+ 使用权限:系统管理者
wj6u,+ 使用方式: newaliases
Q3WI@4 说明:
~5+RK16 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
l$&~(YE f lQ?jdi /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
;p+'?%Y} Kn:Ml4[; 参数:没有任何参数。 范例:
7(1`,Y
# newaliases
{R ),7U8 U,P>P+\@ 下面命令会做相同的事,
mcQL>7ts # sendmail -bi
],SQD3~9 f(pq`v^-n 相关命令:
3`cA!ZVQ mail, mailq, newaliases, sendmail
^m%#1Zd 名称 : talk
t}eyfflZ 使用权限 : 所有使用者
Wa|V~PL+T Z jmQ 使用方式 :
w*6b%h%ww r>fGj\#R = talk person [ttyname]
2yK">xYY@ 说明 : 与其他使用者对谈
:C>7HEh-2_ >>J3"XHX 把计 :
@F5Af/ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ?:wb#k)Z/ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
I5M\PK/ {[2o 例子.1 :
#Kb /tOp1 m'NAM%$}J 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
Oin9lg-jR talk Rollaend
LH4A!a] 2'@m'4-N 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
To*+Z3Wd mU-2s%X<.^ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
'<o3x$6
* talk
Rollaend@linuxfab.cx pts/2
2Xl+}M.:Y -UkK$wP5 w!"L\QT 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
z&gmaYwq zhw*Bed< 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
A5Hx$.Z -{0Pq.v 名称 : wall
2?~nA2+vm 使用权限 : 所有使用者
,LA'^I? hH`x*:Qja 使用方式 :
nNCR5&,q wall [ message ]
|3FI\F;^q 使用说明:
2uEI@B wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
c6[m'cy ,7s>#b' 例子 :
DKS1Sm6d0 ~5HT_B U= 传讯息"hi" 给每一个使用者 :
zjUQ] wall hi
fo,0NxF9 名称 : write
5b:1+5iF- 使用权限 : 所有使用者
^^v3iCT 5}G_2<G 使用方式 :
&`qYe)1Eo !kSemDC write user [ttyname]
o:#jvi84F 说明 : 传讯息给其他使用者
t5E$u(&+'B &MpLm& 把计 :
MQP9^+f)O? c
\??kQH user : 预备传讯息的使用者帐号
'b.jKkW7 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
f$>_>E
:Hq%y/ 例子.1 :
us.[wp'Sh ) 'xyK 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
`e ZDG write Rollaend
D]E=0+ Ze%S<xT!O 接下来就是将讯息打上去,结束请按 ctrl+c
.h
<=C&Yg >c0leT 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
;[ QIHA! write Rollaend pts/2
M<Bo<,!ua _t-6m2A 接下来就是将讯息打上去,结束请按 ctrl+c
V<WWtu;3 #v(As)4^ 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
h.?<(I \Yj_U'2"i 名称:kill
HBp??.r 使用权限:所有使用者
eM!Oc$C8[ uB+#<F/c 使用方式:
pbG-uH^ w(bvs&`{uC kill [ -s signal | -p ] [ -a ] pid ...
D% *ww'mt0 kill -l [ signal ]
7d.H8C2 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
pzRVX8 把计?
M+")*Opq ;L:UYhDbUx -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
9=}#.W3. -p : 印出 pid , 并不送出信号
lFuW8G,-f@ -l (signal) : 列出所有可用的信号名称
JQ
?8yl
范例:
6DHZ,gWq vV"YgN: 将 pid 为 323 的行程砍掉 (kill) :
~Q"qz<WO kill -9 323
%J6>Vc!ix= :JBtqpo2 将 pid 为 456 的行程重跑 (restart) :
A
PSkW9H kill -HUP 456
!JdZ0l IHW s<U 名称:nice
i=^6nwD& 使用权限:所有使用者
!gyW15z' I5j|\ /Ht 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
qCVb-f WTD86A 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
S9*68l ,V!Wo4M KY2z)#/ 把计?
bfb9A+]3' nIOSP:'> -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
9Pvv6WyKy --help 显示求助讯息
.,VLQbtg --version 显示版本资讯
v\(6uej^ 范例:
y:zNf?6& 将 ls 的优先序加 1 并执行 :
k N* I_# nice -n 1 ls
Z1$S(p=)L g9Dynm5 将 ls 的优先序加 10 并执行 :
^[I>#U nice ls将 ls 的优先序加 10 并执行
C5KUIOg L09r|g4Z 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
"\lOOp^- (uHyWEHt 名称:ps
c=-qbG0` 使用权限:所有使用者
jc32s}/H 使用方式:ps [options] [--help]
Rc93Fb-Zp 说明:显示瞬间行程 (process) 的动态
K{Nj-Rqd 参数:
lwG)&qyVd ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
!Qsjn -A 列出所有的行程
$BLd>gTzmv -w 显示加宽可以显示较多的资讯
vytO8m%U -au 显示较详细的资讯
~md06"AYJ -aux 显示所有包含其他使用者的行程
Nw,|4S 1TzwXX7 au(x) 输出格式 :
vEE\{1 M`iE'x USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
r0OP !u USER: 行程拥有者
=~,2E;#X PID: pid
Rw63{b/ %CPU: 占用的 CPU 使用率
Yp3 y%n %MEM: 占用的记忆体使用率
gLFSZ VSZ: 占用的虚拟记忆体大小
{QN 5QGvK RSS: 占用的记忆体大小
C%%gCPI^y TTY: 终端的次要装置号码 (minor device number of tty)
@tRDKPh STAT: 该行程的状态:
GAs.?JHd D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
AnE]
kq u R: 正在执行中
oOLj?
0t S: 静止状态
>%N,F`^3 T: 暂停执行
gL@]p Z: 不存在但暂时无法消除
WXf[W W: 没有足够的记忆体分页可分配
UsCaO<A <: 高优先序的行程
cUw$F{|W N: 低优先序的行程
C0^r]^$Z L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
5]kv1nQ START: 行程开始时间
2PNe~9)*# TIME: 执行的时间
s|[qq7 COMMAND:所执行的指令
<|E*aR|M 范例:
k|jr+hmn": ps
M`*
BS PID TTY TIME CMD
IO2@^jup 2791 ttyp0 00:00:00 tcsh
|WT]s B0Eq 3092 ttyp0 00:00:00 ps
!@arPN$ % ps -A
oykb8~u}} PID TTY TIME CMD
>I;.q|T 1 ? 00:00:03 init
Zx: h)I 2 ? 00:00:00 kflushd
fL-$wK<p< 3 ? 00:00:00 kpiod
]T.+(\I 4 ? 00:00:00 kswapd
CFoR!r:X 5 ? 00:00:00 mdrecoveryd
=?\%E[j .......
wIWO?w2 % ps -aux
\zDs3Hp USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
]$-<< N{}' root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
v@J[qpX root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
#D ]CuSi root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
ttBqp|.?S root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
BJg ........
6 =G=4{q 名称:pstree
pWH,nn?w. 使用权限:所有使用者
5e?<x>e 使用方式:
&Du S* pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
QTN'yd?WE pstree -V
{/,AMJ<:G] 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
1FT3d 参数:
$++O@C5 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
p|BoEITL -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
Tv
5J 范例:
bUYjmb2g) pstree
V"} Jsr Ua=r24fy init-+-amd
0f'LXn |-apmd
vF[ 4kDHk |-atd
S a}P
|qI |-httpd---10*[httpd]
MhB>bnWXR %pstree -p
q)AX*T+ init(1)-+-amd(447)
-YrMVoZl |-apmd(105)
B$hog_=s |-atd(339)
M9Nr/jE %pstree -c
Io&HzQW^a init-+-amd
OkCAvRg |-apmd
}u{gQlV |-atd
T4[/_;1g |-httpd-+-httpd
e,W,NnCICj | |-httpd
G!h75G20 | |-httpd
[8 H:5Ho | |-httpd
$TK= :8HY ....
9b@yDq3hQ 名称:renice
3=*ur( Qy 使用权限:所有使用者
#l3)3k*; W,_2JqQp 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
uv^x m
-hZ5i 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
t*u#4I1 1i'y0]f 把计?
Z_Y'#5o# gFTlP -p pid 重新指定行程的 id 为 pid 的行程的优先序
$J&c1 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
Wcm8,?* -u user 重新指定行程拥有者为 user 的行程的优先序
O}p<"3Ub 范例:
~P;A
9A(k 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
;-;lM6zP renice +1 987 -u daemon root -p 32
5O
Y5b8 IOY7w"|LW 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
Uqy/~n-v< 9\/oL{ 名称:top
.aVt d
[ 使用权限:所有使用者
?,8+1"|$A] M]/DKo 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] %H2ios[UO
+%u3% }
说明:即时显示 process 的动态
UT9u?
9cU9'r# h
把计? \<09.q<8
AQT_s9"0
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s |r36iUHZS
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 \iP@|ay9
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 zNdkwj p+
s : 安全模式,将交谈式指令取消, 避免潜在的危机 pe\Nwq
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 F"O\uo:3
n : 更新的次数,完成后将会退出 top $(]nl%<Q
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 8N?D1;F;
=WBfaxL}
范例: n+te5_F
显示更新十次后退出 ; ~1[n@{*: (
top -n 10 '[%#70*
vv{+p(~**O
使用者将不能利用交谈式指令来对行程下命令 : w D r/T3
top -s -)VjjKz]8
5)eM0,:
将更新显示二次的结果输入到名称为 top.log 的档案里 : Jou*e%
top -n 2 -b < top.log r~ 2*'zB
$sE=[j'v
名称:skill ZH9Fs'c=
kP ,8[r
使用权限:所有使用者 vZ"gCf3#?3
UU MB"3e
使用方式: skill [signal to send] [options] 选择程序的规则 r]Wt! oHm5
=\5WYC
说明: Z?!AJY
._^ne=Lx
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 9Ffam#
J&,hC%]
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 XGH:'^o_
h-?yed*?
一般参数: TnK<Wba
bS r"k
-f 快速模式/尚未完成 Y$A2{RjRq
(EY@{'.&
-i 互动模式/ 每个动作将要被确认 "g&f:[a/
YRX^fZ-b
-v 详细输出/ 列出所选择程序的资讯 }RI_k&;
:VZS7$5
-w 智能警告讯息/ 尚未完成 >{tn2Fkg>
m1Y a
-n 没有动作/ 显示程序代号 4=Ru{ewRV
T:X*
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 R P<M
@ztT1?!e
-t 终端机代号 ( tty 或 pty ) vxEi C:&]
4J_HcatOB
-u 使用者名称
r+E!V'{C
^]R_t@
-p 程序代号 ( pid ) m[v0mXE
ISs&1`Y
-c 命令名称 可使用的讯号: KYm8|]'g
M=pQx$%a
以下列出已知的讯号名称,讯号代号,功能。 r*vh3.Agl
jc9C|r
名称 (代号) 功能/ 描述 E4892B:`
%Tp
k1
ALRM 14 离开 K9%rr_ja!
8$_{R!x
HUP 1 离开 sPvs}}Z]P
w)+1^eW
INT 2 离开 KJec/qca
#C&';HB;y
KILL 9 离开/ 强迫关闭 '2lzMc>wvP
-J+1V{
PIPE 13 离开 pJ/]\>#5
|JIlp"[
POLL 离开 g:Qq%'
$J4\jIipL
PROF 离开 q@bye4Ry%W
mc?IM(t
TERM 15 离开 HAK,z0/
Gkuqe3
USR1 离开 '=E;^'Rl
V*\hGNV
USR2 离开 IsI5c
.4%z$(+6
VTALRM 离开 2.%)OC!q&5
y7F
|v8bq
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 P".}Y[GD
hO8xH +;
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Y
bJg{Sb
>JE+j=
TSTP 停止 /产生与内容相关的行为 Y`j$7!j
;
oa+Z:;f
TTIN 停止 /产生与内容相关的行为 ,gQl_Amvz
]?VVwft
TTOU 停止 /产生与内容相关的行为 0(-4"u>?
iuY,E
STOP 停止 /强迫关闭 USyc D`
NRtH?&7
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 uG7]s]Wdz;
{OPEW`F
PWR 忽略 /在某些系统中会离开 _ZhQY,
LhLAQ2~
WINCH 忽略 ASbIc"S6
*zPqXtw!j
CHLD 忽略 r!Dk_|Cd
HN5661;8
ABRT 6 核心 \09A"fs{
`qhT
FPE 8 核心 DK?aFSf\
[M[#f&=Z
ILL 4 核心 8HKv_vl
j_g(6uZhz3
QUIT 3 核心 es6YxMg
;VKWY
SEGV 11 核心 &233QRYM
Am*IC?@tq
TRAP 5 核心 nIg 88*6b,
fPD.np}
SYS 核心 /或许尚未实作 <w^u^)iLy1
`r SOt*<
EMT 核心 /或许尚未实作 GrG'G(NQ
8B*(P>
BUS 核心 /核心失败 Kb+SssF
~o_JZ:
XCPU 核心 /核心失败 g PCf+>X{
."ZG0Zg
XFSZ 核心 /核心失败 kV1L.Xg
J*rYw5QB
范例: qvc<_k^
停止所有在 PTY 装置上的程序 k( 0; >)<i
skill -KILL -v pts/* }MOXJb @
>G|RVB
停止三个使用者 user1 , user2 , user3 a^l)vh{+
skill -STOP user1 user2 user3 rEWJ3*Hb
eXKEx4rU
其他相关的命令: kill b, a7XANsh
名称:expr ZXs,TaU
使用权限:所有使用者 GPLop/6
### 字串长度 YtvDayR>
\
86g y/
shell>> expr length "this is a test" i
FZGfar?
14 V$hL\`e
### 数字商数 "mBM<rEn*
shell>> expr 14 % 9 mQ`atFz:Z
5 %mss{p!d6
### 从位置处抓取字串 }Ecv6&G
shell>> expr substr "this is a test" 3 5 pZS]i
"
is is -sA&1n"W&5
### 数字串 only the first character V7U*09
0*5
shell>> expr index "testforthegame" e y%vAEQ2j=
2 Brxnl,%\
### 字串真实重现 L[2N zwO
shell>> expr quote thisisatestformela 1_{ e*=/y
thisisatestformela