linux常用命令
}@*Me+ `>1"v9eF 称:/etc/aliases
idC4yH42 使用权限:系统管理者
2 NgEzY5 使用方式: 请用 newaliases 更新资料库
LWB"}#vt 说明:
M1MpR+7S sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
U#O6l-xe] xb!h?F& /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
b[^=GF>e # newaliases
>+[uV^2[ )V^J^1 下面命令会做相同的事,
.qyk [O # sendmail -bi
wp!<u
% IX7|_ci 相关命令:
AQ!FJ(X( mail, mailq, newaliases, sendmail
'oZ/fUl|7 ({ 7tp!@ ” mail [返回]
# $:ddOY 名称:mail
|\
1?CYx 9E (VU. 使用权限:所有使用者
C^@.GA h^P>,dy0 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
cJ
G><' gc:qqJi)X 说明:
Lc|5&<8ZG1 mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
];waK2'2 .(Gq9m[~8H 参数:
E6SGK,f0D i 忽略 tty 的中断讯号。 (interrupt)
J~5VL |ca I 强迫设成互动模式。 (Interactive)
K_iy^|0)5] v 列印出讯息,例如送信的地点、状态等等。 (verbose)
gY],
(*v n 不读入 mail.rc 设定档。
B)F2SK<@ s 邮件标题。
+w-UK[p c cc 邮件地址。
-R,[/7zj b bcc 邮件地址。
8c m,G OCzWP, 范例:
&(fB+VNrOH .,:700n+^ 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
&z-f,`yG mail
user1@email.address
b9[KdVsT6^ mail
user1@email.address user2
[_jTy;E TqNEU<S/t 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
%C=
{\]-2~ wSp1ChS k mail -s 标题 -c user1 user2 < mail.txt
"`DCXn#mB f[n#Eu} 指令:mesg
Y8I$JBO 使用权限 : 所有使用者
WV5gH*uUa ex8mA6g 使用方式 : mesg [y|n]
P5ii3a?R DT # 1*&- 说明 : 决定是否允许其他人传讯息到自己的终端机介面
VVdgNT|}W W"fdK_F\ 把计 ?
)-824?Nl: NIDK:qdR y : 允许讯息传到终端机介面上。
+[9~ta|j n : 不允许讯息传到终端机介面上 。
9n!<M)E 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
. `lcxC =6t)-53 例子 :
:K& 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
E[J7FgU)<S mesg n
tr2@{xb 与 mesg 相关的指令有: talk,write,wall。
22L#\qVkl 名称:/etc/aliases
XF1x*zc 使用权限:系统管理者
f/9]o 使用方式: newaliases
&oevgG 说明:
8jxgSB", sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
dOq*W<% w\pD'1e /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
S @\Pki+n[ aWVJx@f 参数:没有任何参数。 范例:
or/Y"\-! # newaliases
\%9,<-~[ wobTT1!| 下面命令会做相同的事,
^3QHB1I # sendmail -bi
+/q%29-k v709#/cR 相关命令:
TL+a_]3@ mail, mailq, newaliases, sendmail
EI2V<v 名称 : talk
t#kR@t+6$\ 使用权限 : 所有使用者
*k'oP~:fT XpWqL9s_E 使用方式 :
"A^9WhUpJ Tn[DF9;? talk person [ttyname]
jRK<FK 说明 : 与其他使用者对谈
A'qJke= WO*YBH@ 把计 :
\>w[#4`m person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 6
$%^ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
m~\BkE/[l e9h T 例子.1 :
+bvY*^i Q"CZ}B1< 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
MP?9k )f talk Rollaend
):eX* *&>1A A 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
8ON$M=Ze$ Oh<[8S7]C 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
RNuOwZ1m talk
Rollaend@linuxfab.cx pts/2
bT>%
* ~=P&wBnJ j& f-yc'i- 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
m2%uGqz gOa'o< 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
PdJtJqA8h\ }:YS$'by 名称 : wall
4~4PZ 使用权限 : 所有使用者
Z~$=V:EA? F<X)eO]tk 使用方式 :
nJ.pPzH2g wall [ message ]
5bGV91 使用说明:
V@<tIui$ wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
5KU}dw>*g D M{7x77 例子 :
AV AF!Z D0=D8P}H: 传讯息"hi" 给每一个使用者 :
=jip* E^ wall hi
,JRYG<O_T 名称 : write
e{Pgz0sOQ 使用权限 : 所有使用者
L.lmbxn R3wK@D 使用方式 :
~my\{q !Pt|Hk dr write user [ttyname]
#ldNWwvRGj 说明 : 传讯息给其他使用者
4(2}O-~ sN 1x|pkN 把计 :
=w0Rq~ O9oVx4= user : 预备传讯息的使用者帐号
83:m7; ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
}Gr5TDiV0\ Jg3}U j2By 例子.1 :
ow]S 3[07 2pH2s\r<UJ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
3Z NYR' write Rollaend
!NK8_p|X EUmQn8 接下来就是将讯息打上去,结束请按 ctrl+c
.Ff;St 7*d}6\
% 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
ho
?.\Jq write Rollaend pts/2
-MJ6~4k2 lh3%2Dq$ 接下来就是将讯息打上去,结束请按 ctrl+c
^%|{>Mz;c #Qc[W +% 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
f8_5.vlw )7c\wAs 名称:kill
Q<P],}?: 使用权限:所有使用者
]3xnq< fXvJ3w( 使用方式:
"m0>u,HmI S*?'y kill [ -s signal | -p ] [ -a ] pid ...
`,tv&siSA kill -l [ signal ]
R*/%+ 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
3\|e8(bc 把计?
oHB51< } `;*%5WD% -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
yPn5l/pDDr -p : 印出 pid , 并不送出信号
%#2[3N{ -l (signal) : 列出所有可用的信号名称
J:)Q)MT24: 范例:
x "]%q^x 6cVaO@/( 将 pid 为 323 的行程砍掉 (kill) :
e(x1w&8dB kill -9 323
c^}gJ yAG4W[ 将 pid 为 456 的行程重跑 (restart) :
h"Yi' kill -HUP 456
DY^q_+[V ypwVzCUG 名称:nice
Duj9PV`2 使用权限:所有使用者
K=M5d^K<E NtkEb : 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
5R?iTB1, G<9MbMG 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
FgrOZI;_ #?YQ&o~gZ 9yajtR 把计?
}7+G'=XI/ i>_V?OT#5 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
N-]h+Cnyu --help 显示求助讯息
x&+/da-E/5 --version 显示版本资讯
X8<<;?L 范例:
b)(#/}jMkD 将 ls 的优先序加 1 并执行 :
iW+ZI6@ nice -n 1 ls
;S"^O
AM O1Ey{2Q 将 ls 的优先序加 10 并执行 :
mWsVOf>g nice ls将 ls 的优先序加 10 并执行
[IF3,C '{QbjG%<P 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
4Wk/^*? 6Y)'p
.+g 名称:ps
*J=`"^BO 使用权限:所有使用者
V9I5/~0c 使用方式:ps [options] [--help]
r^n%PH< 说明:显示瞬间行程 (process) 的动态
f}Eoc>n 参数:
i|*(vH&D. ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
XWo:~\ -A 列出所有的行程
%L:e~* -w 显示加宽可以显示较多的资讯
LtJ$ZE^GB -au 显示较详细的资讯
G?&0Z++ -aux 显示所有包含其他使用者的行程
jAfUz7@ AVGb;)x# au(x) 输出格式 :
{1'XS,2 iyc}a6g USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
`22F@JYN USER: 行程拥有者
F4M<5Yi PID: pid
=S4_^UY; %CPU: 占用的 CPU 使用率
j5|PQOK %MEM: 占用的记忆体使用率
D0v!fF~ VSZ: 占用的虚拟记忆体大小
0rxlN
[Yp RSS: 占用的记忆体大小
pjvChl5 TTY: 终端的次要装置号码 (minor device number of tty)
P7&a~N$T6W STAT: 该行程的状态:
Ms=x~o' D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
$L)9'X R: 正在执行中
]$KyZHj{ S: 静止状态
D\
HmY_ T: 暂停执行
A?ma5h Z: 不存在但暂时无法消除
u^s{r`/ W: 没有足够的记忆体分页可分配
=&U JFu <: 高优先序的行程
NYM$0v`0YK N: 低优先序的行程
$fPf/yQmC L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
vY7C!O/y_k START: 行程开始时间
_]E"hr6a TIME: 执行的时间
0V{-5-. COMMAND:所执行的指令
V?kJYf(< 范例:
D*|h
c ps
8&qCH>Cf PID TTY TIME CMD
t(?m!Z?tb 2791 ttyp0 00:00:00 tcsh
eVjr/nm 3092 ttyp0 00:00:00 ps
2BS2$#c> % ps -A
S)C =Q~& PID TTY TIME CMD
)Uw
QsP 1 ? 00:00:03 init
:[#HP66[O5 2 ? 00:00:00 kflushd
z
`T<g!Y 3 ? 00:00:00 kpiod
dz5a! e
[ 4 ? 00:00:00 kswapd
"S(m1L? 5 ? 00:00:00 mdrecoveryd
w [I%Id;E .......
8|.(Y % ps -aux
HB\<nK USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
(^ZC8)0i( root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
aAh")B2 root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
B#&U5fSw+0 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
Dp8YzWL2^ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
57Y(_h: ........
sl}bNzT# 名称:pstree
Gn<s>3E 使用权限:所有使用者
z'O$[6m6 使用方式:
,+3l9FuQ pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
KRd.Ubs - pstree -V
lRi-?I|~9 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
)a.w4dH 参数:
;26a8g( -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
O(!J^J3_z -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
36,qh.LKn 范例:
(~?P7RnU% pstree
@`G_6<.` -PbGNF init-+-amd
afqLTWUS |-apmd
1y$Bz?4 |-atd
0t*JP |-httpd---10*[httpd]
bLUn>ch %pstree -p
pFXDo4eH init(1)-+-amd(447)
9w[7X"#n |-apmd(105)
A7>0Pn%D3 |-atd(339)
3Ew-Ia%A %pstree -c
*>n<7T0 init-+-amd
~P
1(%FZ |-apmd
K||9m+ |-atd
;J Dn1(6 |-httpd-+-httpd
^*#5iT8/ | |-httpd
tj;<Z. | |-httpd
NC)I u | |-httpd
TFb9gOTJ ....
51;V#@CsQ 名称:renice
X@:pys 8@ 使用权限:所有使用者
9n]zh- eLJW 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
PEW^Vl-6q W&q]bi@C 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
` :eXXE %k_R;/fjW 把计?
GM%%7 ^uE u3(zixb -p pid 重新指定行程的 id 为 pid 的行程的优先序
q+.DZ
@ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
4`)`%R $ -u user 重新指定行程拥有者为 user 的行程的优先序
oJK1~;: 范例:
x[U/
8#f& 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
|G&<@8O renice +1 987 -u daemon root -p 32
;|
##~Y.9 @Iia>G@Rz 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
9F845M U+CZv1 名称:top
1q0DOf]!T 使用权限:所有使用者
|&`NB| <f%JZ4p* 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] xPWzm
hF
coT|t
T
说明:即时显示 process 的动态 w&jyijk(
!(~eeE}|lM
把计? ;XNe:g.CR
+[:"$?J
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s dnTB$8&
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 #56}RV1
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Eqc&iS~
s : 安全模式,将交谈式指令取消, 避免潜在的危机 TCYjj:/
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 Y!c
RzQ
n : 更新的次数,完成后将会退出 top ``kiAKMy
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 6+u}'mSj8
lM`M70~
范例: OJPxV~y
显示更新十次后退出 ; }-?_c#G3
top -n 10 }&BE*U8_
rCR?]1*Z
使用者将不能利用交谈式指令来对行程下命令 : |b7v(Hx
top -s |Wd]:ijJ
`9E:V=
将更新显示二次的结果输入到名称为 top.log 的档案里 : r1b{G%;mJ
top -n 2 -b < top.log h[b5"Uqj
8!2NZOZOS
名称:skill 9\ZlRYnc=
Pz7{dQqjk#
使用权限:所有使用者 %K8Ei/p\t]
4*'5EBa1
使用方式: skill [signal to send] [options] 选择程序的规则 .lAqD-
_+[;NBz
说明: k FE2Vv4.
Cj"+` C)l
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 [[2Zcz:
n[8ju,=
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 smvIU0:K
Tj7OV}:
一般参数: teH.e!S
)w(-Xc?P
-f 快速模式/尚未完成 4Xt.}S!
GEj/Z};;[b
-i 互动模式/ 每个动作将要被确认 \ofWD{*j
by!1L1[JTt
-v 详细输出/ 列出所选择程序的资讯 j oDY
Sm(X/P=z
-w 智能警告讯息/ 尚未完成 )'3(=F$+l
1)yEx1
-n 没有动作/ 显示程序代号 4XpW#>
:tU&d(8
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 -9TNU7^
aNLRUdc.
-t 终端机代号 ( tty 或 pty ) s ;EwAd(
j3 ,6UjlU
-u 使用者名称 2Z K:S+c
x>:~=#Vi
-p 程序代号 ( pid ) >]K:lJ]l
Z^ynw8k"
-c 命令名称 可使用的讯号: 1><@$kVMm~
y|X</3w
以下列出已知的讯号名称,讯号代号,功能。 Z BjyQ4h
9eO!_a^
名称 (代号) 功能/ 描述 UJ0fYTeuI
Afa|6zZ>
ALRM 14 离开 2L"$p?
dz@L}b*
HUP 1 离开 jo-jPYH T
0?OTa<c
INT 2 离开 $I*ye+a*{q
.<&o, D
KILL 9 离开/ 强迫关闭 aVkgE>
[&12`!;j
PIPE 13 离开 ERD( qL.J
Y~z3fd
POLL 离开
2..b/
'-C%?*ku
PROF 离开 vF
yl,S5A
c1 aCN
TERM 15 离开 "Kky|(EQ$$
Nfe
USR1 离开 v"wxHro
&j=FxF9o
USR2 离开 n7-|\p!xP6
z
H$^.1
VTALRM 离开 )H=}bqn
8T"C]
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ~nYp*t C'
BkywYCWZ )
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 |dNJx<-
FvpaU\D
TSTP 停止 /产生与内容相关的行为 ]^aOYtKX
/zxLnT;
5
TTIN 停止 /产生与内容相关的行为 dJyf.VJ
X*f#S:kiNU
TTOU 停止 /产生与内容相关的行为 C>l{_J)n
' cM2]<
STOP 停止 /强迫关闭 Nl"Xl?y}
;MRK*sfw{
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 |e{F;8
K
@x4>9 3n
PWR 忽略 /在某些系统中会离开 MzUNk`T @
!J#oN+AR
WINCH 忽略 7G6XK
)@lZ~01~d
CHLD 忽略 2?vjj:P+h
+c4-7/kE
ABRT 6 核心 q8&2M
f3 _-{<FZ
FPE 8 核心 $ZnLY uGb
Tx+!D'>
ILL 4 核心 *B<Ig^c
7oUecyoj
QUIT 3 核心 kpF")0qr
R`M>w MLH
SEGV 11 核心 &n6'r^[D
B$ty`/{w,B
TRAP 5 核心 mEK0ID\
3PRg/vD3
SYS 核心 /或许尚未实作 yC%zX}5
\tv^],^`
EMT 核心 /或许尚未实作 tc-pVw:TV
Std?p{
i
BUS 核心 /核心失败 FXLY*eRk
TpnJm%9`)t
XCPU 核心 /核心失败 6( #fGH&[
RP!!6A6:
XFSZ 核心 /核心失败 n*(9:y=l1
GjVq"S
范例: 8w,+Y]X<P[
停止所有在 PTY 装置上的程序 d yH<D5
skill -KILL -v pts/* ~H<oqk:O-
F+
,eJ/]
停止三个使用者 user1 , user2 , user3 ~yX8p7qr
skill -STOP user1 user2 user3 1P8XVI'
*[VO03
其他相关的命令: kill QuB`}rfLf
名称:expr ~rnbuIh
使用权限:所有使用者 +#* F"k(
### 字串长度 .\Z/j
kHWW\?O
shell>> expr length "this is a test" 2EO WbN}M
14 O_v8R7 {
### 数字商数 +/"Ws'5E
shell>> expr 14 % 9
IBP3
5 y4N8B:j%
### 从位置处抓取字串 ]|H`?L
shell>> expr substr "this is a test" 3 5 K)ZW1d;
is is h?Y->!'
### 数字串 only the first character 11"- taWj
shell>> expr index "testforthegame" e /#<R
2 V(gmC%6%l*
### 字串真实重现 qu8!fFQjYL
shell>> expr quote thisisatestformela R_DstpsT
thisisatestformela