linux常用命令
S&&QU# ^Nds@MR{8' 称:/etc/aliases
pKLNBR| 使用权限:系统管理者
sUQ
Q/F6 使用方式: 请用 newaliases 更新资料库
v=dK2FaY 说明:
vqVwo\oEdU sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
'ahZ*@kr o*E32#l /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
4\ElMb[] # newaliases
MOytxl:R C]3:&dx9 下面命令会做相同的事,
0k_3]Li=( # sendmail -bi
p1.3)=T y\CxdTs 相关命令:
XL; WU8> mail, mailq, newaliases, sendmail
AuM}L&`i^ L?M
x"
” mail [返回]
]
M#LB&Pe 名称:mail
n
_x+xVi%
x|c_( 使用权限:所有使用者
UxF9Ko( ]d {,(iL8,^ 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
Yi[MoYe/K TI2K_' 说明:
iv],:|Mbd mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
~>_UTI Ek_<2!%X 参数:
o9C#5%9 i 忽略 tty 的中断讯号。 (interrupt)
/C<p^#g9. I 强迫设成互动模式。 (Interactive)
WjSu4 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
z6,E}Y n 不读入 mail.rc 设定档。
)J+A2> s 邮件标题。
$Xu/P5 c cc 邮件地址。
#_K<-m%9 b bcc 邮件地址。
XWNo)#_3 QctzIC#;k 范例:
8<ev5af 'qG-)2
t 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
<5#2^ ( mail
user1@email.address
}L%2K"8?} mail
user1@email.address user2
R[*n3
wB mb%U~Na 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
9HPwl q\gbjci mail -s 标题 -c user1 user2 < mail.txt
M^hz<<:$ tJ8:S@E3, 指令:mesg
O(e!Vx{t! 使用权限 : 所有使用者
i\DU<lD5VN N_Zd.VnY 使用方式 : mesg [y|n]
DWCf+4 ;i/? fw[h 说明 : 决定是否允许其他人传讯息到自己的终端机介面
jffNA^e V,8Z!.MG 把计 ?
@6aJh< c hd(TKFL^y y : 允许讯息传到终端机介面上。
0V^I.S/q n : 不允许讯息传到终端机介面上 。
-yBj7F| 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
{^:NII] 6R$Yh0% 例子 :
.j>MsQP#\C 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Q7d@+C mesg n
xD~r Q$6sI 与 mesg 相关的指令有: talk,write,wall。
6-g>(g 名称:/etc/aliases
PDz:x4A 使用权限:系统管理者
Of$R+n. 使用方式: newaliases
#N~1Ye 说明:
Qgv g*KX sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
j+q) 9Nx%Sdu /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
pjoyMHWK Q"c/]Sk) 参数:没有任何参数。 范例:
Dfc%
jWbA # newaliases
]%FP*YU4O }QQ 7jE 下面命令会做相同的事,
s_+.xIZ # sendmail -bi
%W=BdGr[8z X%N!gy 相关命令:
@$;8k } mail, mailq, newaliases, sendmail
L$+_ 名称 : talk
Uq{$j5p8 使用权限 : 所有使用者
]sE)-8 Dsc0;7~6 使用方式 :
8t)gfSG 26 1? 8&c talk person [ttyname]
E`hR(UL
? 说明 : 与其他使用者对谈
Y|J=72!]
Ht/#d6cQ 把计 :
2mMi=pv9 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name wPu.hVz ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
o2hZ=+w> !>=lah$& 例子.1 :
A=Hv}lv 3^-R_ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
a^E>LJL talk Rollaend
KsK]y,^Z c#1kg@q@ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
i_l{#*t .X"&kO>G 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
V[]Pya|s+ talk
Rollaend@linuxfab.cx pts/2
, /jHhKW pFZ$z?lI Ex|Z@~T12 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
{D :WXvI *//z$la 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
6gO(
8 bb\XZ~)F 名称 : wall
Qy}pn=#Q 使用权限 : 所有使用者
JKO*bbj :A:7^jrhi 使用方式 :
!$ii*} wall [ message ]
?EPHq,
E 使用说明:
:hW(2=% wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
W/ WP }QM 7+@-mJMP$D 例子 :
0dS (g&ZR :%j"l7=> 传讯息"hi" 给每一个使用者 :
2EN}"Du]mj wall hi
92.Rjz;=9? 名称 : write
I|K!hQ"m 使用权限 : 所有使用者
&m[}%e%~0 /-m) 使用方式 :
* a1q M? e Y^zs0 write user [ttyname]
? u".*!% 说明 : 传讯息给其他使用者
ZqpK}I 3
Fy CD4# 把计 :
BhbfPQ w9RBT(u user : 预备传讯息的使用者帐号
+~of# ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
nnE'zk<" |22vNt_ 例子.1 :
p1i}fGS Ie=gI+2 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
"AKr;|m write Rollaend
iS<1C`%> n_ ?+QF 接下来就是将讯息打上去,结束请按 ctrl+c
xN}f? QlR~rFs9t 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
M.Tp)ig\# write Rollaend pts/2
QJiH^KY6 *<SXzJ( 接下来就是将讯息打上去,结束请按 ctrl+c
3vAP&i'I tX1`/}`` 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
hJSWh5] ot!m=s 名称:kill
TvT>UBqj= 使用权限:所有使用者
sKR%YK
"A @"/H
er 使用方式:
i;]# @n| |JWYsqJ0U kill [ -s signal | -p ] [ -a ] pid ...
][V`ym-e kill -l [ signal ]
D8PC;@m
说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
a|4D6yUw| 把计?
q(hBqU W `v<S -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
kjdIk9 Y -p : 印出 pid , 并不送出信号
)8}k.t>'s -l (signal) : 列出所有可用的信号名称
|*h{GX.( 范例:
i!3*)-a\~` H_x}- 将 pid 为 323 的行程砍掉 (kill) :
eX}aa0 kill -9 323
AS~!YR _nxu8g] 将 pid 为 456 的行程重跑 (restart) :
xt"-Jmox kill -HUP 456
i1KjQ1\a + ,g*3u 名称:nice
7,Z<PE 使用权限:所有使用者
'o0o.&/= F|.tn`j]U 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
Xppb|$qp4H es%py~m) 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
VnB HQ.C 8No'8(dPX l=Pw
yJ 把计?
|F<iu2\ Df *<3G -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
dvZlkMm
--help 显示求助讯息
RIO?rt; --version 显示版本资讯
3#]II j`\ 范例:
{+d)M 将 ls 的优先序加 1 并执行 :
$ #GuV' nice -n 1 ls
7j&EQm5\9 uW#s;1H.) 将 ls 的优先序加 10 并执行 :
5M5vxJ)Lh nice ls将 ls 的优先序加 10 并执行
;
2V$`k IqsUtWSp 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
J:ka@2>| ~$j;@4 名称:ps
}oSgx 使用权限:所有使用者
jAy2C&aP 使用方式:ps [options] [--help]
>b5 ;I1o=y 说明:显示瞬间行程 (process) 的动态
U@n5:d= 参数:
Y}t)!}p$r ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
XD0a :T) -A 列出所有的行程
BYhiP/^ -w 显示加宽可以显示较多的资讯
aot2F60J, -au 显示较详细的资讯
.7 LQ l? -aux 显示所有包含其他使用者的行程
"%a<+D g.%} +5 au(x) 输出格式 :
G{>PYLxOb OW@)6 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
xJU]py~o USER: 行程拥有者
:g|NE\z`)/ PID: pid
mEi(DW)( %CPU: 占用的 CPU 使用率
6vps`k$,~ %MEM: 占用的记忆体使用率
Sf.OBU1rs VSZ: 占用的虚拟记忆体大小
p9u'nDi RSS: 占用的记忆体大小
r@vt.t0# TTY: 终端的次要装置号码 (minor device number of tty)
w{2CV\^>5 STAT: 该行程的状态:
33D2^Sf6" D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
.oT'(6# R: 正在执行中
TBOg.y] S: 静止状态
3"v>y]$U T: 暂停执行
$U9]v5 Z: 不存在但暂时无法消除
}S?"mg&V W: 没有足够的记忆体分页可分配
qz3
Z'
<: 高优先序的行程
,c?(
|tF N: 低优先序的行程
c?. i;4yh L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
-mh"["L" START: 行程开始时间
WcY_w`*L TIME: 执行的时间
JR15y3F COMMAND:所执行的指令
YwF&-~mp7n 范例:
p=E#!cn3 ps
r<:d+5" PID TTY TIME CMD
{7]maOg>7J 2791 ttyp0 00:00:00 tcsh
\f(zMP 3092 ttyp0 00:00:00 ps
]d7A|)q % ps -A
u7RlxA: PID TTY TIME CMD
OPj NmdeS 1 ? 00:00:03 init
+lVA$]d 2 ? 00:00:00 kflushd
c(2?./\| 3 ? 00:00:00 kpiod
B&B:P 4 ? 00:00:00 kswapd
^dhx/e%s 5 ? 00:00:00 mdrecoveryd
x0ipk} .......
Z}\,rex % ps -aux
A/UO cl+N USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
_6r[msH" root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
& /T} root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
NQZ /E )f root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
w{xa@Q]t- root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
vWM&4|Q1~ ........
bfZt <- 名称:pstree
Ay 4P_>^ 使用权限:所有使用者
.[1 f$ 使用方式:
00dY?d{[D pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
kBrA ? pstree -V
\#Jq%nd 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
myN2G?>; 参数:
v^s?=9 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
|? fAe{*
-c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
j$/#2%OVN 范例:
4^:dmeMZ` pstree
XxdD)I 1hi,&h init-+-amd
0uW)&>W |-apmd
DeNWh2 |-atd
@sZ7Ka |-httpd---10*[httpd]
![r)KE=v8I %pstree -p
YLA(hg| init(1)-+-amd(447)
er-0i L@ |-apmd(105)
YzM/?enK}T |-atd(339)
/.!&d^ %pstree -c
|;)_-=L0P init-+-amd
Vq`/]& |-apmd
w42{)S" |-atd
a*D<J}xe |-httpd-+-httpd
RfD#/G3| | |-httpd
85[
7lO)[ | |-httpd
=FIZh}JD | |-httpd
.B2e$`s$ ....
Pp69|lxV=k 名称:renice
CVkJMH_ 使用权限:所有使用者
y_q1Y70i2r Ax~
i` 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
Et-|[ eL R[v<mo[s 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
o~9*J)X5i <b_K*]Z 把计?
rDoMz3[w U"Bge\6x= -p pid 重新指定行程的 id 为 pid 的行程的优先序
PyHL`PZZ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
xy!E_CuC$ -u user 重新指定行程拥有者为 user 的行程的优先序
7SYe:^Dx 范例:
Ph.RWy") 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
dQ-g\]d| renice +1 987 -u daemon root -p 32
\vc&V8 Zj ` ;IYFG 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
^z,B}Nz 0k?]~f 名称:top
)c9Xp: 使用权限:所有使用者
%_p]6doF
1'TS!/ll]; 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] GtIAsC03
tCR~z1
说明:即时显示 process 的动态 Xg_l4!T_l
bVN?7D(
把计? hH;i_("i(h
4K`b?{){+a
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s oSy9Xw
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 iRG6Cw2
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Tw`dLK?
s : 安全模式,将交谈式指令取消, 避免潜在的危机 c>/7E-T
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 \?8q&o1=]
n : 更新的次数,完成后将会退出 top -:45Q{u/
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ?^7X2 u$nm
~/aCzx~
范例: J
n2QvUAZ&
显示更新十次后退出 ;
:-hVbS0I
top -n 10 D[6sy`5l
ZDI?"dt{
使用者将不能利用交谈式指令来对行程下命令 : XA. 1Y)
top -s UM21Cfqex
z/QYy)_j
将更新显示二次的结果输入到名称为 top.log 的档案里 : a;~< iB;3"
top -n 2 -b < top.log 152s<lu1Z
Nqd9)WQ
名称:skill +N2ILE8[<
7o!t/WEEq
使用权限:所有使用者 KZ AF9
Lrr(7cH,
使用方式: skill [signal to send] [options] 选择程序的规则 <W7WlT
J#3[,~
说明: \xC#Zs[<
i=P}i8,^=
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 u:l<NWF^
z?|bs?HKS
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 P (Y\l
4N7|LxNNl_
一般参数: =9p3^:S
F1M:"-bda
-f 快速模式/尚未完成 8.IenU9
:+
1Wmg
-i 互动模式/ 每个动作将要被确认 UYW'pV
1B~Z1w
-v 详细输出/ 列出所选择程序的资讯 *ywr_9
fuF{8-ua
-w 智能警告讯息/ 尚未完成 em- <V5fb
Y5"HKW^
-n 没有动作/ 显示程序代号 x1E;dbOZ
|}<Gz+E>
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 Xi\c>eALO
a <F2]H=J
-t 终端机代号 ( tty 或 pty ) H(M{hfa|
*{Z=)k%
-u 使用者名称 *uy<Om
x_C0=Q|K3
-p 程序代号 ( pid ) zE/\2F$
qTMY]=(
-c 命令名称 可使用的讯号: zf^|H%
~^
:IfwhI)
以下列出已知的讯号名称,讯号代号,功能。 Unb3
Gv#O
tp&|*M3
名称 (代号) 功能/ 描述 o?a3hD
P4/~_$e
ALRM 14 离开 CHD.b%_|
BIe:7cR%
HUP 1 离开 HXZ,"S
0!$y]Gr
INT 2 离开 S)4p'cUwq
]H\tz@
&
KILL 9 离开/ 强迫关闭 ?~yJ7~3TS<
&"hEKIqL
PIPE 13 离开 $7i[7S4
1v,R<1)&
POLL 离开 AS;qJ)JfzQ
b>k2@
PROF 离开 8VO];+N
~(GNY5
TERM 15 离开 -%^'x&e
4udj"-V
USR1 离开 2' ^7G@%
/4+(e I7
USR2 离开 mo(>SnS<
qc\D=3#Yp
VTALRM 离开 3T4HX|rC
"dvo@n|
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 1KBGML-K3
W7!iYxO
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 U/|JAg#
SO[ u4b_"h
TSTP 停止 /产生与内容相关的行为
uKvdL
"
pIYXYQ=Z
TTIN 停止 /产生与内容相关的行为 D3P/: 4
R<{Vgy
TTOU 停止 /产生与内容相关的行为 !@N?0@$/
FoH1O+e
STOP 停止 /强迫关闭 =adHP|S
#(i
pF
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 W g6H~x
\hBzP^*"n
PWR 忽略 /在某些系统中会离开 YhS_ ,3E
e3~{l~Rb
WINCH 忽略 xSSEDfq
i.`n^R;N
CHLD 忽略 y)CvlI
+`g&hO\W
ABRT 6 核心 nhjT2Sl
g=@d!]Z~[
FPE 8 核心 C1UU v=|
QKlsBq
ILL 4 核心 f% )9!qeW
+{V`{'
QUIT 3 核心 -GHd]7n
]W`?0VwF
SEGV 11 核心 _N^w5EBC]
#vga
qe9
TRAP 5 核心 9q_{_%G%
Y68A+
B.
SYS 核心 /或许尚未实作 mTxqcQc:7
uW=G1 *n-
EMT 核心 /或许尚未实作 ]S[?tn
/w(g:e
BUS 核心 /核心失败 T]-MrnO
"#E<Leh'
XCPU 核心 /核心失败 NjOUe?BQ
QSY>8P
XFSZ 核心 /核心失败 #fns3=/H
P~=yTW
范例: PS+~JwD Uc
停止所有在 PTY 装置上的程序 w]{c*4o
skill -KILL -v pts/* tzIP4CR~F&
QRf>lZP
停止三个使用者 user1 , user2 , user3 p$'S\W|
skill -STOP user1 user2 user3 2tpu v(H;
EGQgrwY5
其他相关的命令: kill ob;|%_
名称:expr >L2_k'uE+;
使用权限:所有使用者 K3[+L`pz
### 字串长度 86Q3d%;-yo
?{B5gaU9F
shell>> expr length "this is a test" 6Jb0MX"AVr
14 (b<0=U
### 数字商数 O=RS</01!
shell>> expr 14 % 9 0r1GGEW`s
5 \?T9v
### 从位置处抓取字串 6` TwP\!$/
shell>> expr substr "this is a test" 3 5 S,AxrQc
is is ~at@3j}W
### 数字串 only the first character k!0O[U
shell>> expr index "testforthegame" e eQu(3 sYb
2 j2_j5Hgo
### 字串真实重现 PD0&ep1h7G
shell>> expr quote thisisatestformela '%[ Y
thisisatestformela