linux常用命令
k>VP<Zm13 28X)s!W' 称:/etc/aliases
uHz
D 使用权限:系统管理者
X/5tZ@ 使用方式: 请用 newaliases 更新资料库
,X$S4> 说明:
M/d!&Bk sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
9]NsWd^^
.j7|;Ag /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
LfOGq%& # newaliases
DKIDLf +tfmBZl^ 下面命令会做相同的事,
b)@D*plS& # sendmail -bi
$C#~c1w ^_5$+ 相关命令:
aeSy,: mail, mailq, newaliases, sendmail
J>hl&J seAkOIc ” mail [返回]
(jY.S|% 名称:mail
+ 6r@HK`,t (O&~*7D* 使用权限:所有使用者
P[XE5puC tm+}@CM^. 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
N@Slc
0 %l:%c 说明:
a^Zn
}R r mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
4pA<s- #J2856bzS 参数:
j?w7X?1( i 忽略 tty 的中断讯号。 (interrupt)
`mCcD I 强迫设成互动模式。 (Interactive)
>Cd%tIie* v 列印出讯息,例如送信的地点、状态等等。 (verbose)
q;kMeE* n 不读入 mail.rc 设定档。
F;q I^{m2 s 邮件标题。
.^JID~<?# c cc 邮件地址。
>)#*}JI b bcc 邮件地址。
-fUz$Df/R T'Jw\u>"R 范例:
ml?+JbLg0 V7rcnk# 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
=N7N=xY mail
user1@email.address
+#&2*nY mail
user1@email.address user2
)}WG` wy) Frg 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
%HYC-TF# S'E6# mail -s 标题 -c user1 user2 < mail.txt
3kYUO-qw hC6$>tl 指令:mesg
fVf.u'.8 使用权限 : 所有使用者
)%ja6Vg jgEiemh& 使用方式 : mesg [y|n]
{R1jysGtD Z8'uZ#=Yw 说明 : 决定是否允许其他人传讯息到自己的终端机介面
o6vm(I% z)|56
F7' 把计 ?
C=PBF\RkKu zKiKda%) y : 允许讯息传到终端机介面上。
{Qw,L;R n : 不允许讯息传到终端机介面上 。
IUu[`\b= 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
qQpR gzw $)7-wCl</ 例子 :
p(0!TCBs 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
(''`Ce mesg n
yRieGf1'SD 与 mesg 相关的指令有: talk,write,wall。
.' .|s?s 名称:/etc/aliases
>DbG$V<v' 使用权限:系统管理者
zhN'@Wj'_ 使用方式: newaliases
Iupk+x> 说明:
yRvq3>mU sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
OSkZW sBRw#xyS /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
,HMB`vF 4qyL' \d[ 参数:没有任何参数。 范例:
8swj'SjX # newaliases
2^UFP+Yw /6 P()Upe 下面命令会做相同的事,
^8V]g1]fiG # sendmail -bi
_|6{( JN3Oe5yB2@ 相关命令:
j/^0q90QO mail, mailq, newaliases, sendmail
PkG+`N 名称 : talk
S4?ssI 使用权限 : 所有使用者
ND21; w
#1l)+ 使用方式 :
25YJH1x FirmzB Il5 talk person [ttyname]
2!" N9Adt 说明 : 与其他使用者对谈
Keof{>V=CA v5<Ext
rV 把计 :
t[an,3 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ^$x^JM ]/ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
"2=v?,'t _/MKU!\l 例子.1 :
`7N[rs9|S z@iY(;Qo 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
B~~rLo:a talk Rollaend
MR+ndB< })"9TfC 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
}B0V$ :_H$*Q=1 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
Wb*d`hzQ} talk
Rollaend@linuxfab.cx pts/2
pQEHWq"Q rcQ?E=V2O {kZhje^$vi 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
i[jAAr$ V
(X)Qu@R 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
EW]gG@w]5r g<.VW0 名称 : wall
|5![k<o# 使用权限 : 所有使用者
[#2= w zo]7# 使用方式 :
/{qr~7k,oQ wall [ message ]
NTVG'3o 使用说明:
YTYYb#"Q wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
2@^8{ '-ACNgNn 例子 :
dks0 QZ{:#iuig 传讯息"hi" 给每一个使用者 :
L'['7 wall hi
dmE-WS 名称 : write
.g4bV5ma3 使用权限 : 所有使用者
f#^%\K:YYR M{z+=c&w 使用方式 :
n|^-qy'w YR[Ii? write user [ttyname]
eUBk^C]\ 说明 : 传讯息给其他使用者
6= 9 *(r85lEou) 把计 :
p]pFZ";70 ]>`Q"g~0 user : 预备传讯息的使用者帐号
>:wk.<Z- ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
9`c :sop ^. Pn)J 例子.1 :
m'429E]\S k,q` ^E8k 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
zHu:Ec7 write Rollaend
WddU|-W
?f &*mp 接下来就是将讯息打上去,结束请按 ctrl+c
KE(kR>OB] 7dU X(D,? 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
B`KpaE] write Rollaend pts/2
8qBw;A) "pHQ 接下来就是将讯息打上去,结束请按 ctrl+c
rtUdL,Hx t$UFR7XE 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
QR^pu.k@ JDMaLo 名称:kill
St&XG>nWS 使用权限:所有使用者
][0HJG{{g j[Et+V? 使用方式:
)ns;S 8K1+ttjm kill [ -s signal | -p ] [ -a ] pid ...
ZY][LU~l8 kill -l [ signal ]
fxiq,o0 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
1hRC
Bwx 把计?
Kk??} lz # inC| -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
!0zM@p -p : 印出 pid , 并不送出信号
Q>z0?%B -l (signal) : 列出所有可用的信号名称
B"{CWH O 范例:
%`gqV9a a_Xh(d$ 将 pid 为 323 的行程砍掉 (kill) :
KXdls(ROP kill -9 323
12k)Ek9 -pLb%f0? 将 pid 为 456 的行程重跑 (restart) :
9K%E+_7b kill -HUP 456
4V[+6EV sb8SG_ c. 名称:nice
K,^b=_] 使用权限:所有使用者
I@x*> tM!1oWH 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
I*}:C w#"c5w~ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
az19-QIcg G.(9I~! SUvHLOA 把计?
jPbL3"0A& 5@Rf]'1B0 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
0ED(e1K#B --help 显示求助讯息
f#5mX&j --version 显示版本资讯
7AtJ6 范例:
7Qq>?H - 将 ls 的优先序加 1 并执行 :
b},OCVT? nice -n 1 ls
&uk?1Z#j i@d!g"tot 将 ls 的优先序加 10 并执行 :
eBBh/=Zc nice ls将 ls 的优先序加 10 并执行
lYq
R6^ B%r)~?6DM 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
R':a,6O )~!Gs/w6 名称:ps
N(F9vZOs 使用权限:所有使用者
VpJ2Qpd= 使用方式:ps [options] [--help]
!q$IB?8 说明:显示瞬间行程 (process) 的动态
~IlgcCF 参数:
McA, ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
WI~';dK2] -A 列出所有的行程
w`i3B@w -w 显示加宽可以显示较多的资讯
b}k`'++2, -au 显示较详细的资讯
?2.<y_1 -aux 显示所有包含其他使用者的行程
3pl.<;9r ^8We}bs-c au(x) 输出格式 :
HgG"9WBe% sd#a_ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
*UEo&B2+ USER: 行程拥有者
hX[hR PID: pid
:a`l_RMU %CPU: 占用的 CPU 使用率
YMm Fpy %MEM: 占用的记忆体使用率
=FdS'<GM VSZ: 占用的虚拟记忆体大小
q?\3m3GM RSS: 占用的记忆体大小
y'Wz*}8pr TTY: 终端的次要装置号码 (minor device number of tty)
!&! sn"yD STAT: 该行程的状态:
!o>/gI` D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
o'Po<I R: 正在执行中
;:'A{&0N S: 静止状态
PBkKn3P3 T: 暂停执行
'p{>zQ\5 Z: 不存在但暂时无法消除
Jd)|==yD W: 没有足够的记忆体分页可分配
Z=wLNm H <: 高优先序的行程
6B|IbQ^ N: 低优先序的行程
t0hg!_$bq L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
, gz:2UY# START: 行程开始时间
=Ermh7, TIME: 执行的时间
uv._N6mj COMMAND:所执行的指令
][#]4_ 范例:
dZ;csc@xv ps
C+2*m=r PID TTY TIME CMD
O (wt[AEA 2791 ttyp0 00:00:00 tcsh
Vx?a&{3]- 3092 ttyp0 00:00:00 ps
.!=2#< % ps -A
wVw3YIN# PID TTY TIME CMD
v')T^b
F@ 1 ? 00:00:03 init
~
dmyS?Or 2 ? 00:00:00 kflushd
|?{Zx&yUw 3 ? 00:00:00 kpiod
@u$4{sjgf\ 4 ? 00:00:00 kswapd
}0qgvw 5 ? 00:00:00 mdrecoveryd
N{oD1% .......
b+3{ bE % ps -aux
T2^@x9 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
"TG}aS root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
ar>S_VW* root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
g6r3V.X' root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
8'/vW ~f root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
K]Ed-Tz8QZ ........
YHg4WW$ 名称:pstree
$40tAes9 使用权限:所有使用者
kg9ZSkJr 使用方式:
>5)$Qtz# pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
aq[kKS` pstree -V
|<9R% 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
F8/4PB8- 参数:
eX$u -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
M0n@?S -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
2z&HT SI 范例:
m!w(Q+*j pstree
JAc-5e4 \%rX~UhZ= init-+-amd
9?@M Zh |-apmd
sIg{a(1/ |-atd
q[7C,o>/ |-httpd---10*[httpd]
zjB8~ku# %pstree -p
*G2p;n=2 init(1)-+-amd(447)
&5c)qap;n |-apmd(105)
zJXU>'obe |-atd(339)
Tig`4d-% %pstree -c
O,XVA init-+-amd
g$9Yfu |-apmd
</Q<*@p? |-atd
zTm&m#){3A |-httpd-+-httpd
53@*GXzE | |-httpd
m03;'Nj'7# | |-httpd
M~p=OM< | |-httpd
+-K-CXt ....
#k5Nnv#(J 名称:renice
w}YO+ 使用权限:所有使用者
O-5H7Kd- ~S#Le 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
)Q&:$] l>H#\MR 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Z[Uz~W6M] 0ir] 把计?
mp>,TOi~s7 qAHQZKk -p pid 重新指定行程的 id 为 pid 的行程的优先序
>t 3%-Kc -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
T"XZ[q -u user 重新指定行程拥有者为 user 的行程的优先序
-7$7TD`'7 范例:
DMsxHAE1 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
7_ZfV? . renice +1 987 -u daemon root -p 32
b-yfBO wHAoO#`wn5 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
kk
)9!7 ~bg?V0 名称:top
M7BJ$fA0E 使用权限:所有使用者
Nz\=M|@(# gb(a` 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] 9}:%CpD^~I
ggXg4~WL
说明:即时显示 process 的动态 z3[
J>
|ILj}4ZA7
把计? \Om.pOz
yiWBIJ2Wu9
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s q0SYV
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 $0+AR)
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 {D 9m//x
s : 安全模式,将交谈式指令取消, 避免潜在的危机 e4j:IK>
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 7GB>m}7
n : 更新的次数,完成后将会退出 top &r;-=ASYzV
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ^fQ ]>/u
q`{crY30
范例: LlrUJ-uC7
显示更新十次后退出 ; 2dFC{US'
top -n 10 f{t5r
z ~#
.Ey
使用者将不能利用交谈式指令来对行程下命令 : _2R;@[f2
top -s 4'RyD<K\
dpx P
将更新显示二次的结果输入到名称为 top.log 的档案里 : !Z3iu
top -n 2 -b < top.log S bc
/YKg.DA|
名称:skill Q~MV0<{
x4r\cL1!
使用权限:所有使用者 [>U'P1@ql
j;WZ[g#t
使用方式: skill [signal to send] [options] 选择程序的规则 /2Y t\=S=
:&S6AP
说明: Cd?aC
>WVos 4
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 9o@5:.b<j
/xUTm=w7u
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 XJ^dX]4
D
C{l.a.
一般参数: ^7G@CBic"
f!|7j}3
-f 快速模式/尚未完成 8'
M43n
]DHB'NOh,
-i 互动模式/ 每个动作将要被确认 eG55[V<!
kc
Q~}uFB
-v 详细输出/ 列出所选择程序的资讯 2f2Vy:&O_
k?zw4S
-w 智能警告讯息/ 尚未完成 A NR?An
|08b=aR6ro
-n 没有动作/ 显示程序代号 airg[dK
p6VS<L
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 Zi<Y?Vm/,O
zy^t95/m
-t 终端机代号 ( tty 或 pty ) ecfw[4B`
6q-X$
-u 使用者名称 o
EXN$SIs
\qj4v^\
-p 程序代号 ( pid ) 5?9K%x'b
(,*e\o
-c 命令名称 可使用的讯号: |=&[sC
j>Ce06G
以下列出已知的讯号名称,讯号代号,功能。 )zzZYs&|
2uujA*
^
名称 (代号) 功能/ 描述 [Q9#44@{S;
>c
%*:a
ALRM 14 离开 qS1byqq78l
o/??w:'
HUP 1 离开 $o2 H#"
6b`3AAGU"
INT 2 离开 ebsZ
|>X5@
KILL 9 离开/ 强迫关闭 A/:^l%y,GZ
=]i[gs)B
PIPE 13 离开 ^Y[.-MJt+
qtlXDgppO
POLL 离开 !6.}{6b
}rK9M$2]u
PROF 离开 ;7=pNK
Y<0}z>^
TERM 15 离开 n sW#
as%@dUK?
USR1 离开 1fajTT?
%{"v^4
USR2 离开 >8%<ML
CCx_|>
VTALRM 离开 '9@} =pE
K{DsGf,
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Cb:}AQ =
'y_<O |-
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 s9^r[l@W0U
?D[9-K4Vn
TSTP 停止 /产生与内容相关的行为 SWwL.-+E]
9vX~gh{]~
TTIN 停止 /产生与内容相关的行为 9=RfGx
A:Y
([
TTOU 停止 /产生与内容相关的行为 +8p4\l$<`
pSMF1Oy
STOP 停止 /强迫关闭 tAPn? d5
GS_+KR\
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 lJlyfN
<yt|!p-tS
PWR 忽略 /在某些系统中会离开 #7(?B{i
f)'mpp^
WINCH 忽略 %BBM%Lj
}KFf
CHLD 忽略 Hst]}g' .
d-k`DJ!
ABRT 6 核心 )DG>omCY
QT`|"RI%
FPE 8 核心
yn`P:[v
7# !RX3
ILL 4 核心 *m$lAWB5D
nLvF^%P8
QUIT 3 核心 9pF@#A9p
OQ*BPmS-
SEGV 11 核心 EjY8g@M;t
`_;sT8
TRAP 5 核心 WZh%iuI{C
L<dJWxf?D
SYS 核心 /或许尚未实作 >G#SfE$0
WlJ=X$
EMT 核心 /或许尚未实作 X>-|px$vy
k4i*80
BUS 核心 /核心失败 ."X}A
t
xOY
%14%Y
XCPU 核心 /核心失败 t,P_&0X
mc
FSWmq
XFSZ 核心 /核心失败 YmwUl> @{
}.DE521u
范例: PPpq"c
停止所有在 PTY 装置上的程序 [}ayaXXQ5
skill -KILL -v pts/* !{S& "
-w'_Q"o2
停止三个使用者 user1 , user2 , user3 uT :Yh6
skill -STOP user1 user2 user3 ]0dj##5tJ
]wxjd
l
其他相关的命令: kill <y`MUpf]
名称:expr ,;D$d#\"
使用权限:所有使用者 %:S4OT8]
### 字串长度 ?:woUTyCv
84U?\f@u
shell>> expr length "this is a test" Py72:;wn
14 -|.Izgc
### 数字商数 n5qg6(Tl]
shell>> expr 14 % 9 XK+"
x!
5 Vd&&GI(:?^
### 从位置处抓取字串 gc6Zy|^V4`
shell>> expr substr "this is a test" 3 5 WPu-P
is is yw@kh^L
### 数字串 only the first character Q# Yba
shell>> expr index "testforthegame" e aTWCX${~b
2 w!kWG,{C
### 字串真实重现 x9!3i{_
shell>> expr quote thisisatestformela {r>iUgg
thisisatestformela