linux常用命令
2<Ub[R 2rD`]neA 称:/etc/aliases
.qF@
}dO 使用权限:系统管理者
]y!|x_5c3 使用方式: 请用 newaliases 更新资料库
PZH]9[H 说明:
W^al`lg+y sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Dth<hS,2J ^=Up UB /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
7uxy<#Ar # newaliases
l=bB,7gL J;'?(xO3\ 下面命令会做相同的事,
sx(yG9 # sendmail -bi
hwkol W Gl}=Q7 相关命令:
B||^sRMX mail, mailq, newaliases, sendmail
:S?'6lOc( y]M/oH ” mail [返回]
4$ejJaE 名称:mail
"hpK8vQ UHweV:(|T 使用权限:所有使用者
8pt;'' sDWX} NV 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
_vvnxG!x& (zye
Ch 说明:
Y.jg
}oV mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
jw#'f%* 9 `J `( 参数:
s`GSc)AI i 忽略 tty 的中断讯号。 (interrupt)
l0[jepmpiT I 强迫设成互动模式。 (Interactive)
u`K+0^)T` v 列印出讯息,例如送信的地点、状态等等。 (verbose)
gwR ^Z{ n 不读入 mail.rc 设定档。
7P!/jawxb s 邮件标题。
u[PO'6Kzd c cc 邮件地址。
WB$Z<m: b bcc 邮件地址。
Vx-HW;, ]?mWnEi!z 范例:
o&gcFOM22 wxr93$v 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
)N`ia%p_] mail
user1@email.address
A^%z;( 0p mail
user1@email.address user2
A3yVT8 |~rDEv3 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
3"!2C,3c# )!p=0&z@{ mail -s 标题 -c user1 user2 < mail.txt
<k/'mBDk u|9^tHT> 指令:mesg
`;5UlkVZ5 使用权限 : 所有使用者
az0( 54M Og"50 - 使用方式 : mesg [y|n]
ObMsncn uoaF(F- 说明 : 决定是否允许其他人传讯息到自己的终端机介面
8uS1HE\% )^g}'V=vIr 把计 ?
K'N\"Y?> Yy>%dL y : 允许讯息传到终端机介面上。
JL2IVENWc n : 不允许讯息传到终端机介面上 。
duV|'ntr 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
tCtR(mG=A 7Dom[f 例子 :
[,|KVc=&H 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Rm)vY}v mesg n
NZ9`8&93 与 mesg 相关的指令有: talk,write,wall。
J'^BxN& 名称:/etc/aliases
Wky~ hm 使用权限:系统管理者
Vg6?a 使用方式: newaliases
W[j =!o 说明:
9j$
OU@N
8 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
H>;km$b + u =#LY$ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
(= uwx# ?GB($D=Y'& 参数:没有任何参数。 范例:
]n\WCU]0 # newaliases
Fov/?:f$ t<}'/
) 下面命令会做相同的事,
^=E4~22q # sendmail -bi
u#la+/
iN+p>3w^l 相关命令:
mcS/-DaN? mail, mailq, newaliases, sendmail
} +i
ZY\t 名称 : talk
o(C({]UO/ 使用权限 : 所有使用者
-(Taj[;[ R b\=\ 使用方式 :
^7F!>!9Ca 2,q^O3F talk person [ttyname]
qPH]DabpI 说明 : 与其他使用者对谈
)0fQ(3oOg peR=J7 把计 :
~ E>D0o person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name k;;?3)! ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
zUIh8cAoE UQ`%,D 例子.1 :
&FkKnz4IZ dGP*bMCT 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
L.l%EcW=, talk Rollaend
_BtppQIWv >:Xzv 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
/$&~0pk u)R>ozER 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
2frJSV ? talk
Rollaend@linuxfab.cx pts/2
)'DFDrY 3,3{wGvHHW /=,^fCCN 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
roj/GZAy" <MA!?7Z| 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
(RWZ[-;) ;wJLH\/ 名称 : wall
;7tOFsV 使用权限 : 所有使用者
Rj+}L ~" ,'={/)c< 使用方式 :
~;wSe[ wall [ message ]
1K09iB 使用说明:
ElqHZ$a? wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
3f
eI OtY.s\m y 例子 :
>`'#4!}G5j ZV_mP'1* 传讯息"hi" 给每一个使用者 :
RvYew!n wall hi
0wAZ9AxA{ 名称 : write
ruB&&C6)v 使用权限 : 所有使用者
dH#S69> =qCVy:RL4 使用方式 :
[3t
N-aj[ Drk9F"J write user [ttyname]
hY-;Wfg 说明 : 传讯息给其他使用者
|KplbU0iC H,:Cg:E/^ 把计 :
b;9v.MZ4>g 7{v0K"E{ user : 预备传讯息的使用者帐号
@T?:[nPf&F ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
R4E0avt
zRsT6u 例子.1 :
FspI[gUN, J);1Tpm 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
Rk2ZdNc\ write Rollaend
\EUc17 g]X4)e] 接下来就是将讯息打上去,结束请按 ctrl+c
c c
,] :==kC672 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
]bhzB write Rollaend pts/2
5(2g*I I;uZ/cZ|/ 接下来就是将讯息打上去,结束请按 ctrl+c
e>uV8!u j%]i#iqF 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
s:jr/ j! !i.`m-J* 名称:kill
7bQ#M )} 使用权限:所有使用者
K )KE0/n x%vt$dy*8 使用方式:
@D[;$YEk 3ZC to[Y kill [ -s signal | -p ] [ -a ] pid ...
',*I=JW; kill -l [ signal ]
(^eE8j/K 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
HPVT$EJ 把计?
.7+_ubj&, wV W+~DJ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
$-5iwZ -p : 印出 pid , 并不送出信号
8^c|9ow -l (signal) : 列出所有可用的信号名称
xfos>|0N 范例:
5t:4% pc^(@eD 将 pid 为 323 的行程砍掉 (kill) :
3M+hjc. kill -9 323
75Jh(hd( <IK8Ucp 将 pid 为 456 的行程重跑 (restart) :
DK*2d_ kill -HUP 456
9i,QCA v;?t=}NwF 名称:nice
YpL{c* M 使用权限:所有使用者
m-*du( 6LNm>O 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
9);a 0}*5 &q``CCOF& 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
D
GOc! hh
<=D.u DWm$:M4z 把计?
y9Yh%M( e,`+6qP{ -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
Z^>3}\_v --help 显示求助讯息
wH{lp/ --version 显示版本资讯
c 6E@+xU 范例:
/bfsC&
3 将 ls 的优先序加 1 并执行 :
KB*[b nice -n 1 ls
d[-w&[iy 1wE~dpnx 将 ls 的优先序加 10 并执行 :
E-.M+[ nice ls将 ls 的优先序加 10 并执行
'S@h._q QmbD%kW`3 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
tA}O'x W O|2x0K 名称:ps
4=*VXM/ 使用权限:所有使用者
&wK%p/? 使用方式:ps [options] [--help]
CIj3D" 说明:显示瞬间行程 (process) 的动态
c<pr1g 参数:
[M
Z'i/ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
IUbYw~f3 -A 列出所有的行程
+ :iNoDz -w 显示加宽可以显示较多的资讯
:HMnU37m W -au 显示较详细的资讯
A5!f# -aux 显示所有包含其他使用者的行程
8yB ;u!>( QQ au(x) 输出格式 :
ran
Q_\ l)a]V]oQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
$MB56]W8 USER: 行程拥有者
t9Pu:B6 PID: pid
?J%$;"q %CPU: 占用的 CPU 使用率
%I&Hx<Hj %MEM: 占用的记忆体使用率
0)yvyQ5 VSZ: 占用的虚拟记忆体大小
nd'zO#"m? RSS: 占用的记忆体大小
P]j{JL/g& TTY: 终端的次要装置号码 (minor device number of tty)
M:Xswwq STAT: 该行程的状态:
iN<& D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
_Bb/~^ R: 正在执行中
Y.[^3 S: 静止状态
$-jj%x\} T: 暂停执行
EG@*J*|S Z: 不存在但暂时无法消除
aoI{<,( W: 没有足够的记忆体分页可分配
d_1w
9FA <: 高优先序的行程
EoIP#Cnd1 N: 低优先序的行程
?9OiF-:n L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
0Evmq3,9 START: 行程开始时间
{-7];e TIME: 执行的时间
Q$iv27 COMMAND:所执行的指令
)O#>ONm^ 范例:
E`u=$~K ps
x AkM_< PID TTY TIME CMD
R`!x<J 2791 ttyp0 00:00:00 tcsh
^r}^- 3092 ttyp0 00:00:00 ps
~ NKw}6 % ps -A
.v/s9'lB PID TTY TIME CMD
~
9^1m 1 ? 00:00:03 init
]wER&/v" 2 ? 00:00:00 kflushd
'7u#uL,pa1 3 ? 00:00:00 kpiod
[ -{L@ 4 ? 00:00:00 kswapd
F?T3fINR 5 ? 00:00:00 mdrecoveryd
h=EJNz>U .......
)0yY|E\ % ps -aux
`5=0f}E USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
e~i
?E root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
7K
{/2k root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
t
/EB
y"N# root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
%kKe"$)0 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
FC.y%P, ........
l`[*b_
Xt 名称:pstree
/V$[M 使用权限:所有使用者
UStZ3A' 使用方式:
^ :6v-
Yx pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
]+
XgH#I pstree -V
" <m)Fh; 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
vz#rbBY*; 参数:
)?K3nr -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
df&d+jY -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
:G9.}VrU 范例:
^7.864 pstree
[NQ`S
~_: >]&LbUW+ init-+-amd
4%KNHeaN |-apmd
k$i76r |-atd
|9?67- |-httpd---10*[httpd]
c03A_2% %pstree -p
4 "@BbVYR init(1)-+-amd(447)
.%M=dL> |-apmd(105)
% )i?\(/ |-atd(339)
p*-o33Ve %pstree -c
T,TKt% init-+-amd
_$9<N5F.,o |-apmd
Q*^zphT |-atd
>C*q
|-httpd-+-httpd
1WfN_JKB5 | |-httpd
;B:'8$j$ | |-httpd
i(a2FKLy | |-httpd
z5=&qo|f9l ....
Yih^ZTf]O? 名称:renice
xD8x1- 使用权限:所有使用者
n,wLk./` dp&4G6Y<A 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
V2^(qpM! {I@@i8)] 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
yCf*ts1 Y@Lv>p 把计?
BikmAa 6*A
S4l -p pid 重新指定行程的 id 为 pid 的行程的优先序
"c\ZUx_i6 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
|FS79Bv -u user 重新指定行程拥有者为 user 的行程的优先序
OU]!2[7c 范例:
v< xe(dC 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
j;=+5PY renice +1 987 -u daemon root -p 32
MV-fDqA( S@k4k^Vg 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
@-NdgM<
|4\.",Bg 名称:top
u#/Y<1gn 使用权限:所有使用者
%F3M\)jU %A,4vLe~6 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] {-PD3 [f"
}mxy6m ,
说明:即时显示 process 的动态 17a'C
CKNC"Y*X
把计? )|x)KY
c]P`U(q9TV
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s Zoh2m`6
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 IR;lt 3
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 J-:\^uP
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ReE6h\j
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Q$iYhR
n : 更新的次数,完成后将会退出 top |O%`-2p]p
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 /VgA}[%y
Sy6Y3 ~7
范例: 5)wz `OS
显示更新十次后退出 ; razVO]]E
top -n 10 q=M!YWz
S#/[>Cb
使用者将不能利用交谈式指令来对行程下命令 : ^cz#PNB
top -s *8CI'UX
O3bo3Cm$
将更新显示二次的结果输入到名称为 top.log 的档案里 : c_s=>z
top -n 2 -b < top.log r{pTMcDS
C&^"]-t
名称:skill s(w6Ldi
8`EzvEm
使用权限:所有使用者 $VvL
U!r2`2LY
使用方式: skill [signal to send] [options] 选择程序的规则 <S:SIaf0
ryy".'v
说明: zF[kb%o
YLVIn_\}
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 @/@#,+
@MWrUx
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 6D_3Hwrs
I dgha9K
一般参数: [8EzyB>fH
'2vZ%C$
-f 快速模式/尚未完成 ypM0}pdvTp
f
wWI2"}
-i 互动模式/ 每个动作将要被确认 {9q~bt
ykrb/j|rK
-v 详细输出/ 列出所选择程序的资讯 IP~*_R"bM
]x8^s
-w 智能警告讯息/ 尚未完成 Kr3L~4>
YDE;mIW
-n 没有动作/ 显示程序代号 M.O3QKU4
l ~kxt2&
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 (, Il>cR4
vn}:$|r$J
-t 终端机代号 ( tty 或 pty ) l`G .lM(
Zg"g/I.+d
-u 使用者名称 R=yn4>I
~4S@kYe{3K
-p 程序代号 ( pid ) _5 Zhv-7
M<hX!B
-c 命令名称 可使用的讯号: -.~Dhk
x9)^0Hbo
以下列出已知的讯号名称,讯号代号,功能。 $-H#M]Gq
P!q!+g
名称 (代号) 功能/ 描述 |j($2.
}SIUsh'
ALRM 14 离开 E96FwA5
4loG$l+a1
HUP 1 离开 8XZS BR(Z
PzbLbH8A
INT 2 离开 *^e06xc:
pJ!:mt
KILL 9 离开/ 强迫关闭 0Ah'G
49q\/
PIPE 13 离开 FJDx80J
Ea#wtow|-
POLL 离开 [LDsn]{
2{:bv~*I0F
PROF 离开 H g(%gT
%;$zR}
TERM 15 离开 8R<2I1xn2
'yd<<BM`
USR1 离开 4+qoq$F</
>_bH,/D'
USR2 离开 T{-<G13
kXK D>."E*
VTALRM 离开 ltRvNXx+]
[(Ss^?AJW
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 FMMQO,BU
.G8+D%%.
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 T<1*R>el
{,61V;Bpm
TSTP 停止 /产生与内容相关的行为 [9dW9[Z+!
is@8x!c
TTIN 停止 /产生与内容相关的行为 h8OmO5/H
1;Bgt v$
TTOU 停止 /产生与内容相关的行为 w9h`8pt
C\#E1\d
STOP 停止 /强迫关闭 s|L}wtc
_P9Th#UAg
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 I*8i=O@0T
M|IR7OtLV
PWR 忽略 /在某些系统中会离开 VX#4Gh,~N
7~(|q2ib
WINCH 忽略 fR[kjwX)<1
naE;f)
CHLD 忽略 sTeW4Hnp
SKO*x^"eU
ABRT 6 核心 ,?s3%<\2
:=9?XzCC
FPE 8 核心 ^UTQcm
JtA
tG%
ILL 4 核心 P?D;BAP2
}Jfi"L
QUIT 3 核心 Ch;C\H:X
8Ac5K!
SEGV 11 核心 KtH-QQDluj
nHiE$Y
TRAP 5 核心 mT enzIp
=To}yJ#
SYS 核心 /或许尚未实作 4E\Jk 5co,
X633.]+
EMT 核心 /或许尚未实作 !##OQ
x`:zC#
BUS 核心 /核心失败 G1K72M}CW
B"sQ\gb%Q
XCPU 核心 /核心失败 6yZ!K
ON"F
h'?
XFSZ 核心 /核心失败 8:s"
^YLN
^0"W/
范例: M;s r1C
停止所有在 PTY 装置上的程序 Qry?h*p+`
skill -KILL -v pts/* gG5@ KD6k
~:8}Bz2!5
停止三个使用者 user1 , user2 , user3 s az<NT
skill -STOP user1 user2 user3 Tp7*T8
3@xn<eu
其他相关的命令: kill [wKnJu
名称:expr kC~\D?8E=
使用权限:所有使用者 :f1Q0klwP
### 字串长度 (vL-Z[M!
H#yBWvj*H
shell>> expr length "this is a test" v(PwE B]
14 dG5p`N%
### 数字商数 ^B)iBfZ
shell>> expr 14 % 9 .8[Uk^q
5 /q.iUwSK>
### 从位置处抓取字串 E=PmOw7b
shell>> expr substr "this is a test" 3 5 w, uyN
is is .7lDJ2
### 数字串 only the first character rDr3)*H?0
shell>> expr index "testforthegame" e .v<Q-P\8/
2 ~ti{na4W<
### 字串真实重现 JQSp2b@'H
shell>> expr quote thisisatestformela 7&ty!PpD
thisisatestformela