linux常用命令
U^dfNi@q t(z]4y 称:/etc/aliases
QLd*f[n 使用权限:系统管理者
k =! Q 使用方式: 请用 newaliases 更新资料库
`Lr], >aG 说明:
P<PZ4hNx sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
[^qT?se{ &hYgu3O /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
NM3;l}Y8 # newaliases
!VGG2N8 c{M
,K 下面命令会做相同的事,
,2FK$:M\ # sendmail -bi
!d72f8@9 | b'Ut)E 相关命令:
6<lo0PQ"Z mail, mailq, newaliases, sendmail
<*(Z}p ]m+%y+ ” mail [返回]
!&:=sA 名称:mail
RAW;ze*" ER"69zQg|2 使用权限:所有使用者
,Z{\YAh1 }3#\vn0gT 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
:q9! :33@y%>L 说明:
#mQ@4k9i mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
N>I6f rFXdxRP;M 参数:
Q}AZkZ i 忽略 tty 的中断讯号。 (interrupt)
t1 3V>9to I 强迫设成互动模式。 (Interactive)
[^hW>O=@TN v 列印出讯息,例如送信的地点、状态等等。 (verbose)
&4?&tGi n 不读入 mail.rc 设定档。
/QXUD.(
8 s 邮件标题。
6GxLaI c cc 邮件地址。
V*?cMJ_G b bcc 邮件地址。
5Tl5T& 6 >kU Lp 范例:
!rnjmc P $`1} 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
SXL3>-Z E mail
user1@email.address
k|;a"56F mail
user1@email.address user2
rq%]CsRY5 :>&q?xvA 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
Hv;xaT<}V
!*#9b mail -s 标题 -c user1 user2 < mail.txt
rS1 gFGrj `O\>vn 指令:mesg
>_}isCd, 使用权限 : 所有使用者
X$kLBG[o_ ](r}`u%}y 使用方式 : mesg [y|n]
_o~ pVBl/ E+L7[ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
w.m8SvS&b PxKBcx4o` 把计 ?
owNwj I\)`,w y : 允许讯息传到终端机介面上。
\+o\wTW n : 不允许讯息传到终端机介面上 。
SEgw!2H 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
XCM!8x?K "c%wq0 例子 :
%1#\LRA( 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
Ca |}i+ mesg n
"VaWZ* 与 mesg 相关的指令有: talk,write,wall。
/H'- }C 名称:/etc/aliases
H!;N0",]N 使用权限:系统管理者
#0AyC.\ 使用方式: newaliases
1<!P:@( 说明:
u&~Xgq5[ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
S
m(*<H G$C2?|V)= /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
D.Ke {K|?i9K 参数:没有任何参数。 范例:
dgVGP_~ # newaliases
3 Zp<# KM &P5} 下面命令会做相同的事,
Dl>tF?= # sendmail -bi
@5Tl84@Q e'mF1al 相关命令:
nlv,j& mail, mailq, newaliases, sendmail
jIKg* @ 名称 : talk
QSaDa@OV 使用权限 : 所有使用者
j*3;G+ \S h/<z 使用方式 :
S.MRL, >Tf}aI+ talk person [ttyname]
&N.pW=%,N 说明 : 与其他使用者对谈
$:s@nKgnD~ `}Y)l:G*g 把计 :
aR2N,<Cp5 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name W* LC3B^ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
^fF#Ej1 Oti;wf G7o 例子.1 :
O/eZ1YAC CVO_F=; 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
jtoS{B, talk Rollaend
;Tbo \Wp9 mAlG}< 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
bqn(5)% { bg~CV&]M 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
r(^00hvH talk
Rollaend@linuxfab.cx pts/2
HD<$0M| ]v<8l4p; =R0f{&"i 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
|-JG _i C-edQWbcP 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
8YZ9 mX|M]^_,z 名称 : wall
>|S@twy 使用权限 : 所有使用者
&wi+)d xn, u$@F 使用方式 :
@*rMMy 4 wall [ message ]
RrxbsG1HP 使用说明:
J>R$K wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
ql9n`?Q `N[@lV\xp! 例子 :
=?|$}vDO[ xy`Y7W= 传讯息"hi" 给每一个使用者 :
bEF2-FO wall hi
l]wfL;u 名称 : write
@Yt394gA%\ 使用权限 : 所有使用者
}S iR;2W +8<$vzB 使用方式 :
"PMJh 3q 'LoWp} f9 write user [ttyname]
wHbmK 说明 : 传讯息给其他使用者
`Ku:%~$/ T=/c0#Q|q 把计 :
-f ? p7AsNqEp user : 预备传讯息的使用者帐号
a6zWg7 PN ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
HG /fp<[ b81^756 例子.1 :
}alq~jY PM!JjMeQh 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
n-K/dI write Rollaend
4Kt0}W <LZ#A@]71 接下来就是将讯息打上去,结束请按 ctrl+c
$@s-OQ} ")9 ^ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
K!AA4!eUzM write Rollaend pts/2
tJ\v>s-f }!xc@ 接下来就是将讯息打上去,结束请按 ctrl+c
5OPvy,e6 E4=D$hfq` 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
Cn=#oE8(A pzt<[; 名称:kill
^PC;fn,I 使用权限:所有使用者
P#3J@aRC Z;NaIJiL- 使用方式:
KCpq<A% 9b6U]z, kill [ -s signal | -p ] [ -a ] pid ...
l?b*T#uIk kill -l [ signal ]
% dtn*NU 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
@ o<OI 把计?
)" Z|x ]w,|WZm -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
;Tk/}Od!VN -p : 印出 pid , 并不送出信号
;9#%E -l (signal) : 列出所有可用的信号名称
'k}w|gNB 范例:
Hi2JG{i ts@w 9| 将 pid 为 323 的行程砍掉 (kill) :
} PL{i kill -9 323
7Ou]!AOhG +BM[@?"hrh 将 pid 为 456 的行程重跑 (restart) :
\'zloBU kill -HUP 456
Zcw<USF8 -|u
yJh 名称:nice
A:4&XRYZY 使用权限:所有使用者
i"+TKo- g0QYBrp 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
2zbn8tO 6*EIhIQ( 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
(QojIdHt Myn51pczl Kc@Sw{JR#7 把计?
0,&] 2YJ eVX/<9> -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
Piw i --help 显示求助讯息
a6A~,68/V --version 显示版本资讯
KR R)pT 范例:
v=dK2FaY 将 ls 的优先序加 1 并执行 :
vqVwo\oEdU nice -n 1 ls
(+xT5 2 RkTYvAk|kY 将 ls 的优先序加 10 并执行 :
a*&&6Fo nice ls将 ls 的优先序加 10 并执行
NU'2QSU8 BhjDyB 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
T#:b ~PAI0+*"q 名称:ps
WAtv4 使用权限:所有使用者
-s)h
?D 使用方式:ps [options] [--help]
!,Cbb } 说明:显示瞬间行程 (process) 的动态
C%ZPWOc_8 参数:
_d^d1Q}V ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
G pO*As_2 -A 列出所有的行程
&Cm]*$? -w 显示加宽可以显示较多的资讯
R?#=^ $7U -au 显示较详细的资讯
lu+KfKa -aux 显示所有包含其他使用者的行程
92C; a5s De{ZQg) au(x) 输出格式 :
QX&Y6CC`] sk:B;.z USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Brd9"M|d USER: 行程拥有者
'-X O;{,-R PID: pid
.r-Zz3 %CPU: 占用的 CPU 使用率
+T4}wm %MEM: 占用的记忆体使用率
xTH3g^E VSZ: 占用的虚拟记忆体大小
^B}q@/KV RSS: 占用的记忆体大小
&v;o }Q}E{ TTY: 终端的次要装置号码 (minor device number of tty)
QUZ+#*:s STAT: 该行程的状态:
J,=ZUh@M D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
%] :ZAmN R: 正在执行中
Akws I@@ S: 静止状态
`|v/qk7
^? T: 暂停执行
+%WW8OX Z: 不存在但暂时无法消除
8X278^
# W: 没有足够的记忆体分页可分配
x&+&)d <: 高优先序的行程
@SaxM4 N: 低优先序的行程
R[*n3
wB L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
mb%U~Na START: 行程开始时间
9HPwl TIME: 执行的时间
][#|5UK8L COMMAND:所执行的指令
C(8!("tU 范例:
CvEIcm=t ps
=1VZcLNt PID TTY TIME CMD
@[f$MRp\ 2791 ttyp0 00:00:00 tcsh
L`wr~E2u 3092 ttyp0 00:00:00 ps
zuFPG{^\# % ps -A
9`"#OQPn1 PID TTY TIME CMD
jT F" 1 ? 00:00:03 init
3J/l>1[ 2 ? 00:00:00 kflushd
BJ'pe[Xa5 3 ? 00:00:00 kpiod
!"-.D4*r 4 ? 00:00:00 kswapd
rce._w } 5 ? 00:00:00 mdrecoveryd
4}UJBb? .......
vM$hCV~N % ps -aux
ma<uXq USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Z#^|h0 root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
:qAX9T'{t root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
rKT.~ZP\ root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
_V0%JE' root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
.Y8P6_ ........
/EegP@[ 名称:pstree
PyK!Cyq 使用权限:所有使用者
-xN/H,xok 使用方式:
Xh3b=i|K pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
dV}]\8N pstree -V
G-R83Orl 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
AGjjhbGB 参数:
2m*/$GZ -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
x'OP0],# -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
G K3T w 范例:
dxH\H?NO pstree
^K_FGE0ec qK2jJ3)> init-+-amd
utl-#Wwt/ |-apmd
,S<) ) |-atd
;_|4c7 |-httpd---10*[httpd]
o`7 Z<HF %pstree -p
' u;Zw%O(J init(1)-+-amd(447)
;volBfv |-apmd(105)
njO~^Hl7 |-atd(339)
1w7XM0SHcn %pstree -c
`g) init-+-amd
uqa
pj(" |-apmd
)UTjP/\gN |-atd
mpVD;)?JmM |-httpd-+-httpd
. &`YlK | |-httpd
Q>9bKP | |-httpd
;(;~yB|NZ5 | |-httpd
B4* y-Q.* ....
ur=:Ha 名称:renice
3^-R_ 使用权限:所有使用者
a^E>LJL R$A%Zh6 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
jvD_{r i "X" -)# 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
`L[q`r7 H+]h+K9\7 把计?
J7aYi]vI kumo%TXB& -p pid 重新指定行程的 id 为 pid 的行程的优先序
ja/wI'J< -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
9V&+xbR& -u user 重新指定行程拥有者为 user 的行程的优先序
!<VP[%2L~ 范例:
J7%rPJ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
"L1LL
iS renice +1 987 -u daemon root -p 32
05\0g9 C!9mygI 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
.3XiL=^~Qp yJO Jw o^ 名称:top
OI78wG 使用权限:所有使用者
8;c\}D UJ%.KU%Q} 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] YWD gRb
!Fxn1Z,
说明:即时显示 process 的动态 m .(\u?J
v6Y[_1
把计? }R5EuR m\
4g}r+!T
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 9(}d7y
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 &DHIYj1 i
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 *8;<w~
s : 安全模式,将交谈式指令取消, 避免潜在的危机 -aE,KQ
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 %[9ty`UE
n : 更新的次数,完成后将会退出 top /YU8L
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 *P]]7DR
ZqpK}I
范例: 3
Fy CD4#
显示更新十次后退出 ; .0gfP4{1{
top -n 10 u2$.EM/iae
%H&WihQ
使用者将不能利用交谈式指令来对行程下命令 : |;t{L^
top -s |22vNt_
/L@o.[H
将更新显示二次的结果输入到名称为 top.log 的档案里 : _h,_HW)G
top -n 2 -b < top.log x%goyXK
].aFdy
名称:skill @OUBo;/
F^%\AA]8
使用权限:所有使用者 xN}f?
QlR~rFs9t
使用方式: skill [signal to send] [options] 选择程序的规则 M.Tp)ig\#
Ygkf}n
说明: 4x4[
omy3<6
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 #Yp&yi
}
S
Te8*=w
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 V lO^0r^z
(4yXr|to}
一般参数: i[FYR;C
F`(;@LO
-f 快速模式/尚未完成 I?%q`GyP5
5`Uzx u
-i 互动模式/ 每个动作将要被确认 fl9VokAT
J&JZYuuf
-v 详细输出/ 列出所选择程序的资讯 5=p<"*zJ
0raFb,6l
-w 智能警告讯息/ 尚未完成 DcM/p8da
\dE{[^.5
-n 没有动作/ 显示程序代号 n<> ^cD
`U\l: ~]e
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 @]}/vsI m
9xw"NcL
-t 终端机代号 ( tty 或 pty ) fi ~@J`
r)Zk- !1
-u 使用者名称 A:z
L2}<2
-p 程序代号 ( pid ) &sBD0R(a
;1nXJ{jKw
-c 命令名称 可使用的讯号: +\&6Zbn
=-GxJPL
以下列出已知的讯号名称,讯号代号,功能。 ZHeq)5C ;f
F9%+7Op^
名称 (代号) 功能/ 描述 '|5o(6u'
,C0y3pL
ALRM 14 离开 J9j
@V4
#=ij</
HUP 1 离开 $XMpC{
Cd]A1<6s
INT 2 离开 ;YMg4Cs
HUCJA-OZGL
KILL 9 离开/ 强迫关闭 tf8xc
,mi7WW9
PIPE 13 离开 FyPG5-
cwtlOg
POLL 离开 `T7TWv"M
.;ofRx<
PROF 离开 hDZyFRg
L,nb<
TERM 15 离开 d&Nji%Ej
OU#p^5K
USR1 离开 59W~bWHCP
r#&JfAo
USR2 离开 ^>Z7."uGY
Ej6ho 0_
VTALRM 离开 jAy2C&aP
p$jAq~C
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 dw5"}-D
#9.%>1{6Y
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 1=,2i)
:2
:VMIa
TSTP 停止 /产生与内容相关的行为 +Ig%h[1a
|_7k*:#q:
TTIN 停止 /产生与内容相关的行为 k\j_hu
W(4$.uZ)
TTOU 停止 /产生与内容相关的行为 XE2rx2k
r%ebC
STOP 停止 /强迫关闭 oqhJ2
N81M9#,["~
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 $_TS]~y4}
4E2/?3D
PWR 忽略 /在某些系统中会离开 =&9c5"V&
mXS]SE
WINCH 忽略 dPf7o
mv~?1aIKD
CHLD 忽略 ONDO
xXs
tu* uQ:Ipk
ABRT 6 核心 mD&I6F[s
S^p^)
fAmF
FPE 8 核心 =2=rPZw9
FkuD Gg~a
ILL 4 核心 o~\.jQQxa
JsuI&v
QUIT 3 核心 qz3
Z'
,c?(
|tF
SEGV 11 核心 c?. i;4yh
*V\.6,^v
TRAP 5 核心 Jp}\@T.
oaPWeM+
SYS 核心 /或许尚未实作 kN{$-v=K
~I;x_0iY4
EMT 核心 /或许尚未实作 C#yRop_d]o
<Z.{q Zd
BUS 核心 /核心失败 p'%S{v@5((
GI,TE
XCPU 核心 /核心失败 (s&]V49
ZS(%!+ M
XFSZ 核心 /核心失败 _#&oQFdYR
Yk?q \1
范例: L97 ~ma
停止所有在 PTY 装置上的程序 ry=8Oq&[~
skill -KILL -v pts/* QKq4kAaJ!
FJCORa@?_
停止三个使用者 user1 , user2 , user3 _6r[msH"
skill -STOP user1 user2 user3 U!uJ )mm
%Y=r5'6l
其他相关的命令: kill [r3sk24
名称:expr vWM&4|Q1~
使用权限:所有使用者 $':5uU1}
### 字串长度 A[7H-1-
k+P3z&e
shell>> expr length "this is a test" jnztCNaX
14 ;]m;p,$
### 数字商数 r4K9W90
shell>> expr 14 % 9 Tsb}\
5 T$R#d&t
### 从位置处抓取字串 %W7%] Z@j
shell>> expr substr "this is a test" 3 5 phf{b+'#X
is is >4kQ9lXL
### 数字串 only the first character j$/#2%OVN
shell>> expr index "testforthegame" e U!c+i#:t
2 <\Y(+?+uZ
### 字串真实重现 >Ovz;
shell>> expr quote thisisatestformela pt3)yj&XE
thisisatestformela