linux常用命令
sF!#*Y !2!Zhw2u 称:/etc/aliases
}2;P`s 使用权限:系统管理者
G"FO%3&| 使用方式: 请用 newaliases 更新资料库
zr?s5RS 说明:
jyIIE7.I" sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
=8 @DYz' Jd7chIK /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
-b^dK)wR~ # newaliases
ly`
A,dh {V>F69IU 下面命令会做相同的事,
_"
9 q(1 # sendmail -bi
Ps@']]4>W M6p\QKi 相关命令:
9 o,`peH mail, mailq, newaliases, sendmail
o+.L@3RT4 {FFdMdxy- ” mail [返回]
bSw^a{~) 名称:mail
X,w X)9]J }BC%(ZH6 使用权限:所有使用者
&qg6^& rgIWM" 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
i5TGK#3o GV0@We~ 说明:
GxzO|vFQ mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
>Gpq{Ph[ m)L50ot:/ 参数:
C1NU6iV^z i 忽略 tty 的中断讯号。 (interrupt)
E:8*o7 I 强迫设成互动模式。 (Interactive)
;'{7wr|9 v 列印出讯息,例如送信的地点、状态等等。 (verbose)
F62 uDyY n 不读入 mail.rc 设定档。
qj_0
td$ s 邮件标题。
'zm5wqrkAd c cc 邮件地址。
}MOXJb @ b bcc 邮件地址。
op`9(=DJ] %}TJr]'F 范例:
"B:FSWM_- E&cC2(w 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
#@DJf mail
user1@email.address
TQck$& mail
user1@email.address user2
!nl-}P, %@C8EFl%3 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
@LOfqQ$FE 1J9p1_d5 mail -s 标题 -c user1 user2 < mail.txt
.;7V]B1o mBwz.KEm< 指令:mesg
BO*)cLQ 使用权限 : 所有使用者
:dW\Q&iW ;7s^slVzF 使用方式 : mesg [y|n]
Mbxl{M
> 7_ oUuNw 说明 : 决定是否允许其他人传讯息到自己的终端机介面
wuXQa
wo H8w[{'Mei
把计 ?
@H`jDaB9 ZX&e,X~V y : 允许讯息传到终端机介面上。
pZS]i
" n : 不允许讯息传到终端机介面上 。
^|Z'}p|& 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
a&JY x 3}\ z&| 例子 :
z` 6$p1U 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
C0f%~UMwd mesg n
Pi"?l[T0 与 mesg 相关的指令有: talk,write,wall。
VX8rM!3 名称:/etc/aliases
nmiJ2edx 使用权限:系统管理者
)zO|m7 使用方式: newaliases
p+~Imf-Jk 说明:
,Gv}N& sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
NTq_"`JjZ s~Ivq+ipr; /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
k-jFT3b$ S6M7^_B4F 参数:没有任何参数。 范例:
^&&Wv'7XQ # newaliases
]CNPy$>* Y}BP]#1 下面命令会做相同的事,
xKE=$SV( # sendmail -bi
!B Pm{_C 4RDY_HgF6 相关命令:
S}rEQGGR{ mail, mailq, newaliases, sendmail
g5+m]3#t 名称 : talk
\LJ!X3TZ 使用权限 : 所有使用者
SM)"vr_ `scW.Vem 使用方式 :
Vf:.C|Z 1p~ORQ talk person [ttyname]
^@/wXj: 说明 : 与其他使用者对谈
k'%yvlv 873 bg|^hs 把计 :
OP+*%$wR person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name %|x9C,0p# ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
.BJoY
<P* 3(K.:376 例子.1 :
8!35
K j)8$hK/e0. 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
">=E p+ix talk Rollaend
ZFMO;'m& mg:kVS 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
%?n=In(F #m{(aa9; 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
C+t3a@&| talk
Rollaend@linuxfab.cx pts/2
K?,?.!ev EG^
rh; #f(tzPD 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
.B xQF 6, j60`f) 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
kVZs: 3c#^@Bj(-e 名称 : wall
Da)p%E>Q 使用权限 : 所有使用者
-flcB|I` f{2UL ?y 使用方式 :
+a,#BSt wall [ message ]
wM[Z 0*K 使用说明:
D8!
Y0 wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
x(sKkm`Q bn|HvLQ"1 例子 :
Q'jGNWep 7./-|# 传讯息"hi" 给每一个使用者 :
(D[~Z! wall hi
i{N?Y0YQs0 名称 : write
A-B>VX 使用权限 : 所有使用者
Ln6emXqw "
]k}V2l 使用方式 :
';\norx; shdzkET8N write user [ttyname]
WYRC_U7 说明 : 传讯息给其他使用者
eK(k;$4\^Y c]1AM)xo 把计 :
&Oz jQ7;-9/~N user : 预备传讯息的使用者帐号
z2Wblh"_ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
;~r- P$kCY _l]
0V
g` 例子.1 :
^& *;]S` *GYLj[ 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
"D>/#cY1/ write Rollaend
S=kO9"RB] dm"x?[2: 接下来就是将讯息打上去,结束请按 ctrl+c
f
uU" r2tE!gMC 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
j0oto6z~b write Rollaend pts/2
8[,R4@ vv)O+xt 接下来就是将讯息打上去,结束请按 ctrl+c
}vx
4 6 4`o0?_.' 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
N!<l~[rc 2N |iOog 名称:kill
+8"8s 使用权限:所有使用者
}+S~Ah?( .PT7 使用方式:
)mAD <y+ 1NZpd'$c kill [ -s signal | -p ] [ -a ] pid ...
=d@)*W 6 kill -l [ signal ]
"+ {2! 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
`=V1w4J 把计?
R)N^j'R~= +-TEB -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
3NZK$d=4 -p : 印出 pid , 并不送出信号
%*<Wf4P" -l (signal) : 列出所有可用的信号名称
CUc , 范例:
RWu<
dY#ym $L|+Z>x 将 pid 为 323 的行程砍掉 (kill) :
.L^j:2(L kill -9 323
s!D?% dj9i*#F 将 pid 为 456 的行程重跑 (restart) :
7)O+s/.P) kill -HUP 456
HnFH|H<Uf q~iEw#0-L 名称:nice
!.iFU+?V 使用权限:所有使用者
t]vv&vk> <
fe. 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
FncP,F$8
E.N>,N 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
)BaGY J^DyhCs WFFd3TN%< 把计?
pcOKC 0b. pE+:tMH; -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
H,EZ%
Gl --help 显示求助讯息
afaQb --version 显示版本资讯
UWqX}T[^ 范例:
zmuRn4Nv 将 ls 的优先序加 1 并执行 :
MYxuQ |w nice -n 1 ls
DuAix)#FN9 S+eu3nMq 将 ls 的优先序加 10 并执行 :
I:al[V2g nice ls将 ls 的优先序加 10 并执行
(?7}\B\ 4u0?[v[Hu 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
i8cmT+}> I3Z\]BI 名称:ps
kDR5kDiS 使用权限:所有使用者
|yj0Rv 使用方式:ps [options] [--help]
6&LmR75C 说明:显示瞬间行程 (process) 的动态
48;b 参数:
?hp,h3s;n$ ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
FL$S_JAw -A 列出所有的行程
,N_V(Cx5pt -w 显示加宽可以显示较多的资讯
#IqRu:csp -au 显示较详细的资讯
V!@6Nv -aux 显示所有包含其他使用者的行程
FSkX95 SuV3$-);z au(x) 输出格式 :
x=\W TC hSps9*y USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
0;w 4WJJ USER: 行程拥有者
siV]NI':| PID: pid
sQrM"i0Y> %CPU: 占用的 CPU 使用率
PF)s> %MEM: 占用的记忆体使用率
7''iT{-[p VSZ: 占用的虚拟记忆体大小
c&<Ei1 RSS: 占用的记忆体大小
^x(s!4d] TTY: 终端的次要装置号码 (minor device number of tty)
RA+M. STAT: 该行程的状态:
#c/K.? D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
G_k_qP^: R: 正在执行中
%l%2 hvGZ S: 静止状态
CNWA!1n^Hy T: 暂停执行
LH@Kn?R6 Z: 不存在但暂时无法消除
BoARM{m W: 没有足够的记忆体分页可分配
]-+l.gVFW <: 高优先序的行程
>B$ IrM7J N: 低优先序的行程
`oO*ORq& L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
N
/;Vg^Wx START: 行程开始时间
c4Q%MRR TIME: 执行的时间
X
VH(zJ COMMAND:所执行的指令
FId,/la 范例:
mgq4g ps
tC=K;zsXpz PID TTY TIME CMD
d7Cs a
c 2791 ttyp0 00:00:00 tcsh
c[vFh0s"m 3092 ttyp0 00:00:00 ps
?l|&JgJ$ % ps -A
v(uNqX.BC PID TTY TIME CMD
@y
eAM7 1 ? 00:00:03 init
\^'-=8<*> 2 ? 00:00:00 kflushd
t`eIkq|NxI 3 ? 00:00:00 kpiod
T$DFTr\\ 4 ? 00:00:00 kswapd
:;]O;RXt 5 ? 00:00:00 mdrecoveryd
r'*#i>PkQD .......
L?Ih; % ps -aux
V72?E%d0 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
#2*R0_b root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
/p}pdXS root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
P+e {,~o root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
p7.~k1h root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
pQ ul0] ........
zf\$T,t) 名称:pstree
zCS }i_ p 使用权限:所有使用者
gEgd/Le 使用方式:
|*8X80< pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
y"_rDj` pstree -V
G}]'}FUp 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
A=D
G+z'' 参数:
9`&sZ|"3 -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
"SC]G22 -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
7PO]\X^(zE 范例:
<c,iu{: pstree
6>'>BamX UnZc9 6 init-+-amd
W yP] ]I. |-apmd
zTn.#-7y |-atd
--vJR/- |-httpd---10*[httpd]
+5:9?&lH %pstree -p
;hd%wmE init(1)-+-amd(447)
GN+,9 |-apmd(105)
=,s5>2 |-atd(339)
=6qSo
@ %pstree -c
&}_tALg init-+-amd
O4^' H}* |-apmd
[XP\WG>s |-atd
X9&>.?r |-httpd-+-httpd
YTfi g{a | |-httpd
h;OHpvk | |-httpd
T I yHM1+ | |-httpd
j}G9+GX~, ....
"DecS:\ 名称:renice
\`*]}48Z 使用权限:所有使用者
h~=~csya: :p$Q3 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
y
XCZs L*{E-m/ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
Yg;7TKy ;;432^jD 把计?
LS<*5HWX ,jy9\n*<t9 -p pid 重新指定行程的 id 为 pid 的行程的优先序
:vE\r#hJ" -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
_6aI>b#yL -u user 重新指定行程拥有者为 user 的行程的优先序
>ATccv 范例:
fV!~SX6S 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
1[e%E#h renice +1 987 -u daemon root -p 32
tYhNr Z3 dI
B`@ 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
Rvj[Csgi AFWWGz 名称:top
T^2o'_: 使用权限:所有使用者
AaM~B`B "OrF81 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ;jmT5XzL
P#,g5
说明:即时显示 process 的动态 NLev(B:OQH
EB
p(^rj
把计? 9*(uJA
fTi5Ej*/?)
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s =BeJ.8$@VC
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 6D4 j];~X
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 .h@bp1)l
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ~W_T3@
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 M"ZeK4qh
n : 更新的次数,完成后将会退出 top F^!_!V B
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 ~AcjB(
_$T.N
范例: D\z`+TyJ
显示更新十次后退出 ; p<Vj<6.=?
top -n 10 y6>fK@K~
~@D{&7@
使用者将不能利用交谈式指令来对行程下命令 : i MF-TR
top -s w#>CYP`0k6
[h0)V(1KR
将更新显示二次的结果输入到名称为 top.log 的档案里 : YF)c.Q0
top -n 2 -b < top.log !Ic~_7"
:MF+`RpL
名称:skill W'Y#(N[ktP
(_Rl
f$D
使用权限:所有使用者 (l)r.Vj
VW**N}1#C
使用方式: skill [signal to send] [options] 选择程序的规则 N. 0~4H
%U
FivqyT7i
说明: ^7Z.~A y
g` 41d
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 @zig{b 8
P A$jR
fQ
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 Q'Y7PG9m~
"lKR~Qi
一般参数: f<Yg_ TG
o#V{mm,{Pm
-f 快速模式/尚未完成 ,BlNj^5f
knRs{1}Pw{
-i 互动模式/ 每个动作将要被确认 ^x}k1F3
4R9y~~+
-v 详细输出/ 列出所选择程序的资讯 +<sv/gEt
Vd A!tL
-w 智能警告讯息/ 尚未完成 CD)JCv
{br6*
-n 没有动作/ 显示程序代号 y2>AbrJ
g 4lk
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 )/BbASO$)Z
rC6{-42bb
-t 终端机代号 ( tty 或 pty ) _O`s;oc
h:<?)g~U
-u 使用者名称 b4>1UZGW-
.-cx9&
-p 程序代号 ( pid ) ;~n^/D2.
1raq;^e9
-c 命令名称 可使用的讯号: @gjA8mL
e^or qw/I
以下列出已知的讯号名称,讯号代号,功能。 oN=>U"<\1
bA/'IF+
名称 (代号) 功能/ 描述 g
?{o2gG
`~2I
ALRM 14 离开 VB}^&{t)!
Lwkl*
HUP 1 离开 !5>PZ{J
%G'P!xQhy
INT 2 离开 ?l^NKbw
8]xYE19=
KILL 9 离开/ 强迫关闭 S.*LsrSV
_''9-t;n,
PIPE 13 离开 k6(0:/C
l6pvQ|
POLL 离开 v`r*Yok;`
|L(h+/>aWX
PROF 离开 T<o8lL
*JiI>[
TERM 15 离开 qR9!DQc'
uevhW
USR1 离开 Xt$Y&Ho
0G(|`xG1q
USR2 离开 *fQn!2}=(
+RyV"&v
VTALRM 离开 a[NR%Xq
wfQImCZ>l
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体
V6fJaZ
oe[f2?-
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 8_T9[]7V8
gm7 [m}
TSTP 停止 /产生与内容相关的行为
O<y65#68Z
& DhdB0Hjf
TTIN 停止 /产生与内容相关的行为 .T#}3C/
E*d UJ.>
TTOU 停止 /产生与内容相关的行为 #S"s8wdD
\qtdbi|Y
STOP 停止 /强迫关闭 !>EK
%OO
m`Pk )c0
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 OZQN&7
?vmoRX
PWR 忽略 /在某些系统中会离开 ;e6-*
- 9a4ej5
WINCH 忽略 NF'<8{~
Nu@dMG<5
CHLD 忽略 $
U-#woXa
cue aOtD
ABRT 6 核心 "&@{f:+
K<MWiB&
FPE 8 核心 VUZeC,FfO
O6Y1*XTmH6
ILL 4 核心 TEi1,yc
?b\oM
v5y
QUIT 3 核心 Z=(Tq1t
q I*7ToBJ
SEGV 11 核心 hp}JKj@
-!IeP]n#P
TRAP 5 核心 =4gPoS
xMFEeSzl>S
SYS 核心 /或许尚未实作 <aY>fg d/1
mnFmShu
EMT 核心 /或许尚未实作 $.zd,}l@L
~#7uNH2
BUS 核心 /核心失败 ^;wz+u4^l
1wBmDEhS
XCPU 核心 /核心失败 ym'!f|9AA
Wjr^: d
XFSZ 核心 /核心失败 Av!xI
|v_ttJ;+Y
范例: LR3>_t
停止所有在 PTY 装置上的程序 RM>A9nv$\
skill -KILL -v pts/* vK$wc~
aev(CY,z
停止三个使用者 user1 , user2 , user3 e'.CIspN
skill -STOP user1 user2 user3 '3xK1Am
~bz$] o-<
其他相关的命令: kill YI2x*t!
名称:expr bZpx61h|
使用权限:所有使用者 uzIM?.H
### 字串长度 yYdh+ x
2.'hr/.
shell>> expr length "this is a test" c[Z#q*Q
14 mSGpxZ,IE
### 数字商数 f6 s .xQ
shell>> expr 14 % 9 g @NwW&
5 L. 8`5<ITw
### 从位置处抓取字串 #"fn;
shell>> expr substr "this is a test" 3 5 H'Jz:6
is is 3Pvz57z{
### 数字串 only the first character gZ8JfA_\R(
shell>> expr index "testforthegame" e . Ctd$
2 YKzfI9Y
### 字串真实重现 P_)=sj!>-
shell>> expr quote thisisatestformela 1'|gxYT
thisisatestformela