linux常用命令
q+znb'i-x mtg=v@~ 称:/etc/aliases
)x,/+R]{8l 使用权限:系统管理者
pCf9"LLer 使用方式: 请用 newaliases 更新资料库
DPlDuUOd 说明:
yV~TfTJ sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
i]#"@xQ Z%Pv,h'Q /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
"{S6iH)]8 # newaliases
{wDq*va b'ZzDYN 下面命令会做相同的事,
{?;qy\m]o # sendmail -bi
Pn,>eD*g 86pA+c+U 相关命令:
5DpvMhc_ mail, mailq, newaliases, sendmail
1COSbi] }S$OE))u ” mail [返回]
x5Ue"RMl+ 名称:mail
.=)[S5.BVq MQQQaD:v 使用权限:所有使用者
sf0\#Q gyQPQ;"H$2 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
n0LNAhM G|*&owJ 说明:
!F:mDZeY mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
No8-Hm S0Ur{!9\#^ 参数:
d[{!^,%x" i 忽略 tty 的中断讯号。 (interrupt)
QH,Fw$1 I 强迫设成互动模式。 (Interactive)
*8J0yv v 列印出讯息,例如送信的地点、状态等等。 (verbose)
UGlHe7 n 不读入 mail.rc 设定档。
K^6d_b& s 邮件标题。
joDqv,iW8 c cc 邮件地址。
Qqi?DW1)- b bcc 邮件地址。
g${JdxR: qqJghV$Oj 范例:
ek. @ 0c 2">de/jS 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
mr2Mu mail
user1@email.address
Go!{@xx> mail
user1@email.address user2
ie11syhV" qDTdYf 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
)"?eug}D |VzXcV-"8) mail -s 标题 -c user1 user2 < mail.txt
jU kxA7 }} c:52pYf+ 指令:mesg
'=O1n H< 使用权限 : 所有使用者
D)bL;h H2oxD$s 使用方式 : mesg [y|n]
CPL,QVO9 &]Uo>Gb3!q 说明 : 决定是否允许其他人传讯息到自己的终端机介面
Zwz co ,2rfN"o 把计 ?
AN6Q~%, MRw4?HqB y : 允许讯息传到终端机介面上。
#s81k@#X n : 不允许讯息传到终端机介面上 。
kMK0|+ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
9pPLOXr , \m~p;B 例子 :
r{t6Vv2J 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
-%]1q#C>@ mesg n
"OA{[)fw" 与 mesg 相关的指令有: talk,write,wall。
jVLJqWP'! 名称:/etc/aliases
M|j=J{r 使用权限:系统管理者
#Q)r6V: 使用方式: newaliases
w~'}uh 说明:
:s&dn%5N" sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
QxA( *1 3^nH>f-Y /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
]jm:VF]4 }IZw6KiN 参数:没有任何参数。 范例:
P$0c{B4I # newaliases
hd i0YL i7 21(1 下面命令会做相同的事,
0MroHFh9` # sendmail -bi
~@Q]@8Tv\ L -:@Om! 相关命令:
8Z_ 4%vUBg mail, mailq, newaliases, sendmail
:b(W&iBWhI 名称 : talk
JKfJ%yy | 使用权限 : 所有使用者
oQ,<Yx%E3 q^sZP\i,*; 使用方式 :
ZZZ9C#hK^9 ypG*41 talk person [ttyname]
1%*\*z
说明 : 与其他使用者对谈
=EMB~i Y I;iG[T,& 把计 :
knYp"<qj person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name i>,AnkI& ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
Dol{y=(3e A9 g%> 例子.1 :
E/a2b(,Tg 5\XD/Q M 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
0QW=2rs talk Rollaend
+x}9a~QG# dd<l;4( 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
Ikf[K%NKn :o{,F7(P 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
*j&)=8Y| talk
Rollaend@linuxfab.cx pts/2
;*<R~HJt 1S!}su,uH {9}CU~R 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
vVw@^7U ?YS>_MN 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
rG6G~|mS 6Q [ 名称 : wall
[. 9[?8 使用权限 : 所有使用者
NT.#U?9c =hFY-~U 使用方式 :
`3i>e<m~ wall [ message ]
MkoK(m{7 使用说明:
@}g3\xLiK wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
CAC4A <6Gs0\JB 例子 :
A|
A#|D X:g5;NT 传讯息"hi" 给每一个使用者 :
aMhVO(+FW wall hi
wCNn/%C 名称 : write
s$hO/INr 使用权限 : 所有使用者
jBYvOy*$Q U?:P7YWy 使用方式 :
ga%\n!S ,GYQ,9: write user [ttyname]
IUv#nB3 说明 : 传讯息给其他使用者
VnsV&cx b-VygLN 把计 :
+`k30-<P =b:XL#VA user : 预备传讯息的使用者帐号
W<prY ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
G5/A{1sz& Zyz#xMmM 例子.1 :
8A3/@Z;0S dz([GP'-* 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
ylZQwICk write Rollaend
dE_Xd:> ;(/go\m
tB 接下来就是将讯息打上去,结束请按 ctrl+c
0<\|D^m=&h -t|/g5.w_ 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
OA3J(4!"W write Rollaend pts/2
hbx4[Pf YJ6~P 接下来就是将讯息打上去,结束请按 ctrl+c
p!YK~cH[ F*PhV|XU 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
BeVDTk: baII!ks 名称:kill
80@\e 使用权限:所有使用者
Th9V8Rg+E /\/^= j 使用方式:
"frZ%mv r/!,((Z\ kill [ -s signal | -p ] [ -a ] pid ...
xOe1v9< kill -l [ signal ]
Z?'CS|ud 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
U~:H> 把计?
n;Oe- +oSC }MRgNr'k -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
]H
n:c'aT -p : 印出 pid , 并不送出信号
Z\IM~- -l (signal) : 列出所有可用的信号名称
N3L$"g5^ 范例:
LBy`N_@ ZR}v_]l^ 将 pid 为 323 的行程砍掉 (kill) :
L K#A kill -9 323
8/aJ4w[A $?PI>9g! 将 pid 为 456 的行程重跑 (restart) :
]\xt[/?{ kill -HUP 456
]AY 4bm eVf D&&@ 名称:nice
k2D*`\
D 使用权限:所有使用者
=Q_1Mr4O 4P3RRS 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
Ep;uz5 ^8 x *I'Ar 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
]2@(^x'= V|'@D#\ 1$T`j2s 把计?
7#E/Q~]'6 'r!!W0-K -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
n>v1<^ --help 显示求助讯息
_R\FB|_ --version 显示版本资讯
arm_SyL0 范例:
E D>7 将 ls 的优先序加 1 并执行 :
(10t,n$ nice -n 1 ls
&s`)_P[ 6-wpR 将 ls 的优先序加 10 并执行 :
Y5GN7. nice ls将 ls 的优先序加 10 并执行
5_!L"sJ 0cHcBxdF 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
~RbVcB# UmVn: a 名称:ps
jI8`trD 使用权限:所有使用者
g4WmUV#wp 使用方式:ps [options] [--help]
$JOz7j( 说明:显示瞬间行程 (process) 的动态
*,X)tZ6VX 参数:
.@&FJYkLYi ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
>V(C>^%-> -A 列出所有的行程
h/\v+xiF -w 显示加宽可以显示较多的资讯
mHMsK}=~ -au 显示较详细的资讯
HAO-|=c4 -aux 显示所有包含其他使用者的行程
k5\V:P=# z#Jw?K_ au(x) 输出格式 :
DLbP$&o oqwW USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
2*D2jw USER: 行程拥有者
%t&Lq }e PID: pid
c(hC'Cp %CPU: 占用的 CPU 使用率
[Z/P[370 %MEM: 占用的记忆体使用率
4}N+o+ VSZ: 占用的虚拟记忆体大小
=M
8Mt/P RSS: 占用的记忆体大小
RgoF4g+@ TTY: 终端的次要装置号码 (minor device number of tty)
g=D]=&H STAT: 该行程的状态:
|E K6txRb D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
^r}Uu~A> R: 正在执行中
Qf0P"s` S: 静止状态
Z|@-=S(. T: 暂停执行
=Jl\^u%H(x Z: 不存在但暂时无法消除
`{YOl\d_ W: 没有足够的记忆体分页可分配
\_.'/<aQ <: 高优先序的行程
TQeIAy N: 低优先序的行程
1W*Qc_5 v1 L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
E*)A!2rlK START: 行程开始时间
|6-9vU!LK? TIME: 执行的时间
XzV>q~I3|E COMMAND:所执行的指令
.nIGs'P 范例:
u*l>)_HD ps
7V=deYt_p PID TTY TIME CMD
Z=-#{{bv 2791 ttyp0 00:00:00 tcsh
(1S9+H>g 3092 ttyp0 00:00:00 ps
=X'EDw % ps -A
WuVsW3@ PID TTY TIME CMD
n\Is}Czl 1 ? 00:00:03 init
tx;2C|S$oU 2 ? 00:00:00 kflushd
L~+aD2E { 3 ? 00:00:00 kpiod
G AH< 4 ? 00:00:00 kswapd
VKXi*F9 5 ? 00:00:00 mdrecoveryd
7]u_ .......
n)cc\JPQ % ps -aux
br0\O USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
t`&mszd~T root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
ly!3~W root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
`&a8Wv root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
q:vN3#=^qf root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
=WCE "X ........
ZK{1z| 名称:pstree
mq<:^ 使用权限:所有使用者
jMWTNZ 使用方式:
fm^tU0DY pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
svo%NQ pstree -V
G|?V}pZ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
d?U,}tv 参数:
5-a^Frmg#" -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
~&0lWa -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
k"dE?v\cG 范例:
*s1o?'e pstree
S]ndnxy"b |L;Hd.l7^* init-+-amd
k?pNmKVJM |-apmd
][z!}; |-atd
P'5Lu |-httpd---10*[httpd]
bMqS:+ %pstree -p
(s1iYK init(1)-+-amd(447)
D_f:D^ |-apmd(105)
ciHTnC |-atd(339)
Oa5-^&I %pstree -c
_Axw$oYS init-+-amd
+ZwTi!W |-apmd
UBwYwm0 |-atd
q<g!bW% |-httpd-+-httpd
W.7u6F` | |-httpd
~8Ef`zL | |-httpd
g[{rX4~| | |-httpd
cJ,`71xop, ....
p{V(! v| 名称:renice
gcM(K.n 使用权限:所有使用者
^> d"D =:RNpi, 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
\Zk<|T61$ ,l)AYu!q4F 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
,(yaWd6 Iak06E 把计?
{>&M:_`k dfeN_0`- -p pid 重新指定行程的 id 为 pid 的行程的优先序
t1l4mdp -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
BGT`) WP -u user 重新指定行程拥有者为 user 的行程的优先序
^6,}*@ 范例:
i\L7z)u 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
3V/|" R2s renice +1 987 -u daemon root -p 32
TsRbIq[
DVbY 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
f2$<4Hhmm -uK@2}NZ
名称:top
6}mSA@4& 使用权限:所有使用者
?rwHkPJ{* H,1Iz@W1 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] Uv3Fe%>
QTI^?@+N>
说明:即时显示 process 的动态 E+aE5wmr
zU>bT20x/
把计? cT^x^%
+3;[1dpgf
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s FE?^}VH
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 +?[iB"F
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 Ils^t
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ZP7wS
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 P?U}@U~9
n : 更新的次数,完成后将会退出 top 0bMbM^xV6
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 w259':
&uv7`VT
范例: ;ZLfb n3\
显示更新十次后退出 ; W#[3a4%m
top -n 10 F|W(_llfM
`lq[6[n
使用者将不能利用交谈式指令来对行程下命令 : T_?,?
top -s k'Z$#
!p"Ijz5
将更新显示二次的结果输入到名称为 top.log 的档案里 : vJ!<7 l&
top -n 2 -b < top.log lF1ieg"i M
$P~Tt 4068
名称:skill $t$YdleIH
'x\{sv
使用权限:所有使用者 ,!g%`@u
FZhjI 8+,~
使用方式: skill [signal to send] [options] 选择程序的规则 P&]PJt5
FiJU
*
说明: ns[Q %_
6P*2Kg`
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 oT27BK26?h
q'awV5y
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 o5 eFLJ6
5%Q[X
一般参数: ['n;e:*
_-g?6q
-f 快速模式/尚未完成 0?nm`9v6
-{XXU )Z
-i 互动模式/ 每个动作将要被确认 t{)J#8:g
F45UO%/P
-v 详细输出/ 列出所选择程序的资讯 (t)a u
+'!vm6
-w 智能警告讯息/ 尚未完成 @z)_m!yV1
#r_&Q`!eU
-n 没有动作/ 显示程序代号 *b0f)y3RV
HJu;4O($
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 +b]+5!
>Kc>=^=5
-t 终端机代号 ( tty 或 pty ) B}y-zj;T
BSu
]NOwe
-u 使用者名称 M%8:
jFBnP,WQ
-p 程序代号 ( pid ) &<sN(;%0R
p$cSES>r:
-c 命令名称 可使用的讯号: u*$ 1e
<ZM8*bqi
以下列出已知的讯号名称,讯号代号,功能。 M(2c{TT
h[O!kwE
名称 (代号) 功能/ 描述 A;A>Q`JJF
Y"&c .
ALRM 14 离开 }~RH!Q1
:8~*NSEFd
HUP 1 离开 W|FP j^*t
.Lk2S "+
INT 2 离开 $iA`_H`W
zV }-_u.
KILL 9 离开/ 强迫关闭 G*|2qX"o
vO)nqtw
PIPE 13 离开 Uv06f+P(
b)A$lP%`
POLL 离开 {]}}rx'|P
AdtAc$@xK
PROF 离开 W1s4[rL!Ht
VlVd"jW
TERM 15 离开 5"[Qs|VjA6
j/R
USR1 离开 UUx0#D/U0C
av1*i3
USR2 离开 \DE`tkV8
Iky'x[p,D
VTALRM 离开 uSs~P%@6|
.jhuC#x{/
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 +x!V;H(
wK[xLf
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ESZ6<!S
i>S
/W!F
TSTP 停止 /产生与内容相关的行为 L44-: 3
cvbv\G'aT
TTIN 停止 /产生与内容相关的行为 .!
LOhZ
j+n1k^jC
TTOU 停止 /产生与内容相关的行为 6M"]p
9z,?DBMvc
STOP 停止 /强迫关闭 "~4ULl<i'
\)ac,i@fy
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 b0i]T?#
NwmO[pt+
PWR 忽略 /在某些系统中会离开 a`CsL Bv&
Gt[!q\^?
WINCH 忽略 8KD7t&H
laqW
{sX^5
CHLD 忽略 A8OV3h6]
">kfX1LT
ABRT 6 核心 v"L<{HN
Cl]E rg
FPE 8 核心 :JSOj@s
{vAq08
ILL 4 核心 xX
POc<
G^
QUIT 3 核心 Bya!pzbpr
v[ru }/4
SEGV 11 核心 ;y?,myO
|-I[{"6q$@
TRAP 5 核心 1P4jdp=~
{3C~cK{
SYS 核心 /或许尚未实作 _ 9Tv*@
$CO^dFf
EMT 核心 /或许尚未实作 :a3Pnq$]E
RNiZ2:
BUS 核心 /核心失败 G7`7e@{
[,-MC7>]
XCPU 核心 /核心失败 `w]=xe
'uBW1,
XFSZ 核心 /核心失败 F`U%xn,
eQno]$-\
范例: DPi%[CRH
停止所有在 PTY 装置上的程序 `Bnp/9q5
skill -KILL -v pts/* 1A">tgA1
N>7INK
停止三个使用者 user1 , user2 , user3 :=^JHE{
skill -STOP user1 user2 user3 .wx;!9
Uw5z]Jck
其他相关的命令: kill bQb>S<PT
名称:expr Q,Hw@w<1
使用权限:所有使用者 YQiTx)_
### 字串长度 7f'9Dm`
|~W!Y\l-
shell>> expr length "this is a test" Sq}hx
14 qp^O\>c
### 数字商数 Z=
dEk`
shell>> expr 14 % 9 'i{kuTv
5 v$w!hYsQ
### 从位置处抓取字串 fC2e}WR
shell>> expr substr "this is a test" 3 5 \QstcsEt
is is rcPP-+XW
### 数字串 only the first character D(s[=$zua
shell>> expr index "testforthegame" e \q(RqD
2 Ytc
### 字串真实重现 a [iC!F2
shell>> expr quote thisisatestformela fnG&29x
thisisatestformela