linux常用命令
*@r)3 xhIC["z5 称:/etc/aliases
8ctUK| 使用权限:系统管理者
"1H?1"w~ 使用方式: 请用 newaliases 更新资料库
b:nHcxDU< 说明:
1wl8
sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
7)NQK9~ 47xJ(yO /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
$gN1&K # newaliases
]3C&l+m$ot YN
~7 nOw 下面命令会做相同的事,
sW B;?7P
# sendmail -bi
zR_#c3o ?+S& `%? 相关命令:
Y
zXL8 mail, mailq, newaliases, sendmail
3n/U4fn_ 9i8D_[ ” mail [返回]
t>h<XPJi 名称:mail
*ws!8-)fH YB h: 使用权限:所有使用者
Oc;0*v[I qHfs*MBJ% 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
@O<kjR<b qTnfiYG} 说明:
MX 2UYZ& mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
50oNN+;=R xQa[bvW 参数:
`RUr/|S i 忽略 tty 的中断讯号。 (interrupt)
O&=?,zLO[ I 强迫设成互动模式。 (Interactive)
y(B~)T~e@ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
}*m:zD@8$ n 不读入 mail.rc 设定档。
C26PQGo#$ s 邮件标题。
R/M:~h~F! c cc 邮件地址。
M=$y_9# b bcc 邮件地址。
m&DDz+g :2?J#/o 范例:
UK2Y<\vD h3D8eR. 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
9}Tf9>qP>M mail
user1@email.address
lztPexyXZ mail
user1@email.address user2
1sZwW P 2>#Pt^R:C 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
gM20n^ lDNB0Ad mail -s 标题 -c user1 user2 < mail.txt
VkT8l4($X< $!Z6?+ 指令:mesg
2i#wJ8vrF 使用权限 : 所有使用者
?'p`Qv !SIGzj 使用方式 : mesg [y|n]
1`2n<qo GwV2`2 说明 : 决定是否允许其他人传讯息到自己的终端机介面
;Br8\2=$ A0yRA+ 把计 ?
; )O)\__"- ,)XT;iGQe y : 允许讯息传到终端机介面上。
V<
0gD?Kx n : 不允许讯息传到终端机介面上 。
`!DrB08A 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
e|+U7=CK db:b%1hk: 例子 :
R>Fie5? 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
;14[)t$ mesg n
F'W{\4 与 mesg 相关的指令有: talk,write,wall。
|uQJMf[L) 名称:/etc/aliases
iCao;Zb 使用权限:系统管理者
XQ--8G 使用方式: newaliases
cUaLv1:HI 说明:
DIH.c7o sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Vp\BNq_!s q*TH),)J /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Zgt, 'T eP|:b & 参数:没有任何参数。 范例:
gzvEy^X # newaliases
MftW^7W- +?[TH?2c+ 下面命令会做相同的事,
zht^gOs # sendmail -bi
v&i M/pJU `&b8wF 相关命令:
Axhe9!Fm mail, mailq, newaliases, sendmail
g4&zBn 名称 : talk
3_B .W 使用权限 : 所有使用者
QQ!%lbMK] ;#P@(ZVT 使用方式 :
pMYEL Ku*@4#<L6h talk person [ttyname]
XgP7
! 说明 : 与其他使用者对谈
kdmannM ~4'e)g.hG 把计 :
5Az=)q4Q person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name K_bF)6" ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
/$'tO3 9XX&~GW/ 例子.1 :
!>Db o"R[#E&Yx 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
$SRpFz5y$ talk Rollaend
Cy4@\X%W {3lsDU4 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
!
pR&&uG z*>"I 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
3bu VU&ap talk
Rollaend@linuxfab.cx pts/2
[94A?pn[z 2HoTj| v*<hE>J0 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
W~aVwO'( 'U.)f@L#w 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
/jaTH_Q),: fchsn*R%- 名称 : wall
#Gx%PQ` 使用权限 : 所有使用者
t,M_ "6 |j
0?Q 使用方式 :
yhJH3< wall [ message ]
YD
H!Nl 使用说明:
2Hw&}8 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
iagl^(s %B}Q .' 例子 :
x:\+{- t>N~PXr 传讯息"hi" 给每一个使用者 :
So{/V% wall hi
^[,Q2MHCT( 名称 : write
'FgBYy/ 使用权限 : 所有使用者
9Bvi2
3 @X+m,u 使用方式 :
dIg/g~ t" 3p6QJuSB write user [ttyname]
U>w#`Sy[ 说明 : 传讯息给其他使用者
'i;1n FkY}6 把计 :
"3.v(GVr aUa.!,_dh user : 预备传讯息的使用者帐号
jj_z#6{ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
OB`(,m# H )hO/1m 例子.1 :
#%O|P&rA
(RVe,0y 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
`qnp write Rollaend
:+NZW9_ 7rQwn2XD{ 接下来就是将讯息打上去,结束请按 ctrl+c
`|coA2$rw <}t~^E, 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
q;Tdqv!Ju write Rollaend pts/2
G%^jgr) J|,Uu^7` 接下来就是将讯息打上去,结束请按 ctrl+c
k-IL%+U uP, iGA 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
E! d?@Xr@ B|pO2de 名称:kill
2?P H|| 使用权限:所有使用者
01=nS? n2}(Pt. 使用方式:
O+x"c3@Z)D B-^r0/y; kill [ -s signal | -p ] [ -a ] pid ...
]H|O kill -l [ signal ]
#lAC:>s3U 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
!q\MXS($#u 把计?
-p.c8B -Zq\x' -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
2[|52+zhc -p : 印出 pid , 并不送出信号
R!i\-C1 S -l (signal) : 列出所有可用的信号名称
)X
|[jP 范例:
/]j^a:#"6t
P.bxq50 将 pid 为 323 的行程砍掉 (kill) :
&O
+?#3 kill -9 323
&1/OwTI4J S[ch/ 将 pid 为 456 的行程重跑 (restart) :
OfG/7pw5%B kill -HUP 456
&!P' M 8\WV.+ 名称:nice
0N;~(Vt2 使用权限:所有使用者
q QcQnd2K <W]
RyEg` 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
Cj%n?- U#V&=~- 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
\SSHj ONX Gj_7wP$ )]}G8A 把计?
|L/EH~| O O22Q
g -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
d1P|v(
`S9 --help 显示求助讯息
s&hJ[$i --version 显示版本资讯
K;z$~;F 范例:
GY>G}bfh 将 ls 的优先序加 1 并执行 :
SzP`(}AU nice -n 1 ls
Vv54;Js9 Ii9[[I 将 ls 的优先序加 10 并执行 :
:)Pj()Os| nice ls将 ls 的优先序加 10 并执行
3daI_Nx> &(7=NAQsE 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
ho-#Xbq#g "uli~ {IU 名称:ps
SZ29B 使用权限:所有使用者
Brtsig,4 使用方式:ps [options] [--help]
@)\4 $#+- 说明:显示瞬间行程 (process) 的动态
jme`Tyd 参数:
]_BH"ng} ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
d^=9YRc -A 列出所有的行程
7fI2b,~ -w 显示加宽可以显示较多的资讯
;FQNO:NP -au 显示较详细的资讯
IRGcE&m -aux 显示所有包含其他使用者的行程
[
*Dj7zt: 2E8G5?qe) au(x) 输出格式 :
Oa2\\I
cYp/? \ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
U9ZuD40\ USER: 行程拥有者
|1GOm=GNK PID: pid
k#bG&BF %CPU: 占用的 CPU 使用率
HfZ ^ED"} %MEM: 占用的记忆体使用率
iC3C~?,7 VSZ: 占用的虚拟记忆体大小
qA;Gl"HF RSS: 占用的记忆体大小
cZJ5L>ox TTY: 终端的次要装置号码 (minor device number of tty)
m/Erw"Z STAT: 该行程的状态:
"fr{:'HX D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
35Fxzj $ R: 正在执行中
O6/:J#X% S: 静止状态
wVqp')e T: 暂停执行
-)Bvx>8fq- Z: 不存在但暂时无法消除
hxzA1s%~ W: 没有足够的记忆体分页可分配
\-pqqSy <: 高优先序的行程
n$`+03 a N: 低优先序的行程
XUzOt_L5< L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
DF_wMv:>^ START: 行程开始时间
F^$;hMh% TIME: 执行的时间
Y)DAR83 COMMAND:所执行的指令
jQxhR 范例:
5F+G8 ps
d#TA20` PID TTY TIME CMD
7Q]c=i cg 2791 ttyp0 00:00:00 tcsh
k_{?{:X;y 3092 ttyp0 00:00:00 ps
]=VRct
" % ps -A
;W+8X-B PID TTY TIME CMD
9Vqy<7i1 1 ? 00:00:03 init
ywl=@ 2 ? 00:00:00 kflushd
tu Y+n2 3 ? 00:00:00 kpiod
}NoP(&ebz* 4 ? 00:00:00 kswapd
q\}+]|nGs 5 ? 00:00:00 mdrecoveryd
-$?t+ "/E .......
]iGeqwT % ps -aux
r88De=* USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
,,BP}f+l$ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
F@k}p-e~ root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
yhYF "~CM root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
hVmnXT
3Z root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
Gc"hU:m ........
}^iqhUvT F 名称:pstree
nX 9]dz 使用权限:所有使用者
);%H;X+x 使用方式:
xI1{Wo*2C} pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
OtoM pstree -V
\7i_2|w 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
5LB{b]w7m 参数:
# H
w(w -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
9M;t4Um -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
@`dg:P*[ 范例:
k`Ifl) pstree
,bXZ<RY$ 'Zp{ init-+-amd
y0sce |-apmd
-z~!%4 a |-atd
VO8rd>b4 |-httpd---10*[httpd]
nV7Vc; %pstree -p
5\MC5us3 init(1)-+-amd(447)
Z.Yq)\it |-apmd(105)
V-}}?c1 F |-atd(339)
;o3gR4u_L %pstree -c
X0u,QSt'O init-+-amd
P2a5<#_| |-apmd
uD>= |-atd
#M16qOEw |-httpd-+-httpd
bO2?DszT5 | |-httpd
}a||@unr | |-httpd
WA8<:#{e | |-httpd
o]4\Geg$ ....
X n$ZA- 名称:renice
bu|.Jw" 使用权限:所有使用者
Ha `N 7Hr_ZwO/^ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
![\-J$ nf0u:M"fm 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
+T$Olz m4 (pMrJ 把计?
Gv&G2^ o,`"*][wd -p pid 重新指定行程的 id 为 pid 的行程的优先序
Lj3o-@\*j -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
din,yHu~ -u user 重新指定行程拥有者为 user 的行程的优先序
x%=CEe?6 范例:
k0e}`#t 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
J+`aj8_ B renice +1 987 -u daemon root -p 32
g0tnt)] n" Ie> 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
G kjfDY: e{5?+6KH 名称:top
C7FQc{ 使用权限:所有使用者
q++r\d^{ iPTQqx-m$7 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] Q?k*3A
HU $"o6ap
说明:即时显示 process 的动态 ma~#E$i&
iYStl
把计? NS[eQ_rT
-I|xW
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s hy*{{f;
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 JpC'(N
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 ,Z@#( =f
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ?{S>%P A_B
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 X&pYLm72;
n : 更新的次数,完成后将会退出 top dH^6K0J
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 x%}D+2ro-t
VI2lwE3
范例: hpAdoy[
显示更新十次后退出 ; UphTMyn3
top -n 10 xm{]|~^JG
%bDxvaftT
使用者将不能利用交谈式指令来对行程下命令 : |h]V9=
top -s xnY?<?J"!
/MF
7ZvN.
将更新显示二次的结果输入到名称为 top.log 的档案里 : UCLM*`M
top -n 2 -b < top.log Ga7E}y%
JI"/,fK^
名称:skill
RV~fml9c
,n/]ALz>~
使用权限:所有使用者 n[3z_QI
!=dz^f.{
使用方式: skill [signal to send] [options] 选择程序的规则 rOSov"7
}>xwiSF?
说明: ]@&X*~c^Z
p;+O/'/j
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 aA`eKy) \
7rjl-FUA~
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 3oCI1>k
~:a1ELqVw
一般参数: 3B1\-ry1M
75# 8P?i
-f 快速模式/尚未完成 0'Pjnk-i
_?c.m*)A
-i 互动模式/ 每个动作将要被确认 nGF
+a[Z
Z.\q$U7'9
-v 详细输出/ 列出所选择程序的资讯 46:<[0Psl/
s@\3|e5g
-w 智能警告讯息/ 尚未完成 >yO/p(/;jR
$Rm~ VwY#
-n 没有动作/ 显示程序代号 rqamBm 5
.WF"vUp
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 [b++bCH3
2 2v"?*
-t 终端机代号 ( tty 或 pty ) >tM4|w|
>]h{[kU %4
-u 使用者名称 9Dx~!(
ReaZg ?:h
-p 程序代号 ( pid ) E|@C:ghG
*rq*li;
-c 命令名称 可使用的讯号: qezWfR`
A({czHLhN5
以下列出已知的讯号名称,讯号代号,功能。 q[$>\Nfg>B
fCY|iO0.t
名称 (代号) 功能/ 描述 m%|\AZBA#
~fXNj-'RW
ALRM 14 离开 IK -vcG
_^<vp
HUP 1 离开 @M'k/jl
#
&v4c
INT 2 离开 =Vg~ VD
b^W&-Hh
KILL 9 离开/ 强迫关闭 +Br<;sW
tV++QC7@L
PIPE 13 离开 o-<i+ To%
.O-)m'5
POLL 离开 2Io|?
a
,mgM&yD
PROF 离开 3!P^?[p3
0F$|`v"0
TERM 15 离开 >k
@t.PeoV
UynGG@P@
USR1 离开 01n!T2;yW}
#(]D]f[@
USR2 离开 >@N.jw>#T
^A ]4
VTALRM 离开 e#}t
am
ZcA"HD%
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 G"r{!IFL
UN?tn}`!
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 dX?j/M-
5 H._Q
TSTP 停止 /产生与内容相关的行为 \KV.lG!
o#FctM'Z
TTIN 停止 /产生与内容相关的行为 %jAc8~vW?
ihkZs3}
TTOU 停止 /产生与内容相关的行为 0hS&4nW
Dk\%,[4(
STOP 停止 /强迫关闭 ei2?H;H;
X0*+]tRg
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 UB@(r86d
(s'xO~p
PWR 忽略 /在某些系统中会离开 1^k}GXsWmE
P~(&lu/;P
WINCH 忽略 i7H([b<_m
l"8g9z
CHLD 忽略 R655@|RT
MKtI3vi?
ABRT 6 核心 |mhKD#:
-t_&H\_T
FPE 8 核心 ;)rhx`"n
_3
!s{
ILL 4 核心 IiKU=^~w
,vR>hyM
QUIT 3 核心 T:j41`g%s
jzi%[c<G
SEGV 11 核心 #8d#Jw
K`=U5vG^
TRAP 5 核心 hbXm Ist
qRT5|\l
SYS 核心 /或许尚未实作 s\.r3U&6
,,FhE
EMT 核心 /或许尚未实作 , wk}[MF
d/NjY[` 5+
BUS 核心 /核心失败 P'$2%P$8:~
$zz4A~
XCPU 核心 /核心失败 |QrVGm@2
`~axOp9N
XFSZ 核心 /核心失败 E:}s6l
6heK8*.T
范例: oKRI2ni$j9
停止所有在 PTY 装置上的程序 JA >&$h
skill -KILL -v pts/* ,9OER!$y
"dG*HKrr
停止三个使用者 user1 , user2 , user3 !rx5i
skill -STOP user1 user2 user3 gC6Gm':c
J?p|Vy|9
其他相关的命令: kill W__$
i<1
名称:expr 0>,i]
|Y
使用权限:所有使用者 jcePSps]
### 字串长度 sVO|Ghy65
B
\V;{:
shell>> expr length "this is a test" s$^ 2Cuhv
14 vSQB~Vw8t
### 数字商数 2Z(?pJyDM
shell>> expr 14 % 9 K/&
5 Mt4`~`6
### 从位置处抓取字串 &Ai+t2
shell>> expr substr "this is a test" 3 5 q:_-#u
is is CyS.GdyP
### 数字串 only the first character +5ql`C
shell>> expr index "testforthegame" e %)}_OXWf:
2 ylmVmHmc
### 字串真实重现 LNgFk%EH
shell>> expr quote thisisatestformela ZB}zT9JaE
thisisatestformela