linux常用命令
E2>im>p Zkw J.SuU 称:/etc/aliases
-Bl/4p 使用权限:系统管理者
OpYmTep#T\ 使用方式: 请用 newaliases 更新资料库
cYsR0# 说明:
|c<XSX?ir sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
)URwIe{ eT;AAGql /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
.=?Sz*3 # newaliases
?A|zRj{ ERk kSTp 下面命令会做相同的事,
|d5ggf.w # sendmail -bi
2q+la|1Cr 2q12yY f 相关命令:
x<8\- mail, mailq, newaliases, sendmail
X )I/%{ x]H3Y3
” mail [返回]
cvxIp#FbW 名称:mail
MY&<)|v\ r~I.F!{ 使用权限:所有使用者
QDP-E[ XnD0eua# 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
k9cK bf@ I`lDWL 说明:
&Y{F?
c^ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
HTw#U2A;+ ;D:=XA% 参数:
Ec+22X i 忽略 tty 的中断讯号。 (interrupt)
ACgt"
M.3F I 强迫设成互动模式。 (Interactive)
Dp^95V@ v 列印出讯息,例如送信的地点、状态等等。 (verbose)
_<XgC\4O| n 不读入 mail.rc 设定档。
li@kLh s 邮件标题。
)mj<{Td` c cc 邮件地址。
#o~[1K+Yq b bcc 邮件地址。
A^8x1ydZ JXL'\De ; 范例:
N_0pO<<cs 3<+z46`? 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
S3QaYq"v mail
user1@email.address
&u("|O)w$ mail
user1@email.address user2
&h\7^=s. <M=';h^w2 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
\PzN XQ$ ,^HS`!s[ E mail -s 标题 -c user1 user2 < mail.txt
+eC3?B8rN 0Lx3]"v 指令:mesg
8+&gp$a$ 使用权限 : 所有使用者
Nvhy3 9]Lo 使用方式 : mesg [y|n]
%iX/y :4U0I:J# 说明 : 决定是否允许其他人传讯息到自己的终端机介面
]b> pI; tR5tPPw 把计 ?
g[AA,@p+ Rh[Ib m56 y : 允许讯息传到终端机介面上。
sSz%V[XWL n : 不允许讯息传到终端机介面上 。
T30Zk*V 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
M.S
s:ttj }DbE4"^K7 例子 :
*<UGgnmLE 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
I.-v?1>, mesg n
[1Uz_HY["3 与 mesg 相关的指令有: talk,write,wall。
xb]odYGdW 名称:/etc/aliases
&lq^dFP&Su 使用权限:系统管理者
H }B2A" 使用方式: newaliases
y #69|G 说明:
%2}C'MqS sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
5=Suj*s{D# BW>5?0E[4( /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
l^
Rm0t_ %EWq2'/5 参数:没有任何参数。 范例:
#cO+ <1 # newaliases
8?kP*tmcZ +v!v[qn 下面命令会做相同的事,
g#|oif9o # sendmail -bi
5a6VMqQ6 26 ?23J
; 相关命令:
D'nL mail, mailq, newaliases, sendmail
V7@
{D 名称 : talk
) Fx?% 使用权限 : 所有使用者
dhtb?n{
]Uh1l.O 使用方式 :
$H;+}VQ 8&."uEOOU talk person [ttyname]
m|1n
x 说明 : 与其他使用者对谈
{g_@Tuu %E.S[cf%8& 把计 :
"lrA%~3%[P person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name CL1;Inzl ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
J*K<FFp3< n| C|& 例子.1 :
no|Gq>Xp j|(:I: ] 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
?bI?GvSh talk Rollaend
Y 1y E +*.1}r& 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
EY$?^iS P7r4ePtLk{ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
p:tN642 talk
Rollaend@linuxfab.cx pts/2
+>#e=nH Nv3tt Y|RdzCM 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
q~h:<,5 s.rT] 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
aDveU)]=1 }e2F{pQ 名称 : wall
4swKjN
& 使用权限 : 所有使用者
f[}|rf G#lg|# -# 使用方式 :
b{pg!/N4 wall [ message ]
<4f,G]UH_ 使用说明:
WHk/$7_"i wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
>BJ}U_ck TvM24Orct 例子 :
[#Fg\2bq_y \ 3G*j` 传讯息"hi" 给每一个使用者 :
y||@?Y wall hi
blp=Hk 名称 : write
O<`,,^4w/ 使用权限 : 所有使用者
g ;LVECk "mtp0 使用方式 :
5~[N/Gl B1+ZFQo write user [ttyname]
$T/#1w P 说明 : 传讯息给其他使用者
HamEIL-l. oLP]N$'# 把计 :
Ut_mrb+W 6|oWaA\gI user : 预备传讯息的使用者帐号
+c r ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
ymkR! ,R}Z=w# 例子.1 :
Mr.JLW oZ-FF' 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
nuxd S, write Rollaend
Cya5*U0= ns26$bU 接下来就是将讯息打上去,结束请按 ctrl+c
gIBpOPr^d SB1[jcJ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
uS-3\$ write Rollaend pts/2
x<
S\D& z5 pc3: 接下来就是将讯息打上去,结束请按 ctrl+c
a[ i>;0 >b43%^yii 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
sX5sL o\60n 名称:kill
h>|u:]I> 使用权限:所有使用者
'=@r7g.2 H|K("AVP: 使用方式:
]?&H^"= `*d{PJTv kill [ -s signal | -p ] [ -a ] pid ...
Xy!&^C` J` kill -l [ signal ]
3G.r- 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
B0"0_n7- 把计?
mmcdtVe _25d%Ne0 -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
V Y_f = -p : 印出 pid , 并不送出信号
FF3&Y^+^" -l (signal) : 列出所有可用的信号名称
RF!'K
ko 范例:
6y9C@5p}B /.2 qWQH 将 pid 为 323 的行程砍掉 (kill) :
/W0E(8:C) kill -9 323
Oj-r;Tt_G} '+6<U[ L 将 pid 为 456 的行程重跑 (restart) :
EIPnm%{1 kill -HUP 456
(JU_8j! X\mz+al>[ 名称:nice
kXMP=j8 使用权限:所有使用者
5Edo%Hd6 ke^d8Z. 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
}\VX^{ K j Y-= /,
说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
o~k;D{Snr .v\PilF B#:E?a;{ 把计?
-tMA =R2l3-HA= -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
AygvJeM_W --help 显示求助讯息
aH --version 显示版本资讯
^ `je 范例:
]$|st^Q 将 ls 的优先序加 1 并执行 :
?eVj8 $BQo nice -n 1 ls
Mn{XVXY@qm &\c5!xQ9* 将 ls 的优先序加 10 并执行 :
{Y^c*Iqn nice ls将 ls 的优先序加 10 并执行
z
7@ 'CJ x*J|i4 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
4M7^
[G H<XlUCr_~+ 名称:ps
4/f[`].#W 使用权限:所有使用者
^H-QYuz:T0 使用方式:ps [options] [--help]
&<@%{h@= 说明:显示瞬间行程 (process) 的动态
=nw0# ' 参数:
^7<[}u;qF ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
*.xZfi_| -A 列出所有的行程
VT
Vm7l -w 显示加宽可以显示较多的资讯
"d2LyQy -au 显示较详细的资讯
zG<0CZQ8 -aux 显示所有包含其他使用者的行程
VD9J}bgJ K]9tc) au(x) 输出格式 :
n-W?Z'H{r xp(mB7;: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
m qpd USER: 行程拥有者
[C2kK *JZ PID: pid
l=,.iv=W %CPU: 占用的 CPU 使用率
N:d
D*[QZ %MEM: 占用的记忆体使用率
hg{ &Y(J!U VSZ: 占用的虚拟记忆体大小
6Z$b?A3zM RSS: 占用的记忆体大小
sC9-+} TTY: 终端的次要装置号码 (minor device number of tty)
YyG~#6aCh STAT: 该行程的状态:
uO6c3|Zjs D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
b6]e4DL:R R: 正在执行中
V54q"kP,@. S: 静止状态
H8(C>w-' T: 暂停执行
roL}lM$ Z: 不存在但暂时无法消除
+B](5 z4 W: 没有足够的记忆体分页可分配
{Qm6?H <: 高优先序的行程
ipfm'aQ N: 低优先序的行程
=[ APMig,n L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
= >P_mPP= START: 行程开始时间
|b,zw^!e[' TIME: 执行的时间
,b.kw}k COMMAND:所执行的指令
<n f=SRZ 范例:
0@:Y>qVa ps
Y7*'QKz2 PID TTY TIME CMD
p_A5C?& 2791 ttyp0 00:00:00 tcsh
tnA_!$Y
a 3092 ttyp0 00:00:00 ps
ZWov_ % ps -A
"^18&>^ PID TTY TIME CMD
,o4r,.3[s 1 ? 00:00:03 init
.QNjeMu. 2 ? 00:00:00 kflushd
sb8z_3 3 ? 00:00:00 kpiod
{6-;P#Q0_ 4 ? 00:00:00 kswapd
O7! fI'R 5 ? 00:00:00 mdrecoveryd
Xqc'R5Cw .......
>N :|Km\ % ps -aux
$:xF)E USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jq7vOr-_g root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
WT;.>F root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
*Pa2bY3: root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Y'3kE root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
mjWp8i
........
0G+L1a- 名称:pstree
}G"r3*
使用权限:所有使用者
41P4?"O 使用方式:
mrhsKmH pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
C}t+t pstree -V
K7)j 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
fhVbJU 参数:
g}\U, ( -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
9_g>BI;"8 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
%4QoF 范例:
buMiJzU pstree
:Vu7,o vE^h}~5U init-+-amd
AH"g^ gw~T |-apmd
BH.:_Qrbh[ |-atd
O>)n*OsS |-httpd---10*[httpd]
6Cop#kW# %pstree -p
awj} K init(1)-+-amd(447)
k)<~nc- |-apmd(105)
6qz!M |-atd(339)
|SSfG~r %pstree -c
[Gh%nsH init-+-amd
Wwa41z |-apmd
jSUAU}u!M |-atd
< -@, |-httpd-+-httpd
\N'hbT= | |-httpd
H|UV+Q0, | |-httpd
/ h2*$ | |-httpd
F3H:I"4 ....
~/]\iOL 名称:renice
;f\R$u- 使用权限:所有使用者
.:r2BgL qxg7cj2 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
'<{oYXZW3 e&FX7dsyy 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
)ZQ9a4% TQbFI;\ 把计?
toYg$IV /4wm}g9 -p pid 重新指定行程的 id 为 pid 的行程的优先序
/pSUn"3 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
z9);e8ck -u user 重新指定行程拥有者为 user 的行程的优先序
TS~Y\Cp 范例:
J?qcRg`1E 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
qMW%$L\HA renice +1 987 -u daemon root -p 32
U{za m 99+/W*C 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
Ilt L@]e QB.*R? A 名称:top
X'3`Q S:! 使用权限:所有使用者
k_|v)\4B &d|VH y+ 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] _sf0{/< )
J*q=C%}.
说明:即时显示 process 的动态 i"\AyKiJ
u;'<- _
把计? "DcueU#!
8ZDqqz^C0
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s LPm# 3U
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 CrwcYzrRWl
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 q3pN/f;kr,
s : 安全模式,将交谈式指令取消, 避免潜在的危机
`Hp.%G(
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 a@a1TpLQ
n : 更新的次数,完成后将会退出 top a*n%SUP
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 p?`|CE@h7
}9+1<mT9a/
范例: (82\&dfy
显示更新十次后退出 ; g$^qQs)^N
top -n 10 w]5f3CIm
J^+$L"K
使用者将不能利用交谈式指令来对行程下命令 : 4f @\f7\
top -s 3
Q%k(,
=R24h
将更新显示二次的结果输入到名称为 top.log 的档案里 : >"$-V Y6 i
top -n 2 -b < top.log JjTzq2'%
E.Q}
\E
名称:skill '14l )1g.
__zu-!v
使用权限:所有使用者 $j4?'-i=e
1r:fxZO\Vd
使用方式: skill [signal to send] [options] 选择程序的规则 F>_lp,G
*~oDP@[S
说明: r1[T:B'
Vx4pP$S
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 kc(b;EA
.=w`T
#L
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 zvs 2j"lb
K|J#/
一般参数: <x;[ H%
yar IR|
-f 快速模式/尚未完成 zB7dCw
WxP4{T* <
-i 互动模式/ 每个动作将要被确认 4 }YT@={g}
/s0VyUV=
-v 详细输出/ 列出所选择程序的资讯 Z
7ZMu
f'yd{ihFp
-w 智能警告讯息/ 尚未完成 o!dkS/u-m
~~E=E;9
-n 没有动作/ 显示程序代号 5lA 8e
F-OZIo
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 21k-ob1Y
$gtT5{"PN(
-t 终端机代号 ( tty 或 pty ) ; 8x^9Q
gR6T]v
-u 使用者名称 }8KL]11b
~#x!N=q
-p 程序代号 ( pid ) kK6>>lD'
rTiuQdvo
-c 命令名称 可使用的讯号: w8@|b}
zW&O>H
以下列出已知的讯号名称,讯号代号,功能。 [eik<1=,~?
2/gj@>dt
名称 (代号) 功能/ 描述 (I 0t*Se
g/Nj|:3
ALRM 14 离开 >\Pj(,'
AiI# "
HUP 1 离开 Q$5:P&
}u)GERWO
INT 2 离开 4f~ZY]|nM
F!t13%yeu?
KILL 9 离开/ 强迫关闭 nvs7s0@Fqe
ZDD|MH
PIPE 13 离开 d> AmM!J
v0J1%{/xs
POLL 离开 |*a>6y
6>A8#VT
PROF 离开 /;ITnG
a'~y'6
TERM 15 离开 iB_j*mX]
J#WPXE+Ds
USR1 离开 b=l}|)a
#8|NZ6x,
USR2 离开 l.)!jWY
5X-(@GwN
VTALRM 离开 Q;M\P/f
03;(v%
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 %;J`dM
/q]@|5I
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Ut =y`]F
)Me&xQTn
TSTP 停止 /产生与内容相关的行为 Br??Gdd
sl 5wX
TTIN 停止 /产生与内容相关的行为 ~h.B\Sc]Q
_ji%BwJ
TTOU 停止 /产生与内容相关的行为 wH<*
u] b6>
STOP 停止 /强迫关闭 \_'pUp22
\/Y<.#?_
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 (*]Y<ve
\O~P
!`
PWR 忽略 /在某些系统中会离开 `#bcoK5
_,Y79 b6
WINCH 忽略 R4;6Oi)
DK1)9<
CHLD 忽略 EK^2 2vi$
kA0^~
ABRT 6 核心 rz*Jm n b
'l;|t"R12
FPE 8 核心 \ZH=$c*W
3]P=co@
ILL 4 核心 |/$#G0X;H
?K"]XXsI
QUIT 3 核心 7Jk.U=vY
^;d;b<
SEGV 11 核心 [<t*&Kr+o
XRkqMq%
TRAP 5 核心 =Ju}{ bX
*XuzTGa"
SYS 核心 /或许尚未实作 JAK*HA
,*30Q
EMT 核心 /或许尚未实作 uwJkqlUOz
c9@*
BUS 核心 /核心失败 *h1@eJHMz
gqG"t@Y+
XCPU 核心 /核心失败 rxA<\h,A
QHK$
XFSZ 核心 /核心失败 #<{MtK_
y- YYDEl
范例: &*iiQ3
停止所有在 PTY 装置上的程序 bmLNR
skill -KILL -v pts/* l:+1j{ d7
tH(Z9\L 7
停止三个使用者 user1 , user2 , user3 _>.%X45xi
skill -STOP user1 user2 user3 eYFCf;
u|E,Wy1
其他相关的命令: kill (@zn[Nq
名称:expr ^H'#*b0u
使用权限:所有使用者 ?d 4_'y
### 字串长度 G>b1No3%k
%zGPF
shell>> expr length "this is a test" ts
]
+W!:
14 m(Oup=\%b}
### 数字商数 %2.T1X%!
shell>> expr 14 % 9 R)v`ZF,/b
5 T!n<ya!
### 从位置处抓取字串 f'
eKX7R
shell>> expr substr "this is a test" 3 5 LxbVRw
is is
=~)n,5
### 数字串 only the first character <"-sN
shell>> expr index "testforthegame" e <NUZPX29
2 *\>&
### 字串真实重现 W $y?~2
shell>> expr quote thisisatestformela WJ%b9{<
thisisatestformela