linux常用命令
dU_;2d$ tvno3" 称:/etc/aliases
]
0L=+=w 使用权限:系统管理者
C@;e< 使用方式: 请用 newaliases 更新资料库
&I-T 说明:
{a\! 1~ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
&b>&XMIK s;Bh69 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
bGB$a0 # newaliases
K%`]HW@I{ M_+W5Gz< 下面命令会做相同的事,
\{Q_\s&) # sendmail -bi
k:7Gb7\ Y(aUB$" 相关命令:
~u!V_su]GY mail, mailq, newaliases, sendmail
UM0Ws|qx& 9:g]DIL ” mail [返回]
\^pc"?Rc 名称:mail
3st?6?7| 2oc18#iG( 使用权限:所有使用者
5"G-r._ k$5l kP. 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
GL>YJ% o R8'^G0< 说明:
=mX26l`B mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
:!cK?H$+ G2y1S/ 参数:
]iW:YNvXA i 忽略 tty 的中断讯号。 (interrupt)
LRWM}'.s I 强迫设成互动模式。 (Interactive)
}M(xN6E v 列印出讯息,例如送信的地点、状态等等。 (verbose)
YH+(N n 不读入 mail.rc 设定档。
i/C%
1< s 邮件标题。
}'}n~cA.{ c cc 邮件地址。
7jxx,#I: b bcc 邮件地址。
}&L%c> x'?p?u~[ 范例:
a6xo U;T ZXo;E 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
$"(
15U mail
user1@email.address
[\eVX`it mail
user1@email.address user2
Yj bp: {U>N*&_` 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
7f
k)a 8PVjNS/ mail -s 标题 -c user1 user2 < mail.txt
qAd=i0{N }%PK %/ zI 指令:mesg
WcT= 5G 使用权限 : 所有使用者
;!VxmZ:j[ j[R.UB3J 使用方式 : mesg [y|n]
ig YYkt ;ow)N <Z 说明 : 决定是否允许其他人传讯息到自己的终端机介面
d^M*%a z djnES,^%9 把计 ?
U/AiI;Ne f@Jrbg y : 允许讯息传到终端机介面上。
l(87s^_ n : 不允许讯息传到终端机介面上 。
} LC 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
_()1"5{ sCt)Yp+8}B 例子 :
>W >Ei(f 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
K^@9\cl^ mesg n
))Z>$\<: 与 mesg 相关的指令有: talk,write,wall。
:] U\{;q2 名称:/etc/aliases
g=t7YQq_~ 使用权限:系统管理者
Cy/VH"G= 使用方式: newaliases
&)+H''JY 说明:
573,b7Yf sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
RjvW*'2G Ng !d6] /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
-L]-u6kC[ *-Yw%uR
参数:没有任何参数。 范例:
?$)5NQB% # newaliases
)kI**mI} M.s'~S7y 下面命令会做相同的事,
i@5Fne # sendmail -bi
<,GVrVH=t" I-g/)2 相关命令:
P33xt~ mail, mailq, newaliases, sendmail
9NU0K2S 名称 : talk
:EQ{7Op` 使用权限 : 所有使用者
X|Y(* $?D7 DZC@^k \E 使用方式 :
#I453 lTq"j?#E]m talk person [ttyname]
3Y2~HuM 说明 : 与其他使用者对谈
R^/SBrWve EI 35&7( 把计 :
'n,V*9 person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name b \`S[ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
hF0,{v CKK}Z;~: 例子.1 :
W +ER'lX u>:(MARsR 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
W!? h2[ talk Rollaend
-GCo`PR?b |SjRss:i+ 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
;50&s .gZ _;;Zz&c 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
2,q*[Kh1 talk
Rollaend@linuxfab.cx pts/2
]$lt '{jr9Vh 7:<w)Al! 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
s b;q)Rh %?PFe} 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
pzz*>Y OA[e}Vn 名称 : wall
{k)gDJU 使用权限 : 所有使用者
.N
qXdari DHWz, M 使用方式 :
rtj`FH??11 wall [ message ]
V|_
h[hXE 使用说明:
dg24h7|] wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
;[Mvk6^'R 22CET9iCe 例子 :
ccHf+= |]*3En: 传讯息"hi" 给每一个使用者 :
m|aK_ wall hi
h<Aq|* 名称 : write
fu^W# "{ 使用权限 : 所有使用者
gQ>kDl^$Ls P"Al*{:J 使用方式 :
tR|dnC4U ;XurH%Mg write user [ttyname]
-[=eVS.2% 说明 : 传讯息给其他使用者
i3,IEN =:^aBN# 把计 :
eluN~T:W n:%4SZn user : 预备传讯息的使用者帐号
sE pI)9 ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
\l~^dn} i41~-?Bc 例子.1 :
4 O!2nP ^viabkf C 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
lT|Gkm<G write Rollaend
?RsrY4P t}YcB`q) 接下来就是将讯息打上去,结束请按 ctrl+c
6Wu*zY_+ 6O7s^d&K 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
=SfNA
F write Rollaend pts/2
GJeG7xtJKl m4mE7Wn.3 接下来就是将讯息打上去,结束请按 ctrl+c
=nhY;pY3u s@F&N9oh 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
e&}W# i2,4:M)CV 名称:kill
[.gk{> # 使用权限:所有使用者
9TW[;P2> ) OETo?Wg1Z 使用方式:
0MW W(
; `q?3ux kill [ -s signal | -p ] [ -a ] pid ...
_K^Q]V[nZ kill -l [ signal ]
K-0=#6?y4 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
pU$k{^'UK 把计?
oac)na:O# 0k]ApW -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
0:$}~T9T -p : 印出 pid , 并不送出信号
h?mDtMCw2 -l (signal) : 列出所有可用的信号名称
uX_H;,n 范例:
FK _ ZE> J:Cr.K` 将 pid 为 323 的行程砍掉 (kill) :
v e&d"8+] kill -9 323
IO\l8G 2XP
}:e 将 pid 为 456 的行程重跑 (restart) :
u8Ys2KLpL kill -HUP 456
;TAj;Tf]H 7v5]%%E/ 名称:nice
2u3Kyn 使用权限:所有使用者
R#T-o,m 3s6obw$ki 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
cQ8[XNa I!lDKS,b 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
yHeL&H mY"7/dw<v O^L]2BVC 把计?
Ku(YTXtK nu0pzq\6 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
{wqT$( (< --help 显示求助讯息
d_9 Cm@ --version 显示版本资讯
HpnF,4A> 范例:
eZ'8JU] 将 ls 的优先序加 1 并执行 :
RkYdK$|K nice -n 1 ls
CMj =4e gRLt0&Q~ 将 ls 的优先序加 10 并执行 :
FM{f{2j nice ls将 ls 的优先序加 10 并执行
K*~{M+lU7 ~y<0Cc3Vs 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
)|~K&qn` 6}"%>9 名称:ps
_.5{vGyxr 使用权限:所有使用者
y;b#qUd5a 使用方式:ps [options] [--help]
yE:y[k0E 说明:显示瞬间行程 (process) 的动态
Z@bgJL83 参数:
I9X\@lTf ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
]s\r3I] -A 列出所有的行程
;s+/'(* -w 显示加宽可以显示较多的资讯
yGa0/o18!? -au 显示较详细的资讯
~+Wx\:TT -aux 显示所有包含其他使用者的行程
v;,W ^#` 7`|'Om?' au(x) 输出格式 :
q[s,q3n~ .p[uIRd` USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
(0{Dn5MH USER: 行程拥有者
U0&myj 8L PID: pid
_XZ
Gj:V %CPU: 占用的 CPU 使用率
,=)DykP %MEM: 占用的记忆体使用率
6n9/`D! VSZ: 占用的虚拟记忆体大小
H:.~!
r RSS: 占用的记忆体大小
OyO<A3 TTY: 终端的次要装置号码 (minor device number of tty)
<cTX;&0= STAT: 该行程的状态:
MCE@EFD`\ D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
UC`h o%OBF R: 正在执行中
5226&N S: 静止状态
8m+~HSIR T: 暂停执行
g QBS#NY Z: 不存在但暂时无法消除
x6cG'3&T W: 没有足够的记忆体分页可分配
=xk>yw!O) <: 高优先序的行程
9PB%v.t5y N: 低优先序的行程
7Z>vQ f B L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
[N,+mX START: 行程开始时间
/stvNIEa TIME: 执行的时间
/pF8S!,z COMMAND:所执行的指令
vu(
5s 范例:
B-
@bU@H ps
ilL% PID TTY TIME CMD
[RBSUOF 2791 ttyp0 00:00:00 tcsh
kFjv'[Y1N 3092 ttyp0 00:00:00 ps
,!Wo6{' % ps -A
sc*R:" PID TTY TIME CMD
"`M~=RiI 1 ? 00:00:03 init
6FDj :~ 2 ? 00:00:00 kflushd
onuG 3 ? 00:00:00 kpiod
,7V?Kj 4 ? 00:00:00 kswapd
"L.k
m 5 ? 00:00:00 mdrecoveryd
=-^A;AO( .......
.>W [ % ps -aux
GvtK=A$b USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
M6wH$!zRa root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
WN]k+0# root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
YeCnk:_ kg root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Bw;isMx7 root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
A.b^?k%I ........
y A5h^I 名称:pstree
}[leUYi` 使用权限:所有使用者
e6p3!)@P1 使用方式:
faOiNR7;h pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
/T6bc^nOW pstree -V
L9) gN.# 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
=|J*9z; 参数:
#~p;s> -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
d5-Q}D,P -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
8s22VL 范例:
g7323m1= pstree
+C\79,r _1)n_P4 init-+-amd
kb 74: |-apmd
u>;aQtK~ |-atd
_wXT9`|3 |-httpd---10*[httpd]
@(L}:]{@ %pstree -p
ft7M9<#v init(1)-+-amd(447)
!{*yWpZ: |-apmd(105)
Foq3==*p |-atd(339)
], Bafz)4 %pstree -c
u$tst_y- init-+-amd
M gP|'H3\ |-apmd
iZk4KX |-atd
{
1~]}K2 |-httpd-+-httpd
r1F5'?NZ(0 | |-httpd
Lea4-Gc | |-httpd
`'|6b5`2j | |-httpd
W/A@q o" ....
P'iX?+* 名称:renice
)'jGf;du 使用权限:所有使用者
q5Zu'-Cx@ G[e,7jev 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
H,<CR9@(5d Y->sJm 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
I!Dx)>E& *DcIC]ao[ 把计?
8Y% >"UXY) -p pid 重新指定行程的 id 为 pid 的行程的优先序
:*g$@T -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
CD`6R. -u user 重新指定行程拥有者为 user 的行程的优先序
rhzI*nwOT 范例:
_"F=4`lJ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
\1-lda renice +1 987 -u daemon root -p 32
|H=5Am [qxpu{ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
O:+y/c ~YNzSkz 名称:top
qm#?DSLap 使用权限:所有使用者
B^M
L}$ !M }-N 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] o9ys$vXt*
K~]Xx~F
说明:即时显示 process 的动态 )s7 EhIP
G~_eBy
把计?
1Z_]Ge<a
I_Z?'M
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s 902A,*qq
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 .@r{Tq,%q8
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 6qV1_M#
s : 安全模式,将交谈式指令取消, 避免潜在的危机 b* n#XTV
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 N1E9w:T`
n : 更新的次数,完成后将会退出 top $0{h Uex
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ZHwN3
Grw[h
范例: j^Qk\(^#IV
显示更新十次后退出 ; k,OxGG
top -n 10 7!o#pt7
\2f?)id~
使用者将不能利用交谈式指令来对行程下命令 : W }Ll)7(|T
top -s CyVi{"aF3
@d5t%V\
将更新显示二次的结果输入到名称为 top.log 的档案里 : &a >UVs?=
top -n 2 -b < top.log $+{o*
DjZTr}%q
名称:skill KKg\n^
/ml+b8@
使用权限:所有使用者 z{NK(oW
v!S(T];)
使用方式: skill [signal to send] [options] 选择程序的规则 4;jAdWj3
t=fAG,k5
说明: q?w%%.9]X
g p9;I*!
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 +Z9ua%,3%
tOj5b7'ui
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 sBxCi~
] RVme^=
一般参数:
j)mS3#cH
L'a s^Od
-f 快速模式/尚未完成 21?>rezJ
m KKa0"
-i 互动模式/ 每个动作将要被确认 @71y:)W<
'7]9q#{su
-v 详细输出/ 列出所选择程序的资讯 Tz(Dhb,
F9IPA%
-w 智能警告讯息/ 尚未完成 wxG*mOw
zs-,Y@ZL
-n 没有动作/ 显示程序代号 hz2f7g
7pH[_]1"
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 esv<b>`R
} f!wQxb
-t 终端机代号 ( tty 或 pty ) Nc(A5*
?G5,x
-u 使用者名称 ,y7X>M2
XQ Si
-p 程序代号 ( pid ) h5; +5B}D
Ban"H~
-c 命令名称 可使用的讯号: rsK
b9G
:y!{=[>M(
以下列出已知的讯号名称,讯号代号,功能。 k~1{|HxrE
J
B
!Q
名称 (代号) 功能/ 描述 ?l
0WuU
oFu( J
ALRM 14 离开 yA<\?Ps
{f>e~o
HUP 1 离开 <
$rXQ
~HX'8\5
INT 2 离开 B{Lzgw u;
38RyUHL=
KILL 9 离开/ 强迫关闭 kPp7;U2A
@%As>X<3t
PIPE 13 离开 LkJ-M=y
KlRIJOS
POLL 离开 v$|cF'yyF=
eOd'i{f@F
PROF 离开 0~nub
(M t-2+"+
TERM 15 离开 ]*AQT7PH
@(e/Y/
USR1 离开 j{NcDepLn
TC._kAm
USR2 离开 wb-_CQ
:W1B"T<
VTALRM 离开 zAd%dbU|
ncij)7c)u
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ~jOk?^6
i}LVBx"K(
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ,fD#)_\g2
Ne2eBmY}(
TSTP 停止 /产生与内容相关的行为 vF$sVu|B
8}!WJ2[R
TTIN 停止 /产生与内容相关的行为 _2S(
*
Fpy-?U
TTOU 停止 /产生与内容相关的行为 XRWy#Pj
#uH%J<U
STOP 停止 /强迫关闭 *#CUZJN\
zM|Y
X<
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 b*"%E,?
r1[Jo|4vo
PWR 忽略 /在某些系统中会离开 Z {*<Gx
O/PO?>@-/
WINCH 忽略 wy4}CG
Z(a,$__
CHLD 忽略 p u6@X7W"
4oRDvn7f&
ABRT 6 核心 @ZGD'+zd?
! $8 e6
FPE 8 核心 Ex}hk!
P
jh3=Dr
ILL 4 核心 EHX/XM
<GO 5}>}p8
QUIT 3 核心 FWDAG$K@0
:c`Gh< u
SEGV 11 核心 ^ah9:}Ll
jLv8K
TRAP 5 核心 q2~@z-q)b
:[.**,0R
SYS 核心 /或许尚未实作 6k*,Yei
gano>W0
EMT 核心 /或许尚未实作 ^K'@W
U/9_:
BUS 核心 /核心失败 |kh7F0';"
k?;B1D8-n
XCPU 核心 /核心失败 -|_MC^)
}GL@?kAGR5
XFSZ 核心 /核心失败 &*8_ w-
oZ,_ G,b^
范例: w0`8el;
停止所有在 PTY 装置上的程序 &Na,D7A:3I
skill -KILL -v pts/* ~Y/o9x0
I> BGp4 AQ
停止三个使用者 user1 , user2 , user3 XsbYWJdds
skill -STOP user1 user2 user3 kqQT^6S
="J *v>
其他相关的命令: kill xY>@GSO1
名称:expr N|\Q:<!2_w
使用权限:所有使用者 iqr/MB,W
### 字串长度 sFV&e->AN\
2rPmu
shell>> expr length "this is a test" t4v@d
14 F_F02:t
### 数字商数 TP{2q51yM
shell>> expr 14 % 9 WJj5dqatV
5 h yK&)y?~
### 从位置处抓取字串 (NC]S
shell>> expr substr "this is a test" 3 5 IRyZ0$r:e\
is is h5<eU;Rw+
### 数字串 only the first character )9i$ 1"a(
shell>> expr index "testforthegame" e @|([b r|O
2 O+OUcMa,
### 字串真实重现 SNtk1pG>
shell>> expr quote thisisatestformela n#^ii/H
thisisatestformela