linux常用命令
&| el8;D R<)7,i`F 称:/etc/aliases
IZeWswz 使用权限:系统管理者
y!fV+S, 使用方式: 请用 newaliases 更新资料库
ZVE q{x1Zc 说明:
_QfA'32S sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
dNG>:p !0ySS {/ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
_OP75kv # newaliases
d_Ll,*J9 3t[2Bd 下面命令会做相同的事,
e.n&Os<|< # sendmail -bi
(4n 8[ ^3IO.`| 相关命令:
Ix !O&_6s mail, mailq, newaliases, sendmail
^,'!j/w5 JC}y{R8 ” mail [返回]
RvvK`}/6 名称:mail
)(b]-
) >f4H<V- 使用权限:所有使用者
i3s-l8\\z OT{wqNI 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
Xm*gH, ' )P@t,mxW/ 说明:
^rjICF e mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
XKLkJZN Y<%$;fx$Sx 参数:
vL{sk|2& i 忽略 tty 的中断讯号。 (interrupt)
QRhR.:M\ I 强迫设成互动模式。 (Interactive)
)U e9:e v 列印出讯息,例如送信的地点、状态等等。 (verbose)
|/[?]` n 不读入 mail.rc 设定档。
bcC;i~9 s 邮件标题。
=l&7~ c cc 邮件地址。
Xa\{WM==; b bcc 邮件地址。
]$!-%pNv $0V<wsVM 范例:
g:`V:kbY$ xRq|W4ay 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
WE 'afxgV mail
user1@email.address
_a"5[sG mail
user1@email.address user2
E KhwrBjS ?V"X=B2 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
d%NO_=I. 7NV1w*>/ mail -s 标题 -c user1 user2 < mail.txt
Ly/"da ]re1$W#* 指令:mesg
#GT/Q3{C 使用权限 : 所有使用者
?d0I*bs)7 i-~HT4iw 使用方式 : mesg [y|n]
-("sp *KN ' 0Z@W 说明 : 决定是否允许其他人传讯息到自己的终端机介面
q3TAWNzI0 sL75C|f9 把计 ?
,]\L\ V T?{"T/ y : 允许讯息传到终端机介面上。
l_5]~N n : 不允许讯息传到终端机介面上 。
Eb{Zm<TP 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
i[sHPEml(5 A?<R9A 例子 :
}&Ngh4/ 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
f/&gR5 mesg n
A
'rfoA6 与 mesg 相关的指令有: talk,write,wall。
x
hBlv 名称:/etc/aliases
QI'ul e 使用权限:系统管理者
&eKnLGKD 使用方式: newaliases
|jH-
bm 说明:
Lqq
RuKi sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
r ) ;U zd zBtlkBPu /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
2'Cwx-_G` d5T M_C 参数:没有任何参数。 范例:
k#NIY4%. # newaliases
MdmS FJomUVR . 下面命令会做相同的事,
109dB$+$ # sendmail -bi
yaza pyYm<dn 相关命令:
SDt)|s
mail, mailq, newaliases, sendmail
uOUgU$%zqH 名称 : talk
W5PNp%+KE 使用权限 : 所有使用者
uMKO^D 0F> ils 使用方式 :
wO9|_.Z{ N^z4I,GV( talk person [ttyname]
88x_}M^Fnl 说明 : 与其他使用者对谈
gpDH_!K L"{qF<@V7& 把计 :
Evu`e=LaG person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name /5 yjON{ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
lHQ:LI ~(bY-6z 例子.1 :
1=:=zyEEo CC&o pC 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
"`HkAW4GZa talk Rollaend
[Z9
lxZ| 2*;qr|h, 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
4o?_G[
z#9Tg"8] 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
uqy&PS talk
Rollaend@linuxfab.cx pts/2
'/M9V{DD88 -!i1xR(;h M|8vP53=q 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
" E+V>V+ Nc;cb 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
Rr#Zcs!G !Q[j;f
名称 : wall
*g7BR`Bt]z 使用权限 : 所有使用者
Z
0&=Lw E$l 4v>iA 使用方式 :
DS;,@$N_N wall [ message ]
1%Hc/N- 使用说明:
SFqY*:svOw wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
=D-u".{ t Sibzl~ 例子 :
'kBg3E$y ;IyA"C(i 传讯息"hi" 给每一个使用者 :
DR]=\HQ wall hi
$O
nh2
^ 名称 : write
iWu 使用权限 : 所有使用者
!UHWCJ<
<w >_XC 使用方式 :
0b=1Ce+0q m8[XA!, write user [ttyname]
%M)LC>c 说明 : 传讯息给其他使用者
u%m,yPU~B X5U#^^O$E% 把计 :
H!SFSgAu g{ () user : 预备传讯息的使用者帐号
suKr//_ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
)?`G"(y ,X`w/ 2O 例子.1 :
^]rPda# M02U,!di 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
qAI%6d write Rollaend
_(7f0p iYaS 接下来就是将讯息打上去,结束请按 ctrl+c
L5[{taZ, {$>Pg/ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
8MQb5( ! write Rollaend pts/2
lKdd3W"o N 2XL5< 接下来就是将讯息打上去,结束请按 ctrl+c
XXDLbT'J ohU}ST:9 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
d#8 n<NM j+"w2 名称:kill
"ov270: 使用权限:所有使用者
B,S~Idr} OsT|MX 使用方式:
<aQ<Wy=\ zgNzdO/B kill [ -s signal | -p ] [ -a ] pid ...
J7;8
S kill -l [ signal ]
gpw,bV 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
/@ww"dmqU 把计?
7Is:hx|: AZ.$g?3w -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
jK-b#h.gL -p : 印出 pid , 并不送出信号
]?G|:Kx$y% -l (signal) : 列出所有可用的信号名称
Gf=3h4 范例:
Fy 1- >~ *^oL$_Y 将 pid 为 323 的行程砍掉 (kill) :
zC,c9b kill -9 323
|:w)$i& * <k?pnBI_ 将 pid 为 456 的行程重跑 (restart) :
EVlj#~mV kill -HUP 456
g@2KnzD F|a'^:Qs 名称:nice
Cs4ks`Z18 使用权限:所有使用者
KAJR.YNm `r'$l<(4WV 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
xx@[ecW riZ :#I 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
\Up~"q>Kb NkV81? H+{@VB 把计?
ZsNZ3;d@u( ^H0#2hFa -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
9:E: 3%% --help 显示求助讯息
q|{z9V< --version 显示版本资讯
B*(BsXQLY 范例:
1xEFMHjy 将 ls 的优先序加 1 并执行 :
jM}(?^@ nice -n 1 ls
_\8jnpT: R<B5<!+ 将 ls 的优先序加 10 并执行 :
.?vHoNvo nice ls将 ls 的优先序加 10 并执行
j{j5TvsrY efNscgi 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
Q=61.lP6 c@2a)S8Y] 名称:ps
[D+,I1u2h 使用权限:所有使用者
G^sx/H76J 使用方式:ps [options] [--help]
Lf)JO|o 说明:显示瞬间行程 (process) 的动态
W#+f2 RR 参数:
R<
L =&I ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
_NB*+HVo -A 列出所有的行程
?b:Pl{? -w 显示加宽可以显示较多的资讯
+[R^ ?~VK -au 显示较详细的资讯
riL|B3 -aux 显示所有包含其他使用者的行程
x6)qs- mlxtey6H3 au(x) 输出格式 :
0l3[?YtXc 5%N[hd1Ql USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
L+S)hgUH USER: 行程拥有者
UEx13!iFo PID: pid
Y7zs)W8xTT %CPU: 占用的 CPU 使用率
#mU<]O %MEM: 占用的记忆体使用率
qm"SN<2S* VSZ: 占用的虚拟记忆体大小
nE +H)%p RSS: 占用的记忆体大小
H|_@9V TTY: 终端的次要装置号码 (minor device number of tty)
}N}Js* STAT: 该行程的状态:
74ho= D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
aAbA)'G R: 正在执行中
otdRz<C S: 静止状态
eR,/}g\ T: 暂停执行
6J\ 2=c` Z: 不存在但暂时无法消除
<(@Z#%O9) W: 没有足够的记忆体分页可分配
Zs]n0iwM'@ <: 高优先序的行程
s=]NKJaQH N: 低优先序的行程
-wrVEH8 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
R `Fgne$4 START: 行程开始时间
gs3c1Qa3b TIME: 执行的时间
'}9 Nvr)+ COMMAND:所执行的指令
< =~=IZ) 范例:
{_-T! yb ps
_|4R^*/4 PID TTY TIME CMD
qTK(sW 2791 ttyp0 00:00:00 tcsh
.^M#BAt2 3092 ttyp0 00:00:00 ps
%Z4*;VwQ % ps -A
'#yqw% PID TTY TIME CMD
ilde<!? 1 ? 00:00:03 init
sfip AM 2 ? 00:00:00 kflushd
#6vf:94 3 ? 00:00:00 kpiod
bf@g*~h@ 4 ? 00:00:00 kswapd
dOKp:|9G 5 ? 00:00:00 mdrecoveryd
ii_kgqT^ .......
6}m `_d? % ps -aux
yuy\T(7BN USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
AmHj\NX$ root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
tewp-MKA root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
zBl L98 root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
PDPK|FU root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
_}Qtx/Cg ........
0VcHz$
6 名称:pstree
:A
zll s 使用权限:所有使用者
>I0;MNX 使用方式:
%VFoK-a pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
D{s87h pstree -V
9DJ&J{2W 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
V]; i$ 参数:
~N i -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
(D%vN&F -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
$1"gFg 范例:
HA8A}d~ pstree
(BPO*' r:$tvT* init-+-amd
/6Q]f |-apmd
bS;_xDXd |-atd
McN[ |-httpd---10*[httpd]
'KIT^k0"Ih %pstree -p
F$DA/ {.D init(1)-+-amd(447)
pJvPEKN |-apmd(105)
:P}3cl_ |-atd(339)
>zqaV@T %pstree -c
>vp4R` init-+-amd
LT<2 n.S
|-apmd
e2v`
|-atd
gy%.+!4>v` |-httpd-+-httpd
{h|<qfH | |-httpd
~1D^C |% | |-httpd
jQ;/=9 | |-httpd
Bkd$'7UT ....
uDie205 名称:renice
[:{
FR2*x 使用权限:所有使用者
%Y%r2 3!b
$R?kZ 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
$/s"It 'o6}g p) 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
wYf\!]}' _]OY[&R 把计?
}ofb]_C, <HoCt8>U -p pid 重新指定行程的 id 为 pid 的行程的优先序
I4G0!"T+ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
@Suz-j(H -u user 重新指定行程拥有者为 user 的行程的优先序
4?1Qe\A^ 范例:
jcJ 4? 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
.*x: renice +1 987 -u daemon root -p 32
q4[8\Ua r@3-vLI!u 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
>Xk42zvqn >lV,K1Z 名称:top
84QOW|1 使用权限:所有使用者
P !i_?M gMI%!Y 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] fr/EkL1Dl
a*y9@RC}
说明:即时显示 process 的动态 WVRIq'
?OFa
Q
把计? u:f ]|Q
sNDo@u7
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s PP$sdmo
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 ]0."{^ksL
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Z?{\34lPj
s : 安全模式,将交谈式指令取消, 避免潜在的危机 p[JIH~nb
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 E`oA(x7l
n : 更新的次数,完成后将会退出 top >8_y-74
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 &^"Ru?MK
= g{I`u
范例: `.MZ,Xhqi"
显示更新十次后退出 ; ;[::&qf
top -n 10 ?Z 2,?G
4C =W~6~
使用者将不能利用交谈式指令来对行程下命令 : Ax&!Nz+?
top -s S/XU4i:aV
rJ Jx8)M
将更新显示二次的结果输入到名称为 top.log 的档案里 : vW=-RTRH
top -n 2 -b < top.log btuG%D{a^
Y${'
名称:skill L*Z.T^h
9,'m,2%W
使用权限:所有使用者 cF8
2wg
@!P2f
使用方式: skill [signal to send] [options] 选择程序的规则 !:|*!
3:x(2 A
说明: }qiZ%cT.G
@3?>[R
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 \Osu1]Jn>
.J75bX5
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 n{;Q"\*Sg
gTho:;q7a
一般参数: 2|>\A.I|=
_p*9LsN$L
-f 快速模式/尚未完成 tVRN3fJH
S[F06.(1
-i 互动模式/ 每个动作将要被确认 - Z,Qj"V
L~6%Fi&n4
-v 详细输出/ 列出所选择程序的资讯 [h3xW
3^UdB9j;
-w 智能警告讯息/ 尚未完成 5*$yY-A
rM7qBt
-n 没有动作/ 显示程序代号 J{ju3jo
+X/a+y-
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 Dx-P]j)4x
(L/>LZn|
-t 终端机代号 ( tty 或 pty ) ]W5*R07
zTg\\z;
-u 使用者名称 >$ZG=&
mw
28E\U
-p 程序代号 ( pid ) >B{NxL3->
2l)"I
-c 命令名称 可使用的讯号: &zJI~R
=K`.$R
以下列出已知的讯号名称,讯号代号,功能。 %Ln`c.C
}Ja-0v)Wf
名称 (代号) 功能/ 描述 &!8 WRJ
J9mK9{#q
ALRM 14 离开 j*DPW)RkKX
e#Cv*i_<
HUP 1 离开 a#j,0FKv
|Vpp'ipr
INT 2 离开 }93kHO{
8TP$ ?8l
KILL 9 离开/ 强迫关闭 8S1@,O,
1q7&WG
PIPE 13 离开 D;Qx9^.
hObL=^F
POLL 离开 eg;7BZim{
h]oUY.Pf
PROF 离开 '3>;8(sl
aS [[
AL
TERM 15 离开 c| ?(>
_<S!tW
USR1 离开 *cb|9elF^
>G5aFk
USR2 离开 ;JkSZs3
Z Ts*Y,
VTALRM 离开 ETHcZ
*igmi9A
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 '8q3ub<\
<[db)r~c
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 s/"bH3Ob9v
o+1(N#?m9
TSTP 停止 /产生与内容相关的行为 Y7t#)?
/I 7V\
TTIN 停止 /产生与内容相关的行为 6(8F4[D
CQWXLQED>
TTOU 停止 /产生与内容相关的行为 V+`kB3GV
d1D
f`
STOP 停止 /强迫关闭 v}$Q
]U>MYdGWb
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 (kxS0 ]=
Z@Rm^g]o
PWR 忽略 /在某些系统中会离开 FSEf0@O:
eGEwXza 4
WINCH 忽略 J>_mDcPo
!K-1tp$
CHLD 忽略 O\=Z;}<N
Xw4Eti._D
ABRT 6 核心 D:@W*,
:=NXwY3~M
FPE 8 核心 ^)dsi
"|3I|#s
ILL 4 核心 px;~20$e
1ubu~6
QUIT 3 核心 x/s:/YN'
:xsZz$
SEGV 11 核心 Bq8#'K2i,
xv]z>4@z,
TRAP 5 核心 ^OV; P[
>eGg 1
SYS 核心 /或许尚未实作 I*-\u
2y!n c%
EMT 核心 /或许尚未实作 CF;Gy L1M
gNZwD6GMe?
BUS 核心 /核心失败 >fC&bab
p.W7>o,[w
XCPU 核心 /核心失败 .V;,6Vq
45JL{YRN
XFSZ 核心 /核心失败 +p\E%<uQ
&[d'g0pF
范例: 9
/H~hEVK
停止所有在 PTY 装置上的程序 o26Y}W
skill -KILL -v pts/* [E9iuym
,Q"'q0hM=
停止三个使用者 user1 , user2 , user3 6(E4l5%
skill -STOP user1 user2 user3 q'jOI_b
q2%cLbI
F
其他相关的命令: kill FF8jW1
名称:expr &y_t,8>5
使用权限:所有使用者 &;$uU
### 字串长度 #*A&jo'E
Mq91HmC(@
shell>> expr length "this is a test" s\d3u`G
14 P@O_MT
### 数字商数 n{QyqI
shell>> expr 14 % 9 VN)WBv
5 t!\aDkxo %
### 从位置处抓取字串 |<{SSA
shell>> expr substr "this is a test" 3 5 "(mJupI
is is T, #-: }
### 数字串 only the first character )>ff"| X
shell>> expr index "testforthegame" e E3wpC#[Q1
2 oRbWqN`F.
### 字串真实重现 od!44p]
shell>> expr quote thisisatestformela &eV5#Ph
thisisatestformela