linux常用命令
=.]4;z orMwAV 称:/etc/aliases
6.nCV0xA 使用权限:系统管理者
FSW_<% 使用方式: 请用 newaliases 更新资料库
<+vw@M 说明:
+Kbjzh3<wG sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
O*)Vhw'pK f5VLw`m}.8 /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
]*[ 2$ # newaliases
GH:jH]u!V {go;C} 下面命令会做相同的事,
Xg!{K3OS # sendmail -bi
MC.)2B7 C
mWgcw1 相关命令:
V7fq4O^: mail, mailq, newaliases, sendmail
::{Q1F 2?ez,*-[ ” mail [返回]
UIN<2F_ 名称:mail
]{mPh\ !/i{l 使用权限:所有使用者
}.m< =QiI :|eRA 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
mQ26K~ (b-MMr 说明:
c>:wd@w mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
9} M?P Hp!-248 S 参数:
k],Q9 i 忽略 tty 的中断讯号。 (interrupt)
rgtT~$S I 强迫设成互动模式。 (Interactive)
=BAW[%1b v 列印出讯息,例如送信的地点、状态等等。 (verbose)
ryUQU^v n 不读入 mail.rc 设定档。
,,Q O^j]4~ s 邮件标题。
3/e.38m| c cc 邮件地址。
7XLtN "$$ b bcc 邮件地址。
-Xm'dwm RF4vtQC= 范例:
;1O_M9 tKx~1- 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
Mhf5bN|wQ mail
user1@email.address
&n}f? mail
user1@email.address user2
qCpp6~]Um }1i`6`y1 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
gANuBWh8T &zeyE;/Hj mail -s 标题 -c user1 user2 < mail.txt
][h%UrV ]]9R mh= 指令:mesg
?u=Fj_N_ 使用权限 : 所有使用者
j8{i#;s!" qqr?!vem6 使用方式 : mesg [y|n]
f:|1_ j 6J6BF% 说明 : 决定是否允许其他人传讯息到自己的终端机介面
J76kkW`5 QIvVcfM^ 把计 ?
4n g]\ituS JZ*/,|1}EC y : 允许讯息传到终端机介面上。
BmMGx8P n : 不允许讯息传到终端机介面上 。
|5~#&v_ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
j94=hJVKi BBRR) 例子 :
KNpl:g3{<Q 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
+LZLy9iKt mesg n
Ln<`E|[29 与 mesg 相关的指令有: talk,write,wall。
=eXU@B 名称:/etc/aliases
-)]Yr #Q 使用权限:系统管理者
xU>WEm2 使用方式: newaliases
a# y;dK 说明:
l%pu HZ)t sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
5Y'qaIFR n :\~'+$ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
lVR~Bh _j/<{vS y 参数:没有任何参数。 范例:
#TX/aKr: # newaliases
E+R1 !. q`H_M{26!y 下面命令会做相同的事,
mD0f<gJ1 # sendmail -bi
m=A(NKZ
M!A}NWF 相关命令:
A8fOQ mail, mailq, newaliases, sendmail
](9Xvy 名称 : talk
q?oP?cCw 使用权限 : 所有使用者
wQH<gJE/: rc>4vB_ha 使用方式 :
K>r,(zgVc )=Z>#iH1 talk person [ttyname]
]J} 说明 : 与其他使用者对谈
N~d ?WD\^ zH4D 8@[7O 把计 :
"9P>a=Y person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name \y)rt ) ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
{ MSkHf= |\<`Ib4j 例子.1 :
v/0QOp j4qR(p(vC 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
qL&[K>2z talk Rollaend
}Jve cRtg1 DV+xg3\(>1 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
ox>^>wR* .TMs bZ|j 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
^aMg/.j talk
Rollaend@linuxfab.cx pts/2
)}]g]
g dTC7Fm gsvuE 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
" 4K(jXq| goRL1L,5 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
f/NH:1)y |`Ntv} 名称 : wall
|`f$tj 使用权限 : 所有使用者
Z!#!Gu*V 7 60Y$/Wz 使用方式 :
?m=N]!n wall [ message ]
#*uL)2nR 使用说明:
:q7Wy&ow wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
dh*ZKI^@( .b&t;4q 例子 :
*_{j=sd [vK^Um 传讯息"hi" 给每一个使用者 :
|zNX=mAV wall hi
_AYK435>N 名称 : write
TJpD{p} 使用权限 : 所有使用者
Xy&A~F 6BHXp#
#z 使用方式 :
Ovt.!8 vNY{j7l/W write user [ttyname]
0hNA1Fh{U 说明 : 传讯息给其他使用者
Gg3,:A_ w y$F'(b|) 把计 :
AGO+p(6d=g Ae^~Cz1qz user : 预备传讯息的使用者帐号
3!Ij;$ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
t r3!d_ p8H'{f\G 例子.1 :
-.@r#d/ @* jz
o 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
ZW8vza write Rollaend
y8Z_Itlf }wjw:M 接下来就是将讯息打上去,结束请按 ctrl+c
Mzw<{*:r cAqLE\h 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
vq0Tk
bzs write Rollaend pts/2
KKPh~ThC E`0? 接下来就是将讯息打上去,结束请按 ctrl+c
V/LLaZTE [M}{G5U. 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
'8.r-`l( B+VubUPMS 名称:kill
<X^@*79m 使用权限:所有使用者
4 Y9`IgQ /cdC'g 使用方式:
]G=L=D^cK UWJ8amA kill [ -s signal | -p ] [ -a ] pid ...
J+DDh=% kill -l [ signal ]
V`d,qn)i 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
6NuD4Ga 把计?
S_4?K)n # K.nHii -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
(sTpmQx,b -p : 印出 pid , 并不送出信号
Y>T-af49 -l (signal) : 列出所有可用的信号名称
8f4b&ah 范例:
4Zddw0|2 m@F`!qY~Y\ 将 pid 为 323 的行程砍掉 (kill) :
Q&ptc>{bH6 kill -9 323
x8\?}UnB y`5
9A 将 pid 为 456 的行程重跑 (restart) :
Jr!JHC9i kill -HUP 456
~i{(<.he >d*@_kJM 名称:nice
v2\FA(BPn 使用权限:所有使用者
)Y0!~#
` f=Gg9bnm3 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
&|ex`nwc0 6qpJUkd 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
9C9oUtS ,vawzq[oSy "'.UU$]d 把计?
Z'W=\rl KVaiugQ -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
VG#EdIiI --help 显示求助讯息
vjCu4+w($Z --version 显示版本资讯
zOIDU 范例:
^4hO 将 ls 的优先序加 1 并执行 :
1~`fVg nice -n 1 ls
`pS9_NYZ} EhvX)s 将 ls 的优先序加 10 并执行 :
9c'xHO` nice ls将 ls 的优先序加 10 并执行
DGF5CK.O CL;}IBd a 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
glxsa8 ~2N"#b&J 名称:ps
J#(LlCs?@c 使用权限:所有使用者
D&
i94\vVa 使用方式:ps [options] [--help]
}W8;=$jr 说明:显示瞬间行程 (process) 的动态
.},'~NM] 参数:
yNo0ubY ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
\fdv]f -A 列出所有的行程
EwT"uL*V; -w 显示加宽可以显示较多的资讯
eA ?RK.e -au 显示较详细的资讯
fu ,}1Mq# -aux 显示所有包含其他使用者的行程
,WYPU $G+@_' au(x) 输出格式 :
EjR9JUu 5yo%$i8I USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
k FD;i USER: 行程拥有者
)[IC?U:5I PID: pid
'ya{9EdlT %CPU: 占用的 CPU 使用率
H;LViP2K* %MEM: 占用的记忆体使用率
^*Q ?]N VSZ: 占用的虚拟记忆体大小
7"x;~X RSS: 占用的记忆体大小
)m)-o4c TTY: 终端的次要装置号码 (minor device number of tty)
xml7Uarc STAT: 该行程的状态:
|F[+k e D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
KqJs?Won R: 正在执行中
50wulGJud S: 静止状态
]7BvvQ
T: 暂停执行
#x60xz Z: 不存在但暂时无法消除
5m 4P\y^a W: 没有足够的记忆体分页可分配
MrFQ5:= <: 高优先序的行程
]|ag N: 低优先序的行程
A,<E\ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
i)#dWFDTv START: 行程开始时间
P>D)7V9Hh TIME: 执行的时间
O+]ZyHnB COMMAND:所执行的指令
R|, g< 范例:
KYI/ ps
TDjm2R~9FS PID TTY TIME CMD
"m8^zg hL 2791 ttyp0 00:00:00 tcsh
@n /nH?L 3092 ttyp0 00:00:00 ps
'sKk"bi;0 % ps -A
$( kF# PID TTY TIME CMD
]:- mbgW 1 ? 00:00:03 init
M"Hf :9Rk 2 ? 00:00:00 kflushd
k%#EEMh 3 ? 00:00:00 kpiod
"Gzz4D 4 ? 00:00:00 kswapd
FVbb2Y?R 5 ? 00:00:00 mdrecoveryd
Lg.gfny[(t .......
R+z2}}Z!` % ps -aux
Y\P8v USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
|aS.a&vwR root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
b. '-?Nn root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
P3=G1=47U root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
RSRS wkC root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
{\1?ZrCI& ........
\?-<4Bc@ 名称:pstree
Hzz %3}E 使用权限:所有使用者
T3<4B!UB& 使用方式:
'<)n8{3Q5w pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
.2t4tb(SUw pstree -V
L`TLgH&?R 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
:eCwY 参数:
&
J'idYD -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
3;9^ -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
WE#^a6 范例:
V2EUW!gn
2 pstree
!9e=_mY ~G&dqw/.-U init-+-amd
`/+>a8 |-apmd
%aCqi(.7 |-atd
^z*t%<@[Q |-httpd---10*[httpd]
EME|k{W %pstree -p
]s'as9s9 init(1)-+-amd(447)
Q3~H{)[Kq |-apmd(105)
a58H9w"u) |-atd(339)
+Kc %pstree -c
CK@@HSm}l init-+-amd
WpP}stam/ |-apmd
V f&zL
Sgr |-atd
"HIRTE;& |-httpd-+-httpd
s ll\g | |-httpd
Z5n1@a__ | |-httpd
9$w.9`Py | |-httpd
qe#tj/aZ ....
2]*OQb#O6e 名称:renice
M|h3Wt~7 使用权限:所有使用者
!f[_+CD TIDO@NwF 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
PC8Q"O
<kqo^ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
hn@08t G U7F!Z(
9 把计?
KV *#T20T JH9J5%sp -p pid 重新指定行程的 id 为 pid 的行程的优先序
S%>]q
s -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
dZ@63a>>@ -u user 重新指定行程拥有者为 user 的行程的优先序
{JT&w6Jz 范例:
Zu[su>\ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
_V6ukd"B~ renice +1 987 -u daemon root -p 32
b8UO,fY q #c!lS<z 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
Lk8ek}o' $6 f3F?y7 名称:top
cm+Es6; 使用权限:所有使用者
TD0
B% Wac&b 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] XpHrt XD
va@Lz&sAE%
说明:即时显示 process 的动态 k4J+J.|
!F$6-0%
把计? oG\Vxg*
SqpaFWr
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
=:pJ
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 8nV+e~-w
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 "!^"[mX4
s : 安全模式,将交谈式指令取消, 避免潜在的危机 CA~-rv
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ?6U0PChy
n : 更新的次数,完成后将会退出 top R-$!9mnr
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 g) jYFfGfH
chX"O0?"
范例: )ez9"# MH'
显示更新十次后退出 ; T0)@pt7>
top -n 10 DTL.Bsc-.
~f98#43
使用者将不能利用交谈式指令来对行程下命令 : aW7^d'ZZ\
top -s 8l`*]1.W<
f]CXu3w(J
将更新显示二次的结果输入到名称为 top.log 的档案里 : VTE .^EK!
top -n 2 -b < top.log ;e *!S}C,
Dp9+HA9t
名称:skill (!WD1w
UaeXY+O
使用权限:所有使用者 :vbW
O\r0bUPE
使用方式: skill [signal to send] [options] 选择程序的规则 {P_.~0pc*
6i/(5 nQ
说明: 26h21Z16q
b]KBgZ
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 %'pgGC"|
I!K6o.|1
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 3!]rmZ-W
L!xi
一般参数: Gd85kY@w7
gcT%c|.
-f 快速模式/尚未完成 ?Ir:g=RP*
;4\;mmLVk
-i 互动模式/ 每个动作将要被确认 tR$NRMZ.
i/Zd8+.n$
-v 详细输出/ 列出所选择程序的资讯 7%M_'P4 V
3Y$GsN4ln
-w 智能警告讯息/ 尚未完成 Q$"D]!G
~t~|"u"P
-n 没有动作/ 显示程序代号 ;2QP7PrSY
K-Ef%a2#`
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 ]Y&VT7+Z
;$g?T~v7
-t 终端机代号 ( tty 或 pty ) V'gh6`v
5{,<j\#L
-u 使用者名称 W"{N Bi
8quaXVj^a
-p 程序代号 ( pid ) !4+<<(B=E
ox.F%)eQ
-c 命令名称 可使用的讯号: G3T]`Atf
|[8Th4*n
以下列出已知的讯号名称,讯号代号,功能。 9\(|
D#
Q7CsJzk~)
名称 (代号) 功能/ 描述 Q"#J6@
}jPSUdo
ALRM 14 离开 X:{!n({r=
@H8EWTZ
HUP 1 离开 seJ^s@H5l
{'H(g[k
INT 2 离开 :ShT|n7
f|gg
KILL 9 离开/ 强迫关闭 aN3;`~{9
HGg@ _9tW
PIPE 13 离开 )4 ;`^]F
BiBOr}ZQ
POLL 离开 9Mcae31
_yR^*}xJb
PROF 离开 e*1_ 8I#2
R4d=S4i
TERM 15 离开 Tlr v={
veECfR;
USR1 离开 (/]
J3
N'=gep0V@
USR2 离开 LDa1X2N
#g!.T g'
VTALRM 离开 alb.g>LNPP
TA~{1_l
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 `Q,H|hp;k;
<~=Vg
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 a8Wwq?@
xgtR6E^k
TSTP 停止 /产生与内容相关的行为 yB6?`3A:
-UT}/:a
TTIN 停止 /产生与内容相关的行为 HxI"
8A
;dhQN}7
TTOU 停止 /产生与内容相关的行为 &%Tj/ Qx
V(*(F7+
STOP 停止 /强迫关闭 cB&:z)i4
7 X4LJf
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 2:ylv<\$
\73ch
PWR 忽略 /在某些系统中会离开 32
=z)]FZ
9gZ$
WINCH 忽略 P!k{u^$L
|ENh)M8}r
CHLD 忽略 kG*~|ma
NGW xN8P6
ABRT 6 核心 |wj?ed$
f
+ck}l2
FPE 8 核心 FN73+-:n:j
i}?>g -(
ILL 4 核心 QmIBaMI#
Z?z.?ar
QUIT 3 核心 ?
=+WRjF
9cm#56
SEGV 11 核心 I2Yz#V<%ru
Z/J y'$x
TRAP 5 核心 #$y?v%^
T[A69O]v
SYS 核心 /或许尚未实作 Ga'swP=hf
<9
;!3xG
EMT 核心 /或许尚未实作 {l>hMxij
+nGAz{&@r%
BUS 核心 /核心失败 Y6d@h? ht
vr^qWn
XCPU 核心 /核心失败 0ZO2#>gh$
Du){rVY^d
XFSZ 核心 /核心失败 sx<%2
<0?W{3NqI
范例: DlNX 3
停止所有在 PTY 装置上的程序 nFs(?Rv*
skill -KILL -v pts/* _J [P[(ab
;A!BVq
停止三个使用者 user1 , user2 , user3 7 xa>
skill -STOP user1 user2 user3 Q NVa?'0"Y
F4{IEZ
其他相关的命令: kill 6LZ;T.0o
名称:expr S21,VpW\
使用权限:所有使用者 ^Zp>G{QL{
### 字串长度 POR\e|hRT]
L j$;:/G
shell>> expr length "this is a test" \nqS+on]
14 G*v,GR
### 数字商数 }o{(S%%
shell>> expr 14 % 9 c[Zje7 @
5 iG?[<1~
### 从位置处抓取字串 C"enpc_C/
shell>> expr substr "this is a test" 3 5 >yh2Lri
is is tklH@'q
### 数字串 only the first character ^zgo#J5O
shell>> expr index "testforthegame" e /H+a0`/
2 7v_8_K
### 字串真实重现 M&
CqSd
shell>> expr quote thisisatestformela \5cpFj5%
thisisatestformela