linux常用命令
]CIZF, ;<yVJox 称:/etc/aliases
8(Y=MW;g 使用权限:系统管理者
/`Wd+ 使用方式: 请用 newaliases 更新资料库
Hx]{'? 说明:
G$buZspL'd sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
}ST0?_0F* yv!,iK9 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
=>7\s}QZ # newaliases
bC mhlSNi aF'9&A;q 下面命令会做相同的事,
@$( /6]4p # sendmail -bi
+y Yv"J 8'kA",P 相关命令:
B?xu!B, mail, mailq, newaliases, sendmail
ZoiCdXvTN 9g*MBe: ” mail [返回]
R{"7q:- 名称:mail
|F'k5Lh 1wqsGad+; 使用权限:所有使用者
|5}~n"R5 q&- A}] 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
0*.>
>rI :K)=Hf2y 说明:
9N[vNg<n mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
*<**rY* Hkv4t5F 参数:
mmVx',k i 忽略 tty 的中断讯号。 (interrupt)
z
<"7vR I 强迫设成互动模式。 (Interactive)
h4GR:` v 列印出讯息,例如送信的地点、状态等等。 (verbose)
2Q,8@2w; n 不读入 mail.rc 设定档。
:K3nJ1G& s 邮件标题。
c9dH ^t c cc 邮件地址。
~la=rh3 b bcc 邮件地址。
Wh,{|R[ 4^KoHeM6 范例:
cJ%u&2J_ .+H8c. 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
='7n mail
user1@email.address
USnKj_e mail
user1@email.address user2
@
P=eu3 l_!.yV{ 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
A;sd rA &B^vHH mail -s 标题 -c user1 user2 < mail.txt
eqSCNYN +McKyEa 指令:mesg
1D fB9n 使用权限 : 所有使用者
$FgpFxz;
.bOueB- 使用方式 : mesg [y|n]
}[u 9vZL dJ#.
m 说明 : 决定是否允许其他人传讯息到自己的终端机介面
!Cj1:P :zC'jceO 把计 ?
m<BL/7 1GY[1M1^ y : 允许讯息传到终端机介面上。
Musz+<] n : 不允许讯息传到终端机介面上 。
Qr;es,f 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
"Yn<]Pa_ 62}bs/% 例子 :
&Z+a ( 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
)>ed6A1 mesg n
[|2uu."$ 与 mesg 相关的指令有: talk,write,wall。
@NXGVmY1} 名称:/etc/aliases
$J#}3;a 使用权限:系统管理者
\<VwGbzFi 使用方式: newaliases
?S8cl7;+ 说明:
Y962rZ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
DU7kZ o_gpBaWD /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Lp%V$' s
&v<5W2P 参数:没有任何参数。 范例:
/h0<0b?i # newaliases
fV3!x,H g
S;p:: 下面命令会做相同的事,
$&m^WrZaY # sendmail -bi
nm*!#hx $7aR f' 相关命令:
^sq3@*hCw mail, mailq, newaliases, sendmail
Kg>+5~+E?q 名称 : talk
L_jwM^8 使用权限 : 所有使用者
_Bh-*l?K> o(~>a 使用方式 :
piO+K!C0n: Ifu$p]~z$ talk person [ttyname]
yov:JnWo 说明 : 与其他使用者对谈
[^W4%S J1"u,H F*( 把计 :
"2CiW6X[M person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ?|+bM` ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
CScM;U=
'TV^0D" 例子.1 :
"HVwm>qEi K+H?,I 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
amGQ!$]
%# talk Rollaend
T}P|uP /'G'GQrr 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
(@M=W.M# H(]lqvO 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
#l-,2C~ talk
Rollaend@linuxfab.cx pts/2
']f]:X;6w T~%5^+[h gsc*![N 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
/w!b2KwV
nP?(9;3* 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
0(3t# G4s!q1H 名称 : wall
*E.{i
使用权限 : 所有使用者
(EUX>IJ K;-:C9@ 使用方式 :
;oC85I wall [ message ]
iTbmD 使用说明:
,^|+n()O wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
]-)qL[Q
W1y,.6 例子 :
R]/F{Xs ^k^%w/fo 传讯息"hi" 给每一个使用者 :
b_Ba0h= wall hi
I]Wb\&$ 名称 : write
)TyL3Z\>( 使用权限 : 所有使用者
D2>EG~xWq )sB`!:~HjP 使用方式 :
"C=HBJdYB5 u[ s+YGS write user [ttyname]
\{G6!dV|S 说明 : 传讯息给其他使用者
*kL1r
w6 5.VA1 把计 :
7=T0Sa*; 1y_{#,{> user : 预备传讯息的使用者帐号
u
bP2ws ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
ClVMZ 43:~kCF[s 例子.1 :
sj. eJX"z Um15@p; 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
0,m*W?^31 write Rollaend
yQ+#Tlji m98k/w_ 接下来就是将讯息打上去,结束请按 ctrl+c
EE&~D~yHUL yYdXAenQ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
,)GCg@7B write Rollaend pts/2
$z@e19g T V%ykHo 接下来就是将讯息打上去,结束请按 ctrl+c
LAf!y"A# 9S6vU7W 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Fw"~f5O s/sH", 名称:kill
LC[,K 使用权限:所有使用者
M?$-u \|j`jsq 使用方式:
a+weBF#Z PU?kQZU~) kill [ -s signal | -p ] [ -a ] pid ...
kHz3_B9[ kill -l [ signal ]
iyH<!>a 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
rIge6A>I 把计?
sd8o&6 51;(vf -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
do=VPqy -p : 印出 pid , 并不送出信号
]X?+]9Fr -l (signal) : 列出所有可用的信号名称
s o~p+] 范例:
f^%vIB ~[ {,s:vPoiA 将 pid 为 323 的行程砍掉 (kill) :
'Q(A5zfN]Y kill -9 323
*A,=Y/ *GRhZ~U 将 pid 为 456 的行程重跑 (restart) :
Ju+@ROZ kill -HUP 456
yg\A&0I O%c6 vp7 名称:nice
~~5kAY- 使用权限:所有使用者
8%`Sx[ gdCU1D\ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
{_[l,tdZ &,$A7: 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
gs'bv#4yd @4$F%[g
h O IewG5O 把计?
z+-k4 Z[({; WtF -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
7)_0jp~2 --help 显示求助讯息
}E/L: --version 显示版本资讯
sUbZVPDr 范例:
RE"}+D 将 ls 的优先序加 1 并执行 :
gscsB4< nice -n 1 ls
ZklidHL'); wau81rSd 将 ls 的优先序加 10 并执行 :
79x^zqLb nice ls将 ls 的优先序加 10 并执行
*^.b}K% -BoN}xE4 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
I}k!i+Yl B[$KnQM9Y 名称:ps
o~iL aN\+ 使用权限:所有使用者
})!n1kt 使用方式:ps [options] [--help]
ARU,Wtj# 说明:显示瞬间行程 (process) 的动态
e2B~j3-?z 参数:
j./bVmd. ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
>Q+EqT -A 列出所有的行程
|qbJ]v! -w 显示加宽可以显示较多的资讯
k+i}U9c" -au 显示较详细的资讯
NqF-[G< -aux 显示所有包含其他使用者的行程
mup3ua]! h{PLyWH au(x) 输出格式 :
ojIh;e 4&|9304<H USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
"lmiGR*u USER: 行程拥有者
5utj$ha2 PID: pid
gWWy!H %CPU: 占用的 CPU 使用率
z6{0\#'K %MEM: 占用的记忆体使用率
v"$; aJ VSZ: 占用的虚拟记忆体大小
&kO4^ A RSS: 占用的记忆体大小
Xq)'p8C? TTY: 终端的次要装置号码 (minor device number of tty)
>nr1|2 STAT: 该行程的状态:
{g
)kT_ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
Vq<|DM3z< R: 正在执行中
0q`'65 lx S: 静止状态
2RE }l=h5 T: 暂停执行
le[5a=e( Z: 不存在但暂时无法消除
t}oxHEa V W: 没有足够的记忆体分页可分配
&12aI|u^< <: 高优先序的行程
l0@$]76cX; N: 低优先序的行程
y|lP.N/ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
UoKBcarm START: 行程开始时间
vNtbb]')m TIME: 执行的时间
+ZZiZ&y COMMAND:所执行的指令
ZcdS?Z2k 范例:
3G>E>yJ ps
;G\rhk PID TTY TIME CMD
\h0e09& I 2791 ttyp0 00:00:00 tcsh
A6UtpyS*' 3092 ttyp0 00:00:00 ps
)?TJ{'m % ps -A
7NXT.E~2 PID TTY TIME CMD
GzR;`,_O/ 1 ? 00:00:03 init
-#Wc@\; 2 ? 00:00:00 kflushd
~O^_J) 3 ? 00:00:00 kpiod
h2BD?y 4 ? 00:00:00 kswapd
Bo~wD|E2 5 ? 00:00:00 mdrecoveryd
4< H-ol .......
[R Ch7FE23 % ps -aux
c2F`S1Nu< USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
I}8F3_b,# root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
UHCx}LGe root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
U9k}y root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
~I^]O \? root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
6"=e+V@ ........
%
vP{C 名称:pstree
g@EKJFjl 使用权限:所有使用者
z&t6,0q`5 使用方式:
`86b pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
TLV)mCZ pstree -V
T!*7G:\f" 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
ev@1+7( 参数:
rB7(&(n>^ -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
i$NnHj| -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
dm 2_Fj 范例:
K8RloDjk_A pstree
$qEJO=v -51L!x}1c init-+-amd
}=L
>u>cP |-apmd
uC}YKT>V7 |-atd
Cy2X>Tl"<E |-httpd---10*[httpd]
\o3i9Q9C %pstree -p
(<<eHf,@ init(1)-+-amd(447)
+22[ h@ |-apmd(105)
nrxN_0 R% |-atd(339)
CRx:3u!: %pstree -c
M,{F/Yu init-+-amd
:g\qj? o |-apmd
9c?izp A |-atd
S_WY91r |-httpd-+-httpd
]O \6.>H | |-httpd
L_A|
| |-httpd
']rh0? | |-httpd
:@3d ....
"vJADQ4F 名称:renice
Nyo6R9^ 使用权限:所有使用者
vLC&C-f zzx4;C",u 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
0-#ct1- 9wwvh'T&NK 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
G.N3R I2/wu(~> 把计?
E7D^6G&i f2Slsl; -p pid 重新指定行程的 id 为 pid 的行程的优先序
C[Fh^ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
zZ wD)p?_g -u user 重新指定行程拥有者为 user 的行程的优先序
CkflEmfe 范例:
#&/*ll) 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
-^Lj~O renice +1 987 -u daemon root -p 32
:kUH>O yZ P+ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
|_rj12.xo tJn2:}-s 名称:top
+u
Lu.-N 使用权限:所有使用者
#z~oc^J^T z/TZOFaM 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] M6I1`Lpf
ae<KUThm.
说明:即时显示 process 的动态 1`uIjXr(
_Yhpj}KZ
把计? un\^Wmbw
:I7MP
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ~Ch`A@=5
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 1jF}g`At
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 4+~+`3;~v
s : 安全模式,将交谈式指令取消, 避免潜在的危机 yA_d${n
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 HW d,1
n : 更新的次数,完成后将会退出 top D"Xm9
(
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 [|>.iH X
C6Mb(&
范例: mPu5%%
显示更新十次后退出 ; {jl4`
top -n 10 ^aC[ZP:
fvx0]of
使用者将不能利用交谈式指令来对行程下命令 : V&>7i9lEz
top -s y^XwJX-f
eu4x{NmQ
将更新显示二次的结果输入到名称为 top.log 的档案里 : hN} X11
top -n 2 -b < top.log vrbS-Z<S9
~<eiWDf
名称:skill J2R<'(
m1<B6*iG"
使用权限:所有使用者 +:t1P V;l
Fivv#4YO
使用方式: skill [signal to send] [options] 选择程序的规则 #8RQ7|7b|
Zf"AqGP
说明: Nhf!;>
'"TBhisky
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 Ff,M~zn
wVPq1? 9
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 Gq{v)iN
;aF / <r
一般参数: IKU-
@fY!@xSf
-f 快速模式/尚未完成 wS5hXTb"
Soa.thP
-i 互动模式/ 每个动作将要被确认 Wm
A:"!~M
x88$#N>Q5
-v 详细输出/ 列出所选择程序的资讯 l|&nGCW
z(]*'0)P
-w 智能警告讯息/ 尚未完成 %1 v)rg
y
N7E[wOP
-n 没有动作/ 显示程序代号 s4Wk2*7Mq
0 #q_LB
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 h{! @^Q
mrJQB I+
-t 终端机代号 ( tty 或 pty ) 5P! ZJ3C
m}XI?[!s
-u 使用者名称 XJlun l)(K
Jd%#eD*k9
-p 程序代号 ( pid ) V^0*S=N
$'&5gFr9
-c 命令名称 可使用的讯号: vxwctJ&
}:BF3cH> 0
以下列出已知的讯号名称,讯号代号,功能。 /Ly%-py-$
ctCfLlK
名称 (代号) 功能/ 描述 )~5`A*Ku
@wg*~"d
ALRM 14 离开 hcBfau; r
0VbZBLe
HUP 1 离开 &o8\ $A
&
=frt3
INT 2 离开 }ri"u;.R
\Lc
pl-;?
KILL 9 离开/ 强迫关闭 5~sJ$5<,
'UB<;6wy
PIPE 13 离开 eg}|%GG
2`lit@u&u
POLL 离开 hA"N&v~
o~}q@]]
PROF 离开 ,:#prT[P"
K.cNx
TERM 15 离开 <1@_MYo
&
IDF9B
USR1 离开 tf/ f-S
;Y~;G7
USR2 离开 2D-*Z=5^
0]WM:6 h
VTALRM 离开 R#r?<Ofw4
/,;9hx
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 )kkO:j
fg,~[%1
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 -1< }_*
R~tv?hP
TSTP 停止 /产生与内容相关的行为 UyJ5}fBJ
jR48.W
TTIN 停止 /产生与内容相关的行为 _2TIan}
ZSbD4
|_
TTOU 停止 /产生与内容相关的行为 TX*P*-'
8n'C@#{WV
STOP 停止 /强迫关闭 >i0FGmxH
+/Z:L$C6
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 P_qxw-s
\n`]QN
PWR 忽略 /在某些系统中会离开 ")LF;e
W0?yPP=.
WINCH 忽略 1di?@F2f
}vm17`Gfy
CHLD 忽略 nmgW>U0jZh
YZoH{p9f
ABRT 6 核心 FV^kOz
e%qMrR
FPE 8 核心 doe[f_\
xWV_Do)z
ILL 4 核心 5%W3&F6%
<H 3}N!
QUIT 3 核心
:Ct}||9/
ikY=}
SEGV 11 核心 a|fyo#L
;`xu)08a
TRAP 5 核心 mp5]=6~:m
O4}cv
SYS 核心 /或许尚未实作 ?!
kup
ly{~X
EMT 核心 /或许尚未实作 + W +<~E
Pajr`gU
BUS 核心 /核心失败 A5nu`e9&
\F<]l6E
XCPU 核心 /核心失败 *D\nsJ*g
lxxK6;r~>
XFSZ 核心 /核心失败 -nU_eDy
1r8]EaI
范例: H%/$Rqg
停止所有在 PTY 装置上的程序 ^%_LA't'R
skill -KILL -v pts/* &QE* V
VR_1cwKBM
停止三个使用者 user1 , user2 , user3 *EDzj&
skill -STOP user1 user2 user3 @c&)K^v8
$i3/||T,9
其他相关的命令: kill 9J1&g(?>-
名称:expr U2K>\/ -~
使用权限:所有使用者 I=b#tUBh8
### 字串长度 myXp]=Sb?
5[;^Em)C
shell>> expr length "this is a test" W`;E-28Dg
14 u2F
3>s
### 数字商数 7&+Gv6E
shell>> expr 14 % 9 20K<}:5t1
5 H{+U; 6b
### 从位置处抓取字串 NcPzmW{#;g
shell>> expr substr "this is a test" 3 5 aUJ&
is is .2u %;)S
### 数字串 only the first character QXF>xZ~
shell>> expr index "testforthegame" e N($j;<Q
2 qC]D9
A
### 字串真实重现 %u!#f<"[
shell>> expr quote thisisatestformela [OMKk#vW
thisisatestformela