linux常用命令
Tv~Ho&LS _E/ 称:/etc/aliases
xNLgcb@v> 使用权限:系统管理者
Dg}EI^ d 使用方式: 请用 newaliases 更新资料库
)FfS7 C\. 说明:
"/3YV%to-# sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
t=jG $A HLc3KYIk /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
u?'J1\z # newaliases
>
-(Zx b"OH Xu 下面命令会做相同的事,
m5,&;~ # sendmail -bi
Tiimb[| {L7+lz 相关命令:
nu2m5RYx mail, mailq, newaliases, sendmail
([7XtG/? S/YHT)0x[ ” mail [返回]
ocpM6b.fK 名称:mail
]a[2QQ+g UoSc<h| 使用权限:所有使用者
I\IDt~ 8;,|z%rS" 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
mSO7 r F us.IdG 说明:
=CjWPZShV mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
h*3{IHAQ 5Y@Hb!5D 参数:
Xxj<Ai2 i 忽略 tty 的中断讯号。 (interrupt)
]c]^(C I 强迫设成互动模式。 (Interactive)
%CUwD v 列印出讯息,例如送信的地点、状态等等。 (verbose)
dh%DALZ8t n 不读入 mail.rc 设定档。
6:?mz;oP s 邮件标题。
`91Z]zGpU c cc 邮件地址。
;3%Y@FS@ b bcc 邮件地址。
bik lja BaMF5f+ 范例:
[<d_#(]h' Y)#,6\=U 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
YtXd>@7 mail
user1@email.address
+I}!)$/ mail
user1@email.address user2
!\'HKk~V B$7Cjv 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
%MCS_'N
J mXyg\5 mail -s 标题 -c user1 user2 < mail.txt
R0bgt2J -M4VC^_ 指令:mesg
V6k Dyl( 使用权限 : 所有使用者
nHU}OGzW ?JW/Stua 使用方式 : mesg [y|n]
<q&i"[^M }%^ 3 说明 : 决定是否允许其他人传讯息到自己的终端机介面
1Ve~P"w Zlygx 把计 ?
`BaJ >%| S>Gb
Jt(] y : 允许讯息传到终端机介面上。
F;Q'R|HQ n : 不允许讯息传到终端机介面上 。
_BvGEM`o 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
/J(~NGT #vAqqAS`, 例子 :
?u0qYep: 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
]O0u.=1k mesg n
=c%gV]>G 与 mesg 相关的指令有: talk,write,wall。
def\=WyK 名称:/etc/aliases
~NO7@muw 使用权限:系统管理者
ME.!l6lm\ 使用方式: newaliases
vYq"W% 说明:
Jyp7+M] sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Z2-"NB :4LWm<P /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
r[#*..Y G-#rWZ& 参数:没有任何参数。 范例:
lg{M\
+ # newaliases
X +/^s) 6QNZ/Ox: 下面命令会做相同的事,
~3|)[R=+p1 # sendmail -bi
+F>erdV t"5ZYa 相关命令:
WtXf~ :R mail, mailq, newaliases, sendmail
162Dj$ 名称 : talk
SPauno <M 使用权限 : 所有使用者
WE+Szg(4x |;"(C# B 使用方式 :
'>T hn{ z+^9)wg9 talk person [ttyname]
FMitIM*]
说明 : 与其他使用者对谈
gyU=v{]. >A}ra ^gU 把计 :
(R9"0WeF person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 7_eV.'h ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
OJ.oHf=K! Ix0#eoj 例子.1 :
V=Z%y$1Bc LCb0Kq}*/( 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
Z`n "}{ talk Rollaend
]
^J JtF)jRB0, 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
<1`MjP*w v7@*dg 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
$-(lp0\*
talk
Rollaend@linuxfab.cx pts/2
V2g"5nYT 'G`xD3 E3, !"ydl2 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
BT
f Mv:\T%] 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
8mO_dQ %PPkT]~\ 名称 : wall
x@|10GC#: 使用权限 : 所有使用者
v(,YqT>q@U GxE`z6%[ 使用方式 :
y"H(F,(N wall [ message ]
Ia:M+20n 使用说明:
q~{O^,4S wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
n+s=u$%qn NYR:dH]N~d 例子 :
U?EXPi6 1Z O1oh,~W 传讯息"hi" 给每一个使用者 :
5K=>x< wall hi
31p7oRzr 名称 : write
WHRBYq_ 使用权限 : 所有使用者
cHnd
gUW] )0=H)k0 使用方式 :
zGP@!R`_ {Ut,xi write user [ttyname]
jTqEV( 说明 : 传讯息给其他使用者
6s$h _$[X P R_|
8H| 把计 :
+t(Gt0+ "_\77cqpTh user : 预备传讯息的使用者帐号
$;)A:*e ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
] B>.} PE6ZzxR|U< 例子.1 :
%~N| RSec x(:alG%# 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
5+/XO>P1m| write Rollaend
A!a.,{fZ ra1_XR} 接下来就是将讯息打上去,结束请按 ctrl+c
)Zfb M| <"7Wb"+ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
D+Z2y1 write Rollaend pts/2
3k:`7E. $/Llzpvny 接下来就是将讯息打上去,结束请按 ctrl+c
|[$TT$Fb \ns}
M3 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
-CTLQyj) (b7',:_U7 名称:kill
WdbHT|.Aj 使用权限:所有使用者
8(* ze+8 *~d<]U5h 使用方式:
[=>[ 2Ty VI)hA
^S kill [ -s signal | -p ] [ -a ] pid ...
z h%b< kill -l [ signal ]
?&POVf> 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
h3Nbgxa. 把计?
~l*[=0} :e\M~n+y -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
F`.W 9H3 -p : 印出 pid , 并不送出信号
r<'B\.#tp> -l (signal) : 列出所有可用的信号名称
}p*WH$!~ 范例:
P,k=u$ @`HW0Y_: 将 pid 为 323 的行程砍掉 (kill) :
*\^(-p~M kill -9 323
X&!($*/ \sS0@gnDI 将 pid 为 456 的行程重跑 (restart) :
8B6-f: kill -HUP 456
C%"aj^u BKu<p< 名称:nice
:%IB34e 使用权限:所有使用者
]m#*4 4C9k0]k2 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
L!~ap -K6y#O@@ 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
ym2"D?P
( U"L-1]L Bx|h)e9 把计?
mnU8i=v0A 0*6Q8`I -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
+_ny{i`' --help 显示求助讯息
/?*ut&hwv --version 显示版本资讯
l$m}aQ%h 范例:
LXf|n 将 ls 的优先序加 1 并执行 :
U"a7myB+jX nice -n 1 ls
D{JwZL@7k2 n'!x"O7 将 ls 的优先序加 10 并执行 :
Qki?
>j" nice ls将 ls 的优先序加 10 并执行
7yOBxb 4|DN^F~iut 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
kH4m6p
t;_1 /mt 名称:ps
*E-MJCv 使用权限:所有使用者
6rlvSdB 使用方式:ps [options] [--help]
(
geV(zT 说明:显示瞬间行程 (process) 的动态
CjJ n 参数:
>L$9fn/J ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
#z}0]GJKj -A 列出所有的行程
#hXuGBZEI -w 显示加宽可以显示较多的资讯
_S CY e -au 显示较详细的资讯
-?Cu-' -aux 显示所有包含其他使用者的行程
BL%3[JQ ozA%u,\7k au(x) 输出格式 :
01IfvK Z 2lX^z USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
M->#WGl\B USER: 行程拥有者
rK4
pYo
PID: pid
l!IN #|{( %CPU: 占用的 CPU 使用率
oM,UQ!x< %MEM: 占用的记忆体使用率
O\ w-hk VSZ: 占用的虚拟记忆体大小
ictOCF RSS: 占用的记忆体大小
cN)noGkp TTY: 终端的次要装置号码 (minor device number of tty)
UiZ1$d* STAT: 该行程的状态:
H#QPcp@ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
RG-,<G` R: 正在执行中
x^
sTGd S: 静止状态
Ky{C;7X T: 暂停执行
C0L(ti; Z: 不存在但暂时无法消除
W}k)5<C4v W: 没有足够的记忆体分页可分配
EHt(!;?q <: 高优先序的行程
))J#t{X/8v N: 低优先序的行程
D*8oFJub L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
7gt%[r M START: 行程开始时间
{;hRFQ^b TIME: 执行的时间
AUR{O COMMAND:所执行的指令
JwUz4 范例:
;zi4W1 ps
q?#w%0} PID TTY TIME CMD
wE_#b\$=b 2791 ttyp0 00:00:00 tcsh
Y>K3.*. 3092 ttyp0 00:00:00 ps
ae]
hCWK % ps -A
OWmI$_L PID TTY TIME CMD
Mey=%Fv
1 ? 00:00:03 init
3L;&MG= 2 ? 00:00:00 kflushd
nAyyjd3!S 3 ? 00:00:00 kpiod
MG$Df$R 4 ? 00:00:00 kswapd
5Veybchy " 5 ? 00:00:00 mdrecoveryd
@34CaZ$k .......
n^rzl6dy % ps -aux
_^Q =n>G USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
T?8N$J root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
m# I root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
>\ PNKpn{ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
y-vBC3 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
9jrlB0 ........
Qs\!Kk@ 名称:pstree
t%30B^Ii%K 使用权限:所有使用者
$:*/^)L 使用方式:
)}T0SGY pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
MJ`BlE,Fmb pstree -V
s#V:!
7 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
6s&%~6J, 参数:
$lAhKpdlW -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
<>[]-Vq -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
2(NN QU@Uz 范例:
/PtmJ2[ pstree
{b26DKkQS *Duxabo? init-+-amd
AO^c=^ |-apmd
`Z~\&r= |-atd
/Wm3qlv |-httpd---10*[httpd]
RyN?Sn5) %pstree -p
H iDL:14 init(1)-+-amd(447)
>[TJ-%V>oR |-apmd(105)
(Qz|
N |-atd(339)
o`ijdg!5qG %pstree -c
g+92}$_ init-+-amd
Z<6Fq*I |-apmd
='GY:. N |-atd
UNd+MHE74I |-httpd-+-httpd
4Nz]LK%@ | |-httpd
**lT 'D | |-httpd
(= ,w$ | |-httpd
>&2n\HR\ ....
=;@?bTmqD 名称:renice
\j3XT} 使用权限:所有使用者
P
:D6w){ PEHaH"|([= 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
*[[TDduh& 9='=wWW 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
XveG#oyiU 4?9cyv4H 把计?
NHq*&xy K=X13As_ -p pid 重新指定行程的 id 为 pid 的行程的优先序
Sej\Gt -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
E0Jk=cq -u user 重新指定行程拥有者为 user 的行程的优先序
dGBVkb4]T 范例:
\Z%V)ZRi= 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
p(]o#$ 6[ renice +1 987 -u daemon root -p 32
SRf.8j |qTS{qQh{L 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
|Y\BI^ 8st~ O 名称:top
-?&s6XA%# 使用权限:所有使用者
.~Z@y# A('_.J= 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] pJ 7="n
*wetPt)~v_
说明:即时显示 process 的动态 F-2&P:sjQ
EzDQoN7Em
把计? t)/:VImY
~)&im.Q4
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s k+FiW3-
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 H%AC *,
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 $9Yk]~
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ^|0>&sTHOH
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 8~")9w
n : 更新的次数,完成后将会退出 top #b?)fqRJL
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 2gnmk
TyF
t*'U|K4L/
范例: ~)\E&c
显示更新十次后退出 ; p:n.:GZ=y
top -n 10 pl.K*9+
;=[~2*8
使用者将不能利用交谈式指令来对行程下命令 : xEfz AJ5&
top -s I2$.o0=3Y
4x'N#m{p
将更新显示二次的结果输入到名称为 top.log 的档案里 : >sL"HyY#H
top -n 2 -b < top.log X-&U-S;
C
{GSf`D!T
名称:skill _
IqUp Y
LK'|sO>|
使用权限:所有使用者 eaI!}#>R+
lQolE P.pc
使用方式: skill [signal to send] [options] 选择程序的规则 BrQXSN$i
?u`TX_OsB
说明: 2sOV3~bB
)OAd[u<
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 _k,/t10
#$GDKK
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 uD2v6x236
Q]q`+ Z65
一般参数: HktvUJ(Ii
x[,HK{U|t
-f 快速模式/尚未完成 CqRG !J
Q599@5aS
-i 互动模式/ 每个动作将要被确认 St6U
nbpGxUF`]
-v 详细输出/ 列出所选择程序的资讯 *[(}rpp M
;eG,T-:
-w 智能警告讯息/ 尚未完成 O+Zt*jN;
7>a-`"`O
-n 没有动作/ 显示程序代号 ib4 shaN`
`(r[BV|h}
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 eJ+uP,$
SYPG.O?I
-t 终端机代号 ( tty 或 pty ) d{UyiZm\
|g3a1El
-u 使用者名称 Q.q'pJ-
)>]~ Y
-p 程序代号 ( pid ) ~f[AEE~,s+
o2FQ/EIE
-c 命令名称 可使用的讯号: !z
!R)6
4v"9I(
以下列出已知的讯号名称,讯号代号,功能。 M>pcG.6V
r.5}Q?
名称 (代号) 功能/ 描述 Q)\~=/Lb
.kl _F7
ALRM 14 离开 r*|#*"K"a
9Ytf7NpR
HUP 1 离开 #PzRhanX
B cMgfa/
INT 2 离开 Hoaf3
`n
IpX>G]"-C
KILL 9 离开/ 强迫关闭 $nB4Ie!WcR
73kF=*m
PIPE 13 离开 wt;7+
}{J5)\s9
POLL 离开 E,]G Ek
RJ ,a}w[9
PROF 离开 XY[uyR4Z
2qY`*Y.2
TERM 15 离开 "T`Q,
]ov>VF,<
USR1 离开 X~DI d
c~B[<.Qj
USR2 离开 ,k*g`OTW
B 4pJg
VTALRM 离开 YQyf:xJ
> .L\ >
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 rZ0+mS'/G
^-,
aB
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 lg)jc3
Bn83W4M
TSTP 停止 /产生与内容相关的行为 :G/T{87H
0XCtw6
TTIN 停止 /产生与内容相关的行为 xef@-%mcoy
j'#Y$d1.
TTOU 停止 /产生与内容相关的行为 y^vB_[6l
EgAM,\
STOP 停止 /强迫关闭 kW"6Gc&HUN
$F|3VQ~
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 {&_1/
% #!`>S)O
PWR 忽略 /在某些系统中会离开 KTV~g@Jf
'.jr" 3u
WINCH 忽略 $Hr
qX?&r
*U vh;d{
CHLD 忽略 &tT*GjPwg;
YK[PC]w
ABRT 6 核心 ^l}Esz`-M
ZT>?[`Vgc
FPE 8 核心 (1`z16
['p%$4i$
ILL 4 核心 Algk4zfK2,
02U5N(s
QUIT 3 核心 0'Kbh$LU
pBW|d\8
SEGV 11 核心 [X +E
Vo@[
TRAP 5 核心 :JBvCyj4PE
wYxnKm~f
SYS 核心 /或许尚未实作 'Xl[ y
>heFdKq1
EMT 核心 /或许尚未实作 9$-V/7@)
}]0f -}
BUS 核心 /核心失败 ?nW K s
H{Zfbb
XCPU 核心 /核心失败 +9S_H(
![ &
go
XFSZ 核心 /核心失败 R)s@2S
GEr]zMYG[A
范例: Q+d9D1b
停止所有在 PTY 装置上的程序 J|k~e,C
skill -KILL -v pts/* Im9^mVe
&.sfu$]
停止三个使用者 user1 , user2 , user3 9~8UG (
skill -STOP user1 user2 user3 .}QR~IR'
yFp8 >
其他相关的命令: kill X{SD3j=G#
名称:expr Pb05>J3N
使用权限:所有使用者 a?]Ow J
### 字串长度 ^j1?L B
s`2Hf&%aZJ
shell>> expr length "this is a test" :b^\O
14 &%QtUPvr9
### 数字商数 YG<7Zv
shell>> expr 14 % 9 O=wA/T=w?
5 1-.UkdZ}
### 从位置处抓取字串 6 /T_+K.k
shell>> expr substr "this is a test" 3 5 K2J DG.<
is is @+LZSd+I
### 数字串 only the first character cC'{+j8-a
shell>> expr index "testforthegame" e (uBevU\
2 5f&+(Wqw
### 字串真实重现 4%#C _pE9
shell>> expr quote thisisatestformela u@v0I$
thisisatestformela