linux常用命令
$yx34= IFY,j8~q 称:/etc/aliases
5Y&s+| 使用权限:系统管理者
txwTJScg 使用方式: 请用 newaliases 更新资料库
ZSTpA,+6 说明:
~xg1mS9d sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Q`}n;DV QAy9RQ0 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
KD~F5aS`[ # newaliases
NX(.Lw} '?~k`zK 下面命令会做相同的事,
L_rKVoKjt # sendmail -bi
a,U =irBA %8V/QimHU 相关命令:
Pl
}dA mail, mailq, newaliases, sendmail
Xx0}KJq~" _;BN;]. ” mail [返回]
4JHFn [% 名称:mail
oIM] f9FsZD 使用权限:所有使用者
hsQrHs'k ?eb2T`\0Q 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
a]465FY [N/[7Q/y 说明:
u= K?K mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
snBC +`- <'4DMZ-G 参数:
w%1B_PyDg i 忽略 tty 的中断讯号。 (interrupt)
*s6MF{Ds I 强迫设成互动模式。 (Interactive)
pAV}hB v 列印出讯息,例如送信的地点、状态等等。 (verbose)
T@]vjXdE^4\3^: sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
6kjBd3 Gr#p QE2; /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
UsYH#?|O ^G#=>&, 参数:没有任何参数。 范例:
%.b)%= # newaliases
;=Bf&hY& -Tk~c1I#` 下面命令会做相同的事,
;2}0Hr'| # sendmail -bi
6[c
LbT0 $+ZO{
( 相关命令:
tGD$cBE mail, mailq, newaliases, sendmail
;'pEzz?k" 名称 : talk
g?i_10Xlp 使用权限 : 所有使用者
`a2Oj@jP C>@~W(IE 使用方式 :
RN3w{^Ll .d9VV& talk person [ttyname]
(^9q7)n 说明 : 与其他使用者对谈
^#S }x-~>$:" 把计 :
7s5?^^ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name "F|OJ@M ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
-NZj : N :M ix*NCf 例子.1 :
r[M]2h '8k\a{t_z 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
z0HCmj9T talk Rollaend
mw`%xID* \J-O b 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
r#]gAG4t\
pp#Kb 2* 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
w]) bQ7) talk
Rollaend@linuxfab.cx pts/2
gA!-F}x$ &6MGPh7T Ajq;\-: 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
t22BO@gt74 n`6 8<ybl5 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
kd'qYh .^djB
x 名称 : wall
j>?H^fB 使用权限 : 所有使用者
_QBd3B% kzns:-a 使用方式 :
ss,t[`AV{ wall [ message ]
w_,. 使用说明:
uiE9#G wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
#JO#PV% cPI #XPM= 例子 :
}.2pR*W b3EW"^Ar 传讯息"hi" 给每一个使用者 :
xv7^ wall hi
YIfPE{, 名称 : write
CHWyy 使用权限 : 所有使用者
G+b $WQn2t ))G%C6- 使用方式 :
u;&`_=p
4m#i4 write user [ttyname]
<5[wP)K@ 说明 : 传讯息给其他使用者
=[t( [DG ,`/!0Wmt 把计 :
ui G7 Fdu0?H2TL user : 预备传讯息的使用者帐号
J%f5NSSU{6 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
5&2=;?EO `W?aq]4x5 例子.1 :
2;[75(l6|} >|@ /GpD 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
):LJ {.0R write Rollaend
IDE@{Dy #B`"B 接下来就是将讯息打上去,结束请按 ctrl+c
Cl<`uW3 q'+XTal
例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
vxr3|2` write Rollaend pts/2
:XBeGNI*# -hp,O?PM 接下来就是将讯息打上去,结束请按 ctrl+c
8,dCx}X 0NpxqeIDY 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
)/bt/,M&} _h@7>+vl~ 名称:kill
&sJpn*W 使用权限:所有使用者
<B$Lu4b@c 9S&6u1 使用方式:
Mk|h ><Q" '$1-A%e$1 kill [ -s signal | -p ] [ -a ] pid ...
;N ]ElwP kill -l [ signal ]
'D\(p,(Mt 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
-Q 6W`*8 把计?
:;{U2q+ qdZn9i -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
4^70r9hV9 -p : 印出 pid , 并不送出信号
fgn*3 pg -l (signal) : 列出所有可用的信号名称
.yi.GRk 范例:
xE;fM\7pu ]4uIb+(S 将 pid 为 323 的行程砍掉 (kill) :
rI;e!EW kill -9 323
vh?({A#>.E }6C&N8f 将 pid 为 456 的行程重跑 (restart) :
tPC8/ntP8 kill -HUP 456
.__X[Mzth3 b*dRNu 名称:nice
c0!bn b 使用权限:所有使用者
q*Ns]f'a ;13lu1 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
(.%:Q0i1 7ou2SL}k 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
|`qur5h` kc~Z1 !p&M,6 把计?
GsqrKrbJ k[Uc_= -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
Ik;~u8j1e --help 显示求助讯息
,D
;`t --version 显示版本资讯
,589/xTA@ 范例:
@YpA'cX7 将 ls 的优先序加 1 并执行 :
=,gss&J!! nice -n 1 ls
_Mq@58q' .HZYSY:X 将 ls 的优先序加 10 并执行 :
x*BfRj nice ls将 ls 的优先序加 10 并执行
1K^/@^ ^x4,}'( 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
,W{Qv<oo x3wyIio* 名称:ps
I+`~6 使用权限:所有使用者
Cd|V<BB9 使用方式:ps [options] [--help]
v{?9PRf\s 说明:显示瞬间行程 (process) 的动态
z?j~ 2K<4 参数:
I|Z5*iXqCm ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
fB -A 列出所有的行程
(zJ
TBI' -w 显示加宽可以显示较多的资讯
!R{L`T0 -au 显示较详细的资讯
']Y:f)i# -aux 显示所有包含其他使用者的行程
T`a [~: 3gv>AgG au(x) 输出格式 :
eg?vYW jn)~@~c USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
q G=`'%,m USER: 行程拥有者
2R2Z6} PID: pid
/=m=i%& # %CPU: 占用的 CPU 使用率
db.iMBki %MEM: 占用的记忆体使用率
wAk oX VSZ: 占用的虚拟记忆体大小
TKRu^KH9 RSS: 占用的记忆体大小
LsV!Sd TTY: 终端的次要装置号码 (minor device number of tty)
L8 R|\Bx STAT: 该行程的状态:
$D9JsUij D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
F P
mLost R: 正在执行中
3@ay9!Xq S: 静止状态
Gtg;6&2 T: 暂停执行
zUwz[^d<C Z: 不存在但暂时无法消除
%I6iXq# W: 没有足够的记忆体分页可分配
)vuxy <: 高优先序的行程
c?<FMb3] N: 低优先序的行程
rf)\:75 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
^>9M2O['!s START: 行程开始时间
n]9y Cr TIME: 执行的时间
J,{sRb% COMMAND:所执行的指令
'ky'GzX, 范例:
?1OS%RBF ps
l Fzb$k}_{ PID TTY TIME CMD
Q^fli"_: 2791 ttyp0 00:00:00 tcsh
E@t~juF! 3092 ttyp0 00:00:00 ps
,6a'x~y<r % ps -A
<bGSr23* PID TTY TIME CMD
zpg*hlv 1 ? 00:00:03 init
Vs{|:L+ 2 ? 00:00:00 kflushd
5Z`f)qE
3 ? 00:00:00 kpiod
5G\vV]RR& 4 ? 00:00:00 kswapd
G9Xrwk<g4 5 ? 00:00:00 mdrecoveryd
YdE$G>&em .......
d['BtVJ % ps -aux
i/)Uj-*G) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
/7P4[~vw root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
lXv{+ic root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
"V?U^L>SF root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
F5+f?B~?R? root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
@xO<~ ........
uiDR} 名称:pstree
47
m:z5; 使用权限:所有使用者
Dyt}"r\ 使用方式:
\n:' >:0X! pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
(MNbABZQ pstree -V
/A<L 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
WnUYZ_+e! 参数:
i'`Z$3EF) -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
XL} oYL]}& -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
=GnDiI 范例:
q1NAKcA<U pstree
RUO,tB|(_; 6I_W4`<VeZ init-+-amd
dk{yx(Ty |-apmd
->K*r\T |-atd
`;QpPSw + |-httpd---10*[httpd]
|3"'>*
J %pstree -p
BhdJ/C^ init(1)-+-amd(447)
FeSe^ ^dW |-apmd(105)
M@s2T|bQw |-atd(339)
L
F Z %pstree -c
g<}K^)x init-+-amd
uWi+F)GS^K |-apmd
:[\}Hn= |-atd
7CM<"pV |-httpd-+-httpd
.rN5A+By` | |-httpd
g-Z>1V | |-httpd
0[9A* | |-httpd
":eHR}Hzx ....
XY0Gjo0 名称:renice
}1d
6d3b 使用权限:所有使用者
HAN#_B1. `C] t2^ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
_j<46^ #Du1(R 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
7c4\'dt# z#bOFVg# 把计?
I^\YD9~=x ]hL 1qS -p pid 重新指定行程的 id 为 pid 的行程的优先序
"'II~/9 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
\f@PEiARG7 -u user 重新指定行程拥有者为 user 的行程的优先序
-i?!em'J 范例:
SaQ_%-p 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
oACuI|b renice +1 987 -u daemon root -p 32
JBi<TDm/ ,$W7Q 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
)Hl;9 SvDVxK 名称:top
GG%j+Ed 使用权限:所有使用者
H%Q@DW8~@ S37Bl5W 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] >!`T=(u!
/g@.1z1w
说明:即时显示 process 的动态 OYy %aA}h
&``;1/J*W
把计? cKFzn+
?sp
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s S-'iOJ1]
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
MCL5a@BX)
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ykX}T6T
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ~A [ Ju%R
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 bWUo(B#*I
n : 更新的次数,完成后将会退出 top c%Kv"Z%f
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 m3P%E8<Q#
$&k zix
范例: vL\wA_z"<H
显示更新十次后退出 ; XSn^$$S
top -n 10 GfL}f9
r$R(4q:
使用者将不能利用交谈式指令来对行程下命令 : (Dq3e9fX
top -s f>-OwL($P
QjF.U8
将更新显示二次的结果输入到名称为 top.log 的档案里 : OHM.xw*?.
top -n 2 -b < top.log &{/ `Q,
4N*Fq!k~
名称:skill l|U=(aA]h
.5KRi6
使用权限:所有使用者 "%-HZw%X
|giK]Z
使用方式: skill [signal to send] [options] 选择程序的规则 C03ehjT<
@j5W4HU
说明: VU}UK$JN
+Rxf~m(pV
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 x_bS-B)%Y:
D3(|bSca
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 JU/K\S2%,
|W`1#sP>
一般参数: Y@_ i32,r
4\dc
-f 快速模式/尚未完成 K(Zd-U
8O("o7~"
-i 互动模式/ 每个动作将要被确认 zrD$loaW.'
.+|G`*1<i
-v 详细输出/ 列出所选择程序的资讯 &6r".\;^
H_vOZ0
-w 智能警告讯息/ 尚未完成 p\b:uy6#
{cq; SH
-n 没有动作/ 显示程序代号 WI](a8bm
qW$IpuK
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 Y'%sA~g
AX<TkS@wjb
-t 终端机代号 ( tty 或 pty ) }!lLA4XRr
[$OD+@~A2
-u 使用者名称 vC&y:XMt,`
nPR_:_^
-p 程序代号 ( pid ) <P(d%XEl
QYyF6ht=!
-c 命令名称 可使用的讯号: 6wIv7@Y
kHm1aE<
以下列出已知的讯号名称,讯号代号,功能。 dkLc"$(O
9)e`mO*n
名称 (代号) 功能/ 描述 \,ir]e,1
Y>wpla[kUq
ALRM 14 离开 o5i?|HJ
r-H~MisL
HUP 1 离开 vA;ml$
!ck=\3pr
INT 2 离开 Y}(v[QGV
6V*@
{
KILL 9 离开/ 强迫关闭 leg@ia
TW:vL~L
PIPE 13 离开 k2,n:7
V.: a6>]
POLL 离开 = 14'R4:
]J5[ZVz
PROF 离开 U$ _?T-x
{~[H"h537t
TERM 15 离开 KFCuv15w,3
ORp6
USR1 离开 ZgZ}^x
.A&Ey5
USR2 离开 fn&gM\<-+(
1;080|,s
VTALRM 离开 xXp\U'Ad~~
* j:
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体
&5O
Czid"Ih-
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 T5Sa9\`>
[/6$P[
TSTP 停止 /产生与内容相关的行为 eP(%+[g
'g|%Ro/
TTIN 停止 /产生与内容相关的行为 gE`G3kgn{
Ej F< lw
TTOU 停止 /产生与内容相关的行为 lk1c2
05=O5<l
STOP 停止 /强迫关闭 tA3]6SIK@
0$":W
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 ](x4q
G5kM0vs6L
PWR 忽略 /在某些系统中会离开 R^f~aLl
nwOr
WINCH 忽略 {ylc2 1
J,4]du$
CHLD 忽略 |.*),t3
(w
gmj
a2F,
ABRT 6 核心 c zL[W2l
jf$6{zO6j
FPE 8 核心 X>wB=z5PXK
slDxsb
ILL 4 核心 /49PF:$?
#-
z*c
QUIT 3 核心 /FkLZm
agM.-MK
SEGV 11 核心 gTH1FR8$y
T9*\ITA
TRAP 5 核心 JihI1C
iL/(WAB_od
SYS 核心 /或许尚未实作 >XSe[K
V/"XC3/n*
EMT 核心 /或许尚未实作 ]BO{Q+?d2
L<1"u.3Z`}
BUS 核心 /核心失败 9bMM-~
!|9$
XCPU 核心 /核心失败 (W5E\hjJ
5#80`/w^U
XFSZ 核心 /核心失败 Q7N4@w;e
gK-: t
范例: Hm-+1Wx
停止所有在 PTY 装置上的程序 2t<
dCw
skill -KILL -v pts/* f"k?Ix\
e
t TA6 p
停止三个使用者 user1 , user2 , user3 N`8!h:yL
skill -STOP user1 user2 user3 i74^J +xk
wTf0O@``6H
其他相关的命令: kill UacN'Rat
名称:expr 6mep|![6
使用权限:所有使用者 f8#WT$Ewy
### 字串长度 2 8f-8B
5caYA&R
shell>> expr length "this is a test" N>/*)Frt
14 PUltn}M
### 数字商数 ^W_}Gd<-#Y
shell>> expr 14 % 9 o*qEAy?
5 FT[oM<M\Xd
### 从位置处抓取字串 0s$g[Fw<.
shell>> expr substr "this is a test" 3 5 V*=cNj
is is T9t9])
### 数字串 only the first character q[M7)-
shell>> expr index "testforthegame" e @7u4v%,wB
2 Jtd@8fVi
### 字串真实重现 ?Ih24>:D
shell>> expr quote thisisatestformela _xl#1>G^J
thisisatestformela