linux常用命令
j4$NQ]e^4 q5~"8]Dls 称:/etc/aliases
QPKY9.Rvv 使用权限:系统管理者
>g2Z t;*@w 使用方式: 请用 newaliases 更新资料库
vue=K 说明:
lSBu,UQP sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
GW0e=Y=LR %QQJSake| /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
+4V"&S|& # newaliases
5wbR}`8 7|X.E 下面命令会做相同的事,
Sb?HRoe_ # sendmail -bi
E<77Tj YeB)]$'?u` 相关命令:
N9=?IFEe] mail, mailq, newaliases, sendmail
pW-aX)\DR 6&6t= ” mail [返回]
eV( 名称:mail
wPr!.:MF B } 使用权限:所有使用者
\{a 64 yXCJ? 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
f#
sDG %( #kJZ 说明:
tWA<OOl
mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
%!OA/7XbG 1U8/.x| 参数:
sYd)r%%AU i 忽略 tty 的中断讯号。 (interrupt)
[cw>; \J I 强迫设成互动模式。 (Interactive)
!z"nJC v 列印出讯息,例如送信的地点、状态等等。 (verbose)
zUz j
F n 不读入 mail.rc 设定档。
gS.,V!#t s 邮件标题。
U2*kuP+n c cc 邮件地址。
xkfW^r b bcc 邮件地址。
(RI+4V1 P@8S|#LpZ 范例:
SAokW, 7X/KQ97 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
?pkGejcQ mail
user1@email.address
KdLj1T mail
user1@email.address user2
Frum@n {hBnEj^@ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
j&Y{
CFuZ @hOT<
Uo mail -s 标题 -c user1 user2 < mail.txt
`0Xs!f 6}?5Oy_XF2 指令:mesg
Sj@VOW 使用权限 : 所有使用者
rz.`$ #P;vc{ Iq 使用方式 : mesg [y|n]
xs$.EY:k h:{^&d
a 说明 : 决定是否允许其他人传讯息到自己的终端机介面
KfV&7yi ]DLs'W;) 把计 ?
{{ +8oRzY :p.f zL6X y : 允许讯息传到终端机介面上。
P7
R}oO_n: n : 不允许讯息传到终端机介面上 。
4[n[Ch=lu 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
koy0A/\% ivJTE 例子 :
lfyij[6q+ 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
xH{V.n&v mesg n
XrN]}S$N 与 mesg 相关的指令有: talk,write,wall。
V5S6?V\ 名称:/etc/aliases
vze|*dKS 使用权限:系统管理者
z i3gE$7 使用方式: newaliases
'Jl3%axR 说明:
9[Xe|5?c sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
xZ>@wBQ Zl{DqC^ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Ct386j>< ts;C:.X 参数:没有任何参数。 范例:
,Zb_Pu # newaliases
h#]LXs -59;Zn/ 下面命令会做相同的事,
89a`WV@} # sendmail -bi
yvV]|B@sO js)I%Z 相关命令:
HQ`A.E2 mail, mailq, newaliases, sendmail
s -),Pv| 名称 : talk
yI8
/m| 使用权限 : 所有使用者
bC%}1wwh <<+Hs/ ] 使用方式 :
*sq+ Vc( W Z^u%Z talk person [ttyname]
w"A%@<V3Ec 说明 : 与其他使用者对谈
S<"`9r)av S")*~)N@ 把计 :
Oy~X@A person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name SAGECK[Ix ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
}d 16xp 07A2@dx 例子.1 :
s78V \Vw3 -mqTlXM 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
[C( >e0r talk Rollaend
21.N+H' WkK.ON^ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
CO.e.:h mY/x|)MmM 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
Ub<^;Du5 talk
Rollaend@linuxfab.cx pts/2
Mgc|># = Dv-ubki VU(#5X%Pn 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
Dp"
xO<PE2 =B tmi 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
hPgDK.R' zqAp7: 名称 : wall
-'Y@yIb 使用权限 : 所有使用者
4-{f$Z@ C4
@"@kbr 使用方式 :
i`HXBq!|w wall [ message ]
tCirdwmg 使用说明:
Kgu#Mi~ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
:gacP? Ikj_
0/%F 例子 :
ro*$OLc/ +hKH\] 传讯息"hi" 给每一个使用者 :
{_1zIt| wall hi
%!QY:[ 名称 : write
_4MT,kN 使用权限 : 所有使用者
?&GV~DYxA 8n Oent0a 使用方式 :
6qp'
_? Hy0l"CA*| write user [ttyname]
\,G7nT 说明 : 传讯息给其他使用者
/J` ZO$ 0xe*\CAo 把计 :
o" ./ b_xGCBC user : 预备传讯息的使用者帐号
VA0p1AD ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
qLh[BR 1!`B8y) 例子.1 :
H@!kgaNF YsXf+_._ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
sQ8_j write Rollaend
Mk$Pt cl3Dwrf? 接下来就是将讯息打上去,结束请按 ctrl+c
;fnE"} \" W_\&X 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
" .:b43Z write Rollaend pts/2
FfR%@
V' G0VbW-`O 接下来就是将讯息打上去,结束请按 ctrl+c
It8m]FN lf%Ju$H
注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Fi*j}4F1 C~#ndl
Ij 名称:kill
MY `V0 使用权限:所有使用者
;'g.% voAen&>! 使用方式:
/ %:%la% qwx{U kill [ -s signal | -p ] [ -a ] pid ...
c!})%{U kill -l [ signal ]
pJpTOq\h 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
s$ v<p(yl 把计?
>UUT9:,plA 4RXF.kJ3= -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
3"XS#~l% -p : 印出 pid , 并不送出信号
!tL&Ktoj -l (signal) : 列出所有可用的信号名称
d|c>Y( 范例:
AECaX4h+_ 7,![oY[ 将 pid 为 323 的行程砍掉 (kill) :
n:P5m9T kill -9 323
g9F4nExo ?6[X=GeUs 将 pid 为 456 的行程重跑 (restart) :
gvx
{;e kill -HUP 456
iB=v
>8l% hz8Z)xjJ V 名称:nice
[)&(zJHX 使用权限:所有使用者
N=X(G( !gfz4f& 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
^%:syg_RM[ 6+;B2;*3 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
%G%D[ i] ~>(
N<:N )K+Tvx3(m 把计?
7P2?SW^ Xw2tCRzD -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
%!;6h^@ --help 显示求助讯息
sb7~sa&- --version 显示版本资讯
<RMrp@[ 范例:
-#ta/*TT: 将 ls 的优先序加 1 并执行 :
V u`O%[Q/ nice -n 1 ls
z&@Vg`w" w u 将 ls 的优先序加 10 并执行 :
u0vq`5L nice ls将 ls 的优先序加 10 并执行
MiX*PqNTM ct3^V M&/ 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
=h{jF7 X!w&ib- 名称:ps
wv eej@zs 使用权限:所有使用者
du:%{4 使用方式:ps [options] [--help]
GGY WvGE+ 说明:显示瞬间行程 (process) 的动态
*A,h^ 参数:
uk(|c-_]~c ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
B[I
a8t -A 列出所有的行程
e{dYLQd -w 显示加宽可以显示较多的资讯
)|` #BC -au 显示较详细的资讯
d&'}~C`~k -aux 显示所有包含其他使用者的行程
#<\A[Po dt efDsK au(x) 输出格式 :
> $#v\8 _Zq2 <: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
*
@QC:1k USER: 行程拥有者
fs=W(~" PID: pid
:]viLw\&g %CPU: 占用的 CPU 使用率
{'QA0K %MEM: 占用的记忆体使用率
#z*- VSZ: 占用的虚拟记忆体大小
Z\`i~ RSS: 占用的记忆体大小
cTR@
:sm TTY: 终端的次要装置号码 (minor device number of tty)
gUcG# STAT: 该行程的状态:
i8tH0w/(M D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
!P6\-. R: 正在执行中
Zu$30&U S: 静止状态
tw`{\kWG T: 暂停执行
YMSA[hm Z: 不存在但暂时无法消除
<L72nwcK W: 没有足够的记忆体分页可分配
k3/V$*i,1b <: 高优先序的行程
sKkk+-J4 N: 低优先序的行程
W+'|zhn L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Ny.s
u?E START: 行程开始时间
>q:0w{.TU TIME: 执行的时间
`;@#yyj:_ COMMAND:所执行的指令
} h.]sF 范例:
vB :_|B ps
ZS-O,[ PID TTY TIME CMD
Gj.u/l 2791 ttyp0 00:00:00 tcsh
s5s'$|h" 3092 ttyp0 00:00:00 ps
p.gaw16}> % ps -A
Y+k)d^6r PID TTY TIME CMD
!Ol>![ 1 ? 00:00:03 init
%D(%
lh2 2 ? 00:00:00 kflushd
(5SN=6O 3 ? 00:00:00 kpiod
kT!Y~c 4 ? 00:00:00 kswapd
RaS7IL:e 5 ? 00:00:00 mdrecoveryd
f2sv$#' .......
3MR4yw5v % ps -aux
_pXy}D USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
_$+lyea root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
#'qEm=% root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
X0=#e54 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
9`/\|t|V root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
$)5F3a| ........
IT3xX=|b 名称:pstree
xwwy9:ze*l 使用权限:所有使用者
n]/7UH}(<& 使用方式:
DQ{Yr>J pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
6#/Riu% pstree -V
/
M(A
kNy 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
MY zyg 参数:
,8KD-" l^g -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
4uW}.7R' -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
H0Q.; !^ 范例:
&></l| hY pstree
!$&3h-l[ Z7<N< init-+-amd
;:nO5VFOg |-apmd
t7rz]EN |-atd
-q9`Btz |-httpd---10*[httpd]
Rh7unJ %pstree -p
MPINxS init(1)-+-amd(447)
\($EYhx |-apmd(105)
{L[n\h.4. |-atd(339)
J?\z{ ;qa %pstree -c
x[Xj[O init-+-amd
b(lC7Xm |-apmd
|OXufV?I |-atd
?fB}9(6 |-httpd-+-httpd
S7cxEOfAu | |-httpd
P
+U=/$o | |-httpd
mK3U*)A
| |-httpd
l65-8 ....
}MKm>N 名称:renice
,Db+c3 使用权限:所有使用者
nRpZ;X)'. s6k,'`. 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
k T$yHB # /n=
%# { 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
4%Q8>mEvT w$~|/UrLf 把计?
.6Swc? 8U8l
5r -p pid 重新指定行程的 id 为 pid 的行程的优先序
$9v:(:!Bm -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
n>F1G
MX -u user 重新指定行程拥有者为 user 的行程的优先序
6,j6,Q(67 范例:
zmf`}j[ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
@ \ip?= renice +1 987 -u daemon root -p 32
m2[q*k]AtS i7:R4G(/# 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
,5jE9 V\8vJ3.YV 名称:top
_@3?yv~ D 使用权限:所有使用者
.d:sQ\k~= e-;$Iv 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ,fQc0gM=[
j[!'l,I
说明:即时显示 process 的动态 0Y#S2ty
0Zkb}F2-
把计? * iW>i^
eiB5 8b3
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s yW.s?3X
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 RG=!,#X
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 WAlsh
s : 安全模式,将交谈式指令取消, 避免潜在的危机 N%{&%C 6{
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 "J(#|v0
n : 更新的次数,完成后将会退出 top YC\~PVG
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 $FEG0&
4CO:*qG)o
范例: CMa ~BOt #
显示更新十次后退出 ; 7-81,ADv(
top -n 10
TCJH^gDt
~JY<DW7
使用者将不能利用交谈式指令来对行程下命令 : ot P7;l
top -s 4J*%$Vxv
UahFs
将更新显示二次的结果输入到名称为 top.log 的档案里 :
QSf{V(fs
top -n 2 -b < top.log 7>`QX%
dE2(PQb*P
名称:skill 5!,`LM9
z-nhL=
使用权限:所有使用者 O`-JKZc
-G2'c)DR
使用方式: skill [signal to send] [options] 选择程序的规则 ;1K[N0xE
ZiodJ"r
说明: niY9`8
jI0gQ [
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 bWAhK@epI
'VCF{0{H~
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 hh`7b ,+ 4
*/ZrZ^?o
一般参数: U.UN=uv_
2'W3:
-f 快速模式/尚未完成 1Iu^+
=p|,~q&i
-i 互动模式/ 每个动作将要被确认 ?cf9q@eAH
YuXq
-v 详细输出/ 列出所选择程序的资讯 'cJHOd
[9NzvC 9I
-w 智能警告讯息/ 尚未完成 C0;c'4(
zuR!,-W
-n 没有动作/ 显示程序代号 >lxhXYp
^'r/;(ZF*/
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 n\&[^Q#b|
CGvU{n,"
-t 终端机代号 ( tty 或 pty ) he;;p ="!*
1I^[_ /_\y
-u 使用者名称 S!cc%
UbT 7
-p 程序代号 ( pid ) KOVGwEj
2:^Dv1J)rD
-c 命令名称 可使用的讯号: n8#i L
H\AJLk2E
以下列出已知的讯号名称,讯号代号,功能。 !Z2?dhS
:Zl@4}
名称 (代号) 功能/ 描述 `qp[x%7^
sEq_K#n{
ALRM 14 离开 Im
i)YC
7*]O]6rP
HUP 1 离开 ?n9gqwO
_n(O?M&x
INT 2 离开 'ek7e.x|V
oVyOiWo\Z
KILL 9 离开/ 强迫关闭 Z?Y14L~%
rI)op1K
PIPE 13 离开 .zO/8y(@
H->J.5~,K
POLL 离开 V9qA.NV2
,[&@?
PROF 离开 0q(}n v
EOWLGleD1
TERM 15 离开 pme5frM|
+DFG762
USR1 离开 k\X1`D}R
sui3(wb
USR2 离开 q"4{GCavN
<5
G+(vP
VTALRM 离开 #-kG\}
p=_K P9
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ;HRIB)wF
`8xt!8Z$
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 :it52*3=
wB~Ag$~
TSTP 停止 /产生与内容相关的行为 Z}6
Q[J%
TTIN 停止 /产生与内容相关的行为 S,,,D+4
," ~ew ,
TTOU 停止 /产生与内容相关的行为 raRb
K8CQ
%_N-~zZ1E
STOP 停止 /强迫关闭 "HSAwe`5jU
8TIc;'bRM
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 dUiv+K)ccQ
3:1
h:Yc<
PWR 忽略 /在某些系统中会离开 }DiMt4!ZC!
,;9byb
WINCH 忽略 IF-g %
R,?7|x
CHLD 忽略 F3j#NCuO=z
gOaL4tu
ABRT 6 核心 jt5en;AA[
2;N)>[3*J
FPE 8 核心 K1]m:Y<
H|&[,&M>
ILL 4 核心 w3oh8NRs_
Ux5pw
QUIT 3 核心 f&x7g. I
\UZlFE
SEGV 11 核心 2Ur9*#~kGp
DY| s|:d
TRAP 5 核心 AB92R/
HAJK%zLc
SYS 核心 /或许尚未实作 CYD+o
8wJfGY
EMT 核心 /或许尚未实作 ;G !JKg
]Q-*xho
BUS 核心 /核心失败 CtiTXDc_
$< &N#
XCPU 核心 /核心失败 <2Q+? L{
1#BMc%
XFSZ 核心 /核心失败 >;I$&
\!D <u'n
范例: [k qx%4q)
停止所有在 PTY 装置上的程序 wJ
0KI[p(S
skill -KILL -v pts/* (Q~ p"Ch
d'Cn] <
停止三个使用者 user1 , user2 , user3 iupuhq$]
skill -STOP user1 user2 user3 >p"ytRu^
}U-h^x'
其他相关的命令: kill Z_^i2eJYT
名称:expr K]5@bm
使用权限:所有使用者 ;la sk4|
### 字串长度 A#/O~-O^
-L=aZPW`M
shell>> expr length "this is a test" >9F&x>~
14 UbDRzum
### 数字商数 1yHlBeEC
shell>> expr 14 % 9 Q7uhz5oZ
5 ;A^Ii>`
### 从位置处抓取字串 t2V|moG
shell>> expr substr "this is a test" 3 5 wQ!C9Gp3e
is is 9p|;Hh:
### 数字串 only the first character Z{<& 2*
shell>> expr index "testforthegame" e ?4 p\ujc
2 /{h@A~<96
### 字串真实重现 /1A3
Sw
shell>> expr quote thisisatestformela NrQGoAOw
thisisatestformela