linux常用命令
h0*!;Z7 v+W&9> 称:/etc/aliases
)al]*[lY 使用权限:系统管理者
-]N
x,{ 使用方式: 请用 newaliases 更新资料库
9tU]`f 说明:
''A_[J `> sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
[N-Di" e&|'I" /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
@wGPqg # newaliases
SB;&GHq"n .9/hHCp 下面命令会做相同的事,
}/0X'o # sendmail -bi
7X`g,b! |{z:IQLv 相关命令:
du
$:jN\} mail, mailq, newaliases, sendmail
CmP9Q2 gDQ^)1k ” mail [返回]
G)AqbY 名称:mail
%^)fmu L\6M^r
> 使用权限:所有使用者
-V*R\,> GL>O4S<` 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
afCW(zHp / H[=5 说明:
]g#: KAqz mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
fbyd"(V8r a(m2n.0'> 参数:
e[{0)y>= i 忽略 tty 的中断讯号。 (interrupt)
uP`Z12& I 强迫设成互动模式。 (Interactive)
`[y^ :mj v 列印出讯息,例如送信的地点、状态等等。 (verbose)
NJ%P/\ C n 不读入 mail.rc 设定档。
+C^nO=[E s 邮件标题。
_>o:R$ %} c cc 邮件地址。
w1FcB$ b bcc 邮件地址。
+r =}<IfNA 范例:
3<e=g)F Yj<a"
Gr4[ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
k90YV( mail
user1@email.address
iOf<$f mail
user1@email.address user2
")1:F> *l(7D(# 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
WJ]T\DI *[Imn\hu mail -s 标题 -c user1 user2 < mail.txt
H9Gh>u]} RF?`vRZOe 指令:mesg
sbfuzpg]* 使用权限 : 所有使用者
O0*p0J F;Spi 使用方式 : mesg [y|n]
` _6C{<O H-!,yte 说明 : 决定是否允许其他人传讯息到自己的终端机介面
9sM!`Lz{ (=FRmdeYl1 把计 ?
&Gc9VF]o (fhb0i- y : 允许讯息传到终端机介面上。
4V"E8rUL( n : 不允许讯息传到终端机介面上 。
3#n_?- 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
O"+gQXe kl"hBK#D% 例子 :
Ky`qskvu 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
=?5]()'*n mesg n
w$>u b@= 与 mesg 相关的指令有: talk,write,wall。
8:q1~`?5"b 名称:/etc/aliases
L@rcK!s,lD 使用权限:系统管理者
OMky$d# 使用方式: newaliases
#]-SJWf3 说明:
;'gWu sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
cQjv$$&6[ +Z,;,5'5G /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Hkg2P,2 QDZWX`qw{ 参数:没有任何参数。 范例:
m%0p\Y-/ # newaliases
9v#CE! k<z)WNBf 下面命令会做相同的事,
YByLoM* # sendmail -bi
Q1lyj7c#x M+oHtX$ 相关命令:
XjB W9a mail, mailq, newaliases, sendmail
05|=`eJ 名称 : talk
TbMW|0 #w 使用权限 : 所有使用者
\a<wKTkn hy9\57_# 使用方式 :
1l9G[o
* Oz.HH talk person [ttyname]
EX*HiZU> 说明 : 与其他使用者对谈
4a&RYx 2bz2KB5> 把计 :
//B&k`u person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ;2G*wR ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
&.3"Uo\# &*o=I|pQ 例子.1 :
}ZYd4h|g\z 3s*mbk[J 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
`4r 3l S talk Rollaend
_9ao?: +tB=OwU%0 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
]IaMp788 ~"gA,e-) 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
cF*TotU_m talk
Rollaend@linuxfab.cx pts/2
:S]%6gb8G c&6I[R eb"VE%+Hu 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
#x@$lc=k3
oueC 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
KV91)U \eTwXe]Pv 名称 : wall
Fk7?xc 使用权限 : 所有使用者
"> ypIR< .Cv6kgB@c 使用方式 :
8H[<X_/ke wall [ message ]
Y+pHd\$-4 使用说明:
TT%M'5& wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
_IMW{ YO`]UQ|dc 例子 :
Brw@g8w-X RIR\']WN 传讯息"hi" 给每一个使用者 :
x%=si[P wall hi
q$L%36u~/ 名称 : write
a9e>iU 使用权限 : 所有使用者
2B1q*`6R P.se'z)E 使用方式 :
rE7G{WII rCEyQ)R_} write user [ttyname]
!"AvY y9 说明 : 传讯息给其他使用者
h#I>M`| $V;i
'(&7 把计 :
4IK( 7 lM`2sy user : 预备传讯息的使用者帐号
2g
`o ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
]2A^1Del ;7*[Bcj. 例子.1 :
>fG3K` 6{K,c@VFd 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
_`$qBw.Nx write Rollaend
U)TUOwF 299H$$WS,Z 接下来就是将讯息打上去,结束请按 ctrl+c
g@Z))M+ b1q"!+8y 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
j8i[ONq^ write Rollaend pts/2
>IafUy te`$%NRl 接下来就是将讯息打上去,结束请按 ctrl+c
W ~<^L\Lu sFKX-S~: 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
AOZP*\k Y;eZ9|Ht9 名称:kill
[|wZ77\ 使用权限:所有使用者
5&g@3j] \<h0Q,e 使用方式:
W-f=]eWg >gQ>1Bwvi kill [ -s signal | -p ] [ -a ] pid ...
uh_RGM& kill -l [ signal ]
*tFHM &a 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
`cn#B
BV 把计?
2ACCh4(/P H H)!_(SA -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
Eh`7X=Z7E -p : 印出 pid , 并不送出信号
Ufj`euY -l (signal) : 列出所有可用的信号名称
m,28u3@r 范例:
;]puq _RYxD"my 将 pid 为 323 的行程砍掉 (kill) :
'c&Ed kill -9 323
T.F!+ hW')Sp 将 pid 为 456 的行程重跑 (restart) :
_{O>v\u kill -HUP 456
UXz<)RvB Mexk~zA^ 名称:nice
;a!S!%.h 使用权限:所有使用者
P{`C^W$J^ M7\szv\Zc= 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
fm%t^)E A|[?#S((] 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
@u+]aI!`- `RT>}_j fb7; |LF
把计?
)* : gqN ]#<4vl\ -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
]EbM9Fo-U --help 显示求助讯息
^0)g/`H^> --version 显示版本资讯
G't$Qx,IC 范例:
EP&,MYI%E 将 ls 的优先序加 1 并执行 :
FkDmP`Od nice -n 1 ls
Ty\R=y}} 5ta `%R_ 将 ls 的优先序加 10 并执行 :
(# c*M?g3 nice ls将 ls 的优先序加 10 并执行
f`(UQJ M^Yh|%M 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
ja'T+!k ,,.QfUj/& 名称:ps
6-
YU[HF 使用权限:所有使用者
ZoqZap6e 使用方式:ps [options] [--help]
P[-E@0h)-t 说明:显示瞬间行程 (process) 的动态
Kn{4;Xk\ 参数:
_ye |Y ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
XX!%RE`M8 -A 列出所有的行程
q$UJ$7=f8 -w 显示加宽可以显示较多的资讯
6v!`1}
~ -au 显示较详细的资讯
5I;&mW`1,` -aux 显示所有包含其他使用者的行程
"cGk)s 7WqH&vU| au(x) 输出格式 :
ODN/G%l Wb_J(!da USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
2qNt,;DQ USER: 行程拥有者
@;4zrzQi7 PID: pid
<}Vrl`?h %CPU: 占用的 CPU 使用率
7+cO_3AB %MEM: 占用的记忆体使用率
rKc9b<Ir VSZ: 占用的虚拟记忆体大小
s^TZXCyF o RSS: 占用的记忆体大小
Wi<m{.%\E TTY: 终端的次要装置号码 (minor device number of tty)
=s{> Fsm1 STAT: 该行程的状态:
>uB?rGcM D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
1\m[$Gs: R: 正在执行中
b_krk\e@S S: 静止状态
aKDKmHd T: 暂停执行
;1=1:S8 Z: 不存在但暂时无法消除
pF >i-i W: 没有足够的记忆体分页可分配
}&D WaO]J7 <: 高优先序的行程
{WS;dX4 N: 低优先序的行程
klYX7? L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
rXq.DvQ START: 行程开始时间
c#]4awHU TIME: 执行的时间
?R
'r4P, COMMAND:所执行的指令
xH,a=8&9 范例:
7z,C}-q ps
G_tCmu\ PID TTY TIME CMD
\l0[rcEf 2791 ttyp0 00:00:00 tcsh
=%O6:YM
3092 ttyp0 00:00:00 ps
fbvL7*
( % ps -A
/s?`&1v|r PID TTY TIME CMD
n&/
` 1 ? 00:00:03 init
DfD&)tsMQ 2 ? 00:00:00 kflushd
N>1em!AS 3 ? 00:00:00 kpiod
Oo~;
L, 4 ? 00:00:00 kswapd
H41?/U,{ 5 ? 00:00:00 mdrecoveryd
6_;icpN] .......
Qel9G($= % ps -aux
hZ,_6mNg USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
I
34>X`[o root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
a-tmq]]E root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
G.B2(' root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
}>|s=uGW root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
/maJtX' ........
2tO,dx 名称:pstree
4at?(B+ 使用权限:所有使用者
DCa^
u'f 使用方式:
-i|}m++ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
Gz0]}]A pstree -V
IP pN@ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
y.k~Y0 参数:
!BF;
>f` -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
^7*11%Q -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
>Tx?%nQ 范例:
TX/Xt7#R: pstree
,p a {qne M_f:A init-+-amd
6@!`]tSCK |-apmd
T>Z<]s |-atd
0mVNQxHI |-httpd---10*[httpd]
qR{=pR %pstree -p
hfTY. init(1)-+-amd(447)
?^{Ah}x |-apmd(105)
H?Wya.7 |-atd(339)
IOH}x4 %pstree -c
kD%( _K5 init-+-amd
}8z?t:|S |-apmd
j (d~aqW |-atd
=qIp2c}Rx |-httpd-+-httpd
B$K=\6o | |-httpd
Q&;9x? e | |-httpd
?V=ZIGj | |-httpd
(t|Zn@uY ....
w9imKVry 名称:renice
*^4"5X@ 使用权限:所有使用者
33q}CzK ^
@5QP$. 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
V!=,0zy~Z *&W"bOMH* 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
A)!*]o>U '<<t]kK[N 把计?
c?-H>u / SB;Von -p pid 重新指定行程的 id 为 pid 的行程的优先序
jr."I+ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
G` A4|+W" -u user 重新指定行程拥有者为 user 的行程的优先序
zw[m9N5\h 范例:
BU_nh+dF 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
kzLsoZ!I renice +1 987 -u daemon root -p 32
X_h}J=33Q cT,sh~-x, 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
m(!FHPvN Kc-W&?~y#1 名称:top
fr3d 使用权限:所有使用者
y%T_pTcU kevrsV]/$ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] /3T1U
Gd=RyoJl
说明:即时显示 process 的动态 KpGhQdR#
"+s++@
z
把计? tWRC$
9A=,E&
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 4HlQ&2O%#
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 S\=Nn7"
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 )t#W{Gzfmh
s : 安全模式,将交谈式指令取消, 避免潜在的危机 TJRCH>E[a
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ^h6tr8yn
n : 更新的次数,完成后将会退出 top R 9\*#c
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 Yq
KCeg
%u'ukcL7
范例: ~?BXti<!
显示更新十次后退出 ; ?tbrbkx
top -n 10 wHy!CP%
:I#V.
使用者将不能利用交谈式指令来对行程下命令 : &QgR*,5eo
top -s SJ,v?=S!
/8S>;5hvK@
将更新显示二次的结果输入到名称为 top.log 的档案里 : 8ib:FF(= u
top -n 2 -b < top.log a~w$#fo"`f
L8B!u9%
名称:skill 77Y/!~kd
w?[u pn:K
使用权限:所有使用者 Gc|idjW4
K"MX!
使用方式: skill [signal to send] [options] 选择程序的规则 y6a3tG
0 H:X3y+
说明: (9a^$C*
4Nsp<Kn>
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 * EH~_F
1qA;/-Zr<o
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 M= (u]%\
!Uo4,g6r+
一般参数: "y}5;9#,
MQ2}EY*A
-f 快速模式/尚未完成 upmx $H>
mfr|:i
-i 互动模式/ 每个动作将要被确认 y9ZvV0
!a\^Sk
/
-v 详细输出/ 列出所选择程序的资讯 75lA%|
*X
N!}f}oF
-w 智能警告讯息/ 尚未完成 g_bLl)g<
]-#DB^EQ
-n 没有动作/ 显示程序代号 uY To9A
W>r+h-kR
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。
J&_n9$
ih3n<gXF
-t 终端机代号 ( tty 或 pty ) >t+P(*u
!N^@4*
-u 使用者名称 m&3xJuKih
gSj,E8-g
-p 程序代号 ( pid ) R;LP:,)
%cn<ych
G
-c 命令名称 可使用的讯号: dZuOrTplA
tH4B:Bgj!
以下列出已知的讯号名称,讯号代号,功能。 #'`{Qv0,
HoAy_7-5
名称 (代号) 功能/ 描述 2=}FBA,2
[-w%/D%@
ALRM 14 离开 y~V(aih}D
.xkM.g4{~
HUP 1 离开 BgT*icd8d
c71y'hnT
INT 2 离开 !4!~Lk=
bN.Pex
KILL 9 离开/ 强迫关闭 Id9TG/H7
er\|i. Y
PIPE 13 离开 L~3Pm%{@A
lB4WKn=?Kl
POLL 离开 4+tEFxvX&
4qa.1j(R/
PROF 离开 ]4e;RV-B
='jT~\
TERM 15 离开 zbiL P83
9gIrt 6
USR1 离开 8P`"M#fI
eMzk3eOJ
USR2 离开 5)40/cBe
46;uW{EY
VTALRM 离开 Zd+bx*rD
(@YG~0
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 %TqC/c
D%Z|
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 W+*
V)tf
%iB,IEw
TSTP 停止 /产生与内容相关的行为 O6Y0XL
|W^IlqTH
TTIN 停止 /产生与内容相关的行为 :T~ [
EQ_aa@M7
TTOU 停止 /产生与内容相关的行为 h+,@G,|D
dRMx[7jVA
STOP 停止 /强迫关闭 :Dp0?&_
F'Z,]b'st3
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 w-jVC^C]
)/P}?`I
PWR 忽略 /在某些系统中会离开
lhJ'bYI
uAk.@nfiEv
WINCH 忽略 p
ll)Y
$[|mGae
CHLD 忽略 *1"+%Z^
=~gvZV-<
ABRT 6 核心 H?w6C):]
Y/oHu@
_
FPE 8 核心 +C)~bb*
i#O SC5ZI
ILL 4 核心 XPPdwTOr
'%;m?t%q
QUIT 3 核心 ^J{:x
d-%hjy3N
SEGV 11 核心 Sjj6q`
gM]:Ma
TRAP 5 核心 Y-9I3?ar
MK*r+xfSae
SYS 核心 /或许尚未实作 Q{/Ef[(a@
TqQ[_RKg2
EMT 核心 /或许尚未实作 Ort(AfW
Nboaf
BUS 核心 /核心失败 OTv)
\7_y%HR
XCPU 核心 /核心失败 {RPI]DcO/
zm# ?W
XFSZ 核心 /核心失败 iow"n$/
4Tc~b3\!Y
范例: )%]J>&/0J
停止所有在 PTY 装置上的程序 /_.|E]
skill -KILL -v pts/* IGgL7^MF
)5H?Vh>36
停止三个使用者 user1 , user2 , user3 Fzcwy V
skill -STOP user1 user2 user3 %2h>-.tY
fV~~J2IK
其他相关的命令: kill E`J@hl$N
名称:expr +,l-Nz
使用权限:所有使用者 3U}%2ARo_
### 字串长度 ^f@=:eWI
@+DX.9
shell>> expr length "this is a test" DfB7*+x{
14 ';"VDLb3
### 数字商数 MOC/KNb
shell>> expr 14 % 9 YZ7.1`8
5 z!\*Y
=e
### 从位置处抓取字串 7Yy ;
shell>> expr substr "this is a test" 3 5 /V By^ L:
is is ABkl%m6xf
### 数字串 only the first character "jCu6Rj d
shell>> expr index "testforthegame" e _dg\\c
2 WzWXE(
### 字串真实重现 U!]dEW|G
shell>> expr quote thisisatestformela 0"#HJA44
thisisatestformela