linux常用命令
(j' {~FB *@_u4T7|{ 称:/etc/aliases
e-X HN 使用权限:系统管理者
KD% TxK 使用方式: 请用 newaliases 更新资料库
}*
QO]_U? 说明:
Eh\ 1O(a( sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
8Q2]*%
T><{ze /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
,~4H{{<j # newaliases
^rv"o:lF z %x7fe 下面命令会做相同的事,
&]P"48NT # sendmail -bi
HH)"]E5 i"vawxm 相关命令:
QsiJ%O Q mail, mailq, newaliases, sendmail
Q}kfM^i ~U6"? ” mail [返回]
]3*P:$Rq 名称:mail
t5.`!3EO XrF3kz!44 使用权限:所有使用者
A1^Ga5 B> VFv9Q2/. 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
M`GP^Ta 5Go0}'*% 说明:
Q48+O?&
mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
}e<'BIME }N3V5cab 参数:
3bC+Mco i 忽略 tty 的中断讯号。 (interrupt)
><;Q@u5~ I 强迫设成互动模式。 (Interactive)
kt^yj"C> v 列印出讯息,例如送信的地点、状态等等。 (verbose)
NYBe"/}GS n 不读入 mail.rc 设定档。
KOjluP s 邮件标题。
gQ37> c cc 邮件地址。
0rD#s{? b bcc 邮件地址。
mjb{~ NbtGlSs8 范例:
AoBoFZLl3 9)`amhf> 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
}g`Gh|C mail
user1@email.address
m0|K#^ mail
user1@email.address user2
?^ZXU0IkP jM~Bu.7 i6 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
TyF{tuF 2i\Q@h mail -s 标题 -c user1 user2 < mail.txt
17}$=#SX V/PAi.GZ
指令:mesg
Py|;kF~![ 使用权限 : 所有使用者
dpwD8Q<
U !@G)$g=< 使用方式 : mesg [y|n]
}j46L1T .WvlaPK 说明 : 决定是否允许其他人传讯息到自己的终端机介面
fXO_g .NJ|p=fy 把计 ?
9Bz0MUbrLl <l$P&jSF3 y : 允许讯息传到终端机介面上。
Vtb1[cnna n : 不允许讯息传到终端机介面上 。
n`(~OO 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
-4w%Iy rK1-Mu 例子 :
Z!6UW:&~7 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
?
-3\ mesg n
)RN<GW' 与 mesg 相关的指令有: talk,write,wall。
;QBh;jg4 名称:/etc/aliases
j!\dn!Xwt 使用权限:系统管理者
+4et7 使用方式: newaliases
%,\=s.~1 说明:
xRum*}|4 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
!KcWH9 whye)w /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
DP9LO_{ }`xdWY 参数:没有任何参数。 范例:
dAc ?O-~ # newaliases
2*[QZ9U[@ ~i ,"87$[ 下面命令会做相同的事,
]f8L:=c # sendmail -bi
lCJ6Ur; oFCgu{\kt 相关命令:
_X4!xbP mail, mailq, newaliases, sendmail
b9~A-Z 名称 : talk
3`*Kav>" 使用权限 : 所有使用者
k$N0lR4:p 48O~Jx, 使用方式 :
/c`^iPb ? }yfKU` talk person [ttyname]
7]Em, 说明 : 与其他使用者对谈
s"%lFA"- 4zjs!AK% 把计 :
5G[x}4U person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name xCXQ<77 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Ooc\1lX tIc 7:th 例子.1 :
PT'MNH >oGiIYq 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
O^Q,-=tA\ talk Rollaend
c6&Q^p|CF 0
Y>M=| 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
-fy9< B4h5[fPX 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
>|g?wC}V; talk
Rollaend@linuxfab.cx pts/2
:z&7W< _{4^|{>Pv fBhoGA{=g 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
!m;H@KR{ ml6u1+v5 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
Ag9?C* OGOND,/R?/ 名称 : wall
jZteooJG| 使用权限 : 所有使用者
)1
m">s4 E5</h"1 使用方式 :
lk3=4|?zsE wall [ message ]
OhVs#^ 使用说明:
]fBUT6 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
.fAv*pUzU ]p7jhd= 例子 :
0.TaXbi 15U(={ 传讯息"hi" 给每一个使用者 :
,ho3 wall hi
q{0R=jb 名称 : write
:|+Qe e 使用权限 : 所有使用者
oD9^ID+ $pyOn2} 使用方式 :
[P~hjmJ(y OsqNB'X write user [ttyname]
]QVNn?PA8 说明 : 传讯息给其他使用者
U75Jp%bL ]bZ(HC?KZr 把计 :
rHjq1-t FAsFjRS user : 预备传讯息的使用者帐号
-VxDNT}Tr ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
zFz10pH oGa^/:6L 例子.1 :
Hc^W%t~ tM4Cx 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
TX=yPq write Rollaend
T4)fOu3] nUS| sh 接下来就是将讯息打上去,结束请按 ctrl+c
!3X0FNGq D^Jk@<* 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
/FD5G7ES write Rollaend pts/2
?W>qUrZ qpIC{'A. 接下来就是将讯息打上去,结束请按 ctrl+c
ntFT>g{B !|ak^GE:(% 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
3ZEB T*g:#
^4 名称:kill
^D%FX!$ 使用权限:所有使用者
",6M)3{|c UT0){%2@ 使用方式:
[NMVoBvG u .f= te kill [ -s signal | -p ] [ -a ] pid ...
21hv%CF\9 kill -l [ signal ]
^XbU~3( 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
}}v9
`F 把计?
6AG`&'" 1#IlWEg -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
I/Jb!R ~ -p : 印出 pid , 并不送出信号
|a1{ve[ -l (signal) : 列出所有可用的信号名称
BTgG4F/) 范例:
jTO),
v:w b 5yW_Ozdh 将 pid 为 323 的行程砍掉 (kill) :
;OqB5qd kill -9 323
W-NDBP: Ym%xx!9 将 pid 为 456 的行程重跑 (restart) :
wE+${B03 kill -HUP 456
.*m>\>Gsgw J'$>Gk] 名称:nice
@)o^uU T 使用权限:所有使用者
fU=B4V4@ Mmpfto%i 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
_XCOSomL` >
pI;%' 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
hxQqa 0B y@0E[/O BauU{:Sh 把计?
C8
\5A8c M5gWD==uP -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
FEVEp --help 显示求助讯息
.o) `m9/ --version 显示版本资讯
C74a(Bk}H 范例:
/c
uLc^(X 将 ls 的优先序加 1 并执行 :
lpz2 m\ nice -n 1 ls
PRHCrHs xJ#d1[kzo 将 ls 的优先序加 10 并执行 :
J8mdoVt nice ls将 ls 的优先序加 10 并执行
SkmT`*v@ :POj6j/ 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
`BlI@6th x)(|[ 名称:ps
ep)>X@t 使用权限:所有使用者
y;s`P. 使用方式:ps [options] [--help]
~\J}Kqg 说明:显示瞬间行程 (process) 的动态
.l.a(_R 参数:
X5j1`t, ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
Djg,Lvhm -A 列出所有的行程
Na:w]r:y -w 显示加宽可以显示较多的资讯
,7<f9 EVY -au 显示较详细的资讯
"'D=,* -aux 显示所有包含其他使用者的行程
+HBd
%1 8F'x=lIO au(x) 输出格式 :
'&\kxNglJ h*-Pr8 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
z CvKDlL USER: 行程拥有者
zux{S;:? PID: pid
iyg*Xbmi~. %CPU: 占用的 CPU 使用率
%}%Qc6.H %MEM: 占用的记忆体使用率
Z]B~{!W1 VSZ: 占用的虚拟记忆体大小
|UX(+;n
RSS: 占用的记忆体大小
]*AR,0N& TTY: 终端的次要装置号码 (minor device number of tty)
{WYX~Mvvj STAT: 该行程的状态:
ZpnxecJUJ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
Za1QC;7 R: 正在执行中
K*~0"F>"0 S: 静止状态
cXKjrL[b T: 暂停执行
p,eTY[k? Z: 不存在但暂时无法消除
Ft&]7dT{W W: 没有足够的记忆体分页可分配
`\}v#2VJ <: 高优先序的行程
lhqg$lb N: 低优先序的行程
;C2K~8, L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
U|IzXQX( START: 行程开始时间
!O<)\)|g TIME: 执行的时间
"g1)f"pL COMMAND:所执行的指令
k7T`bYv 范例:
neLAEHV ps
"thdPZ PID TTY TIME CMD
Eea*s' 2791 ttyp0 00:00:00 tcsh
Dy:|g1> 3092 ttyp0 00:00:00 ps
FY#C.mL % ps -A
5yP\I+Fm PID TTY TIME CMD
)v.=jup[ 1 ? 00:00:03 init
MB]<Dyj, 2 ? 00:00:00 kflushd
8|\8O@ 3 ? 00:00:00 kpiod
a6uJYhS~ 4 ? 00:00:00 kswapd
|>dI/_' 5 ? 00:00:00 mdrecoveryd
=w{Z@S(ukz .......
?`PvL!' % ps -aux
lE4HM$p
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
_sTROd)Vh root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
)8$=C#qC[ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
^G}47( root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
rR(X9i root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
% ~H=sjg ........
u)+8S/ ) 名称:pstree
E?
;0)'h 使用权限:所有使用者
uFinv2Z' 使用方式:
|R/%D%_g pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
A;]}m8(* pstree -V
1=d6NX)B 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
\D*KGd]M0 参数:
62ws/8d6f -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Yp^rR }N -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
+[\FD; > 范例:
`T5W}p[6 pstree
]1#e#M]# Yfzl%wc init-+-amd
Ju1D
=b |-apmd
@~"h62=]
- |-atd
j~[z2tV |-httpd---10*[httpd]
H[U!%Z %pstree -p
3cK I init(1)-+-amd(447)
0tT(W^ho g |-apmd(105)
:&V h? |-atd(339)
Dv5D~on{ %pstree -c
#_^Lb]jkM init-+-amd
e#$]Y?, |-apmd
j i7[nY |-atd
Lr~=^{ |-httpd-+-httpd
ix)M`F%P3 | |-httpd
$QN"wL|| | |-httpd
wsI`fO^A8 | |-httpd
K;?m';z0 ....
w"-Lc4t+ 名称:renice
/<|%yE&KhJ 使用权限:所有使用者
U`,6 * MS "Q@ronP(~ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
-g*4(w ^:^9l1] 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
eg;~zv vqDu(6!2 把计?
,St#Vla $_"'&zQ' -p pid 重新指定行程的 id 为 pid 的行程的优先序
$P^q!H4D -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
FWrX3i -u user 重新指定行程拥有者为 user 的行程的优先序
chM%]|gey 范例:
1\
o59Y 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
0zmE>/O+ renice +1 987 -u daemon root -p 32
'YmIKIw L*xhGoC= 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
?PeJlpYzV s>7}zU] 名称:top
S9]'?| 使用权限:所有使用者
m
Bu nP$Ky1y G 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] v_+{'F
qouhuH_WtJ
说明:即时显示 process 的动态 Z'`<5A%;
M?Y;a5{
把计? ,8U&?8l
snE8 K}4
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s [=6]+V83M
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 y\4L{GlBM
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 )~)J?l3{
s : 安全模式,将交谈式指令取消, 避免潜在的危机 *2pt%eav
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Gp?a(-K5
n : 更新的次数,完成后将会退出 top [B\h$IcRv
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 xHvZV<#
fphv
范例: #+Ir>GU
显示更新十次后退出 ; #L=x%8B
top -n 10 e$<0
7Oc
bh,[ 3X%
使用者将不能利用交谈式指令来对行程下命令 : 4tRYw0f47
top -s k]F[>26k
AVlhNIr
将更新显示二次的结果输入到名称为 top.log 的档案里 : 4VJ-,Z
top -n 2 -b < top.log D=j-!{zB
BKCA<
名称:skill I0D(F
i
eI$oLl@
使用权限:所有使用者 _mqL8ho
)B"jF>9)[
使用方式: skill [signal to send] [options] 选择程序的规则 ]sf7{lVT
:%tU'w
说明: ?pW`cFLDHF
6iVxc|Ia
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 eVjBGJ=2e
n4;.W#\
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 }aa'\8
,>bh$|
一般参数: SA&Rep^
W,V:R
-f 快速模式/尚未完成 c69C
lk/n}bx
-i 互动模式/ 每个动作将要被确认 !#], hok8X
oR)Jznmi}
-v 详细输出/ 列出所选择程序的资讯 @Q)OGjaq
U6glp@s
-w 智能警告讯息/ 尚未完成 kyR:[+je
uw>Ba %5
-n 没有动作/ 显示程序代号 g1/:Q%R,
l%k\JY-
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 !`Fxa4i>
>K_(J/&p
-t 终端机代号 ( tty 或 pty ) [_R~%Yh+'E
,k +IPkN+
-u 使用者名称 CpUkCgg
[\^n=
-p 程序代号 ( pid ) h]IxXP?h[
1OGx>J6
-c 命令名称 可使用的讯号: |s7s6k)mm
^bGNq
X
以下列出已知的讯号名称,讯号代号,功能。 LM:vsG
BRw .]&/
名称 (代号) 功能/ 描述 y`<*U;xL
.5^cb%B*
ALRM 14 离开 ^n*)7K[
f%is~e~wc
HUP 1 离开 Uf:`
R/~p>apg8
INT 2 离开 y;35WtDVb
epA:v|S
KILL 9 离开/ 强迫关闭 (yH'{6g\
[^WC lRF
PIPE 13 离开 Fco`^kql.D
{{$Nqn,pH
POLL 离开 9g9HlB&Ze
F~,Mw8
PROF 离开 &Qf/>@ l}
A=$04<nP8!
TERM 15 离开 W>${zVu
%^?fMeI|Y
USR1 离开 Y@;CF
&C`Gg<
USR2 离开 E(*0jAvO[z
J?*1*h
VTALRM 离开 .yMEIUm
~k"=4j9
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 IB(6+n,6s
d?y4GkK
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 3(="YbZ
qz"}g/;?
TSTP 停止 /产生与内容相关的行为 xipU8'ac/
{JO^tI
TTIN 停止 /产生与内容相关的行为 S.mG?zbw
LGq'WU31:)
TTOU 停止 /产生与内容相关的行为 DF&(8NoX~
oK9( /v
STOP 停止 /强迫关闭 >
$O]Eu!
Z-$[\le
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 Q0)#8Rcm
uFX#`^r`
PWR 忽略 /在某些系统中会离开 ]tim,7s
y8d]9sX{
WINCH 忽略 Q{O+
Giid~e33
CHLD 忽略 Mc?Qx
^6jV_QM#
ABRT 6 核心 ^4y,W]JUDt
6,^>mNm
FPE 8 核心 kVuUjP6(c
fJ=0HNmX
ILL 4 核心 sSr&:BOsi
HNb/-e ,"
QUIT 3 核心 [NF'oRRD9s
v|Pv 03%?7
SEGV 11 核心 L{#IT.
7dN*lks
TRAP 5 核心 q?H|o(
3>3Kwc~E
SYS 核心 /或许尚未实作 'HO$C,1]
rExnxQ<e
EMT 核心 /或许尚未实作 *o]L|Vu
9-sw!tKx
BUS 核心 /核心失败 R$EW4]j
FX;QG94!
XCPU 核心 /核心失败 k}S :RK
goLL;AL
XFSZ 核心 /核心失败 @g|v;B|{
u/UrAqw
范例: W}nlRbN?
停止所有在 PTY 装置上的程序
nI[os
skill -KILL -v pts/* dSLU>E3g
;Y)w@bNt@
停止三个使用者 user1 , user2 , user3 bAdn &
skill -STOP user1 user2 user3 ov|d^)'
{5A2&
其他相关的命令: kill SDL7<ZaE
名称:expr \x\.
使用权限:所有使用者 Fq,N
### 字串长度 ddpl Pzm#
FbSa~uN
shell>> expr length "this is a test" ?KN:r E
14 0~E 6QhV:
### 数字商数 KHj6Tg;)
shell>> expr 14 % 9 6!7Pm>ml
5 m^Lj+=Z"
### 从位置处抓取字串 6517Km 4-
shell>> expr substr "this is a test" 3 5 M[Y4_$k<-
is is $@[)nvV\
### 数字串 only the first character =q
CF%~
shell>> expr index "testforthegame" e x6yW:tUG5
2 ,r+"7$
### 字串真实重现 Etnb3<^[t
shell>> expr quote thisisatestformela ?g}kb
thisisatestformela