linux常用命令
K:c5Yq^ L10Vq}W" 称:/etc/aliases
:-xp'_\L 使用权限:系统管理者
Uxn_nh 使用方式: 请用 newaliases 更新资料库
$L)9'X 说明:
~#h@.yW^JN sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
BR8z%R -1Yt3M& /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
`S2YBKz,1 # newaliases
vY7C!O/y_k QK&<im- 下面命令会做相同的事,
id\0yRBt # sendmail -bi
iS&fp[Th 3cBuqQ 相关命令:
\vT0\1:|i mail, mailq, newaliases, sendmail
l"*qj#FD [a53H$`\5 ” mail [返回]
k]u0US9/ 名称:mail
P+:FiVj@~ %E3|b6k\ 使用权限:所有使用者
m4<8v (^ZC8)0i( 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
282
m^
2 ~QJD.'z 说明:
sl}bNzT# mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
y-cRqIM 4Smno%jq 参数:
KRd.Ubs - i 忽略 tty 的中断讯号。 (interrupt)
W @Y$!V< I 强迫设成互动模式。 (Interactive)
#.$p7] v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_M8Q% n 不读入 mail.rc 设定档。
FTI[YR8?Y s 邮件标题。
9`f]Rf" c cc 邮件地址。
J_
?;On5 b bcc 邮件地址。
K
4j'e6 pFXDo4eH 范例:
*LOpbf *>n<7T0 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
%a&Yt mail
user1@email.address
uhSRl~tn mail
user1@email.address user2
tj;<Z. @QV|<NeH 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
JBtcl#| \|BtgT *$b mail -s 标题 -c user1 user2 < mail.txt
|k$[+53A C|5eV=f)P 指令:mesg
sn
'#]yM 使用权限 : 所有使用者
GM%%7 ^uE /zMiy? 使用方式 : mesg [y|n]
q+.DZ
@ 9eo$Duws 说明 : 决定是否允许其他人传讯息到自己的终端机介面
F&<si:}KB {1li3K&0s 把计 ?
6]^ShOX_Z A1Ia9@=Mf y : 允许讯息传到终端机介面上。
{" S"V n : 不允许讯息传到终端机介面上 。
lZ.x@hDS 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
a FjcyD 7pH(_-TF 例子 :
6T! *YrS 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
[wWip1OR mesg n
K??%Qh5l+C 与 mesg 相关的指令有: talk,write,wall。
Q#Q]xJH 名称:/etc/aliases
0%+S@_| 使用权限:系统管理者
2~Z P[wr 使用方式: newaliases
PVH^yWi
n 说明:
;)s$Et% sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
?lW-NPr N3
.!E| /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Gl}[1<~o qqA(Swe)T 参数:没有任何参数。 范例:
A&*lb7X # newaliases
j9)P3=s ivYHq#b59 下面命令会做相同的事,
VHwb 7f]gq # sendmail -bi
U??P u&yAMWl 相关命令:
kW0|\ mail, mailq, newaliases, sendmail
{G&*\5W 名称 : talk
~XQj0' 使用权限 : 所有使用者
z )s{>^D =Ryh@X& 使用方式 :
<@6K( teH.e!S talk person [ttyname]
O32p8AxEz 说明 : 与其他使用者对谈
s kC* by!1L1[JTt 把计 :
,e$]jC<sv2 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name >Eg/ir0 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
c]LE9<G BOClMeA4 例子.1 :
KU# w% 6$$4!R- 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
11t+
a,fM talk Rollaend
Y5?*=eM X3&-kU 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
95LZG1]Rb 3Kuu9<0 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
c-3-,pyM_T talk
Rollaend@linuxfab.cx pts/2
q-gp;Fm Pu/X_D-#Gi 8g0By;h; 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
YHBH9E/B x&}pM}ea 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
?.Mw uc;1{[5`1q 名称 : wall
DP{kin"4I 使用权限 : 所有使用者
|R[@u=7s Age 使用方式 :
6[ }~m\cY wall [ message ]
_2u RY 使用说明:
IIrh|>d_7 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
YZ>L\ S}L$-7Ct 例子 :
U9^o"vT OXu*wl(z 传讯息"hi" 给每一个使用者 :
c#o(y6 wall hi
/zxLnT;
5 名称 : write
<[iw1> 使用权限 : 所有使用者
,36AR|IO) H'2&3v 使用方式 :
qyi5j0)W K
@x4>9 3n write user [ttyname]
;Q*=AW 说明 : 传讯息给其他使用者
]?KTw8j} Pnf|9?~$H 把计 :
NQBa+N q8&2M user : 预备传讯息的使用者帐号
>
mI1wV[ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Tx+!D'> ^G:}%4 例子.1 :
Y:o\qr!Y GD*rTtDWn 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
hd+(M[C<9 write Rollaend
/~sNx GM]" $ 接下来就是将讯息打上去,结束请按 ctrl+c
rq#8}T> Oz8"s4Y7 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
ZiR },F/ write Rollaend pts/2
)w.+( v( GjVq"S 接下来就是将讯息打上去,结束请按 ctrl+c
h"C7l#u q47>RWMh% 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
j:|um&`) q,Oj 名称:kill
QuB`}rfLf 使用权限:所有使用者
j ?c"BF. r'|V z*/h 使用方式:
qg7qTF& \\ZR~f!< kill [ -s signal | -p ] [ -a ] pid ...
@*Y"[\ "$ kill -l [ signal ]
]|H`?L 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
31VDlcnE 把计?
^nO0/nqz]
ShP&ss -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
+,;"?j6<p -p : 印出 pid , 并不送出信号
5OJ8o>BF -l (signal) : 列出所有可用的信号名称
$ ,:3I*}be 范例:
2OA0rH"v ?"hrCEHV{9 将 pid 为 323 的行程砍掉 (kill) :
9+i rf^D`O kill -9 323
u"$=:GK ]n \Qa 将 pid 为 456 的行程重跑 (restart) :
Xmmb^2I kill -HUP 456
XY_hTHJ `s )-
lI 名称:nice
Ym% $!# 使用权限:所有使用者
{th=MldJ? cVV @MC 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
zh.^>
` l1 M
% 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
@V\u<n *\-$.w)k thU9s%,
把计?
'VMov m}-*B1 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
f]_{4Olk --help 显示求助讯息
h]+UK14m --version 显示版本资讯
]\JLlQ}#H 范例:
i?3~Gog 将 ls 的优先序加 1 并执行 :
[
pe{,lp nice -n 1 ls
xS'Kr.S
#NyfE|MKBC 将 ls 的优先序加 10 并执行 :
|&oTxx$S nice ls将 ls 的优先序加 10 并执行
,<CFjtelO ;_K3/: 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
1u~CNHm WR.>?IG2E 名称:ps
?~:4O}5Ax 使用权限:所有使用者
/g]NC? 使用方式:ps [options] [--help]
Ueb&<tS 说明:显示瞬间行程 (process) 的动态
0X<U.Sxn 参数:
o#Viz: ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-u$U~?|` -A 列出所有的行程
E]P7u"1 -w 显示加宽可以显示较多的资讯
mB5Sm|{ -au 显示较详细的资讯
j[RY -aux 显示所有包含其他使用者的行程
}> ]`#s u~~H'*EM au(x) 输出格式 :
W%wc@.P t?(fDWd|- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
yno X=#` USER: 行程拥有者
dJ9v/k_ PID: pid
Y-s6Z\ %CPU: 占用的 CPU 使用率
1KadT7<0} %MEM: 占用的记忆体使用率
xE5VXYU VSZ: 占用的虚拟记忆体大小
Z VyJ%"(E RSS: 占用的记忆体大小
;L@p|]fu TTY: 终端的次要装置号码 (minor device number of tty)
}rQ0*h STAT: 该行程的状态:
VZ]}9k D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
U1)!X@F{ R: 正在执行中
d6f T S: 静止状态
@b9qBJfQ T: 暂停执行
mo D)^':. Z: 不存在但暂时无法消除
5D < W: 没有足够的记忆体分页可分配
FmhT^ <: 高优先序的行程
_oE 7< N: 低优先序的行程
=lmelo#m& L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
:I2spBx START: 行程开始时间
(5l'?7 TIME: 执行的时间
o&)v{q COMMAND:所执行的指令
;3\'}2^|l 范例:
hiEosI
C ps
=bOMtQ] PID TTY TIME CMD
@;X#/dZe 2791 ttyp0 00:00:00 tcsh
yS.)l 3092 ttyp0 00:00:00 ps
}p>l,HD % ps -A
Fu>;hx]s PID TTY TIME CMD
w$0*5n>) 1 ? 00:00:03 init
~IFafAO& 2 ? 00:00:00 kflushd
p+;;01Z+_ 3 ? 00:00:00 kpiod
s_P[lbHt. 4 ? 00:00:00 kswapd
~cf)wrP 5 ? 00:00:00 mdrecoveryd
6Z5$cR_vC7 .......
N8)]d % ps -aux
7|k2~\@q USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
zbJ}@V root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
w19OOD root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
-Dwe,N"{2 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
gNC'kCx0c root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
;;N#'.xD ........
blUS6"kV} 名称:pstree
NNBT.k3) 使用权限:所有使用者
[W99}bi$ 使用方式:
rAk;8)O$ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
AZ
SaI pstree -V
69 J4p=c, 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
l-2lb&n 参数:
v8TNBsEL -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
s
>k4G -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
TA+#{q+a 范例:
P]7s1kgaS pstree
; hU9_e [$M l;K init-+-amd
hVdGxT]6 |-apmd
_8 l=65GW |-atd
r;O?`~2'4 |-httpd---10*[httpd]
= gcZ RoL %pstree -p
X*a7`aL init(1)-+-amd(447)
2<*Yq8 |-apmd(105)
OqX+R4S |-atd(339)
qnzNJ_ `R %pstree -c
qv`:o
` init-+-amd
+A%zFF3 |-apmd
5a/3nsup5 |-atd
d;a"rq@a) |-httpd-+-httpd
_he~Y2zFz | |-httpd
crJNTEz | |-httpd
<#~n+, | |-httpd
R(2MI}T ....
BT(G9Pj; 名称:renice
3]>YBbXvE 使用权限:所有使用者
`Mo%)I<`= s%?<:9 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
/sVmQqVY ktv{-WG2_ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
JV!}"[ %Ip=3($Ku[ 把计?
|\]pTA$2 Lya?b -p pid 重新指定行程的 id 为 pid 的行程的优先序
%Jn5M(myC -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
U27ja|W^ -u user 重新指定行程拥有者为 user 的行程的优先序
QEEX|WM 范例:
bL5dCQxty 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
5a* Awv} renice +1 987 -u daemon root -p 32
,->
P+m5 n4
Y
]v 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
'eoI~*}3WQ qche7kg!a 名称:top
87nsWBe 使用权限:所有使用者
$P&27 6.4,Qae9E 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ;"%luQA<w
#p=Wt&2
说明:即时显示 process 的动态 n6*;
~h5
,]?l(H $x'
把计? Rh7=,=u
2K'}Vm+
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s x[%% )[d
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 Jaf=qwZ/`
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 n]btazM{
s : 安全模式,将交谈式指令取消, 避免潜在的危机 W/;qMP1"-
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 J15$P8J
n : 更新的次数,完成后将会退出 top .LNqU#a
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 _d<\@Tkw
/XW,H0pR
范例: j!
cB
显示更新十次后退出 ; ?rV c}
top -n 10 :Ee5:S
]9pcDZB
使用者将不能利用交谈式指令来对行程下命令 : g:c
@
top -s __||cQ
0b}lwo,|\
将更新显示二次的结果输入到名称为 top.log 的档案里 : ?)5M3lV3k
top -n 2 -b < top.log >:P3j<xTv
xE.=\UzJ
名称:skill wwmODw<tT
v]27+/a$c
使用权限:所有使用者 N:/$N@"Ge
( ]o6Pi
使用方式: skill [signal to send] [options] 选择程序的规则 -.WVuc`
ByZ.!~
说明: P6 G/J-
egi?Qg
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 )u&_}6z
_mL 9G5~r
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 ,K6]Q|U@r
5cQBqH]
一般参数: XT_BiZ%l5O
4%j&]PASa1
-f 快速模式/尚未完成 YKvFZH)
|,&!Q$<un
-i 互动模式/ 每个动作将要被确认 5tl}rmI`
C5RDP~au
-v 详细输出/ 列出所选择程序的资讯 9e :E% 2
|/lIasI
-w 智能警告讯息/ 尚未完成 NI s4v(!
I}v'n{5(
-n 没有动作/ 显示程序代号 L{fP_DIa
L}a3!33)C
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 D&9j$#9Rh
|H_)u
-t 终端机代号 ( tty 或 pty ) 6eK^T=
c)6Y.[).
-u 使用者名称 lE|T'?/
Jp-ae0 Ewa
-p 程序代号 ( pid ) ?s"v0cg+
UXk8nH
-c 命令名称 可使用的讯号: '/
&"
u\.sS|$
以下列出已知的讯号名称,讯号代号,功能。 >;3c;nf
/l$noaskX
名称 (代号) 功能/ 描述 D[#\Y+N
!d0@^JbM"
ALRM 14 离开 -% fDfjP
I3x}F$^
HUP 1 离开 $^0YK|F
eXaDx%mM
INT 2 离开 *-Yw0Y[E
6Rf5
KILL 9 离开/ 强迫关闭 M{4_BQ4$
Nb9pdkf0
PIPE 13 离开 GQZUC\cB
1a!h&!$9
POLL 离开 v1lj /A
`cv:p|s
PROF 离开 4#YklVm
,/ : )FV
TERM 15 离开 2Ls<OO
5~X%*_[],
USR1 离开 v:0i5h&M
4yM8W\je
USR2 离开 o <'gM]$
k1H0hDE
VTALRM 离开 F3'X
(~GFd7
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 QaO`:wJj
,{50zx2
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 9$ S,P|
o|W? a#_\
TSTP 停止 /产生与内容相关的行为 ]
6gu
Wd}mC<rv1
TTIN 停止 /产生与内容相关的行为 }a1UOScO0
FTfA\/tl(;
TTOU 停止 /产生与内容相关的行为 ES2qX]I
V"ZbKV+[
STOP 停止 /强迫关闭 y{]%,
ezvaAhd{
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 aVYUk7_ <
+*DX(v"BH
PWR 忽略 /在某些系统中会离开 ]`XuE-Uh
@^%_ir(
WINCH 忽略 <.B s`P
M::iU_
CHLD 忽略 "/fs%F
hI8C XG
ABRT 6 核心 SA1/U
iL, XBoE
FPE 8 核心 $hQg+nY.
? ^CGJ1
ILL 4 核心 Ag6
(
MGzF+ln^U
QUIT 3 核心 af(JoX*U
YMTA`T(+
SEGV 11 核心 b2e a0
BfT,
TRAP 5 核心 ,`zRlkX
Bed jw =B
SYS 核心 /或许尚未实作 ef;L|b%pp
\q|PHl
EMT 核心 /或许尚未实作 c$kb0VR
v|(b,J3
BUS 核心 /核心失败 -3tBN*0+
)K>@$6H+2
XCPU 核心 /核心失败 5Y=\~,%\oH
_|B&v
XFSZ 核心 /核心失败 wrYQ=u#Z
m8j-lNu
范例: "%Ana=cc
停止所有在 PTY 装置上的程序 qd~98FS
skill -KILL -v pts/* |QOJ9~hxD
@1?]$?u&
停止三个使用者 user1 , user2 , user3 (TNY2Ke2 8
skill -STOP user1 user2 user3 S<!_
u q
rHgdvDc
其他相关的命令: kill .*~u
名称:expr #7-@k-<|
使用权限:所有使用者 0nn]]B@l
### 字串长度 E(!6n= qR
]p&< nK,
shell>> expr length "this is a test" `m3QT3B
14 g~c|~u(W
### 数字商数 ^I<T+X+<
shell>> expr 14 % 9 `XSc >
5 mzE$aFu8
### 从位置处抓取字串 TDFO9%2c
shell>> expr substr "this is a test" 3 5 M2E87w
is is XyM(@6,'
### 数字串 only the first character |1+(Ny.%k
shell>> expr index "testforthegame" e aaz"`,7_
2
Q
A)9
### 字串真实重现 Bf:tal6 -M
shell>> expr quote thisisatestformela }u-S j/K
thisisatestformela