linux常用命令
uo^tND4a;j 2{-'`lfM% 称:/etc/aliases
|w`Q$ c 使用权限:系统管理者
`S/;S<'; 使用方式: 请用 newaliases 更新资料库
J|o )c~ 说明:
d?OsVT;U sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
>Co5_sCe KrD?Z2x /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
^@xn 3zJ # newaliases
(fnp\j3w 7cT ~u 下面命令会做相同的事,
;rh@q4# # sendmail -bi
?(j:F2dU~ }tH6E 相关命令:
oyo
V1jO mail, mailq, newaliases, sendmail
1"} u51 {o.i\"x; ” mail [返回]
NT [~AK9M 名称:mail
=(>pv, !5[5l!{x 使用权限:所有使用者
vBjrI*0 /%T d( 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
RE75TqYW 8Ir
= @ 说明:
\TXCq@ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
XVkCYh4, SW_jTn#x 参数:
'#@tovr i 忽略 tty 的中断讯号。 (interrupt)
$/;;}|hqi I 强迫设成互动模式。 (Interactive)
"iTi+UZxe v 列印出讯息,例如送信的地点、状态等等。 (verbose)
'nh^'i&0. n 不读入 mail.rc 设定档。
_+2Jc}Yf s 邮件标题。
_V-pr#lP1 c cc 邮件地址。
;*XH[>I b bcc 邮件地址。
$[DSe~ %.VFj7J 范例:
2uM\?*T@ h1.<\GO 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
ORP-@-dap mail
user1@email.address
X[KHI1@w mail
user1@email.address user2
MF/@Efjn
] rc+}KO 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
K/ 5U;oC i-*ZW: mail -s 标题 -c user1 user2 < mail.txt
DDwm;,eZ EgT?Hvx: 指令:mesg
e.jbFSnA 使用权限 : 所有使用者
MGE8S$Z yRv4,{B}X> 使用方式 : mesg [y|n]
X{G&r$ ;_Z[' % 说明 : 决定是否允许其他人传讯息到自己的终端机介面
XdxSi"+ 5>u,Qh 把计 ?
7@uhw">mX *'jI>^o y : 允许讯息传到终端机介面上。
wY6m^g$h3 n : 不允许讯息传到终端机介面上 。
DA wUG 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
w=feXA3-S WYXh1_nyk 例子 :
K@>($BX] 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
\qj(`0HG mesg n
JOFQyhY0>m 与 mesg 相关的指令有: talk,write,wall。
S5>?jn1 名称:/etc/aliases
vkE a[7 使用权限:系统管理者
[h[@?8vB 使用方式: newaliases
-"~XI~a@Wo 说明:
9qvKg`YSh sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
N83c+vs%c )]M,OMYq- /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
<<l1zEf@ Dlqvz|X/ 参数:没有任何参数。 范例:
zW9/[Db # newaliases
VtnVl`/] R;3nL[{U 下面命令会做相同的事,
bAS/cuZs # sendmail -bi
$QB/n63 F0x'^Z}Q; 相关命令:
@P@{%I mail, mailq, newaliases, sendmail
d`9ofw~3= 名称 : talk
_{&bmE 使用权限 : 所有使用者
Fv$oXg/ ;fe~PPT 使用方式 :
Gw-y6e'|Y
34<k)0sO talk person [ttyname]
p!>DA?vF 说明 : 与其他使用者对谈
"el}9OitC PT39VI
= 把计 :
A"i$.dR{ person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name Q4ZKgcC ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Kw=][}d`D ,s`4k?y 例子.1 :
]8f$&gw&A QERj`/g 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
sZPyEIXie talk Rollaend
= P$Q;d pS+hE4D 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
#Q` TH< Ubm]V{7 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
J_ 7#UjGA, talk
Rollaend@linuxfab.cx pts/2
21[=xboU oy\U\#k unc8WXW 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
T~8kKw GB4^ 4Ajx 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
"7J38Ej\ {Y|?~ha# 名称 : wall
S$ n? 使用权限 : 所有使用者
9#E)H?`g Yk0/f|>O 使用方式 :
Ug )eyu wall [ message ]
M>d^.n 使用说明:
"0LSy x wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
aC94g7)` qSt\ 6~ 例子 :
xnxNc5$oE e$7KMH= 传讯息"hi" 给每一个使用者 :
$8}'h wall hi
35JVF*z 名称 : write
=q}Z2 OoYh 使用权限 : 所有使用者
nK}-^Ur |$g} &P8; 使用方式 :
KW!+Ws De2$:? write user [ttyname]
5Od&-~O 说明 : 传讯息给其他使用者
k}C4:?AT ?&!e
f{ 把计 :
m48Ab` 4~Y?*|G]m user : 预备传讯息的使用者帐号
wLzV#8> ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
3L36
2 U/-k'6=M 例子.1 :
=b, m31 2fg
P 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
\-SC-c write Rollaend
g7{:F\S Hb/8X
!= 接下来就是将讯息打上去,结束请按 ctrl+c
-A@/cS%p H@b4(6
例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
AH-BZ8 write Rollaend pts/2
=;(L$:l~ @,9YF}
接下来就是将讯息打上去,结束请按 ctrl+c
[8Fn0A |h&Z. 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
!f]kTs]j~ !#zO% 名称:kill
`"o{MaFA 使用权限:所有使用者
%CrTO( zp5ZZcj_ 使用方式:
5WvsS(
9H IJVzF1vC kill [ -s signal | -p ] [ -a ] pid ...
Wt=\hixj- kill -l [ signal ]
?C- ju8]| 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
%w?C)$Kn\ 把计?
mT #A?C2 J~n|5*cz -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
pXvys]@ -p : 印出 pid , 并不送出信号
e^,IZ{ -l (signal) : 列出所有可用的信号名称
b
0qA 范例:
!l]_c5 CI-1>= "OE 将 pid 为 323 的行程砍掉 (kill) :
"
%qr*| kill -9 323
rNurzag 1xu~@v60 将 pid 为 456 的行程重跑 (restart) :
94^b"hU kill -HUP 456
u:Ye`]~o ?rA3<j 名称:nice
/]U;7) 使用权限:所有使用者
Zd88+GS,# |sY 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
ve:Oe{Ie{ 3=^)=yOd 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
Pd-LDs+Ga JU.!< (> _Lb 把计?
jD%|@ux EeT69o -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
lHDZfwJ&C1 --help 显示求助讯息
1)jeawVmj --version 显示版本资讯
KVr9kcs 范例:
^*.+4iHx 将 ls 的优先序加 1 并执行 :
~#i2reG5 nice -n 1 ls
H
XFY lSlZ^.& 将 ls 的优先序加 10 并执行 :
F" M nice ls将 ls 的优先序加 10 并执行
'2hy% sp
MYn&p 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
ij!], dJ#go*Gn 名称:ps
Sc#3<nVg 使用权限:所有使用者
EpQy;#=; 使用方式:ps [options] [--help]
K~2sX>l 说明:显示瞬间行程 (process) 的动态
Aj=GekX{ 参数:
(z.n9lkfi ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
MBU|<tc -A 列出所有的行程
^,mN-.W -w 显示加宽可以显示较多的资讯
.@%L8_sMR -au 显示较详细的资讯
o ABrhK -aux 显示所有包含其他使用者的行程
\HkBp&bqK ]uMZvAjb au(x) 输出格式 :
y.}{KQ"a* vz>9jw:Y USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
'RhS%l USER: 行程拥有者
;6D3>Lm PID: pid
<7SE| %CPU: 占用的 CPU 使用率
('Qq"cn# %MEM: 占用的记忆体使用率
iETUBZ VSZ: 占用的虚拟记忆体大小
cm_5,wB(w RSS: 占用的记忆体大小
KvEv0L<ky TTY: 终端的次要装置号码 (minor device number of tty)
hc[J,yG STAT: 该行程的状态:
sNcU>qjj6 D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
U._fb= R: 正在执行中
: r ~iFP* S: 静止状态
/}
z9( T: 暂停执行
qg=`=]j Z: 不存在但暂时无法消除
(H&HSs W: 没有足够的记忆体分页可分配
"uT2 DY[ <: 高优先序的行程
8a`3eM~?[ N: 低优先序的行程
+])<}S!M L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
-j]c(Q MA] START: 行程开始时间
KXDnhVf TIME: 执行的时间
{6GX
?aw' COMMAND:所执行的指令
nDO7 范例:
)^AZmUYZ ps
ybqmPT'|_ PID TTY TIME CMD
x {Utf$| 2791 ttyp0 00:00:00 tcsh
*?d\Zcj85[ 3092 ttyp0 00:00:00 ps
M!5=3>Z % ps -A
^)Awjj9 PID TTY TIME CMD
f=}T^Z< 1 ? 00:00:03 init
m"/..&'GC 2 ? 00:00:00 kflushd
n44 T4q 3 ? 00:00:00 kpiod
xvl{o 4 ? 00:00:00 kswapd
Md@x2Ja 5 ? 00:00:00 mdrecoveryd
k{#k: .......
e)B1)c 8s % ps -aux
gC(S(osF USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Hzm_o>^KC root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
8y<.yfgG root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
YVa,?&i=N root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
"qF/7`e[ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
R&;x_4dr^ ........
97\K ]Tr 名称:pstree
{*F
=&D 使用权限:所有使用者
hZ452W 使用方式:
)1B?<4 pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
}q]*aADe pstree -V
8..|-<w 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
f3G:J<cL 参数:
_q#pEv -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
yP# Y:s -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
ukEJ D3i 范例:
H=,>-eVv* pstree
=E]tEi jY%.t)>) init-+-amd
Jh=.}FXnjL |-apmd
)Cj1VjAg
|-atd
J-'XT_k:iM |-httpd---10*[httpd]
LYL_Ah'= %pstree -p
(|Gwg \r init(1)-+-amd(447)
()Kaxcs?+ |-apmd(105)
yUJ#LDW |-atd(339)
{+_p?8X %pstree -c
n0co*
]X+k init-+-amd
G4:\6fu |-apmd
[ !#Dba# |-atd
Miw=2F |-httpd-+-httpd
>Rt:8uurAG | |-httpd
OYt_i'Q | |-httpd
5PZ7-WJ/ | |-httpd
L-E?1qhP> ....
R|8L'H+1x 名称:renice
-ak.wwx\ 使用权限:所有使用者
)#M$ov 3e^0W_>6 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
beikzuC V6[jhdb 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
+`gU{e,p ^`lrKk 把计?
y
`FZ 0FI b3[[ Ah- -p pid 重新指定行程的 id 为 pid 的行程的优先序
*5oQZ".vA* -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
}%?or_f/ -u user 重新指定行程拥有者为 user 的行程的优先序
rQ _cH 范例:
fi>.X99(G 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
=>c0NT renice +1 987 -u daemon root -p 32
IFew3!{\ 9-{ +U,3) 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
!2HF|x$ BNjMq 名称:top
k6z
]-XG 使用权限:所有使用者
km9#lK -f ~1Id 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] am3.Dt2\
+U
J~/XV
说明:即时显示 process 的动态 k3t]lGp
FIfLDT+ Wh
把计? c-&Q_lB
m%})H"5
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s ./3/3&6
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 l3^'b p6HQ
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 RAu(FJ
s : 安全模式,将交谈式指令取消, 避免潜在的危机 HU/4K7e`
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 v)O].Hd
n : 更新的次数,完成后将会退出 top >6&Rytcc]
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 R"HV|Dm|m
:d35?[
范例: p|nPu*R-\
显示更新十次后退出 ; vv2[t
top -n 10 Q'3tDc<
0[d*Z
使用者将不能利用交谈式指令来对行程下命令 : {g[kn^|
top -s A#?Cts,M
S2|pn\0V
将更新显示二次的结果输入到名称为 top.log 的档案里 : >)NS U
top -n 2 -b < top.log jPz1W4pk
GY@:[u.&
名称:skill 6
F 39'
tMP"9JE,
使用权限:所有使用者 ?RsPAL
YR/I<m`]}
使用方式: skill [signal to send] [options] 选择程序的规则 9S9j
/%7&De6Xg
说明: gzvgXZ1q"
Tr}XG
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 m*B4a9f
B0Z>di:
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 |N6.:K[`
X-"
+nThMn
一般参数: bFL2NH5
C .B=E"e
-f 快速模式/尚未完成 e, 2/3jO
2/A*\
-i 互动模式/ 每个动作将要被确认 G `3{Q7k
ci2Z_JA+
-v 详细输出/ 列出所选择程序的资讯 4,R"(ej
nIL67&
-w 智能警告讯息/ 尚未完成 qgfP6W$
"Vl4=W)u
-n 没有动作/ 显示程序代号 Z;1r=p#s
cl4_M{~
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 =<PEvIn
9(!AKKrr;
-t 终端机代号 ( tty 或 pty ) X}x\n\Z
]n"RPktx
-u 使用者名称 x3U>5F@
d)Z&_v<|
-p 程序代号 ( pid ) L[nDjQn"
CSW+UaE
-c 命令名称 可使用的讯号: ]2|fc5G'
#l- 0$
以下列出已知的讯号名称,讯号代号,功能。 ^\`a-l^
XHJ`C\xR
名称 (代号) 功能/ 描述 +kE~OdZG
[YODyf}M>\
ALRM 14 离开 k #\j \t-
iV#A-9
HUP 1 离开 ;34p
[RT
AX1!<K
INT 2 离开 R6;#+ 1D
(.Ak*
KILL 9 离开/ 强迫关闭 UA~ 4O Q]
Uzrf,I[
PIPE 13 离开 +zLw%WD[l
EVaHb;
POLL 离开 (jyufHm
P?|\Ig1Gk
PROF 离开 (4ZO[Ae
H-u
SdT
TERM 15 离开 b.?;I7r
kF,ME5%
USR1 离开 #OjyUQ,
|7A}LA
USR2 离开 tk h
*su
Ck%if
VTALRM 离开 Jn|i!
XSK<hr0m
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 <,/7:n
1t^9.!$@y
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 xHaz*w1|
&)||~
TSTP 停止 /产生与内容相关的行为 emrA!<w!W
"sDs[Lcq
TTIN 停止 /产生与内容相关的行为 %+|sbRBb
V'Kied+
TTOU 停止 /产生与内容相关的行为 ,1Z([R*
`\;Z&jlpT
STOP 停止 /强迫关闭 M,li\)J!&
w3>11bE
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 !'BXc%`x[
v_/<f&r
PWR 忽略 /在某些系统中会离开 tH
*|
!V/\_P!I
WINCH 忽略 5%fWX'mS
#<eD
CHLD 忽略 >s"/uo
Pz:,de~5Qm
ABRT 6 核心 h:?qd
m$v >r\*X
FPE 8 核心 i+~BVb
VzHrKI
ILL 4 核心 C3f\E: D)
o'(BL:8s
QUIT 3 核心 em0Y' J
ty[p5%L1
SEGV 11 核心 A]i!131{w|
Dr%wab"yy
TRAP 5 核心 8uH8)
vo*oCfm
SYS 核心 /或许尚未实作 =4SXntU!e
R0tT4V+
EMT 核心 /或许尚未实作 $)o0{HsL+
#Mk:4
BUS 核心 /核心失败 >8OY6wb
+ls`;f
XCPU 核心 /核心失败 2/s42
FoG
- PSgBH[
XFSZ 核心 /核心失败 WR"1d\m:
Jx}-Y*
o
范例: $^{#hYq)o
停止所有在 PTY 装置上的程序 aHpZhR|f$
skill -KILL -v pts/* "uIaKb
@Bhcb.kbq
停止三个使用者 user1 , user2 , user3 \({'Xo >(
skill -STOP user1 user2 user3 t? 6 et1~
{dpDQP +!
其他相关的命令: kill <Ohi+a%6
名称:expr _ ~\} fY
使用权限:所有使用者 F5/,S
### 字串长度 >&S}u\/
Q]N&^ E
shell>> expr length "this is a test" z
rSPa\M
14 EUcD[Rv
### 数字商数 A7+ZY,
shell>> expr 14 % 9 .yXqa"p
5 [yQ%g;m
### 从位置处抓取字串 [NO4Wzc
shell>> expr substr "this is a test" 3 5 JRFUNy1+e1
is is LAf#Rco4
### 数字串 only the first character 8^j~uH
shell>> expr index "testforthegame" e n^ fUKi*;
2 I(pq3_9$
### 字串真实重现 r W[;3yMf
shell>> expr quote thisisatestformela %ZWt 45A
thisisatestformela