linux常用命令
iHn]yv3
#
W9Lg}[>:) 称:/etc/aliases
-:>#w`H 使用权限:系统管理者
-Mvw'#(0 使用方式: 请用 newaliases 更新资料库
vWovR` 说明:
htRZ}e sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
Pb;`'<*U F)5Aq H/p /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
79x9<,a) # newaliases
7x]nY. \ /#=J`*m_ 下面命令会做相同的事,
A
m1W<` # sendmail -bi
FlG^'UD 1c"m$)a4 相关命令:
]e`_.>U mail, mailq, newaliases, sendmail
8} k,!R[J Kzu9Qm-+z^ ” mail [返回]
F?eb Yk1 名称:mail
9GwsQ \ NETC{:j 使用权限:所有使用者
c):*R ]= ko>_@]Jb 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
_fCHj$I*] XXcf!~uO 说明:
EXcj F mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
xi\RUAW `VE&Obp[ 参数:
P$ef,ZW" i 忽略 tty 的中断讯号。 (interrupt)
o)=VPUe I 强迫设成互动模式。 (Interactive)
EI.Pk>ZIm v 列印出讯息,例如送信的地点、状态等等。 (verbose)
=*}Mymhk( n 不读入 mail.rc 设定档。
5O W(] y| s 邮件标题。
tQaCNS$= c cc 邮件地址。
1n(}Q1fa b bcc 邮件地址。
hUxhYOp s3Ce]MH 范例:
]r1{%:8 wT=hO+ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
D*gVS mail
user1@email.address
O mIB k mail
user1@email.address user2
B/hHkOoo ;Hb[gvl 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
8m6 nw0 hb8XBBKR mail -s 标题 -c user1 user2 < mail.txt
4Z9 3g{ mVAm ^JK 指令:mesg
7 aD&\? 使用权限 : 所有使用者
\X.=3lc& )o</gt ) 使用方式 : mesg [y|n]
z
2VCK@0 l_-n&(N2<[ 说明 : 决定是否允许其他人传讯息到自己的终端机介面
N>Y50 Z;'.pU~ 把计 ?
/j/%wT2m 08?MS_ y : 允许讯息传到终端机介面上。
Z*>/@ J} n : 不允许讯息传到终端机介面上 。
f$|v0Xs 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
o>-v?Ug s7i.p] 例子 :
[(F<|f:n 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
dd7nO
:] mesg n
]U1,NhZu 与 mesg 相关的指令有: talk,write,wall。
cu`J2vm3 名称:/etc/aliases
&E
riskI 使用权限:系统管理者
T$8~9qx 使用方式: newaliases
<?{}Bo0xG 说明:
.^IhH|U sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
3t{leuO' PbHh?iH /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
M .` K!c@aD:# 参数:没有任何参数。 范例:
eu]iwOc&p # newaliases
' VEr4& U.7y8#qf3R 下面命令会做相同的事,
`N.$LY;8 # sendmail -bi
eoe^t:5& Qr%Jm{_o 相关命令:
>[fVl8G_0 mail, mailq, newaliases, sendmail
zHOE.V2Qo 名称 : talk
HU[nN* 使用权限 : 所有使用者
`-EH0'w~" |ch^eb^7" 使用方式 :
G+X[R^RD d74g|`/ talk person [ttyname]
!GGGh0Bj 说明 : 与其他使用者对谈
TWR$D t<k[W'# 把计 :
}`N2ZxC0AQ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name "SU-^z ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
"I}Z2 l5Wa'~0qA 例子.1 :
0yC`9g)( !HjNx%o5< 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
mHEf-6|C` talk Rollaend
4G8nebv ivX37,B\bS 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
<j
9Mt=8M ,ANK3n\ 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
}t51U0b% talk
Rollaend@linuxfab.cx pts/2
XCIa2Syo +Sd,l>8\ R=?po= 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
"c/s/$k// Ryq"\Q>+ 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
ZutB_uW loUl$X.u 名称 : wall
CSL{Q 使用权限 : 所有使用者
y /:T(tk$ \;*}zX 使用方式 :
d$_q=ywc wall [ message ]
?5yH'9zE 使用说明:
uB<F.!3 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
{y:#'n p=~h|(M| 例子 :
H
:
T N xeHb89GnoQ 传讯息"hi" 给每一个使用者 :
q#(/*AoU wall hi
(HaKF7Jsi 名称 : write
|N$?_<H 使用权限 : 所有使用者
<P^hYj-swh mheU#&| 使用方式 :
%]<RRH.w \5[D7} write user [ttyname]
3IK(f. 说明 : 传讯息给其他使用者
%7]XW 2u U$A7EFK' 把计 :
Q-`{PJ(p YXzZ-28,< user : 预备传讯息的使用者帐号
m@Ip^]9ry ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
fNqmTRu XW?ybH6 例子.1 :
9fuJJ3L[ iTLW<wG 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
{b,2;w}95 write Rollaend
NYjS MKe^_uF 接下来就是将讯息打上去,结束请按 ctrl+c
Vj=Xcn#*8 3@yTzaq6 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
W ~Jzqp9g write Rollaend pts/2
2>$F0
M ]<q}WjXD' 接下来就是将讯息打上去,结束请按 ctrl+c
Xn/ n|[ `.>k)=F& 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
w*:GM8=6 8jjFC9Cbn0 名称:kill
|0L=8~M(j 使用权限:所有使用者
e?!L}^f6X fK'.wX9 使用方式:
x[vBK8 wHtJ_Y kill [ -s signal | -p ] [ -a ] pid ...
Zlk,])9 Q kill -l [ signal ]
zkh hN"bX 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
v_z..-7Dq+ 把计?
oQ%\[s$ |"R_-U -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
3^\?>C7 -p : 印出 pid , 并不送出信号
hD_5~d -l (signal) : 列出所有可用的信号名称
\L ] 范例:
CZyz;Jtk Har~MO?A 将 pid 为 323 的行程砍掉 (kill) :
D1X4|Q*SK kill -9 323
KZF0rW =naR{pI 将 pid 为 456 的行程重跑 (restart) :
NfTCpA kill -HUP 456
gMs+?SNHAh '%SR. JL 名称:nice
zLsb`)! 使用权限:所有使用者
pcy<2UV 5{13V*< 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
X*!Dc,0.k =`Po<7D 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
i iX\it$s %kh#{*q$ ]cm6 |`pz 把计?
Xnv@H:$mxk |(V?,^b^ro -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
&~~aAg --help 显示求助讯息
`KpFH.k.K --version 显示版本资讯
F$Im9T6 范例:
bVoU|`c 将 ls 的优先序加 1 并执行 :
7}4'dW. nice -n 1 ls
7G5y)Qb , 3X: ) 将 ls 的优先序加 10 并执行 :
TN35CaSmq nice ls将 ls 的优先序加 10 并执行
F{k$Atb?g/ jt{9e:2% 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
>Mvka;T] yiVG ]s 名称:ps
~:>AR` 9G 使用权限:所有使用者
Wy<[(Pd 使用方式:ps [options] [--help]
q,B3ru.?d 说明:显示瞬间行程 (process) 的动态
i;o}o*= 参数:
9>by~4An? ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
LY]nl3{E -A 列出所有的行程
d^F|lc ]8 -w 显示加宽可以显示较多的资讯
D ]OD. -au 显示较详细的资讯
:{LAVMG&^ -aux 显示所有包含其他使用者的行程
vS OT*0r 6M ^IwE au(x) 输出格式 :
X8/Tl\c Q%ruQ# USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
vUNisVA USER: 行程拥有者
N&T:Lt_N PID: pid
yN*:.al %CPU: 占用的 CPU 使用率
+TC1nkX %MEM: 占用的记忆体使用率
CqqXVF3 VSZ: 占用的虚拟记忆体大小
LA-_3UJx RSS: 占用的记忆体大小
B?LXI3sQZ TTY: 终端的次要装置号码 (minor device number of tty)
25:Z;J> STAT: 该行程的状态:
ddsUz1%l D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
v:KX9A. R: 正在执行中
b'i'GJBQ+$ S: 静止状态
,c>N}*6h=W T: 暂停执行
`Da+75 f6v Z: 不存在但暂时无法消除
FigR1/3o'6 W: 没有足够的记忆体分页可分配
^[k0k(_ <: 高优先序的行程
3{"byfO#% N: 低优先序的行程
mjb{~ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
Nbt GlSs8 START: 行程开始时间
(}Sr08m TIME: 执行的时间
>$\Bu]{1 COMMAND:所执行的指令
Sp:l;SGd 范例:
gv#4#] ps
Ia2(Km PID TTY TIME CMD
mN;+TN'?{ 2791 ttyp0 00:00:00 tcsh
?Gd sOg^ 3092 ttyp0 00:00:00 ps
eNRs&^ % ps -A
!X|k"km" PID TTY TIME CMD
{<2>6 _z 1 ? 00:00:03 init
hd
B
|#t 2 ? 00:00:00 kflushd
[*8Y'KX < 3 ? 00:00:00 kpiod
8tLHr @%% 4 ? 00:00:00 kswapd
YOyp|%! 5 ? 00:00:00 mdrecoveryd
ZK6Hvc0 .......
8pXKO"u], % ps -aux
1,,|MW USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
hq#kvvi{f root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
L=O lyHO root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
+\0T\;-Xe root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Vtb1[cnna root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
n`(~OO ........
{Oj7 名称:pstree
|uI?ySF 使用权限:所有使用者
jin db#)bz 使用方式:
igD G}q3jG pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
@%1IkvJV pstree -V
MRfb[p3Cx 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
;+ azeW^ 参数:
0VN7/=n| -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
zB*euHIqZ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
L@RIZu>ZW+ 范例:
hN pstree
-v]Qhf&> y,E.SB init-+-amd
s)zJT |-apmd
u%u&F^y |-atd
RRADg^}l|" |-httpd---10*[httpd]
w{!(r %pstree -p
ESTM$k}X
init(1)-+-amd(447)
?]#OM_,8 |-apmd(105)
3J~0O2 |-atd(339)
W@.Ji B %pstree -c
9sSN<7 init-+-amd
=su]w2,Iy |-apmd
<8!
Tq |-atd
$7Z)Yp&T |-httpd-+-httpd
,zhJY ?sk | |-httpd
2N5`' | |-httpd
e_.Gw"/Yl | |-httpd
:^i^0dC ....
rh!;|xB|+ 名称:renice
7"4z+w 使用权限:所有使用者
HeLG?6 tIc 7:th 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
PT'MNH m^V5*JIh 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
_V2xA88 X|}2_B 把计?
thc <xxRP _Mk7U@j+9 -p pid 重新指定行程的 id 为 pid 的行程的优先序
*27*>W1 -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
}rq9I"/L -u user 重新指定行程拥有者为 user 的行程的优先序
=wVJ% 范例:
&xXEnV 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
tF7hFL5f renice +1 987 -u daemon root -p 32
tGjhHp8}c NBYH;h P 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
X(@uw X$m -MBV$:_R 名称:top
4;<ut$G 使用权限:所有使用者
I|9
SiZ0 ~g6 3qs 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] w(9*7p p
",yc0 2<
说明:即时显示 process 的动态 ALc`t(..}A
a0=WfeT
把计? /3!fA=+
tyh@^7
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ]fBUT6
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 :YP #
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 .fAv*pUzU
s : 安全模式,将交谈式指令取消, 避免潜在的危机 M}O}:1Par
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 o`n$b(VZ
n : 更新的次数,完成后将会退出 top EON:B>2a
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 kV;fD$iW;
7fHc[,
范例: .uF[C{RnO
显示更新十次后退出 ; nXy>7H[0
top -n 10 t `kui.
g%nl!dgS
使用者将不能利用交谈式指令来对行程下命令 : $pyOn2}
top -s [P~hjmJ(y
M|,mr~rRG
将更新显示二次的结果输入到名称为 top.log 的档案里 : 58 bCUh#uw
top -n 2 -b < top.log 3djC;*,9,
pav'1d%
名称:skill rHjq1-t
FAsFjRS
使用权限:所有使用者 r V6/Tdy
up>c$jJ
使用方式: skill [signal to send] [options] 选择程序的规则 asHxL!
:,B7-kBw
说明: *`_{
r [ :
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 IQZ#-)[T"
CVNj-&vj
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 lf(`SYQnOY
!-<p,z
一般参数: /FD5G7ES
?W>qUrZ
-f 快速模式/尚未完成 1)m@?CaI`
TaE~s
-i 互动模式/ 每个动作将要被确认 lVOu)q@l7g
x'<K\qp{{
-v 详细输出/ 列出所选择程序的资讯 F$BbYf2i
V#REjsf,t-
-w 智能警告讯息/ 尚未完成 >-8cU_m7s
Zf$Np50@(
-n 没有动作/ 显示程序代号 qz?mh4Oh
eI45PMP
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 rf~Y6U?7
>P6BW
-t 终端机代号 ( tty 或 pty ) 7%f&M>/
0k)rc$eDF+
-u 使用者名称 Q7Iw[=;\
yAL[[
-p 程序代号 ( pid ) GZI`jS"lU
>NYW{(j
-c 命令名称 可使用的讯号: wX >*H
Hso|e?Z
以下列出已知的讯号名称,讯号代号,功能。 'R-3fO???
@,Gxk
名称 (代号) 功能/ 描述 g0R~&AN!g
ktIi$v
ALRM 14 离开 2 3OC2|
7X@mSXis
HUP 1 离开 ~t9tnLc$
n3AaZp[
INT 2 离开 (hiyNMC
<sK4#!K
KILL 9 离开/ 强迫关闭 8YC_3Yi%
]vwW]O7
PIPE 13 离开 n]E?3UGD@W
Cj~'Lhmv'T
POLL 离开 }=c85f~i
AbZKYF
P
PROF 离开 /|*
Y2ETOr
.L'.c/ s
TERM 15 离开 ;>n,:355L
AGLscf.
USR1 离开 [w%
qV 6
KQB3m"
USR2 离开 R(q~ -3~
&=VDASEu
VTALRM 离开 +$g}4
``wSc0\
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 u ~A6bK*
,l<6GB2\
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 'Lu__NfN
JvY}-}?c
TSTP 停止 /产生与内容相关的行为 H$y-8-&)
/~zai}
TTIN 停止 /产生与内容相关的行为 yUpgoX(6
&Z`#cMR{H
TTOU 停止 /产生与内容相关的行为 hCC<?5q
(1#J%
STOP 停止 /强迫关闭 T}8Y6N<\m
6i1LjLB
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 '&\kxNglJ
6Vz9?puD
PWR 忽略 /在某些系统中会离开 \[y`'OD~
17`1SGZ
WINCH 忽略 ]*AR,0N&
tCdqh-
CHLD 忽略 c@8 93<_
MdvcnaCG
ABRT 6 核心 9jw\s P@
cXKjrL[b
FPE 8 核心 /pT=0=
Ymg|4%O@
ILL 4 核心 oz,e/v8~
s,]z[qB#$
QUIT 3 核心 zx)z/1
>k (C
SEGV 11 核心 N<XNTf
h2XfC.f
TRAP 5 核心 7eAX*Kgt<_
ev*k*0
SYS 核心 /或许尚未实作 mWsI}2
[k/@E+;
EMT 核心 /或许尚未实作 )r
jiY%F$
(jAg_$6
BUS 核心 /核心失败 <$IM8Y5p+w
.=s&EEF
XCPU 核心 /核心失败 EwvoQ$#jv
]?!mS[X
XFSZ 核心 /核心失败 a ?)NC
AJF#Aw `o
范例: 2Eu`u!jhx
停止所有在 PTY 装置上的程序 1pgU}sRk
skill -KILL -v pts/* 4bYK}oS
8ap%?
停止三个使用者 user1 , user2 , user3 7_inJ$
skill -STOP user1 user2 user3 v@
lM3_rbO
#Up86(Z
其他相关的命令: kill 62ws/8d6f
名称:expr -C(crn
使用权限:所有使用者 v0H@Eg_
### 字串长度 mc? Vq
dtRwTUMe?
shell>> expr length "this is a test" paCV!tP
14 %z,mB$LY
### 数字商数 rWR}Stc@]
shell>> expr 14 % 9 7%x[q}
5 ',JinE95
### 从位置处抓取字串 Ws|j#X<
shell>> expr substr "this is a test" 3 5 2{H@(Vgpbr
is is Dv5D~on{
### 数字串 only the first character i#vYyVr[
shell>> expr index "testforthegame" e gc-@"wI?
2 G}b]w~ML~
### 字串真实重现 #Y
a4ps_
shell>> expr quote thisisatestformela ix)M`F%P3
thisisatestformela