linux常用命令
#%{x*y:Ms ;9)A+bD] 称:/etc/aliases
H|I.h{: 使用权限:系统管理者
' )~G2Ys 使用方式: 请用 newaliases 更新资料库
Z,:}H6Mj9 说明:
V1
{'d[E* sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
-oB`v' wak`Jte=}m /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
kPezR:
31 # newaliases
aSH =|Jnc .,&6 x. 下面命令会做相同的事,
'da$i # sendmail -bi
W&p f%? v])R6-T- 相关命令:
sHm:G_ mail, mailq, newaliases, sendmail
:~LOw}N!aQ 6(-c$d`C.0 ” mail [返回]
e?\34F 名称:mail
22gh,e2o f@H>by
N 使用权限:所有使用者
aB)G!Rm& ucX!6)Op 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
m?]=
=9 >+F +"NAN 说明:
G^A }T3 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
1pZ[rM'} #waK^B)<a 参数:
=:(<lKf,<F i 忽略 tty 的中断讯号。 (interrupt)
g]m}@b6(h I 强迫设成互动模式。 (Interactive)
2PQY+[jx v 列印出讯息,例如送信的地点、状态等等。 (verbose)
Gn>~CoFN n 不读入 mail.rc 设定档。
I^!c1S s 邮件标题。
mL]5Tnc c cc 邮件地址。
k?`Q\ b bcc 邮件地址。
XE?,)8 3 ,
nr*R! 范例:
ydf;g5OZ cBDOA<]r, 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
!= u
S mail
user1@email.address
Z8q*XpUH mail
user1@email.address user2
TM0DR'. l4Q v$ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
V2BsvR` 2X|nPhNi mail -s 标题 -c user1 user2 < mail.txt
RxXiSc`^z m}GEx)Y D 指令:mesg
QR*{}`+l 使用权限 : 所有使用者
^s6C']q *O % QI6`@Y" 使用方式 : mesg [y|n]
-A)/CFIZ qY|NA)E)Bp 说明 : 决定是否允许其他人传讯息到自己的终端机介面
"<1-9CMl Vo(V<2lw} 把计 ?
_NB8>v
28=L9q
y : 允许讯息传到终端机介面上。
$[g8j`or! n : 不允许讯息传到终端机介面上 。
<: I]0|[ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
EV|L~^Q kd+tD!:F( 例子 :
y3!#*NU 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
mFJb9, mesg n
:B1a2Y^" 与 mesg 相关的指令有: talk,write,wall。
7oFA5T _ 名称:/etc/aliases
pb}4{]sI 使用权限:系统管理者
&1M#;rE;D# 使用方式: newaliases
<hzuPi@ 说明:
Su/}OS\R sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
A^@,Ha
;ksxz /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
m_,j)A% I oFtfb[ 参数:没有任何参数。 范例:
Zm#qW2a]P # newaliases
e3x;(@j un(fr7NW 下面命令会做相同的事,
XaR(~2 # sendmail -bi
%LBT:Aw @ )m9#F 相关命令:
iYl$25k/1 mail, mailq, newaliases, sendmail
Ll'!aar, 名称 : talk
6HxZS+],c 使用权限 : 所有使用者
H\ONv=}7I C;.+ kE 使用方式 :
d&5GkD.P ~AG."<} talk person [ttyname]
W5a>6u=g, 说明 : 与其他使用者对谈
|,OTGZgc lp%i%*EQ* 把计 :
~L=Idt!9 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name G?QU|<mj< ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
N~@VZbS(6 +yYSp8> 例子.1 :
mB]Y;R< +jpC%o}C 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
w-(^w9_e talk Rollaend
gC}D0l[ RXU#.=xvy 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
xtP=/B/ HOY9{>E}z 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
Pw_[{ LL talk
Rollaend@linuxfab.cx pts/2
Ro oem dCM Z,bv D'u 8GD!]t# 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
4yu ^cix( a,U@ !}K 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
9QryW\6.@z B[rxV 名称 : wall
>o"3:/3 使用权限 : 所有使用者
1*Ui=M4 >{]mN5 使用方式 :
qg;fh]j% wall [ message ]
%<Q?|} 使用说明:
Bz#K_S wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
63?fn~0\ MJ:>ZRXCE 例子 :
:,^pL At 2o5v{W 传讯息"hi" 给每一个使用者 :
uKZe"wN; wall hi
#Ua+P(1q 名称 : write
4SqZV 使用权限 : 所有使用者
e!(0y)* fC4D# 使用方式 :
@|^2 +K/ =7c1l77z write user [ttyname]
:
*Nvy={c 说明 : 传讯息给其他使用者
hA81(JWG r&|-6OQZZ 把计 :
wGC)gW kGZ_/"iuO user : 预备传讯息的使用者帐号
(]mh}=:KDg ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
*0,?QS-a =Xc[EUi<;g 例子.1 :
>cPB:kD' 3e g<) 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
_~`\TS8 write Rollaend
<E|K<}W# .qioEqK8!y 接下来就是将讯息打上去,结束请按 ctrl+c
G'<J8;B*
t EMe6Z!k 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
g&*pk5V> write Rollaend pts/2
dsP1Zq 61Nj&1Ze 接下来就是将讯息打上去,结束请按 ctrl+c
O]n"aAu@ Oifu ?f<r 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
'wAOY Xz=MM0o 名称:kill
N2VF_[l 使用权限:所有使用者
_gY
so]S^B ?'K}bmdt}. 使用方式:
2oAPJUPOJ l|ZwZix kill [ -s signal | -p ] [ -a ] pid ...
cK>5!2b kill -l [ signal ]
NBR6$n 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
7;C9V` 把计?
hltH{4 Lrz>0_Q -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
.BXZ\r` -p : 印出 pid , 并不送出信号
S zOB{ -l (signal) : 列出所有可用的信号名称
qoMYiF}/e 范例:
L;xc,"\3 yg "u^*r& 将 pid 为 323 的行程砍掉 (kill) :
e:V(kzAY; kill -9 323
^\cB&<h r +;C}[E 将 pid 为 456 的行程重跑 (restart) :
jz|zq\Eek kill -HUP 456
J[UL
f7: 0gVylQ 名称:nice
"JSg/optc 使用权限:所有使用者
7g5sJj +V&b<y;?> 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
HB\y [:E !cLX1S 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
:>'^l?b'WX w&v_#\T 3skq%;%Wsk 把计?
v I]|
W r]km1SrS -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
:XF;v --help 显示求助讯息
Wn24eld"x --version 显示版本资讯
!wvP24"y 范例:
'r4 j;Jn 将 ls 的优先序加 1 并执行 :
K2L+tw nice -n 1 ls
T"t3e=xA +J$[RxQ# 将 ls 的优先序加 10 并执行 :
s_K:h nice ls将 ls 的优先序加 10 并执行
Iq_cs
' !:`QX\Ux 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
B{QY-F~ E/LR(d_ 名称:ps
1bd(JL 使用权限:所有使用者
ro6peUL*2` 使用方式:ps [options] [--help]
uKh),@JV 说明:显示瞬间行程 (process) 的动态
]BCH9%zLj 参数:
R|8)iW^ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Hbx=vLQ6 -A 列出所有的行程
Yv9(8 -w 显示加宽可以显示较多的资讯
1d|+7 -au 显示较详细的资讯
1I KDp]SN -aux 显示所有包含其他使用者的行程
A;w,m{9< Z KnEg2a au(x) 输出格式 :
eUVE8pZl F)lDK. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
rjQV;kX> USER: 行程拥有者
&~G>pvZ PID: pid
\x)T_]Gcm %CPU: 占用的 CPU 使用率
zXvAW7 %MEM: 占用的记忆体使用率
>va#PFHA VSZ: 占用的虚拟记忆体大小
lW?}jzuo RSS: 占用的记忆体大小
&iL"=\# TTY: 终端的次要装置号码 (minor device number of tty)
{Rjj STAT: 该行程的状态:
s{KwO+ UW D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
6I72;e^! R: 正在执行中
4'?kyTO~ S: 静止状态
Fc7mAV= T: 暂停执行
@xB"9s Z: 不存在但暂时无法消除
kfg9l?R$I< W: 没有足够的记忆体分页可分配
D>~z{H%\ <: 高优先序的行程
4&r^mGs, N: 低优先序的行程
o{?s\)aBa L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
DK&J"0jz, START: 行程开始时间
*xM4nUu<~ TIME: 执行的时间
CP'?Om2 COMMAND:所执行的指令
br>"96A1l 范例:
E*.D_F ps
_%;$y5]v PID TTY TIME CMD
OYgD9T.8^ 2791 ttyp0 00:00:00 tcsh
3F[z]B 3092 ttyp0 00:00:00 ps
m/JpYv~ % ps -A
EP'2'51 PID TTY TIME CMD
B:a&)Lwp0 1 ? 00:00:03 init
%[-D&flKC 2 ? 00:00:00 kflushd
Sh*LD
QL<? 3 ? 00:00:00 kpiod
4At%{E 4 ? 00:00:00 kswapd
Obrv5%'
5 ? 00:00:00 mdrecoveryd
Q~#udEajI .......
5pI2G % ps -aux
i(2s"Uww, USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
tqAh&TW3+ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
gE0k|Z(RF root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
dMQtW3stY root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
((N<2G) root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
C\j|+s ........
c#
U!Q7J 名称:pstree
^|Of 使用权限:所有使用者
|(*ReQ?= 使用方式:
cMsm[D{b pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
- ~T LI&[ pstree -V
%/CCh;N# 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
't{~#0d= 参数:
1xar
L)) -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
e54wAypPOl -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
BYyR-m 范例:
p./zW
)7+ pstree
x/#*M >pbO\=j]X init-+-amd
LS+ _y<v= |-apmd
mMS%O]m,| |-atd
c-z
,}` |-httpd---10*[httpd]
81O`#DfZ %pstree -p
5yI_uQR init(1)-+-amd(447)
4)!aYvaER |-apmd(105)
:,Q\!s! |-atd(339)
ly7\H3 %pstree -c
"H" 4(3 init-+-amd
;x$,x- |-apmd
Jv %,v? |-atd
\ty{KAc& |-httpd-+-httpd
|yx]TD{~P | |-httpd
h<f_Eoz-a | |-httpd
D/'kYoAEO | |-httpd
#;)Oi9{9; ....
(y[+s?;WyB 名称:renice
4`yCvPu 使用权限:所有使用者
7](,/MeGG B+#!%J_ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
mFw`LvH?* KbQ UA$gL= 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
lRF04 ]wMd!.lm- 把计?
)gYsg 0D+[W5TB -p pid 重新指定行程的 id 为 pid 的行程的优先序
F"1)y>2k -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
P%A;EF~v -u user 重新指定行程拥有者为 user 的行程的优先序
7#SXqyP[ 范例:
@@"}i7 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
;!q _+P renice +1 987 -u daemon root -p 32
}A\s`Hm vxhs1vh 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
7xTgG!>v \
$;E, 名称:top
RZ-=UIf 使用权限:所有使用者
w=Ac/12
<u]M):b3 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ?`bi8 Ck
% 4|*
说明:即时显示 process 的动态 gHpA@jdC*
0}C> e`<'
把计? [nZf4KN
S<#>g
s4
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s {4J:t_<nKO
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ecDni>W
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 V9&7K65-1
s : 安全模式,将交谈式指令取消, 避免潜在的危机 <ZcJC+k
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 p2 V8{k
n : 更新的次数,完成后将会退出 top 8yij=T*
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 o@*eC L=
@/FE!6 |O
范例: y.(Yh1
显示更新十次后退出 ; iZ}Afj
top -n 10 kH/u]+_
Y"6
'
使用者将不能利用交谈式指令来对行程下命令 : 3eT5~Lbs
top -s y (@j;Q3(r
ySAkj-< /P
将更新显示二次的结果输入到名称为 top.log 的档案里 : :FB-GNd
top -n 2 -b < top.log w.Cw)#N
qWX%[i%
名称:skill UKX9C"-5v
nX~Qt%
使用权限:所有使用者 ntR@[)K
kZ7\zbN>
使用方式: skill [signal to send] [options] 选择程序的规则 $;7,T~{
1Tl^mS~k
说明: PxfWO1S(
VBnD:w"z
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 (#I$4Px{
KmS$CFsGL
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 [rk*4b ^s
8_byS<b8
一般参数: p+M#hF5o
e.-+zkQ8EI
-f 快速模式/尚未完成 cjK\(b3
[PG#5.jwQ
-i 互动模式/ 每个动作将要被确认 " kp+1sG8
}
DQ<YF+
-v 详细输出/ 列出所选择程序的资讯 ?+Gc.lU
1<|\df.
-w 智能警告讯息/ 尚未完成 -KV)1kET
mV!Ia-k
-n 没有动作/ 显示程序代号 (5CdA1|
:kU#5Aj gK
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 K/WnK:LU
:&Sv jJR
-t 终端机代号 ( tty 或 pty ) p G|-<6WY
~EIK
-u 使用者名称 z`g4 <
QAGR\~
-p 程序代号 ( pid ) cPaz-
9dS <^E(ZF
-c 命令名称 可使用的讯号: cdd6*+E
6sceymq
以下列出已知的讯号名称,讯号代号,功能。 Rhi`4wo0$
?e=3G4N
名称 (代号) 功能/ 描述 oF'_x,0
pQ~Y7
ALRM 14 离开 E>LZw>^YJ
s Zn@y e^
HUP 1 离开 N"/J1
Pgug!![
INT 2 离开 `r#]dT[g
hk*@<ff
KILL 9 离开/ 强迫关闭 1fgO3N
i ZU1w7Z
PIPE 13 离开 C2e.RTxc
ZG(. Q:1
POLL 离开 <TN+-)H6
*2,tGZ
PROF 离开 3R|UbG`
,:[\h\5m
TERM 15 离开 0G;
b+
gvzBV
+3'
USR1 离开 \d-H+t]
vw~=z6Ka
USR2 离开 ~ eNKu
|)KOy~"
VTALRM 离开 V2B@Lq"9`
kB#;s
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 %*bGW'Cw
3M^s
EaUI
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 D9yAq'k$
G^1 5V'*
TSTP 停止 /产生与内容相关的行为 G/
sRiwL
ol3].0Vc]
TTIN 停止 /产生与内容相关的行为 =w !>/#U
9 AWFjoXl"
TTOU 停止 /产生与内容相关的行为 zrDcO~w
DhVO}g)2#
STOP 停止 /强迫关闭 q%S^3C&
aHR+4m~)
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 w;b;rHAZ\
(e"\%p`
PWR 忽略 /在某些系统中会离开 Wf!u?nH.5
$y$E1A6h+
WINCH 忽略 Z Jgy!)1n
O[Yc-4
CHLD 忽略 F_I.=zQr
Q]1s*P
ABRT 6 核心 yDapl(
q2+`a;_S
FPE 8 核心 fphi['X
/OD@Xl];K
ILL 4 核心 S^Mx=KJG
R$m?aIN
QUIT 3 核心 |S6L[Uo
0_&5S`tj
SEGV 11 核心 n@=D,'cn
XpH d"(*
TRAP 5 核心 dBm!`;r4
0n/+X[%Ti
SYS 核心 /或许尚未实作 ;$Pjl8\
d~abWBgC`
EMT 核心 /或许尚未实作 )+ (GE
gmUX
2x(
BUS 核心 /核心失败 vqhu%ZyP
_uL8TC^
XCPU 核心 /核心失败 B<{Yj}..
e;8nujdG"
XFSZ 核心 /核心失败 (jI _Dk;
{Gvv^.H7
范例: IkP; i_|
停止所有在 PTY 装置上的程序 GMKY1{
skill -KILL -v pts/* dbG902dR
RW`+F|UbE
停止三个使用者 user1 , user2 , user3 T9NTL\;
skill -STOP user1 user2 user3 bQgtZHO
0`QF:
其他相关的命令: kill GHRr+
名称:expr XXg~eu?
使用权限:所有使用者 4+B&/}FDLo
### 字串长度 tk\)]kj
frRO?
shell>> expr length "this is a test" HVz|*?&6
14 O77^.B
### 数字商数 K+<F,
P
shell>> expr 14 % 9 z1m-t#v:
5 6f*QUw~
### 从位置处抓取字串 F\2<q$Zn+
shell>> expr substr "this is a test" 3 5 jZgCDA8Mr!
is is h f{RI 4Jc
### 数字串 only the first character X?aj0# Q
shell>> expr index "testforthegame" e &HBC9Bx/(
2 XK{K FB-
### 字串真实重现 e~ %=H 0n
shell>> expr quote thisisatestformela Z,I0<ecaD
thisisatestformela