linux常用命令
ROb\Rxm b/("Y.r= 称:/etc/aliases
,!QV>= 使用权限:系统管理者
dA~
3>f*b_ 使用方式: 请用 newaliases 更新资料库
f'Mop= . 说明:
MgMD\ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
1NLg _UBOK {]N3f[w /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
&, a3@i # newaliases
y/_XgPfWU 5<YzalNf 下面命令会做相同的事,
|V,<+BEi # sendmail -bi
M[]A2'fS Sv[ 5NZn0& 相关命令:
v3[@1FQ" mail, mailq, newaliases, sendmail
I:j3sy X[$++p
. ” mail [返回]
P ,mN > 名称:mail
sy5 Fn~\R QO;4}rq 使用权限:所有使用者
b{7E;KyY, 2[yBD-": 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
7Ke&0eAw r?$?;%|C 说明:
kL*0M<0 ( mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
v
$({C ed!>)Cb 参数:
(g!p>m!Z i 忽略 tty 的中断讯号。 (interrupt)
)X+mV I 强迫设成互动模式。 (Interactive)
[1G^/K" v 列印出讯息,例如送信的地点、状态等等。 (verbose)
oMH.u^b]fT n 不读入 mail.rc 设定档。
<'U]`Lp s 邮件标题。
R!\EKH c cc 邮件地址。
bCv {1]RC2 b bcc 邮件地址。
5`+5{p W&Y"K)` 范例:
X@2-*so< D@ek9ARAq 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
\E1U@6a mail
user1@email.address
g=@_Z" mail
user1@email.address user2
:3h{ A`u i^`9syD 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
+~zXDBS9 =3xE: mail -s 标题 -c user1 user2 < mail.txt
7*o*6,/ iPG0o
% 指令:mesg
*Nb#W! 使用权限 : 所有使用者
/7c~nBU C@\{ehG 使用方式 : mesg [y|n]
3
fj 6=_~0PcY 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Dr<='Ux[5 \;5\9B"i 把计 ?
f>j wN@( )=pD%$iq y : 允许讯息传到终端机介面上。
kh$_!BT n : 不允许讯息传到终端机介面上 。
`TqSQg_l 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
XUMX* sUkm|K`# 例子 :
Q[n\R@ 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
%V!iQzL1 mesg n
'fV%Z 与 mesg 相关的指令有: talk,write,wall。
'_s}o< 名称:/etc/aliases
imB# Eo4eY 使用权限:系统管理者
{BBw$m, o 使用方式: newaliases
M5L{*>4|6 说明:
;E;To\NCYF sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
|iYg > rt-\g1x /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
Ji'(`9F&a q(o/yx{bm 参数:没有任何参数。 范例:
g:ErZ;[ # newaliases
?WI3/>:< FVsj; 下面命令会做相同的事,
+Lm4kA+aE5 # sendmail -bi
@ T;L$x 3k$[r$+" 相关命令:
D0G-5}s` mail, mailq, newaliases, sendmail
kT IYD o 名称 : talk
c{#yx_)V& 使用权限 : 所有使用者
9v)%dO. 8;P2A\X 使用方式 :
K<sC F[ k8nLo.O talk person [ttyname]
r{Rg920 说明 : 与其他使用者对谈
K/_9f'^ eJ8]g49mD6 把计 :
?8@>6IXn person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name [U
=Uo* ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
n| O [a6G +t)n;JHN 例子.1 :
7^TV~E# 1nhtM 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
?^#lWx q talk Rollaend
A~(l{g ;Q0bT`/X 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
Rf %HIAVE K ?$#ntp 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
cS.i talk
Rollaend@linuxfab.cx pts/2
gYop--\14] 4\5uY `\Ku]6J]5 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
#.B"q:CW*P 2GmpCy`L" 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
#_
C 9 t
n!t 名称 : wall
&:B<Q$g# 使用权限 : 所有使用者
NVV}6TUV X2 6
使用方式 :
`em9T oJV wall [ message ]
7cg*|E@ 使用说明:
U_yE&6 T wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
^}yg%+ 8G%yB}pa 例子 :
n}-3o]ku n_D8JF 传讯息"hi" 给每一个使用者 :
_A_ A$N~9 wall hi
'WyTI^K9 名称 : write
6$ Q,Y}j 使用权限 : 所有使用者
}f>H\iJe uZKP"Oy 使用方式 :
@MR?6 n*k R!
s6% :Yg write user [ttyname]
*DI)? 说明 : 传讯息给其他使用者
xom<P+M!| QvPD8B 把计 :
w>?Un,K u<ySd? user : 预备传讯息的使用者帐号
}}{!u0N},V ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
7XrfuG*L$ :q##fG'm/ 例子.1 :
f,i5iSYf wYsZM/lw 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
?@6b>='! write Rollaend
SJ'
%
^ Ac k}QzXO 接下来就是将讯息打上去,结束请按 ctrl+c
}peBR80tQ Wa/g`} 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
J<j&;:IRd write Rollaend pts/2
4_M>OD/" ?0*8RK 接下来就是将讯息打上去,结束请按 ctrl+c
fg%&N2/(.B r4_eTrC, 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
n_K~vD (n(
fI f 名称:kill
2+8#H. 使用权限:所有使用者
t/i5,le d~tuk4F 使用方式:
?^HfNp9 5R MS( kill [ -s signal | -p ] [ -a ] pid ...
Aez2*g3 kill -l [ signal ]
[K~]& 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
dmrps+L 把计?
>gtQw! 5@osnf? -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
|BMV.Zi -p : 印出 pid , 并不送出信号
46jh-4)< -l (signal) : 列出所有可用的信号名称
mumXUX 范例:
hi=XYC, H( -Y 将 pid 为 323 的行程砍掉 (kill) :
_=6 rE kill -9 323
D?jk$^p~m# UO`;&e-DB 将 pid 为 456 的行程重跑 (restart) :
JD>d\z2QC kill -HUP 456
H2gj=krK ,n,RFa 名称:nice
|8_JY2
R 使用权限:所有使用者
W3W'oo ]6Ug>>x5 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
\ b8sG"G 4] > ]-b 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
eS/B24;* KP;(Q+qTx AZ |yX 把计?
^^` Jcd/ }n,Zl>T9 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
`i~ Y Fr --help 显示求助讯息
5@Bu99` --version 显示版本资讯
',7??Q7j&v 范例:
I<b?vR 'F 将 ls 的优先序加 1 并执行 :
u#7+U\ nice -n 1 ls
8$N8}q% ~`;rNnOT3 将 ls 的优先序加 10 并执行 :
$Kj&)&M nice ls将 ls 的优先序加 10 并执行
3CjL\pIC 1iT\df 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
NIr@R7MKd K[\'"HyQ,X 名称:ps
S/vf'gj 使用权限:所有使用者
c47")2/yO 使用方式:ps [options] [--help]
Nb2Qp
K 说明:显示瞬间行程 (process) 的动态
&}mw'_ I 参数:
8qi+IGRg ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
cR-~)UyrO -A 列出所有的行程
ulHn#) -w 显示加宽可以显示较多的资讯
38V3o`f -au 显示较详细的资讯
/NT[ETMk+ -aux 显示所有包含其他使用者的行程
p_*M:P1Ma4 =!Vf au(x) 输出格式 :
? ]sM8Bd} NW|f7
ItX USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bok.j USER: 行程拥有者
Uv_N x10 PID: pid
LgmvKW| %CPU: 占用的 CPU 使用率
@Fv=u %MEM: 占用的记忆体使用率
D;GD<zC] VSZ: 占用的虚拟记忆体大小
<O?y-$~ RSS: 占用的记忆体大小
iVtl72O TTY: 终端的次要装置号码 (minor device number of tty)
_fFU#k:MU STAT: 该行程的状态:
HWns.[ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
gIWrlIV{9 R: 正在执行中
P27%xV-n> S: 静止状态
U;_[b"SW% T: 暂停执行
:_<_[Y]1 Z: 不存在但暂时无法消除
~jU/<~s W: 没有足够的记忆体分页可分配
?B@;QjhjiJ <: 高优先序的行程
Eu}b8c N: 低优先序的行程
@ufo$?D L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
1L7{p>;-dO START: 行程开始时间
>t,M TIME: 执行的时间
}F6<w{| COMMAND:所执行的指令
uaw~r2 范例:
JuRH>` ps
%OR|^M PID TTY TIME CMD
%U7.7dSOI; 2791 ttyp0 00:00:00 tcsh
_Jz8{` " 3092 ttyp0 00:00:00 ps
}/dRU${! % ps -A
f8 /'%$N PID TTY TIME CMD
I:&/`K4,x, 1 ? 00:00:03 init
p Y)5bSA 2 ? 00:00:00 kflushd
g3n'aD@'x 3 ? 00:00:00 kpiod
a`9L,8Ve 4 ? 00:00:00 kswapd
PupM/?57 5 ? 00:00:00 mdrecoveryd
h+.{2^x .......
! hd</_# % ps -aux
>DM44 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
j*@l"V>~ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
5FVndMM#y root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
MvLs%GE% root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
vD/NgRBww root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
=.<@`1 ........
NvE}eA# 名称:pstree
p?[Tm*r 使用权限:所有使用者
.JX EK 使用方式:
%)jxW{ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
VLsxdwHgb pstree -V
@53k8 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
8*SDiZ 参数:
Ft=zzoVKg -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
Mj-vgn&/ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
?SQE5Z 范例:
~0$NJrUy pstree
:a8 YV!X
`0H g y= init-+-amd
(2ur5uk+ |-apmd
Ng><n} |-atd
o56` |-httpd---10*[httpd]
8 a!Rb-Q: %pstree -p
a)Q!'$"'
init(1)-+-amd(447)
k 4/D8(OXw |-apmd(105)
^m#-9- ` |-atd(339)
G CRz<)1 %pstree -c
K/m3 init-+-amd
#Lsnr.80 |-apmd
mS>xGtD&K |-atd
U<"WK"SM |-httpd-+-httpd
uZa9zs=}c | |-httpd
t$2_xX | |-httpd
bn
6WjJ~Z+ | |-httpd
n%h^o ....
DU%w1+u 名称:renice
i|
\6JpNA: 使用权限:所有使用者
hPq%Lc d\e7,"L*Q 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
4=uhh
yJuQ8+vgR} 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
}'r[m5T ,Vd\m"K{ 把计?
pZ`|iLNl- ly% F."v -p pid 重新指定行程的 id 为 pid 的行程的优先序
VxP&j0M> -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
01!s"wjf -u user 重新指定行程拥有者为 user 的行程的优先序
`[o)<<} 范例:
\
w3]5gJZ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
sGvIXD renice +1 987 -u daemon root -p 32
80A.<=(=. OY[e.N
t& 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
!=;XBd- wf,7== 名称:top
yA{W 使用权限:所有使用者
Q1V9PRZX V"cKJ;s 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] Kn+S, 1r
oYWR')8g
说明:即时显示 process 的动态 .q+0pj
hdTzCfeZ5@
把计? B^).BQ
iy""(c
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 5s(1[(
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ~>9_(L
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 L(GjZAP
s : 安全模式,将交谈式指令取消, 避免潜在的危机 RN=` -*E1
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Uye|9/w8 !
n : 更新的次数,完成后将会退出 top ;Eu3[[V
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 y
qtKy
m%?V7-9!k
范例: ETs>`#`6o
显示更新十次后退出 ; !3T&4t
top -n 10 %`Z!4L
R$zH]
使用者将不能利用交谈式指令来对行程下命令 : G[jW<'f
top -s pW4 cX
e<r,&U$
将更新显示二次的结果输入到名称为 top.log 的档案里 : Q1@A2+ c
top -n 2 -b < top.log yCCrK@{oo
"`N-* ;*W
名称:skill 4&l10fR5
B=|cS;bM$3
使用权限:所有使用者 ~/j\Z
NHlk|Y#6b
使用方式: skill [signal to send] [options] 选择程序的规则 LdJYE;k Ju
XrZ*1V
说明: BT}&Y6
,AT[@
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 v+99
-.
tDUwy^j
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 QY= = GfHt
o6 $4/I
一般参数: _UuC,Pl3
$\9~)Rq6
-f 快速模式/尚未完成 B7imV@<
Dd`Mv$*d8
-i 互动模式/ 每个动作将要被确认 v$^Z6>vVI
}f2r!7:x
-v 详细输出/ 列出所选择程序的资讯 GgKEP,O
2#k5+?-c61
-w 智能警告讯息/ 尚未完成 Nz)l<S9>
fDLG>rXPT
-n 没有动作/ 显示程序代号 6uR^%W8]
itMg|%B%
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 "yW:\
1@$Ko5
-t 终端机代号 ( tty 或 pty ) -IV]U*4
13Lr}M&
-u 使用者名称 6^DR0sO
uG<}N=
-p 程序代号 ( pid ) 2it?$8#i
{AQ=<RDRF
-c 命令名称 可使用的讯号: C`q@X(_
%; D.vKoh
以下列出已知的讯号名称,讯号代号,功能。 b".L_Ma1*
7VP32Eh[
名称 (代号) 功能/ 描述 c_>f0i
$kQ~d8 O
ALRM 14 离开 Nv"EV;$
QPq7R
HUP 1 离开 V(E/'DR
0#MqD[U(
INT 2 离开 h;0S%ZC
:Lz\yARpk
KILL 9 离开/ 强迫关闭 n?c]M
^4o;$u4R
PIPE 13 离开 S.a%
wiBVuj#
POLL 离开 L{c q, jk
>
%KuNy{
PROF 离开 FKmFo^^0
BX yo
TERM 15 离开 `[n("7,
QeK*j/
USR1 离开 uyY|v$FM
KSrx[q
USR2 离开 C/-63O_
F_4n^@M
VTALRM 离开 Rx+p.
]EpWSs!"g
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 >i6yl5s
&ZQJ>#~j^
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 b2FO$Os
o-Ga3i 8
TSTP 停止 /产生与内容相关的行为 "V}[':fen
s@7H1)U
TTIN 停止 /产生与内容相关的行为 Z@$8I{}G
YSe.t_K2C
TTOU 停止 /产生与内容相关的行为 S)/_muP
]i)j3WDz]
STOP 停止 /强迫关闭 j.@\3'
@n": w2^B
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 wLH] <k
Alxx[l\<J
PWR 忽略 /在某些系统中会离开 +) m_o"hl
;I!MLI
WINCH 忽略 IOV(seEY
a 7,C>%I
CHLD 忽略 $81*^
bv*,#Qm
ABRT 6 核心 j+
LawW-
ziCHjqT
FPE 8 核心 _"w2U q
Xqm::1(-(
ILL 4 核心 ` 5C~
wg]j+r@
QUIT 3 核心 ~7Tc$
"I
8M`#pN^
SEGV 11 核心 e[#j.|m
>lIk9|
TRAP 5 核心 !dC<4qZ\C
.?Gd'Lp
SYS 核心 /或许尚未实作 `WH"%V:"Q
;{%\9nS
EMT 核心 /或许尚未实作 L~NbdaO
\<)9?M :
BUS 核心 /核心失败 UZpIcj cL
M%0C_=zg
XCPU 核心 /核心失败 aWY
gR
McQe1
XFSZ 核心 /核心失败 jE/AA!DC#
oczN5YSt
范例: L-k@-)98
停止所有在 PTY 装置上的程序 i0$kit
skill -KILL -v pts/* "PpN0Rr
XUlS\CH@{
停止三个使用者 user1 , user2 , user3 *=*AAF
skill -STOP user1 user2 user3 rq/I` :
t>$kWd{9e;
其他相关的命令: kill jyZWVL:_
名称:expr LMAE)]N
使用权限:所有使用者 3^6
d]f
### 字串长度 x"
L20}
PJL=$gBgKk
shell>> expr length "this is a test" 07^iP>?
14 X'qU*Eo
### 数字商数 tyqT
shell>> expr 14 % 9 Cy=Hy@C
5 fV'ZsJ N
### 从位置处抓取字串 VQS~\:1
shell>> expr substr "this is a test" 3 5 o_^?n[4
is is n4#;k=mA
### 数字串 only the first character (j3xAA
shell>> expr index "testforthegame" e `,(,tn_
2 xe`
</
### 字串真实重现 [CXrSST")E
shell>> expr quote thisisatestformela T"DlT/\
thisisatestformela