linux常用命令
Z :nbZHByh 3)N\'xFh@ 称:/etc/aliases
g0&\l}&%U 使用权限:系统管理者
rx!=q8=0R 使用方式: 请用 newaliases 更新资料库
|FNCXlgZ 说明:
<<zI\+V sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
^%<pJMgdF =RsXI&&vh /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
C+N k"l9 # newaliases
l=={pb <02m%rhuW 下面命令会做相同的事,
HdX2YPYn; # sendmail -bi
E>uVofhml #Dy?GB08 相关命令:
wkb$^mU mail, mailq, newaliases, sendmail
1hmc,c 7E7dSq ” mail [返回]
MMQ;mw=^] 名称:mail
q|(W-h+ mUP. rb6 使用权限:所有使用者
TzG]WsY_ 0L-!!
c3 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
5M_Wj*a}7 7hw .B'7 说明:
Ol/N}M|3 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
nk=$B(h g@ith&*=h 参数:
+j/~Af p5f i 忽略 tty 的中断讯号。 (interrupt)
;;U:Jtn2 I 强迫设成互动模式。 (Interactive)
;H0 {CkH v 列印出讯息,例如送信的地点、状态等等。 (verbose)
rofNZ;nu n 不读入 mail.rc 设定档。
Gc,_v3\ s 邮件标题。
xL
"!~dN c cc 邮件地址。
1DJekiWf b bcc 邮件地址。
zj{s}* `BXS)xj 范例:
E/b"RUv}h
%Y nmuZ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
iThSt72 mail
user1@email.address
{MBTP;{*~ mail
user1@email.address user2
N_gD>6I b^CNVdo' 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
~/#1G.H |NFZ(6vNh mail -s 标题 -c user1 user2 < mail.txt
}
p:%[ 0y#Ih {L 指令:mesg
zw@'vncc 使用权限 : 所有使用者
mEAXM1J| qSU|= 使用方式 : mesg [y|n]
&(pjqV TLa]O1=Bf. 说明 : 决定是否允许其他人传讯息到自己的终端机介面
~mz%E R{hf9R , 把计 ?
Gu0 ,)jy\ ?}P5p^6 y : 允许讯息传到终端机介面上。
KW3+luI6 n : 不允许讯息传到终端机介面上 。
b7:0#l$ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
_.)eL3OF &:#h$`4 例子 :
fz_nsVD 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
9WG{p[ mesg n
UK[v6".^h 与 mesg 相关的指令有: talk,write,wall。
AONDx3[
名称:/etc/aliases
K95;rd 使用权限:系统管理者
cI0 ]}S 使用方式: newaliases
^eq</5q D 说明:
,\)a_@@k sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
#;KsJb)N. ^ZRYRA /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
f:JlZ& S::=85[>z 参数:没有任何参数。 范例:
a}yXC<}$ # newaliases
IZ,oM!Y +C]&2zc. 下面命令会做相同的事,
B^ 7eo W # sendmail -bi
I3b"|% 7E$&2U^Js 相关命令:
1`0#HSO mail, mailq, newaliases, sendmail
YNdrWBf) 名称 : talk
6 ,ANNj 使用权限 : 所有使用者
C@\{ehG W~n.Xeu{C 使用方式 :
~:4kU/] Nh?|RE0t talk person [ttyname]
m|tC24 说明 : 与其他使用者对谈
,~PYt*X4 >TL^>D 把计 :
}=](p-] 5 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name \ gwXH ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Xf'=+f2p ;r\(p|e 例子.1 :
(46 {r}_O )KSoq/ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
={2!c0s talk Rollaend
-;(Q1)& NR%Y+8^M 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
K-vWa2 RF}X
ER 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
!\ND( talk
Rollaend@linuxfab.cx pts/2
|iYg > gApoX0nrv Ji'(`9F&a 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
q(o/yx{bm g:ErZ;[ 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
yGBQ0o7E ;#+0L$<t 名称 : wall
cc=gCE 使用权限 : 所有使用者
'1SG(0 vE, 37 使用方式 :
j|fd-<ng wall [ message ]
]DG?R68DQ 使用说明:
Fqq6^um wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
VaZn{z *V^ #ga#A 例子 :
A?!I/|E^; '!h/B;*( 传讯息"hi" 给每一个使用者 :
ITJ q wall hi
cR{>IH 4^ 名称 : write
:PYtR 使用权限 : 所有使用者
[dX`K`k Z,7R;,qX 使用方式 :
4EP<tV \uOdALZ write user [ttyname]
;oOv/3 说明 : 传讯息给其他使用者
a~LC+8|JW ~i;fDQ&! 把计 :
{i~8 : ;$j7H&UNQj user : 预备传讯息的使用者帐号
,{eUP0] ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
:6kj EI Y$8JM 例子.1 :
gIEl. KLQTKMNv 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
+V862R4,o write Rollaend
`D5HC 7Du1RuxP 接下来就是将讯息打上去,结束请按 ctrl+c
~:Uwg+]j JWP*>\P 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
K!AAGj` write Rollaend pts/2
FE7)E.U th5g\h%j* 接下来就是将讯息打上去,结束请按 ctrl+c
YA(@5CZ "I-
w 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
E N^Uki` wmr-}Y!9u% 名称:kill
&Bb<4R 使用权限:所有使用者
)
iQ
~q0*"\Ff 使用方式:
:7N3N .4.pJbOg kill [ -s signal | -p ] [ -a ] pid ...
CDy^UQb kill -l [ signal ]
f2)XP$: 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
-]G(ms;}/Y 把计?
xom<P+M!| QvPD8B -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
{[Q0qi = -p : 印出 pid , 并不送出信号
u8zbYd3 -l (signal) : 列出所有可用的信号名称
k5d\w@G"~ 范例:
?z-}>$I; iP~,n8W 将 pid 为 323 的行程砍掉 (kill) :
pj|pcv^ kill -9 323
~rbIMF4T`] )4Q?aMm 将 pid 为 456 的行程重跑 (restart) :
Ac k}QzXO kill -HUP 456
ug 7o>PX
Fnx`Ri 名称:nice
U4?(A@z9^ 使用权限:所有使用者
Mc sTe|X !v#xb3"/ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
Nf,Z;5e `rY2up#% 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
De
*7OC Nw J:! C2e.2)y 把计?
.?C%1a&_l m,LG=s -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
[K~]& --help 显示求助讯息
!,$i6gm --version 显示版本资讯
~IVd vm7 范例:
YL^=t^!4 将 ls 的优先序加 1 并执行 :
H!e 3~+) nice -n 1 ls
"LhUxnll <{(/E0~V/< 将 ls 的优先序加 10 并执行 :
ytEC nice ls将 ls 的优先序加 10 并执行
&UHPX?x }|)R
注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
S|AM9*k9 5,"l0nrk 名称:ps
c2l_$p 使用权限:所有使用者
pfuW 使用方式:ps [options] [--help]
,n,RFa 说明:显示瞬间行程 (process) 的动态
|8_JY2
R 参数:
=?0lA_
0 ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
w-B^
[< -A 列出所有的行程
F^aR+m -w 显示加宽可以显示较多的资讯
4\t1mocCSN -au 显示较详细的资讯
a[bBT@f -aux 显示所有包含其他使用者的行程
}Y(]6$uS V5}nOGV9 au(x) 输出格式 :
G%p~m%zIK D:\ g,\Z USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
"tit\a6\( USER: 行程拥有者
f}c\_}( PID: pid
1&=0Wg0ig %CPU: 占用的 CPU 使用率
}0hL~i %MEM: 占用的记忆体使用率
ij5g^{_T;8 VSZ: 占用的虚拟记忆体大小
<3PL@orO RSS: 占用的记忆体大小
\/7i-B]G7 TTY: 终端的次要装置号码 (minor device number of tty)
fBtm%f STAT: 该行程的状态:
WnFG{S{s D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
*=" 8?Z R: 正在执行中
{Ee>n^1 S: 静止状态
v<\A% T: 暂停执行
Wm'QP4` Z: 不存在但暂时无法消除
ExSe=4q# W: 没有足够的记忆体分页可分配
C8N{l:1f] <: 高优先序的行程
~\nBjM2 N: 低优先序的行程
nq}Q L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
8 S`9dSc START: 行程开始时间
>C WKH~ TIME: 执行的时间
egR9AEJvz COMMAND:所执行的指令
3LR p2(A 范例:
RIM`omM ps
1xNVdI PID TTY TIME CMD
$h9='0Wi0' 2791 ttyp0 00:00:00 tcsh
~cAZB9Fa 3092 ttyp0 00:00:00 ps
|4) % ps -A
D;GD<zC] PID TTY TIME CMD
P=L$;xgp 1 ? 00:00:03 init
;T]d MfO 2 ? 00:00:00 kflushd
=6FUNvP#8 3 ? 00:00:00 kpiod
A\rt6/ 4 ? 00:00:00 kswapd
&WXY 'A= 5 ? 00:00:00 mdrecoveryd
F1;lQA*7K. .......
|XYEn7^r % ps -aux
%x;x_ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ukgAI<O% root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
=+5,B\~q@C root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
q:>^ "P{ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
A% Q!^d root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
p]D]:
Z}P ........
2 gq$C" 名称:pstree
}F6<w{| 使用权限:所有使用者
Rx07trfN 使用方式:
E! /[gZ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
(w( pstree -V
H?1xjY9sl 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
@r(Z%j7 参数:
&hHW3Q(1 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
!9*c8bL D -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
,y`CRlr: 范例:
,ea^,H6 pstree
-F&U %A1@&xrbl init-+-amd
?rVy2! |-apmd
!"Yj|Nu6 |-atd
z2gk[zY& |-httpd---10*[httpd]
a/Q$cOs %pstree -p
5
*}R$ init(1)-+-amd(447)
8VG!TpX/B |-apmd(105)
^{$FI`P |-atd(339)
<oKGD50# %pstree -c
5[l8y, init-+-amd
i!2TH~zl |-apmd
l:;PXy6) |-atd
gwrYLZNGI |-httpd-+-httpd
l5%G'1w#,j | |-httpd
e"]8T}, | |-httpd
@53k8 | |-httpd
,)+o ....
%R#L 名称:renice
I3 =#@2 使用权限:所有使用者
onCKI," +cJy._pi! 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
5*PYT=p} r0t^g9K0 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
+h^jC9,m~{ }<@j'Ok}. 把计?
.M,RFC \}6;Kf}\ -p pid 重新指定行程的 id 为 pid 的行程的优先序
|yyO q -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
m42T9wSsx -u user 重新指定行程拥有者为 user 的行程的优先序
k$5 s{q 范例:
m^' uipa\ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
{^CT}\=> renice +1 987 -u daemon root -p 32
Y^Nuz/ <9ig?{' 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
7*j
(* bn
6WjJ~Z+ 名称:top
NW~z&8L 使用权限:所有使用者
tMj;s^P1 5tJ,7Y' 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] tqAd$:L
YDC mI@
说明:即时显示 process 的动态 A,i75kd
O/:UJ( e{
把计? r|4t aV&
T|&[7%F3"
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s =_j vk.
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 MT(o"ltQ
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 %0#1t 5g
s : 安全模式,将交谈式指令取消, 避免潜在的危机 V)Z70J<'
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 fQrhsuCrC
n : 更新的次数,完成后将会退出 top Z\[N!Zt|
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 Va Z!.#(P
bo.(zAz
范例: r&-m=Kk$
显示更新十次后退出 ; Z*G(5SqUh"
top -n 10 Bq/:Nd[y
[c_|ob]
使用者将不能利用交谈式指令来对行程下命令 : 3+>G#W~
top -s Y*_)h\f
oYWR')8g
将更新显示二次的结果输入到名称为 top.log 的档案里 : 4|A>b})H
top -n 2 -b < top.log l
& Dxg
&A#~)i5gF
名称:skill @FdSFQ/9
Em[DHfu1Q
使用权限:所有使用者 q2HYiH^L
j*xV!DqC
使用方式: skill [signal to send] [options] 选择程序的规则 R^{)D3
P%K4[c W~
说明: R_=6GZH$G
o1nURJ!
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 (a9d/3M
r1RG TEkD
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 H@]MXP[_
{Ay"bjZh
一般参数: A'P(a`
q -8t'7
-f 快速模式/尚未完成 hy|b6wF&
D7_*k%;@
-i 互动模式/ 每个动作将要被确认 qZ@s#UiB
g+X}c/".
-v 详细输出/ 列出所选择程序的资讯 FVhU^
YKQr,
Now
-w 智能警告讯息/ 尚未完成 ~/j\Z
)>BHL3@
-n 没有动作/ 显示程序代号 :6$>_m=i
arf8xqR-U]
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 kQ]$%Lk[
(p%>j0<
-t 终端机代号 ( tty 或 pty ) (5\NB0
~i 7^P9
-u 使用者名称 nB .G
Y3Q9=u*5
-p 程序代号 ( pid ) sH\5/'?
`-LGU7~+
-c 命令名称 可使用的讯号: 7`u$
Yw0[[N<SW
以下列出已知的讯号名称,讯号代号,功能。 ->N8#XH2=
$ MC)}l
名称 (代号) 功能/ 描述 O$cHZs$
K(aJi,e>
ALRM 14 离开 "Wx]RN:
=FD;~
HUP 1 离开 !W?gR.0$=
l#n,Fg3
INT 2 离开 J`2"KzR0w"
0V?F'<qy
KILL 9 离开/ 强迫关闭 iQ"XLrpl
)vxUT{;sH
PIPE 13 离开 Dih3}X&jn$
|ZQ@fmvL/p
POLL 离开 o6p98Dpg
Sf8{h|71
PROF 离开 H*r>Y
i7ly[6{^pr
TERM 15 离开 4ni3kmvX
TjG4`:*y#m
USR1 离开 .aflsUD
B-r0"MX&
USR2 离开 [pM V?a[
/soKucN"h
VTALRM 离开 F;>!&[h}G
M
%Qt|@O
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 dh $bfAb
3g6j?yYqb
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 qcT'nZ:
)l#E}Uz
TSTP 停止 /产生与内容相关的行为 1</kTm/Qa
y.q(vzg\_
TTIN 停止 /产生与内容相关的行为 m?&1yU9
:GJ &_YHf
TTOU 停止 /产生与内容相关的行为 )Qvk*9OS
x]33LQ1]
STOP 停止 /强迫关闭 l\n@cQR
Rx+p.
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 YtWJXkB
&ZQJ>#~j^
PWR 忽略 /在某些系统中会离开 u#@Q:tnN_
NG6& :4!
WINCH 忽略 2J;kSh1,L
x_dy~(*
CHLD 忽略 (V HL{rj
]i)j3WDz]
ABRT 6 核心 mN19WQ(r
pt}X>ph{
FPE 8 核心 EEW_gFn
k Zq!&
ILL 4 核心 0xXC^jx:
)[|3ZP`
QUIT 3 核心 BGu?<bET
*~x/=.}
SEGV 11 核心 PKzyV ;
_:"<[ >9
TRAP 5 核心 Kp,M"Y
TG5XSy
SYS 核心 /或许尚未实作 `{xNXH]@
Jtk|w[4L
EMT 核心 /或许尚未实作 5kz)5,KjM
c?,i3s+2Y
BUS 核心 /核心失败 dB5b@9*
..R-Ms)k=
XCPU 核心 /核心失败 q+vx_4
{7/0< NG
XFSZ 核心 /核心失败 c*@E_}C#
G-.^O,%
范例: ,5*eX
停止所有在 PTY 装置上的程序 4BKI-;v$
skill -KILL -v pts/* bG(3^"dS
6<ZkJ:=
停止三个使用者 user1 , user2 , user3 y7i*s^ys{
skill -STOP user1 user2 user3 !!? Mw
*NCl fkZ
其他相关的命令: kill e;[F\ov%
名称:expr os]8BScx
使用权限:所有使用者 #hsx#x||
### 字串长度 c. 2).Jt,
Uh):b%bS;J
shell>> expr length "this is a test" a,WICv0E
14 2mGaD\?K
### 数字商数 ]f({`&K5
shell>> expr 14 % 9 $
.
9V&
5 !GNBDRr
### 从位置处抓取字串 SV~~Q_U9
shell>> expr substr "this is a test" 3 5 I]EbodAyZ,
is is Oz%>/zw[h
### 数字串 only the first character {R?U.eJW
shell>> expr index "testforthegame" e lH6OcD:kj
2 d*%`!G
### 字串真实重现 L=sYLC6d
shell>> expr quote thisisatestformela J\M>33zu
thisisatestformela