linux常用命令
j;<s!A#
WR9-HPF 称:/etc/aliases
b{CS1P 使用权限:系统管理者
5FVmk5z]d 使用方式: 请用 newaliases 更新资料库
rMoz+{1A 说明:
#~o<9O sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
uO( (Mg Cb6K!5[q] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
4nXemU= # newaliases
cpm *m"Nk b
w! 下面命令会做相同的事,
!<<wI'8 # sendmail -bi
BS2'BS8 w!b;.l 相关命令:
6st^-L mail, mailq, newaliases, sendmail
(~NR."s; NE><(02qW ” mail [返回]
k/M{2Po+ 名称:mail
3U!
l8N2 ? r}2JHvN 使用权限:所有使用者
sVH
w\_F$ l\TL=8u2c
使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
_=9m[
4,&f#=Y 说明:
,E8g~ZUY9 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
w^ X@PpP gX`C76P! 参数:
P\h1%a/D i 忽略 tty 的中断讯号。 (interrupt)
L/)eNZ I 强迫设成互动模式。 (Interactive)
ny0]Q@ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
psuK\s n 不读入 mail.rc 设定档。
xg4wtfAbS s 邮件标题。
Z?qc4Cg c cc 邮件地址。
5^{ I}Q b bcc 邮件地址。
mln%Rd6u/ ~lbm^S}- 范例:
F5+!Gb En Ev T"+;9/p 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
V"T5<HA9 mail
user1@email.address
YXg^t$ mail
user1@email.address user2
a_zf*; H|3CZ=U? 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
qykI[4 !>WW(n07Ma mail -s 标题 -c user1 user2 < mail.txt
?[.g~DK, WHr:M/qD 指令:mesg
r@Xh8
r; 使用权限 : 所有使用者
/px`FuJI( ")u)AQ 使用方式 : mesg [y|n]
uFG ;AY|
UoJMOw[ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
4rypT-%^ ; d 1 O+qS 把计 ?
b(A;mt#N 'EB5# y : 允许讯息传到终端机介面上。
3=_to7] n : 不允许讯息传到终端机介面上 。
kZQ$Iv+^( 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
5 HN,y YVO~0bX: 例子 :
Oe0dC9H 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
GFZx[*+%%z mesg n
%p};Di[V 与 mesg 相关的指令有: talk,write,wall。
D[(T--LLT 名称:/etc/aliases
h=_h,?_ 使用权限:系统管理者
h)T-7b 使用方式: newaliases
{#l@9r% 说明:
wtQ (R4 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
eD N%p tmC9p6% /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
%/wfY Rp* BtP*R,> 参数:没有任何参数。 范例:
_aOsFFB1KF # newaliases
u_S>`I 5O"wPsl 下面命令会做相同的事,
(<#Ns W!z # sendmail -bi
nmrdqSV C5oIl_t 相关命令:
|)Sx"B) mail, mailq, newaliases, sendmail
?Tk4Vt 名称 : talk
Alb5#tm:m 使用权限 : 所有使用者
Xu\2 2/Co o#F0 3 使用方式 :
3yIC@>&y(8 .:jfNp~jt talk person [ttyname]
_:l<4u! 说明 : 与其他使用者对谈
7 m!e\x8 "zN]gz=OV> 把计 :
QX393v! person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name >5-]Ur~ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
5P
< F <S
M%M? 例子.1 :
Yim` 3>#t ?28aEX_w 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
`'<&<P talk Rollaend
#-u?+Nk/ 9S[Tan| 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
s&*s9F xkebel`% 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
We,~P\g talk
Rollaend@linuxfab.cx pts/2
a"0'cgB} ni x1_Wo; awa$o 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
(s.S
n(E %z:;t 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
FqK2[]8 1(z+*`"WB& 名称 : wall
g:nU&-x#R 使用权限 : 所有使用者
k"2xyzt* Bx32pY 使用方式 :
: V#W
y wall [ message ]
ROHr%'owgL 使用说明:
o$DJL11E wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
r-a/vx# SggS8$a` 例子 :
3 _tO AyMMr_q 传讯息"hi" 给每一个使用者 :
Q!VPk~~( wall hi
O{9h'JU 名称 : write
l`R/WC 使用权限 : 所有使用者
KD7RI3'? RT)*H>| 使用方式 :
A@0%7xm @"#W\m8 write user [ttyname]
=/rIXReY 说明 : 传讯息给其他使用者
<99Xg_e \i=,[8t[r 把计 :
O`hOVHDQ r='"X#CmV/ user : 预备传讯息的使用者帐号
A8R}W= ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
[EJ[Gg0m y3K9rf 例子.1 :
~o+HAc`=v ccJ@jpXI 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
5"5D( write Rollaend
+M6qbIO ,"u-V<>6O 接下来就是将讯息打上去,结束请按 ctrl+c
+]Y&las |Y!#` 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
u5EHzoq write Rollaend pts/2
+QIM~tt)
5eO`u8M 接下来就是将讯息打上去,结束请按 ctrl+c
<m80e),~ {@9y%lmrh 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
HZdmL-1Z^+ ` =!&9o 名称:kill
V,($I'&/ 使用权限:所有使用者
>yn%.Uoh@ OZ1+` 4 v 使用方式:
PqIGc h@T}WZv kill [ -s signal | -p ] [ -a ] pid ...
oQ 5g0(J~ kill -l [ signal ]
m El*{] 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
jBV2].. 把计?
0CxQ@~ttl W 0Q-&4 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
tgDmHxB]0 -p : 印出 pid , 并不送出信号
hq/\'Z&!+P -l (signal) : 列出所有可用的信号名称
})Rmu."\ 范例:
50(/LV1 f8)D| 将 pid 为 323 的行程砍掉 (kill) :
pFGK-J kill -9 323
{>G\3|^D +}X?+Epm 将 pid 为 456 的行程重跑 (restart) :
> >wbyj8 kill -HUP 456
_n2PoE:5@P 0b=OK0n!% 名称:nice
FZnkQ 使用权限:所有使用者
xmTa$tR+ ,qpn4`zE~ 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
6z"fBF S)z
jfJR 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
` &|Rs Vf*!m~]Vqi Y*3qH] 把计?
1^R @X }
O9q$-8! -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
T.!GEUQ --help 显示求助讯息
g||{Qmr=1 --version 显示版本资讯
Xcicqywe? 范例:
()K%Rn 将 ls 的优先序加 1 并执行 :
tz&=v,_jc nice -n 1 ls
xzy7I6X ._=Pa)T 将 ls 的优先序加 10 并执行 :
NyJU?^f&v nice ls将 ls 的优先序加 10 并执行
Qwk z}s0D]$+x 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
4*lShkL !~m)_Q5?~ 名称:ps
,$mnD@) 使用权限:所有使用者
[L|H1ll 使用方式:ps [options] [--help]
1a| q&L`o 说明:显示瞬间行程 (process) 的动态
z*l3O~mZ 参数:
RERum ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
85m[^WGyh -A 列出所有的行程
n%3rv?m7 -w 显示加宽可以显示较多的资讯
:+/V -au 显示较详细的资讯
- P1OD)B -aux 显示所有包含其他使用者的行程
RhnSQe $f*N au(x) 输出格式 :
&'N{v@Oi) 5 r"`c USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
<O?iJ=$ USER: 行程拥有者
iT%aAVs PID: pid
234OJ? %CPU: 占用的 CPU 使用率
e4y dn %MEM: 占用的记忆体使用率
5 1@V""m VSZ: 占用的虚拟记忆体大小
8V;@yzIha RSS: 占用的记忆体大小
K\nN2y TTY: 终端的次要装置号码 (minor device number of tty)
4Ucg<Z&% STAT: 该行程的状态:
J i :2P* D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
IwKhun R: 正在执行中
1<fS&)^W S: 静止状态
-f#0$Z/0 T: 暂停执行
7UejK r Z: 不存在但暂时无法消除
{xW?v; W: 没有足够的记忆体分页可分配
?5Wj y <: 高优先序的行程
#gMMhB= N: 低优先序的行程
n&D<l '4 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
ZvpcjP START: 行程开始时间
,fpu@@2 TIME: 执行的时间
U,LW(wueT COMMAND:所执行的指令
hq6fDRO/4 范例:
/WRS6n ps
#25Z,UU PID TTY TIME CMD
Ah;2\0|t 2791 ttyp0 00:00:00 tcsh
4[
M!x 3092 ttyp0 00:00:00 ps
9AD`,]b % ps -A
&8_]omuNV PID TTY TIME CMD
OKNA36cU' 1 ? 00:00:03 init
7"2L|fG 2 ? 00:00:00 kflushd
s:7^R-"
3 ? 00:00:00 kpiod
+wXrQV
4 ? 00:00:00 kswapd
KoRJ'WW^ 5 ? 00:00:00 mdrecoveryd
K:Wxx" .......
G+stt(k: % ps -aux
n1 =B USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
U":hJ*F) root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
t
9&xk?%{ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
:tp2@*]9Z root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
J0*hJ-/u root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
S_/9eI~X ........
X^ckTIdR 名称:pstree
dqnH7okZ 使用权限:所有使用者
dF:@BEo 使用方式:
{YC!pDG pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
'MRvH
lCM pstree -V
-G e5gQ= 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
@X4Ur+d 参数:
#qrZ(,I@n -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Xf!@uS6<X -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
gKeqf-UWKJ 范例:
fuSfBtLPR# pstree
ZQXv-" GmP)"@O](; init-+-amd
S-}MS" |-apmd
u.sF/T=6f |-atd
>J[Bf9)> |-httpd---10*[httpd]
#"-?+F=rk %pstree -p
D9,609w init(1)-+-amd(447)
to,DN2rN |-apmd(105)
w`=_|4wFw |-atd(339)
Gdmh#pv %pstree -c
x=T`i-M init-+-amd
JBfDz0P |-apmd
(MhC83|? |-atd
TG7Ba[% |-httpd-+-httpd
nwswy]e8/ | |-httpd
/_<`#?5T( | |-httpd
A]ZCQ49 | |-httpd
HeABU(o4 ....
VN[C%C 名称:renice
LOQoi8j 使用权限:所有使用者
)]WWx-Uf' xFxl9oM." 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
1{l18B`
u$ C@0d 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
!+T\}1f7d mkgGX|k; 把计?
nX4R o#3?")>| -p pid 重新指定行程的 id 为 pid 的行程的优先序
)OQhtxK -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
D FDC'E -u user 重新指定行程拥有者为 user 的行程的优先序
L1=3_fO 范例:
D^Ahw"X) 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
d\aKGq;8C renice +1 987 -u daemon root -p 32
^2f'I iE 88}+.-3t$ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
o&uO ] [
[]'U' 名称:top
h/~:}Bof 使用权限:所有使用者
^kZfE"iE2 (Mi]vK.4 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] S<}2y 9F
[-o`^;
说明:即时显示 process 的动态 1=BDqSZ@9
Fe
3*pUt
把计? )"k>}&'
X-1<YG
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s )E;+C2G
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 HQHFD0hv
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 U'^AJ2L8
s : 安全模式,将交谈式指令取消, 避免潜在的危机 p@epl|IZp
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 bwh7.lDAl
n : 更新的次数,完成后将会退出 top QZy+`
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 [ZwZGAP
/ hUuQDJ
范例: d:/8P985
显示更新十次后退出 ; 5
o:VixZf
top -n 10 yXU-@~
l;i,V;@t
使用者将不能利用交谈式指令来对行程下命令 : xlPUum-o
top -s 1I({2@C
~3}Gu^@
将更新显示二次的结果输入到名称为 top.log 的档案里 : Pn@k)g
top -n 2 -b < top.log JFaxxW
IOA"O9;
名称:skill (]7*Kq
mv@cGdxu
使用权限:所有使用者 p:M#F:
~;St,Fw<<
使用方式: skill [signal to send] [options] 选择程序的规则 Ov3W;jD
RZ)sCR
说明: K/RQ-xd4
/CpUq;^
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 j,Sg?&"%=
;/i"W
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 HZMs],GX
N;,?k.vU
一般参数: :LRR\v0HM
qGMM3a)Q
-f 快速模式/尚未完成 MLg<YL
eeIh }t>[
-i 互动模式/ 每个动作将要被确认 ]2G5ng' @
t}-[^|)7
-v 详细输出/ 列出所选择程序的资讯 51yIW*
'B}pIx6k~
-w 智能警告讯息/ 尚未完成 E_&Hje|J_[
C("PCD
-n 没有动作/ 显示程序代号 0
eZfHW&
AoHA+>&U
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 G)gf +)W
HE&,?vioy
-t 终端机代号 ( tty 或 pty ) eydVWVN
WtI1h `Fo
-u 使用者名称 C%d 4ItB >
Mq) n=M
-p 程序代号 ( pid ) JV'd!5P
i}
96,{
-c 命令名称 可使用的讯号: p>v,b&06
hT6:7_UD
以下列出已知的讯号名称,讯号代号,功能。 Ab7hW(/
O$x-&pW`g
名称 (代号) 功能/ 描述 Okk[}G)
aKs!*uo0H
ALRM 14 离开 q3Umqvl)oe
(ohkM`83k
HUP 1 离开 UCYhaD@sP
_dqjRhu
INT 2 离开 &QE^i%6>\
;a!o$y
KILL 9 离开/ 强迫关闭 x( w <U1
:b>Z|7g ?
PIPE 13 离开 sb4)@/Q7j
$oE 4q6b
POLL 离开 (PGmA>BT
kN9S;o@)
PROF 离开 m6V1m0M
T~$ePVk>L
TERM 15 离开 :w_F<2d0
0
D{o1G?A
USR1 离开 vVyO}Q`
yWIieztp
USR2 离开 7^sU/3z
!~UI~-i'
VTALRM 离开 Te'^O,C)y$
qh$D;t1=
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 2BH>TmS
w GZ(bKyO
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 x+B~ t4A
)I]E%ut{4,
TSTP 停止 /产生与内容相关的行为 7i{Rn K6*
$ajw]2kx
TTIN 停止 /产生与内容相关的行为 +^YV>;
v ;MI*!E
TTOU 停止 /产生与内容相关的行为 _WK+BxH
2DQ'h}BI
STOP 停止 /强迫关闭 Y@eHp-[
;YZw{|gsh
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 rShi"Yw
HKOJkbVZ2^
PWR 忽略 /在某些系统中会离开 w2]1ftY
<eN>X:_N
WINCH 忽略 V EY !0PIj
D\({]oj]
CHLD 忽略 ^e@c
Ozt
H'gPGOd
ABRT 6 核心 jLr8?Hyf
q4Ye
FPE 8 核心 aS~k.^N
YD@V2gK
ILL 4 核心 w2{k0MW
3 tXtt@Yy
QUIT 3 核心 [-6j4D
@Jvw"=
SEGV 11 核心 vJ"@#$.
fvit+
TRAP 5 核心 !&Q,]\j
ULU
]k#
SYS 核心 /或许尚未实作 SF_kap%JM
EVq<gGy
EMT 核心 /或许尚未实作 ?'T>/<(
\XRViG,|5
BUS 核心 /核心失败 &<_sXHg<x
Tr@`ozp8
XCPU 核心 /核心失败 `n^jU92
boN)C?"^h
XFSZ 核心 /核心失败 I5x/N.
O)9T|,
U
范例: yvH:U5%
停止所有在 PTY 装置上的程序 _|A)ueY
skill -KILL -v pts/* m@zxjIwT
W:5m8aE\
停止三个使用者 user1 , user2 , user3 + !_^MB kk
skill -STOP user1 user2 user3 !5A
nr
%{}Jr`
其他相关的命令: kill R4IFl
z
名称:expr =_ rn8
使用权限:所有使用者 1]hMA\x
### 字串长度 <CA
lJ
gpw(j0/Fs
shell>> expr length "this is a test" ,YkQJ$
14 qbP[ 9
### 数字商数 x7NxHTL
shell>> expr 14 % 9 .5dZaI)
5 :m37Fpz&b
### 从位置处抓取字串 |_w*:NCV5
shell>> expr substr "this is a test" 3 5 C62<pLJf
is is 8AefgjE
### 数字串 only the first character *K+*0_
shell>> expr index "testforthegame" e c89RuI `B~
2 gsU&}R1*h
### 字串真实重现 7PisX!c,h
shell>> expr quote thisisatestformela .qVdo+M%F
thisisatestformela