linux常用命令
q5YgKz?IC 9a"[-B: 称:/etc/aliases
PYPs64kNC] 使用权限:系统管理者
E KhwrBjS 使用方式: 请用 newaliases 更新资料库
6:i{_YX(.S 说明:
3iJ4VL7 sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
i5w ,*%%BTnR /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
u) y6 $ # newaliases
Ey A} :o?On/ 下面命令会做相同的事,
(eS4$$g # sendmail -bi
.&=nP?ZPC6 nAG2!2_8 相关命令:
?<bByxa mail, mailq, newaliases, sendmail
lX/s Q %WiDz0o ” mail [返回]
ob05:D_bc9 名称:mail
C:xgM'~+ L,M=ogdb 使用权限:所有使用者
W~2`o*\l 4\a K C%5 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
v8W .84e- n|sP0,$N1 说明:
Pp3<K649 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
u6Fm
qK]Dj FY+0r67] 参数:
MdmS i 忽略 tty 的中断讯号。 (interrupt)
oP;"`^_ I 强迫设成互动模式。 (Interactive)
fmrd 7*MW v 列印出讯息,例如送信的地点、状态等等。 (verbose)
o8;>E>; n 不读入 mail.rc 设定档。
N]udZhkn s 邮件标题。
SDt)|s
c cc 邮件地址。
XFKe6: b bcc 邮件地址。
s.`:9nj 0F> ils 范例:
#N9^C@ E j` 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Fv$5Zcf mail
user1@email.address
d"o5uo mail
user1@email.address user2
,|6O}E&
r0t4\d_& 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
E7X6Shng $X<O\Kna mail -s 标题 -c user1 user2 < mail.txt
s)C5u;3! sh;DCd 指令:mesg
UgI0
*PE2 使用权限 : 所有使用者
t 66Cx }zC9;R(E 使用方式 : mesg [y|n]
zGgPW 4'u +%6+__ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
1oU/gm$7\q (:Di/{i&r5 把计 ?
&iKy y0s=yN_ y : 允许讯息传到终端机介面上。
c"D%c(:4| n : 不允许讯息传到终端机介面上 。
`R[cM; c2 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
X<G"GaL d8D0 28d 例子 :
xb{G:v 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
-wr#.8rzTT mesg n
MXQua:&HW 与 mesg 相关的指令有: talk,write,wall。
|pLx,#n 名称:/etc/aliases
|)~t^ 使用权限:系统管理者
s1
mKz0q 使用方式: newaliases
n vzk P{ 说明:
9u[^9tL+D sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
<c'0-= JR6r3W /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
rfo7\'yk \dAs<${( 参数:没有任何参数。 范例:
)?`G"(y # newaliases
H@,h$$ YMSZcI 下面命令会做相同的事,
(8"advc6 # sendmail -bi
#hMS?F| _:+hB9n s 相关命令:
vJ,r}$H3 mail, mailq, newaliases, sendmail
'
%
d- 名称 : talk
?Vre"6U 使用权限 : 所有使用者
=D~>$Y [?>\] 使用方式 :
nh
XVc(( uH{oJSrK talk person [ttyname]
k~%j"%OB 说明 : 与其他使用者对谈
sP:nTpTsC OsT|MX 把计 :
X 0vcBHh person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name `!( IQ& ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
gpw,bV n }kn|To~ 例子.1 :
]\Z8MxFD /hN;\Z[@ 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
)FpizoV q0 talk Rollaend
xovsh\s {8* d{0l 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
+'|nsIx, 8IkmFXj 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
zJ6""38Pr talk
Rollaend@linuxfab.cx pts/2
~pT1,1 QHXA?nBX ?}e^-//*i 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
R53^3"q~ F| jl=i 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
s*Nb=v.e9 b4qMTRnv 名称 : wall
XL[Dmu& 使用权限 : 所有使用者
iE?yvtr8 Jmuyd\?,b 使用方式 :
g=/!Ry= wall [ message ]
/\{emE\] 使用说明:
GT7&>}FJ) wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
ck< `kJ`b s:k?-u@ 例子 :
JZdRAL2#v a&2UDl% K 传讯息"hi" 给每一个使用者 :
= GyABK wall hi
D;&\) 名称 : write
to'CuPkT 使用权限 : 所有使用者
x2sKj"2?@ 0xx4rpH 使用方式 :
b"aF-,M> +T&YYO8>5 write user [ttyname]
bg!(B<!X 说明 : 传讯息给其他使用者
&) 64:l& Y&1N*@YP 把计 :
:>iN#)S 80=LT-%# user : 预备传讯息的使用者帐号
1>uAVPa ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
$%^](- >$tU @mq 例子.1 :
X}xf_3N
" Wco2i m 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
EDz;6Z*4N write Rollaend
,]@K,|pC) }SC&6B?G 接下来就是将讯息打上去,结束请按 ctrl+c
`KtP;nG i\_LLXc 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
tz8fZ*n write Rollaend pts/2
gV-*z}`U H~TuQ 接下来就是将讯息打上去,结束请按 ctrl+c
wAw1K 2d 2{.g7bO 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
",&QO7_ [-VK!9pQ 名称:kill
tkH]_cH'w 使用权限:所有使用者
oN[}i6^,e .^M#BAt2 使用方式:
,p3]`MG 4#}aLP kill [ -s signal | -p ] [ -a ] pid ...
Pro?xY$E) kill -l [ signal ]
%g:'6%26 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
IIih9I`IR 把计?
?Wz2J3A.2t !qp$Xtf+ -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
G^tazAEfo -p : 印出 pid , 并不送出信号
^8EW/$k -l (signal) : 列出所有可用的信号名称
nShXY6bA 范例:
Arg/ge.y Ea&NJ]& g 将 pid 为 323 的行程砍掉 (kill) :
>I0;MNX kill -9 323
@"`}%-b u4IK7[= 将 pid 为 456 的行程重跑 (restart) :
_]33Ht9 kill -HUP 456
{?`7D:]`^ kmc_%Wm} 名称:nice
F \ls]luN 使用权限:所有使用者
_qR?5;v +Eh.PWEe 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
jan}}7Dly 1$eoW/8. 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
sWo}Xq# :P}3cl_ iAZ8Y/ 把计?
{N>ju {PX,_ -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
e,epKtL --help 显示求助讯息
}< H> 9iJ: --version 显示版本资讯
m_*wqNFA6 范例:
e)wi}\:q_ 将 ls 的优先序加 1 并执行 :
`v!.
,Yr nice -n 1 ls
\894Jqh $/s"It 将 ls 的优先序加 10 并执行 :
F$)l8} nice ls将 ls 的优先序加 10 并执行
6w7; \KnRQtlI 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
u0Wt"d-= #Z1-+X8P 名称:ps
LWv<mtuYf 使用权限:所有使用者
@>Yd6C 使用方式:ps [options] [--help]
!nSa4U,$w< 说明:显示瞬间行程 (process) 的动态
q4[8\Ua 参数:
GZ~Tl0U ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
=}#yi<Lt -A 列出所有的行程
.p!
DVQ"a -w 显示加宽可以显示较多的资讯
m;~} }~&vQ -au 显示较详细的资讯
*rmC3'}s -aux 显示所有包含其他使用者的行程
n#g_)\ U;#KFZ+~ au(x) 输出格式 :
u:f ]|Q 8In\Jo$|q> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
w\acgQ^%e USER: 行程拥有者
FL'}~il PID: pid
q13fmK(n-5 %CPU: 占用的 CPU 使用率
KM wV;r %MEM: 占用的记忆体使用率
3_)I&RM VSZ: 占用的虚拟记忆体大小
>`0U2K RSS: 占用的记忆体大小
= g{I`u TTY: 终端的次要装置号码 (minor device number of tty)
K khuPBd2 STAT: 该行程的状态:
K>DN6{hnV; D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
QFx3N% R: 正在执行中
GK}52,NM S: 静止状态
h p|v?3( T: 暂停执行
p[C"K0>:_F Z: 不存在但暂时无法消除
Cjf[]aNJe` W: 没有足够的记忆体分页可分配
+r3)\L{U <: 高优先序的行程
ML_VD*t9 N: 低优先序的行程
9m
M3Ve* L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
"@&TC"YG0 START: 行程开始时间
RxMsP;be TIME: 执行的时间
G1z*e.+y COMMAND:所执行的指令
wtek5C^ 范例:
^xa, r#N:V ps
b]]8Vs)' PID TTY TIME CMD
pJ]
Ix *M 2791 ttyp0 00:00:00 tcsh
DEZww9T2Qs 3092 ttyp0 00:00:00 ps
PyQ.B*JJ % ps -A
lAU99(GXV PID TTY TIME CMD
*DPX4P 1 ? 00:00:03 init
[h3xW 2 ? 00:00:00 kflushd
Ljd`)+`D 3 ? 00:00:00 kpiod
Cq2Wpu-u 4 ? 00:00:00 kswapd
LDjtkD.r 5 ? 00:00:00 mdrecoveryd
Mh7m2\fLbd .......
r"dIB@ % ps -aux
^&?,L@fW USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
{]Zan'{PCO root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
KyyRHf5 root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
}Z"iW/?" root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
E@SFK=` root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
[7@g*!+d ........
L0wT :x* 名称:pstree
%4*c/ c6 使用权限:所有使用者
5%Qxx\q 使用方式:
bTD?uX!^@ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
ZQfxlzj+X pstree -V
d)AYY}pw 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
C^)Imr 参数:
t*(bF[? -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
jaoZ}}V_$ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
D^6*Cwb 范例:
EsGu#lD2 pstree
]UvB+M]Lv) Q>{$Aqc,e init-+-amd
'3l TI |-apmd
$f
=`fPo |-atd
>G5aFk |-httpd---10*[httpd]
7H3v[ f^Q %pstree -p
=d{6=2Pt init(1)-+-amd(447)
N!K%aH~O |-apmd(105)
c[Fc3 |-atd(339)
ftYJ 3/ WH %pstree -c
VExhN'; init-+-amd
ztO)~uL |-apmd
R:~aX,qR |-atd
_w\9
\<% |-httpd-+-httpd
/z-rBfdy^ | |-httpd
&BPYlfB1 | |-httpd
_EMI%P&s | |-httpd
]Fy'M ....
!eyLh&]5 名称:renice
|A3"Jc.2o 使用权限:所有使用者
eGEwXza 4 l?m"o-Gp3 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
qd0G sr}j wsQnjT> 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Nh!`"B2B ^)dsi 把计?
}QI \K [K4cxqlfk -p pid 重新指定行程的 id 为 pid 的行程的优先序
E22o-nI?1 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
QEJu.o -u user 重新指定行程拥有者为 user 的行程的优先序
tYD8Y 范例:
`LkrG9KV{ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
bbC@ renice +1 987 -u daemon root -p 32
puOtF YZ\ hY4# 4A`I 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
>fC&bab Z[@ i/. I 名称:top
[piK"N 使用权限:所有使用者
XVs]Y'*x 9~UR(Ts}l 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] o26Y}W
Gld~GyB\k
说明:即时显示 process 的动态 /4r2B.91O
Mk*4J]PP
把计? q2%cLbI
F
x]7:MG$
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s u#ya
8
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 2U./
Yfk\
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 =Z+^n
?"
s : 安全模式,将交谈式指令取消, 避免潜在的危机 b~^'P
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 s,_+5ukv
n : 更新的次数,完成后将会退出 top eCI'<^
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 H>+/k-n-
goR_\b
SU
范例: %wbdg&^
显示更新十次后退出 ; (XOz_K6c%K
top -n 10 I{$suPk
+`F(wk["m
使用者将不能利用交谈式指令来对行程下命令 : ;<i
u*a
top -s xsZN@hT
^y>V-R/N
将更新显示二次的结果输入到名称为 top.log 的档案里 : `he# !"
top -n 2 -b < top.log KF7w{A){
n~lB}
名称:skill URVW5c
@JSWqi>
使用权限:所有使用者 /o4_rzR?
%/2
` u
使用方式: skill [signal to send] [options] 选择程序的规则 !hHe`
]:f.="
说明: Gm-
"?4(
+vZYuEq_
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 cEHpa%_5
0/~p1SSun
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 R V#w0 r
}P2*MrkcHB
一般参数: }zA|M9%E
;*5z&1O
-f 快速模式/尚未完成 g;Fdm5Q
hEjvtfM9\-
-i 互动模式/ 每个动作将要被确认 (B` NnL$
5^uX!_r`
-v 详细输出/ 列出所选择程序的资讯 5{-Hg[+9
=F[M>o
-w 智能警告讯息/ 尚未完成 ,GWa3.&.d
2\{/|\
-n 没有动作/ 显示程序代号 _
(b4|hJ'
-~.+3rcZ]
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 _Nh])p-
|vi=h2*
-t 终端机代号 ( tty 或 pty ) 1q'_J?Xmd
{(-TWh7V
-u 使用者名称 G}
[$M"}
x^3K=l;N
-p 程序代号 ( pid ) (O ;R~Io
rDaiAx&
-c 命令名称 可使用的讯号: "QfF]/:
!h&h;m/c
以下列出已知的讯号名称,讯号代号,功能。 H{P*d=9v
\U]<HEc^
名称 (代号) 功能/ 描述 ;d7Qw~v1s
}`whg8 fZ
ALRM 14 离开 a&)$s;
6mZpyt
HUP 1 离开 bAY>o
#;2mP6a[
INT 2 离开 bN*zx)f
Qm3RXO
KILL 9 离开/ 强迫关闭 ;XY#Jl>tg
~O;?;@
PIPE 13 离开 wj$3L3
PClwGO8'&
POLL 离开 4>=Y@z
1\f8-:C
PROF 离开 b4^a
zY
"(F:'J} X
TERM 15 离开 : B/u>
TAM`i3{ D
USR1 离开 _#U hXXD
>48)@sS
USR2 离开 ;hDIoSz
h" YA>_1
VTALRM 离开 T7G{)wm
Q!Dr3x
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 d cht8nX7~
b |Ed@C
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 [aC2ktI
$_Lcw"xO
TSTP 停止 /产生与内容相关的行为 .9bP8u2B{
C"}]PW
TTIN 停止 /产生与内容相关的行为 'UCF2L
yw?UA
TTOU 停止 /产生与内容相关的行为 47/YDy%
9%Ftln6
STOP 停止 /强迫关闭 <
uzDuBN
7^8<[8
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 ;@u+b0
j
W^nG\"T^
PWR 忽略 /在某些系统中会离开 Qgv-QcI{
'v3>"b
WINCH 忽略 oY%NDTVN
*}i.,4+y
CHLD 忽略 78+PG(Q_M
r`'n3#O*
ABRT 6 核心 w0t||qj^>"
I%G6V
a@
FPE 8 核心 [318Q%W&
~); 7D'[
ILL 4 核心 RIl+QA
q:v&wb%
QUIT 3 核心 Co>=<\yi
X6@G)68
SEGV 11 核心 V5LzUg]
M>g\Y
TRAP 5 核心 tm}0kWx
"Tm`V9
SYS 核心 /或许尚未实作 oW/ #/;|`
Xn3Ph!\Z5e
EMT 核心 /或许尚未实作 .),m7"u|
jz;"]k
BUS 核心 /核心失败 RoWGQney
HI30-$9
XCPU 核心 /核心失败 toCT5E_0=
ZjXpMx,
XFSZ 核心 /核心失败 'e>0*hF[
7].FdjT.
范例: M1T)e9k=x
停止所有在 PTY 装置上的程序 Ol'Ct'_k,"
skill -KILL -v pts/* v 5GV"qY
!7-dqw%l
停止三个使用者 user1 , user2 , user3 7,2bR
skill -STOP user1 user2 user3 xV4
#_1(
Rx 4
;X
其他相关的命令: kill 2 -uL
名称:expr 7x^P 74
使用权限:所有使用者 Q=%1@ ,x"
### 字串长度 -P<e-V%<
IOsitMOX:
shell>> expr length "this is a test" f6ad@2
14 xCMcS~
3/
### 数字商数 ayJKt03\O\
shell>> expr 14 % 9 y#Ao6Od6
5 !$x9 s'D
### 从位置处抓取字串 Xj&fWuA
shell>> expr substr "this is a test" 3 5 #xS8
is is [ENm(e$sI
### 数字串 only the first character XOzd{
shell>> expr index "testforthegame" e Uzb~L_\Rmt
2 ;_GS<[A3
### 字串真实重现 FaC;vuSpy
shell>> expr quote thisisatestformela ^E8XPK]-~
thisisatestformela