linux常用命令
#e,TS`"eD k hD)x0'b 称:/etc/aliases
oGl<i 使用权限:系统管理者
_9p79S<+ 使用方式: 请用 newaliases 更新资料库
-p>1:M < 说明:
Q6e7Z-8 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
3G2iRr.o 7l~^KsX /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
*,*O.#<6 # newaliases
~kSOYvK$' t*A[v 下面命令会做相同的事,
"bWx< # sendmail -bi
lQvgq o)7Ot\:E 相关命令:
`YE=B{q mail, mailq, newaliases, sendmail
S7#dyAX8 nKnrh]hX ” mail [返回]
eMmNQRmH 名称:mail
s8P3H|0.- hlze]d?z 使用权限:所有使用者
bqp^\yu-E 2k^rZ^^" 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
}Q ]-Y : MuP>#Vk 说明:
3]9Rmx mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
,9_O4O% Q.h.d)) 参数:
dGkw%3[ i 忽略 tty 的中断讯号。 (interrupt)
8e,F{>N I 强迫设成互动模式。 (Interactive)
N mxh zjJ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
KZVdW@DY n 不读入 mail.rc 设定档。
4>v O9q s 邮件标题。
@F$}/ c cc 邮件地址。
{2D|,yH= b bcc 邮件地址。
X# ud5h v>Kh5H5e~ 范例:
-38"S;M8 o^*: 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
pL`Q+}c} mail
user1@email.address
#=33TvprR2 mail
user1@email.address user2
G +41D bj6Yz,g F 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
}Bsh!3D<. k<+Sj
h$ mail -s 标题 -c user1 user2 < mail.txt
d
ePk}Sn U=69q] 指令:mesg
B7|%N=S%/ 使用权限 : 所有使用者
Hc8He!X*# dJJq]^| 使用方式 : mesg [y|n]
^H1m8= -o`K/f}d 说明 : 决定是否允许其他人传讯息到自己的终端机介面
QJrXn6` y"'p#j 把计 ?
KF1iYo>p % -AcA y : 允许讯息传到终端机介面上。
wQjYH!u,YZ n : 不允许讯息传到终端机介面上 。
?b{y#du2a 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
XM
w6b*O I2*(v%.- 例子 :
cRD;a?0/6s 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
5dN>Xjpu mesg n
j%-Ems*H 与 mesg 相关的指令有: talk,write,wall。
~ho,bwJM[T 名称:/etc/aliases
C/qKa[mg 使用权限:系统管理者
{Bk` Zlki 使用方式: newaliases
3\
Mt+!1{ 说明:
t!6uz sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
yI#qkl- pI8z.JD /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Tj_K5uccU} 8]`s&d@GY 参数:没有任何参数。 范例:
GIc q|Pe # newaliases
zuW4gJ YI"!&a'yj 下面命令会做相同的事,
X';qcn_^ # sendmail -bi
ecJjE
56P 1hgIR^;[b 相关命令:
CrL9|78 mail, mailq, newaliases, sendmail
]BbV\# 名称 : talk
?QJx!'Y,p 使用权限 : 所有使用者
gT$WG$^i FK~wr;[ 使用方式 :
rOt{bh6r b+J|yM<` talk person [ttyname]
z _\L@b 说明 : 与其他使用者对谈
(@xC-* ?hc=w 2Ci 把计 :
vfv?QjR person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ~/-SKGzo- ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
;nW;M 4{ R3lZ|rxv: 例子.1 :
JQ0Z%;" LTo!DUi` 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
YjTr49Af0 talk Rollaend
0|tyKP|J y] D\i5Xv 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
&&P9T/Zks uj.$GAtO) 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
$p0D9mF talk
Rollaend@linuxfab.cx pts/2
r/a@ x9 gL&w:_ VV/T)qEe7> 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
/4pYhJ8S H%U 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
t`|Rn9- H+Bon=$cE! 名称 : wall
=5B5 使用权限 : 所有使用者
#TR!x,Hc *K$a;2WjzG 使用方式 :
hp2E! C ma wall [ message ]
bF_0',W 使用说明:
$poIWJM c wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
*qSvSY* zx=eqN@!@ 例子 :
m)pHCS [|eIax xR, 传讯息"hi" 给每一个使用者 :
XdV>6<gf{
wall hi
>h#juO" 名称 : write
mkyYs[ 使用权限 : 所有使用者
lV^:2I/ :6t73\O 使用方式 :
h;+O96V4. *f;$5B#^ write user [ttyname]
dO1m 说明 : 传讯息给其他使用者
PDA9.b<q0 RS}_cm0 把计 :
l{C]0^6>i ]oSx]R>{f user : 预备传讯息的使用者帐号
YQd($ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
fcF| m5 NJr)f 例子.1 :
S>(x x"Ia H.{Fw j4 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
Ayqs~&{ write Rollaend
4C_1wk(' 5!Y\STn 接下来就是将讯息打上去,结束请按 ctrl+c
IO8 @u;& ,~Xe#eM 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
tyW[i8)O} write Rollaend pts/2
h'h8Mm _oBx:G6E 接下来就是将讯息打上去,结束请按 ctrl+c
]] 0 M eF{uWus 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
v+Y^mV`| ^i_v\E[QU 名称:kill
yQj J-g(. 使用权限:所有使用者
y4p"LD5%^ !BkE-9v?w 使用方式:
Ce<z[?u !\%JOf} kill [ -s signal | -p ] [ -a ] pid ...
oi7k#^ kill -l [ signal ]
=
E_i 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
N-F&=u} 把计?
ETL7|C" 6-"tQ,AZ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
diM*jN# -p : 印出 pid , 并不送出信号
s-WZ3g -l (signal) : 列出所有可用的信号名称
-nC&t~sD 范例:
LA\3 ,Uv 7lwI]/ZH* 将 pid 为 323 的行程砍掉 (kill) :
ti9e(Jt!O kill -9 323
bIBF2m4 |-\anby< 将 pid 为 456 的行程重跑 (restart) :
DPW^OgL; kill -HUP 456
mMZ{W+"[f W9c&"T9JT 名称:nice
ZR3,dW6S 使用权限:所有使用者
X4hz\={ sRcd{)|Cq 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
EmUn&p%hI [&&#~gz 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
}15&<s ~$4(|Fq/ jA:'P~`Hj 把计?
|?0MRX0'g ;7qzQ{Km -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
6vNn;-gg. --help 显示求助讯息
Rh"O$K~ --version 显示版本资讯
_$IWr)8f 范例:
2&:z[d}~H 将 ls 的优先序加 1 并执行 :
)3e_Hs+ nice -n 1 ls
W%^!<bFk}m 1:T"jsWw 将 ls 的优先序加 10 并执行 :
`g1?Q4h nice ls将 ls 的优先序加 10 并执行
BRu}"29 H'!OEZ 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
'*Dp2Y{7 0#Ug3_dfr 名称:ps
*(r9c(x a 使用权限:所有使用者
-b?M5P*: 使用方式:ps [options] [--help]
]-#/wC[$l= 说明:显示瞬间行程 (process) 的动态
_,K[kVn 参数:
Ofoh4BL'1@ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
R>:D&$[RD -A 列出所有的行程
C "@>NC_ -w 显示加宽可以显示较多的资讯
V!]|u ^4I -au 显示较详细的资讯
_I'k&R -aux 显示所有包含其他使用者的行程
y7#+VF`xf k3B_M9>!
au(x) 输出格式 :
;t9_*)[ Y}.f&rLe USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
oaq,4FT USER: 行程拥有者
^2rj);{V PID: pid
}I}GA:~$% %CPU: 占用的 CPU 使用率
[N4N7yF %MEM: 占用的记忆体使用率
8o,0='U VSZ: 占用的虚拟记忆体大小
h0~<(3zC RSS: 占用的记忆体大小
5WfZd TTY: 终端的次要装置号码 (minor device number of tty)
CL5^>.} STAT: 该行程的状态:
"-Nyf D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
v4 rO 0y=C R: 正在执行中
GGHeC/4 S: 静止状态
l>
H'PP~ T: 暂停执行
i}>EGmv m Z: 不存在但暂时无法消除
NqKeQezX W: 没有足够的记忆体分页可分配
8|i<4> <: 高优先序的行程
c%b|+4
}x N: 低优先序的行程
GcO:!b*YMp L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
:f7!?^;y> START: 行程开始时间
.7Qqs=Au TIME: 执行的时间
pQ7elv] COMMAND:所执行的指令
_hJ+8B^` 范例:
OC,yL Q ps
4n(w{W> PID TTY TIME CMD
e"sv_$* 2791 ttyp0 00:00:00 tcsh
#;8VBbc\^ 3092 ttyp0 00:00:00 ps
>HwVP.~HN % ps -A
d<=!*#q;o PID TTY TIME CMD
/03Wst 1 ? 00:00:03 init
P>~Usuf4 2 ? 00:00:00 kflushd
@Bkg< 3 ? 00:00:00 kpiod
RlvvO 4 ? 00:00:00 kswapd
T&S=/cRBK} 5 ? 00:00:00 mdrecoveryd
^e]O
>CJ .......
#>~A-k) % ps -aux
w-km
qh USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
gxI/MD~!> root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
c(8>oeKyD root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
k:j?8o3 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
`]19}GK~xo root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
M!gu`@@}F ........
CUC]-]8 名称:pstree
#]Do_Z 使用权限:所有使用者
;cL+=! 使用方式:
nHXPEbq-g pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
/:\27n pstree -V
dKDCJt]t
说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
!]mo.zDSW5 参数:
Q9p2.!/C1 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
<]oPr1 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
4V]xVma 范例:
5?(dI9A"K pstree
i,Jz7OX (A}c22qe init-+-amd
*j1Skd.#At |-apmd
EXW?)_pg |-atd
Ty!V)i |-httpd---10*[httpd]
0$yHO2 f %pstree -p
Ae^4 init(1)-+-amd(447)
>U4bK^/Bp |-apmd(105)
P$ b5o |-atd(339)
8QKu %pstree -c
rniL+/-uU init-+-amd
TOqxl |-apmd
p!Tac%D+k |-atd
Ft :_6T% |-httpd-+-httpd
:m'(8s8 | |-httpd
XWz~*@ci | |-httpd
67Tu8I/r | |-httpd
#t# S(A9) ....
ecvZwL 名称:renice
}+[!h=Bx 使用权限:所有使用者
/@&uaw =3V4HQi 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
v )2yR~J 3_eg'EP.E 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
f
e^s`dsG b*nI0/cbR. 把计?
K6~')9Q DEfhR?v -p pid 重新指定行程的 id 为 pid 的行程的优先序
>E,/|K* -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
n|QA\,= -u user 重新指定行程拥有者为 user 的行程的优先序
Cf<TDjU`| 范例:
xw1,Wbu] 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
EW)r/Av:, renice +1 987 -u daemon root -p 32
cZWW[i 4l/~::y 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
<X97W\ +@@( C9 名称:top
iN@|08 使用权限:所有使用者
<P Vmr2Jp" W^H[rX}= 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] lKRp9isn^
>Mm.MNU
说明:即时显示 process 的动态 zRau/1Y0
FklO#+<:
把计? h{)`W
]~
n2F*a
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s AMK3I`=8WO
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 N=8CVI
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 p1z^i(
s : 安全模式,将交谈式指令取消, 避免潜在的危机 QX(t@VP
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 k.Z?BNP
n : 更新的次数,完成后将会退出 top f,-'eW/j
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 cZt5;"xgr]
Au )%w
范例: 4tapQgj24
显示更新十次后退出 ; G6"4JTWO
top -n 10 ]zvOM^l~
T?-K}PUcQ
使用者将不能利用交谈式指令来对行程下命令 : 7tY~8gQel
top -s itO1ROmu
"MOmJYH
将更新显示二次的结果输入到名称为 top.log 的档案里 : B=%YD"FAv
top -n 2 -b < top.log N,cj[6;T%
_9/Af1X
名称:skill I=K<%.
MY&?*pV)
使用权限:所有使用者 P\
2Bx *e
f5nAD
使用方式: skill [signal to send] [options] 选择程序的规则 #Pq6q.UB
t 9.iWIr
说明: 2l8z/o 7v
i}5+\t[Q
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 wS:`c
J
F2=#\U$
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 QVN@B[9
8O*O5
一般参数: 6
)Qe*S
dSzq}w4xY
-f 快速模式/尚未完成 k0DX|O8mXV
gLg\W3TOi
-i 互动模式/ 每个动作将要被确认 d[ce3':z
p*Hf<)}
-v 详细输出/ 列出所选择程序的资讯 TrHUM4
@ v}M\$N?
-w 智能警告讯息/ 尚未完成 j 2Jew
y;LZX-Z-
-n 没有动作/ 显示程序代号 8GT{vW9
7I6&*I
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 4+0:(=>[%
B|BJkY'
-t 终端机代号 ( tty 或 pty ) & =vi]z:[
{Hxziyv~Y(
-u 使用者名称 MCfDR#a
T:udw
-p 程序代号 ( pid ) N8]d0
Y{m1\s/ o
-c 命令名称 可使用的讯号: \,b_8^
[-Mfgw]i
以下列出已知的讯号名称,讯号代号,功能。 d!q)FRzi
wQ9fPOm
名称 (代号) 功能/ 描述 }9&~+Q2
9t0NO-a
ALRM 14 离开 Ml,87fo
Gh{vExH@5(
HUP 1 离开 l8!n!sC[,
=ThacZHb8
INT 2 离开 _&F*4t!n_
)G9,5[
KILL 9 离开/ 强迫关闭 ]3yaIlpD1
@1 )][r-7
PIPE 13 离开 :U#4H;kk~j
pS)/yMlVj
POLL 离开 pd}af iF
,N5-(W
PROF 离开 N7qSbiRf<
& Pzr)W(
TERM 15 离开 kR(hUc1O
Y!nE65
USR1 离开 T$9tO{
[,p[%Dza
USR2 离开 {= l9{K`~
C+c;UzbD
VTALRM 离开 HA(G q
0N*~"j;r#M
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Yf,U2A\
Ea[K$NC)#
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 \*$''`b)j
#+Cu&l
TSTP 停止 /产生与内容相关的行为 2=xjgK
Ycve[31BDd
TTIN 停止 /产生与内容相关的行为 cYp]zn+6
YXhxzH hPd
TTOU 停止 /产生与内容相关的行为 keWqL]
iOzY8M+N(
STOP 停止 /强迫关闭 L+y90 T6?
RI
jz7ZG
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 -XtDGNHF
(y!<^Q
PWR 忽略 /在某些系统中会离开 F2RU7o'f.
:Sd
iG=t
WINCH 忽略 Aaq!i*y
x0_$,Tz@
CHLD 忽略 P mgTTI
sKI{AHJ?X
ABRT 6 核心 3]1uDgfr
W-+~r
FPE 8 核心 %) 8 UyZG
bjEm=4FI;
ILL 4 核心 !Wz%Hy:ZK
!r*Ogv[
QUIT 3 核心 d@-bt s&3
xA>O4SD
SEGV 11 核心 ACcxQK}
V/}g'_E
TRAP 5 核心 z<c@<M=Q*
fB3W} dr
SYS 核心 /或许尚未实作 `-L{J0xq
VCZ.{MD
EMT 核心 /或许尚未实作 \vvV=iw
L<**J\=7M
BUS 核心 /核心失败 PYp<eo\
J}cqBk>
XCPU 核心 /核心失败 I+]q;dF;
Bdd>r#]
XFSZ 核心 /核心失败 0R%R2p'wG
0]3 #3TH
范例: Una7O]
停止所有在 PTY 装置上的程序 #4e Taik
skill -KILL -v pts/* yY$:zc"J
yH0BNz8V
停止三个使用者 user1 , user2 , user3 E/</
skill -STOP user1 user2 user3 IMDGinHAy
b-rgiR$cg
其他相关的命令: kill as?~N/}
名称:expr ],HF)21
使用权限:所有使用者 q'%-8t
### 字串长度 <k0$3&D
eS/4g M7%
shell>> expr length "this is a test" fH/J8<
14 >Hq)1o
### 数字商数 \.tnzP
D
shell>> expr 14 % 9 ^%V^\DK
5 |lOH
P A
### 从位置处抓取字串 \,i?WgWv
shell>> expr substr "this is a test" 3 5 J`*!U4
is is b]Xc5Dp{
### 数字串 only the first character ny:4L{)
shell>> expr index "testforthegame" e 7]w]i5
2 -5~&A6+ILn
### 字串真实重现 G92Ya^`
shell>> expr quote thisisatestformela "Y Z B@
thisisatestformela