linux常用命令
AX&1-U bX9}G#+U 称:/etc/aliases
S\ li<xl 使用权限:系统管理者
Dho~6K}" 使用方式: 请用 newaliases 更新资料库
&/zsIx+ 说明:
N2~z&y8. sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
*i\7dJ Dj uUJ2d84tV /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
Yw{](qG7e` # newaliases
w5[POo' 5 8=SNLO 下面命令会做相同的事,
Xr~r`bR= # sendmail -bi
\UE9Ff+{ Cr[#D$::` 相关命令:
&3^40s/+ mail, mailq, newaliases, sendmail
a{8GT2h`4
wj?fr? ” mail [返回]
.6tz ^4 名称:mail
/!E /9[V "RG.vo7b 使用权限:所有使用者
x##Iv|$ ce;9UBkOg2 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
7O{\^Jz1 ogPfz/ hw 说明:
ud.S,
8Sy mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
G>!"XK:fB J:Qp(s-N^: 参数:
S1=c_!q%9 i 忽略 tty 的中断讯号。 (interrupt)
QvqBT I 强迫设成互动模式。 (Interactive)
~+d]yeDrhx v 列印出讯息,例如送信的地点、状态等等。 (verbose)
i|=XW6J% n 不读入 mail.rc 设定档。
cvC;QRx s 邮件标题。
Npu;f>g0_ c cc 邮件地址。
:2?'mKa7 b bcc 邮件地址。
%TR->F q)%C| 范例:
/TB_4{ 6^wiEnA 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
C
:e 'wmA mail
user1@email.address
CZuxH mail
user1@email.address user2
YGNX+6Lz lE`ScYG 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
dXOjaS# ~ P"% / mail -s 标题 -c user1 user2 < mail.txt
[oYe/<3 \myj Y 指令:mesg
P EbB0GL 使用权限 : 所有使用者
KL|B| u
8!T^KMfz 使用方式 : mesg [y|n]
kg-%:;y. |M0TG 说明 : 决定是否允许其他人传讯息到自己的终端机介面
c#rbyx?5 `t8e2?GH 把计 ?
6qw_ |A&g aTPpE9Pa& y : 允许讯息传到终端机介面上。
vCi:cIp/ n : 不允许讯息传到终端机介面上 。
0W>O,%z&P# 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
k"n#4o: hQkmB|];5 例子 :
";zl6g" 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
*JDc1$H0 mesg n
2/bck)p= 与 mesg 相关的指令有: talk,write,wall。
UM#]olh 名称:/etc/aliases
}??q{B@v 使用权限:系统管理者
) ejvT- 使用方式: newaliases
Y /wvn8~C 说明:
jRBx7|ON sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
(*2"dd gNO$WY^ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
:bh[6F FTB"C[> 参数:没有任何参数。 范例:
6HEl1FK{@ # newaliases
;or> Sh7 mg3jm 下面命令会做相同的事,
~ PP GU1 # sendmail -bi
E O}(MXS ^oP]@r"qy 相关命令:
L,:U _\HQ mail, mailq, newaliases, sendmail
*yJb4uALB 名称 : talk
g VuN a) 使用权限 : 所有使用者
=CJs&Qa2 |, :(3Ml 使用方式 :
8G@FX $$Q [6D>2b}:{[ talk person [ttyname]
)XNcy" 说明 : 与其他使用者对谈
qH(2 0Z! |l~ADEg 把计 :
!O.B, person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 9R E;50h ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
WAQv4&xGM BujWql 例子.1 :
:3G9YjzC} G/D{K$=t~ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
J5\> 8I,a talk Rollaend
GC{Ys|s <Q8bn?Z 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
_}\&; : Z.mM5 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
8(+X0} talk
Rollaend@linuxfab.cx pts/2
Psv-y )/=J=xw2 Pgo5&SQb 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
PJ_|=bn rXaL1`t* 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
P_Zo}.{ Kzmgy14o 名称 : wall
X31k HK5F_ 使用权限 : 所有使用者
TX
87\W. 7X.1QSuE 使用方式 :
X(1.Hjh wall [ message ]
7eO8cPy 使用说明:
BE U[M wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
k{;:KW| UC0 yrV 例子 :
M\]E;C'"U 4gZN~_AI< 传讯息"hi" 给每一个使用者 :
$X{& KLM[ wall hi
0q3:"X 名称 : write
h0gT/x 使用权限 : 所有使用者
qzG'Gz{{qu u|Ai<2b$ 使用方式 :
}%}eyLm( gf!j|O ; write user [ttyname]
/2z2a-!r 说明 : 传讯息给其他使用者
E^qKkl }Jc^p 把计 :
*7Mrng II2oV}7? user : 预备传讯息的使用者帐号
(O&b:D/Y ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
;uJVY)7a x_Z~k 例子.1 :
6ZM<M7(V @3G3l|~> 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
q}8R>`Z{ write Rollaend
~!uK;hI `j2z=5 接下来就是将讯息打上去,结束请按 ctrl+c
6m{3GKaW~ 63~i6 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
,5/gNg write Rollaend pts/2
\gzNMI* H@6 接下来就是将讯息打上去,结束请按 ctrl+c
eD/?$@y EEaFi8 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
8?(4E 'vf }{ P}P} 名称:kill
=l\D7s 使用权限:所有使用者
fL@[B{XMM 4ASc`w*0 使用方式:
ik]UzB 6tJM*{$$H kill [ -s signal | -p ] [ -a ] pid ...
|_A35"v kill -l [ signal ]
-}>Q0d ) 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
Z2ZS5a 把计?
O[m+5+ +Y\#'KrA -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
e]5QqM7 -p : 印出 pid , 并不送出信号
e5AiIVlv -l (signal) : 列出所有可用的信号名称
I7}[%(~Sf/ 范例:
._nhW* }X`K3sk2/z 将 pid 为 323 的行程砍掉 (kill) :
y<gmp kill -9 323
a7CJ~8-1K ^o{O5&i] 将 pid 为 456 的行程重跑 (restart) :
w,P2_xk` kill -HUP 456
:8rqTBa` /!LfEO 名称:nice
>Qi2;t~G 使用权限:所有使用者
N_T;&wibO )S5Q5"j&=f 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
U2h?l
`nP 2yN~[,L 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
68D.Li uX p0D$a [k.<x'# 把计?
v3[
2!UXq Aw5yvQ>]e -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
a([cuh. --help 显示求助讯息
ruA!+@or --version 显示版本资讯
S4\T ( 范例:
{>~|xW 将 ls 的优先序加 1 并执行 :
x;C\G`9N nice -n 1 ls
NTn-4iJy P!-9cd1C, 将 ls 的优先序加 10 并执行 :
+`9T?:fu nice ls将 ls 的优先序加 10 并执行
p_}OtS; U>{z*D 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
3cs'Oz<w *l5/q\D 名称:ps
* %MY. # 使用权限:所有使用者
K}*s^*X 使用方式:ps [options] [--help]
Va{`es)hky 说明:显示瞬间行程 (process) 的动态
3n,F5?!m 参数:
)Z]8SED ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
h-6kf:XP% -A 列出所有的行程
;Neld #%J -w 显示加宽可以显示较多的资讯
PsTwJLY -au 显示较详细的资讯
9iGJYMWf -aux 显示所有包含其他使用者的行程
<8'}H`w% l.&6| au(x) 输出格式 :
`?La pV1~REk$& USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
;8ugI USER: 行程拥有者
QYg2'`( PID: pid
x=9drKIw> %CPU: 占用的 CPU 使用率
Q.!D2RZc %MEM: 占用的记忆体使用率
f>Ij:b`Z2 VSZ: 占用的虚拟记忆体大小
=i `o+H RSS: 占用的记忆体大小
oo/#]a TTY: 终端的次要装置号码 (minor device number of tty)
aiz_6@Qfz* STAT: 该行程的状态:
r% qgLP{v D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
[]'BrG)! R: 正在执行中
>y2gfD S: 静止状态
O>}aK.H T: 暂停执行
Y>IEB,w Z: 不存在但暂时无法消除
jy6%
CSWQ W: 没有足够的记忆体分页可分配
-[G+*3Y{7 <: 高优先序的行程
eM{+R^8 N: 低优先序的行程
w%`7,du| L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
?a(ApD\ START: 行程开始时间
`Up3p24 TIME: 执行的时间
$_NVy>\& COMMAND:所执行的指令
tLLP2^_& 范例:
pWeKN` ps
_O)~<Sk-*z PID TTY TIME CMD
QKe=/; 2791 ttyp0 00:00:00 tcsh
qL]!/} 3092 ttyp0 00:00:00 ps
V:yia^1 % ps -A
j]YS(Y@AY
PID TTY TIME CMD
](B+ilr
1 ? 00:00:03 init
>NK*$r8 2 ? 00:00:00 kflushd
kJ{X5&,_ 3 ? 00:00:00 kpiod
E QMn'> 4 ? 00:00:00 kswapd
%[5hTf 5 ? 00:00:00 mdrecoveryd
<kp?*xV]] .......
$(G.P!/ % ps -aux
}ob#LC, USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
EW|bs#l root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
;QS-a root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
4y:yFTp root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
yX/ 9jk root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
m{;2! ........
L_Ff* 名称:pstree
e![n$/E3R 使用权限:所有使用者
8|HuxE 使用方式:
}H\wed]F/ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
M2{{B^*$6 pstree -V
]~GwZB'M 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
)} tI8 参数:
Il,2^54q -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Qv|A^%Ub! -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
7$Jb"s 范例:
R8sj>.I9j pstree
0M>+.}e+ 4uwI=U UB init-+-amd
DFcgUEq |-apmd
bU7n1pzW,o |-atd
ol[
|-httpd---10*[httpd]
!T!U@e=u %pstree -p
Jt^a init(1)-+-amd(447)
;3'ta!.c |-apmd(105)
UBLr|e>dQE |-atd(339)
lmfvT}$B %pstree -c
r".*l?= init-+-amd
z;J"3kM |-apmd
<Y9%oJn% |-atd
A_i=hj2f |-httpd-+-httpd
M2l0x @| | |-httpd
iP)`yB5 ` | |-httpd
scT,yNV | |-httpd
Ixk L] ....
uD4on} 名称:renice
p
D-k<8| 使用权限:所有使用者
(_ HwU/ J>y}kzCz 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
8KiG(6*Q EyO=M~nsS 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
5bKM}?=L .nl!KzO6g 把计?
[3"k :
ltK\)L -p pid 重新指定行程的 id 为 pid 的行程的优先序
db -h=L| -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
H|JPqBNRh -u user 重新指定行程拥有者为 user 的行程的优先序
f{mWy1NH\ 范例:
C-u'Me)H 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
'"qTmo! renice +1 987 -u daemon root -p 32
E^qJ5pr_P 6?i]oy^X]p 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
/N '0@q ;UUpkOQO( 名称:top
v#c'p^T 使用权限:所有使用者
`1
A,sXfa fqpbsM;M] 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] <;kcy :s
=S+*=j A
说明:即时显示 process 的动态 B8.a#@R
1K{u>T
把计? 1*U)\vK~
}$%j} F{
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 3u[m? Vw
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ,=>Ws:j
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 5ir
Ffr
s : 安全模式,将交谈式指令取消, 避免潜在的危机 iq1HA.X(
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 J,(@1R]KF:
n : 更新的次数,完成后将会退出 top RD6n1Wb(@
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 -d>2&)5
=
y@*vl
范例: F+@/ "1c
显示更新十次后退出 ; 9[2qgw\D
top -n 10 YN]xI
^Y%'"QwJS
使用者将不能利用交谈式指令来对行程下命令 : z][hlDv\j
top -s a_Sp}s<J
U_Jchi,!
将更新显示二次的结果输入到名称为 top.log 的档案里 : |VX )S!
top -n 2 -b < top.log I|n?32F
)d~{gPr.
名称:skill C]EkVcKFA
_"%hcCMw
使用权限:所有使用者 |E?PQ?P
v*";A
使用方式: skill [signal to send] [options] 选择程序的规则 "_^vQ1M]Z
whi#\>i
说明: 4%B0H>
%g_)_ ~
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 *"nN To
k=W~ot&
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 '@/1e\ -y
!F:ANoaS
一般参数: n1U! od
QArph0e
-f 快速模式/尚未完成 /8#e < p
5,\-;
-i 互动模式/ 每个动作将要被确认 Ct][B{
,&~-Sq)~
-v 详细输出/ 列出所选择程序的资讯 f\;w(_
Wsb>3J
-w 智能警告讯息/ 尚未完成 1oc@]0n
b/{$#[oP`
-n 没有动作/ 显示程序代号 u`CHM:<<?
N~uc%wOA
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 )1f%kp#]
K0W X($z~;
-t 终端机代号 ( tty 或 pty ) 0q4PhxR`e
SBy{sbx4&F
-u 使用者名称 )K8^}L,
*knN?`(x
-p 程序代号 ( pid ) {,!!jeOO
:_,a%hb+8
-c 命令名称 可使用的讯号: *>/w,E]
**$kWbS
以下列出已知的讯号名称,讯号代号,功能。 S{RRlR6Z
O{7rIy
名称 (代号) 功能/ 描述 w\mT ug
2$o#b.
ALRM 14 离开 R4X9g\KpAt
?S;z!)
H)P
HUP 1 离开 {qGXv@
I6
1`1jSx5}.
INT 2 离开 qnHjw Mi
_&(L{cFx6
KILL 9 离开/ 强迫关闭 @~Ys*]4UE
CIui9XNU
PIPE 13 离开 LGw-cX #
S\]9mHJI
POLL 离开 -Bq]E,Xf)
# >I_
PROF 离开 {Q[ G/=mx
/Xj{]i3{
TERM 15 离开 rizjH+
6ddRFpe
USR1 离开 fs yVu|G
=`*@OJHH
USR2 离开 QOgGL1)7-
[m4M#Lg\0
VTALRM 离开 & kVa*O
33KCO
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 TV0sxod6
:ssj7wl :
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 :{^~&jgL
m]*a;a'}#
TSTP 停止 /产生与内容相关的行为 V;g) P
(&87 zk
TTIN 停止 /产生与内容相关的行为 `\|@w@f|;
o=#ym4hJ%
TTOU 停止 /产生与内容相关的行为 ]%I\FefT
3.Yg3&"Z
STOP 停止 /强迫关闭 d2NFdBoI
.#Nf0
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 `mW~ {)x
@U3z@v]s(h
PWR 忽略 /在某些系统中会离开 3=o4ncg(
F+*fim'NK
WINCH 忽略 pEz^z9
WtKKdL
CHLD 忽略 w N`Njm9!
FfxD=\
ABRT 6 核心 &SPY'GQ!
)t3`O$J
FPE 8 核心 C-)d@LWI
%~k>$(u6
ILL 4 核心 tl{{Vc[
1=5HQ~|[TO
QUIT 3 核心 Z9NND
si)>:e
SEGV 11 核心 Nd"IW${Kg
m&b1H9ymd
TRAP 5 核心 0:n"A,-p
"f<gZsb
SYS 核心 /或许尚未实作 R2?s
NlF
\.oJ/++
EMT 核心 /或许尚未实作 5M~+F"Hl
,?Ie!r$6
BUS 核心 /核心失败 Z*f%R\u
bcvm]aPu
XCPU 核心 /核心失败 l`l6Y>c*]
^|zag
XFSZ 核心 /核心失败 _68vSYr
XkkzY5rxOc
范例: i].E1},%
停止所有在 PTY 装置上的程序 %o4v} mzV
skill -KILL -v pts/* uYWgNNxdmo
}y+Qj6dP
停止三个使用者 user1 , user2 , user3 i$p2am8f
skill -STOP user1 user2 user3 j1qU 4#Y
&zB>
其他相关的命令: kill ]Jm\k'u[
名称:expr u=qaz7E
使用权限:所有使用者 U?Dr0wD;[
### 字串长度 /O.Ql,6[
rQlQ^W$=?
shell>> expr length "this is a test" +TA~RCd
14 7P(jMalq
### 数字商数 N%>h>HJ
shell>> expr 14 % 9 t_xK?``
5 M*qE)dZjS
### 从位置处抓取字串 n*ShYsc
shell>> expr substr "this is a test" 3 5 3) d}3w {
is is i/n
ee_
### 数字串 only the first character *k_<|{>j(
shell>> expr index "testforthegame" e WEX7=^k9
2 8f[ztT0`g
### 字串真实重现 [ dVBsi
shell>> expr quote thisisatestformela /YUW)?o!^N
thisisatestformela