linux常用命令
V'iT> h85kQ^% 称:/etc/aliases
ov$S 使用权限:系统管理者
wk9qyv< 使用方式: 请用 newaliases 更新资料库
]K0G!T R< 说明:
BmhIKXE{* sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
i:/Ws1=q YP4lizs. /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
hBRcI0R # newaliases
fk5$z0 / "h\ (a< 下面命令会做相同的事,
r,8~qHbOT # sendmail -bi
8~!9bg6C (qyT,K8 相关命令:
u%24%
Q mail, mailq, newaliases, sendmail
]yAOKmS ,v@C=4'm ” mail [返回]
3'jH,17lWV 名称:mail
dTTC6?yPXf !5^&?plC@ 使用权限:所有使用者
qK-\`m ]8o[&50y 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
\c(Z?`p]R1 qGkD] L 说明:
U32&"&";c mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
9er0Ww.d Of gmJ(% 参数:
x\K9|_! i 忽略 tty 的中断讯号。 (interrupt)
5fDp"- I 强迫设成互动模式。 (Interactive)
'UFPQ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
sZh| <2 n 不读入 mail.rc 设定档。
lHI?GiB@ s 邮件标题。
Y'U]!c9 c cc 邮件地址。
#+ai G52+ b bcc 邮件地址。
/RBIZ_ E``\Jre@ 范例:
wf""=; GOU>j"5}2 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
5sZqX.XVF mail
user1@email.address
vxZ :l mail
user1@email.address user2
U$m[{r2M {8e4TD9E0 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
:pw6#yi8` ., =\/ C< mail -s 标题 -c user1 user2 < mail.txt
?'/#Gt` M{)|9F 指令:mesg
Dd'4W 使用权限 : 所有使用者
lU8X{SV! N_o|2 使用方式 : mesg [y|n]
u5I#5 <(tnClAn 说明 : 决定是否允许其他人传讯息到自己的终端机介面
@g%^H)T u;Rm/. 把计 ?
ZOzwO6(_ &s~b1Va y : 允许讯息传到终端机介面上。
*z
}<eq n : 不允许讯息传到终端机介面上 。
*wl&Zzx 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
hOM#j VK[`e[.C 例子 :
["BD,mB 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Xf%wW[~ mesg n
zL=PxFw0 与 mesg 相关的指令有: talk,write,wall。
i~ITRi@ 名称:/etc/aliases
7*C>4Gs 使用权限:系统管理者
W%P$$x5& 使用方式: newaliases
<7*d2 说明:
W{X5~w( sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
8dlhL8# 7OdJ&Gzd /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Xmv^O "}^}3"/. 参数:没有任何参数。 范例:
\rSofn#c # newaliases
p"|0PlW |0$7{nQ 下面命令会做相同的事,
z|v/hUrD # sendmail -bi
5-! Zm] {1L{ 相关命令:
\qw1\-q mail, mailq, newaliases, sendmail
q vGP$g 名称 : talk
=v6qr~ 使用权限 : 所有使用者
z+{Q(8'b] v<:/u(i 使用方式 :
_r?.%]\. m~R Me9Qi talk person [ttyname]
9/dI 6 P7 说明 : 与其他使用者对谈
|*y'H* O`TM} 把计 :
k. ?@qCs[ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name rOTxD/ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
b0aV?A}th EncJB 例子.1 :
[?S-on. Tu7}*vsR
与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
.q5WK#^ talk Rollaend
UE 1tm 3)3$ L 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
4%>2>5 v
O@7o 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
EeDK ^W8N talk
Rollaend@linuxfab.cx pts/2
gT#hF]c: tE]Y=x[Ux .*{0[ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
OY,iz >*"1`vcxF 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
wj-z;YCV UO}Yr8Z; 名称 : wall
@%
.;}tC 使用权限 : 所有使用者
VskdC?yIp ~!#2s' 使用方式 :
<]'1Y DA wall [ message ]
?vg|;Q 使用说明:
gh<2i\})' wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
jPmp=qg"q ]^v*2!_( 例子 :
t$(<9 ;3
/*Z5p 传讯息"hi" 给每一个使用者 :
w3K>IDWI7 wall hi
+OfHa\Nz 名称 : write
!w{(}n2Wq 使用权限 : 所有使用者
YjzGF=g# C~c|};&% 使用方式 :
O =\`q6l A9kn\U92 write user [ttyname]
{"hyr/SK d 说明 : 传讯息给其他使用者
-jcgxQH53 FSHC\8siS 把计 :
MxLi'R= N6w!V]b user : 预备传讯息的使用者帐号
&e;GoJ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
8=WX`*-uH UsnIx54D3 例子.1 :
de,4Ms!% fea4Ul{ib 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
M:R|hR{=* write Rollaend
;C~:C^Q\H MOIMW+n 接下来就是将讯息打上去,结束请按 ctrl+c
1aS66TS3 Vy@0Got5= 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
"q3W&@ write Rollaend pts/2
3GM9ZPeN: #s0Wx47~ 接下来就是将讯息打上去,结束请按 ctrl+c
cOb,Md `c /mmS 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
fB`7f
$[ o>@9[F,h+ 名称:kill
U%l<48@8 使用权限:所有使用者
_7N^<'B %]fi;Z 使用方式:
r9whW;"q 9 $Ud\ kill [ -s signal | -p ] [ -a ] pid ...
d5l].%~ kill -l [ signal ]
c-=z<:Kf 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
y aLc~K 把计?
`l}+BI`4 BB3wG*q -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
SoNT12> -p : 印出 pid , 并不送出信号
\) vI- -l (signal) : 列出所有可用的信号名称
;)' 范例:
{]3Rk ~s-"u
*> 将 pid 为 323 的行程砍掉 (kill) :
7cV
GB kill -9 323
Oi,:q& +|6 u
0&R^ 将 pid 为 456 的行程重跑 (restart) :
]=jpqxlx kill -HUP 456
OG{vap) D0
,t,,L 名称:nice
DRmN+2I 使用权限:所有使用者
}D*5PV%d iU "{8K, 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
%-#rzeaW gYW 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
TUM7(-,9 ZGC*BP/ 3#~w#Q0% 把计?
+JPHQx'W %617f=(E?! -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
X$9
"dL --help 显示求助讯息
S|/Za".Gr --version 显示版本资讯
/=~o|-n8@ 范例:
/..a9x{At> 将 ls 的优先序加 1 并执行 :
ibv.M= nice -n 1 ls
),&tF_z: 0/,Dy2h 将 ls 的优先序加 10 并执行 :
??h4qJ nice ls将 ls 的优先序加 10 并执行
%TS8 9/ OQ*rxLcA 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
EbMG9 Erq%Ck( 名称:ps
*;Gn od< 使用权限:所有使用者
V8+8?5'l 使用方式:ps [options] [--help]
wfrSI:+> 说明:显示瞬间行程 (process) 的动态
D5jZ;z} 参数:
o 12wp ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Is#w=s}2 -A 列出所有的行程
;}QM#5Xdt -w 显示加宽可以显示较多的资讯
ZmzYJ$:6 -au 显示较详细的资讯
hVdPO -aux 显示所有包含其他使用者的行程
yvt
:/X `;v>fTcy au(x) 输出格式 :
J6J|&Z~UT, 48"=,IrM USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
{B)-+0 6 USER: 行程拥有者
UQ.DKUg PID: pid
Mt
%CPU: 占用的 CPU 使用率
y3Lq"?h %MEM: 占用的记忆体使用率
MfK}DEJK, VSZ: 占用的虚拟记忆体大小
'D17]Lp~. RSS: 占用的记忆体大小
UY`U[# TTY: 终端的次要装置号码 (minor device number of tty)
}8)iFP&" STAT: 该行程的状态:
+nm?+F D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
>%Nqgn$V R: 正在执行中
khS > S: 静止状态
,c.(&@ T: 暂停执行
t+%tN^87: Z: 不存在但暂时无法消除
5MmSQ_ W: 没有足够的记忆体分页可分配
V;%DS)- <: 高优先序的行程
Ub% 1OQ N: 低优先序的行程
Nd;,Wz] L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
~2 M+Me START: 行程开始时间
3W.5[;} TIME: 执行的时间
JF-ew"o<E COMMAND:所执行的指令
5#hsy;q;[ 范例:
iqTGh*k ps
Yo a|.2f PID TTY TIME CMD
K
f}h{X 2791 ttyp0 00:00:00 tcsh
jp viX#\S_ 3092 ttyp0 00:00:00 ps
X+;{&Efrl % ps -A
&#DKB#.2 PID TTY TIME CMD
M;zJ1 1 ? 00:00:03 init
Hsvu&>[`S 2 ? 00:00:00 kflushd
'?j,oRz^T 3 ? 00:00:00 kpiod
,G%?}TfC) 4 ? 00:00:00 kswapd
-:NFF' 5 ? 00:00:00 mdrecoveryd
|"o/GUI~ .......
E!}~j % ps -aux
o%V%@q H USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
$ITh)#Nj root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
C|H/x\?zRv root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
*7:HO{P>Y root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
+y\mlfJ.-b root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
Y.}8lh
eH ........
q:X&)f 名称:pstree
&I=F4 z 使用权限:所有使用者
m*
JbZT 使用方式:
-na oM pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
Kta7xtu pstree -V
4M{]YZMw8 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
6$_// 参数:
A.>TD=Nz -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
~
$QNp#dq -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
HI*j6H?\ 范例:
$ ";NS6 1 pstree
~LufHbr , \
6*fXc init-+-amd
[7*$Sd |-apmd
4E~!$Ustx |-atd
+tSfx |-httpd---10*[httpd]
1 wB2:o< %pstree -p
HA W57N init(1)-+-amd(447)
Md(h-wYr |-apmd(105)
y`Km96Ui |-atd(339)
kjOPsz*0 %pstree -c
p5PTuJ>q init-+-amd
pJ;4rrSK |-apmd
TOvpv@?- |-atd
Z%1{B*(e |-httpd-+-httpd
>p,FAz> | |-httpd
W\l"_^d*
| |-httpd
_|qs-USA | |-httpd
WEVV2BJ ....
t9(sSl 名称:renice
5U5)$K'OA 使用权限:所有使用者
/O/pAu> -&3mOn& (1 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
=abBD NNM+Z: 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
*^_ywqp A:5B6Z 把计?
#mvOhu ,[t>N>10TH -p pid 重新指定行程的 id 为 pid 的行程的优先序
DgB]y6~KXl -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
q/l@J3p[qm -u user 重新指定行程拥有者为 user 的行程的优先序
\]gUX- 范例:
wjnQK 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
LYvjqNC&4 renice +1 987 -u daemon root -p 32
BiI}JEp4o yRGv {G[59 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
2\, h "W( lhRo+X#G 名称:top
w=MiJr#3^ 使用权限:所有使用者
%L;;W,l$`) U{%N.4: 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] )Fw{|7@N
xKW`m
说明:即时显示 process 的动态 01;
iD-,C`
把计? q{*4BL'
6}xFE]Df-Y
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s G"&yE.E5
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 %\ef
Mhn
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ghu8Eg,Y
s : 安全模式,将交谈式指令取消, 避免潜在的危机 yB~`A>~M
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 =n73bm
n : 更新的次数,完成后将会退出 top etk@ j3#
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 5(V'<
O!=ae|
范例: '"QN{ja
显示更新十次后退出 ; ?O!'ZZX
top -n 10 '}|sRuftb
Jx(`.*$
使用者将不能利用交谈式指令来对行程下命令 : 9;B6<`e/U
top -s eTrIN,4
:2_8.+:
将更新显示二次的结果输入到名称为 top.log 的档案里 : d|?'yX
top -n 2 -b < top.log kICZc{} `
u{S J#3C5
名称:skill !W3bHy:C"
]BiLLDz(
使用权限:所有使用者 map#4\
ck"lX[d1
使用方式: skill [signal to send] [options] 选择程序的规则 WUnmUW[/
f#3U,n8:
说明: asQXl#4r
@ a?^2X^
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 ; M%n=+[O
(ev(~Wc
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 alB[/.1
PpF"n[j
一般参数: (g>>
">V.nao
-f 快速模式/尚未完成 TtZ
'~cGR
~ d!F|BH4
-i 互动模式/ 每个动作将要被确认 (&y~\t]H
]IZn#gnM
-v 详细输出/ 列出所选择程序的资讯 D3BNA]P\2@
f6d:5
X_
-w 智能警告讯息/ 尚未完成 n,+/%IZ
w?LDaSz\t
-n 没有动作/ 显示程序代号 Np?%pB!Q
N-g=_86C"
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 [LHx9(,NM
A^9RGz4=
-t 终端机代号 ( tty 或 pty ) hQT
p&
hb_J.Q
-u 使用者名称 |re>YQ!zd
RO?%0-6O&
-p 程序代号 ( pid ) -(Y( K!n
%Gk?f=e
-c 命令名称 可使用的讯号: 7Y>17=|
GVaIZh<
以下列出已知的讯号名称,讯号代号,功能。 #'<s/7;~
$<[Q8V-
名称 (代号) 功能/ 描述 QlmZ4fT[r
L-}6}5[
ALRM 14 离开 x\r[Zp|
A_mVe\(*M
HUP 1 离开 $aFCe}3b<
5[py{Gq
INT 2 离开 Qq. ht
xpb,Nzwt^
KILL 9 离开/ 强迫关闭 v[O }~E7'
k{ru<cf
PIPE 13 离开 F/ODV=J-
PqOPRf
POLL 离开 4%(\y"T
[A.ix}3mm
PROF 离开 scsN2#D7U/
I!L`W
_
TERM 15 离开 l; ._
?H
T|{1,wP
USR1 离开 A=z+@b6
TfbB1
USR2 离开 "Y>
#=>8
P&s-U6
VTALRM 离开 yi*2^??`
1
nX|f?5 O
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 U^n71m>]%T
XIAHUT5~J
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 )Uk!;b
VT;Vm3\
TSTP 停止 /产生与内容相关的行为 d*e0/#s
d\_$Nb*
TTIN 停止 /产生与内容相关的行为 z~S(OM@olJ
b85r=tm
TTOU 停止 /产生与内容相关的行为 zB?} {@
mYy{G s7
STOP 停止 /强迫关闭 LL}|#%4d
r}1.=a
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 xxsax/h
<h*r
PWR 忽略 /在某些系统中会离开 R.FC3<TTv
}KBz8M5
WINCH 忽略 zree}VqD;5
IYo{eX~=
CHLD 忽略 ~q.a<B`,t
9uNkd2#
ABRT 6 核心 kma)DW
/5l"rni
FPE 8 核心 GbLuXU
r?w^#V
ILL 4 核心 j0XS12eM
Y2j>@
QUIT 3 核心 R0l5"l*@+
TvbkvK
SEGV 11 核心 N}j]S{j}'
-8r';zR
TRAP 5 核心 8$+mST'4N
~^{jfHTlv
SYS 核心 /或许尚未实作 mO6rj=L^
CTG:C5OK
EMT 核心 /或许尚未实作 ~`uEZ
C3XB'CL6
BUS 核心 /核心失败 [%);N\o2Y
7<T1#~w4L
XCPU 核心 /核心失败 Q=,6W:j
$y0[AB|V
XFSZ 核心 /核心失败
vG{+}o#
,u:J"epM
范例: &tAhRMa
停止所有在 PTY 装置上的程序 <K(qv^C
skill -KILL -v pts/* t+,'
*v' d1.Z
停止三个使用者 user1 , user2 , user3 @Nm; lZK
skill -STOP user1 user2 user3 kXfTNMb
kkyi`_ZKn
其他相关的命令: kill ]d4`PXI
名称:expr |8bqn^@$t
使用权限:所有使用者 zA
; 7Nv$3
### 字串长度 &zxqVI$4
/ bxu{|.
shell>> expr length "this is a test" &y7<h>z
14 e;*GbXd|
### 数字商数 ,v#F6xv8
shell>> expr 14 % 9 1[;
7Ay
5 [{i"Au]
### 从位置处抓取字串 1&,d,<
shell>> expr substr "this is a test" 3 5 u\jQe@j
'
is is -kGwbV}
### 数字串 only the first character k3HPY}-
shell>> expr index "testforthegame" e pQ_EJX)
2 /tG0"1{
### 字串真实重现 R">-h;#
shell>> expr quote thisisatestformela Mx7
thisisatestformela