linux常用命令
:FixLr!q YCBUc<) 称:/etc/aliases
r2&/Ii+ 使用权限:系统管理者
zB"y^g 使用方式: 请用 newaliases 更新资料库
i;J*9B_U 说明:
hAB:;r XlI sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
I^O`#SA ( ?`B6I!S0[ /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
&qV_|f; # newaliases
%G jjl*`E i,/Q.XL 下面命令会做相同的事,
yiczRex%rq # sendmail -bi
)7F$:*e mW."lzIl 相关命令:
Csm23QLsg) mail, mailq, newaliases, sendmail
FFc?Av?_ C2?p>S/q ” mail [返回]
h-@_.&P0e 名称:mail
M,eq-MEK s`L>mRw` 使用权限:所有使用者
Byns6k p{JE@TM 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
3UGdXufw 3
J\&t4q 说明:
1c $iW>0K mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
-PHqD gjy:o5{vA* 参数:
%[m%QP1;p i 忽略 tty 的中断讯号。 (interrupt)
":Pfi!9Wl I 强迫设成互动模式。 (Interactive)
ld'Aaxl& v 列印出讯息,例如送信的地点、状态等等。 (verbose)
x{{ZV] n 不读入 mail.rc 设定档。
;7yt,b5&C s 邮件标题。
B=2f-o c cc 邮件地址。
Q#I?nBin b bcc 邮件地址。
Y.o-e)zX wk6tdY{&s 范例:
u=B,i#>s _lG\_6oJ, 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
N Z~"2~Hh mail
user1@email.address
#]Q.B\\ mail
user1@email.address user2
K-7i4
~ G;bE_O 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
Y.8mgy> mr`EcO0 mail -s 标题 -c user1 user2 < mail.txt
zC$(/nZ
N:rnH:g+: 指令:mesg
12yX`9h> 使用权限 : 所有使用者
2aGK}sS6 u}KEH@yv
使用方式 : mesg [y|n]
>l!DWi6 2<+9lk 说明 : 决定是否允许其他人传讯息到自己的终端机介面
2a:JtJLl CFx$r_!~ 把计 ?
4K$d% W_G'wU3R y : 允许讯息传到终端机介面上。
lmr:PX n : 不允许讯息传到终端机介面上 。
(~n0,$ 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
iLG~_Ob: (yi{<$U* 例子 :
nYO4JlNP 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
3+ r8yiY
mesg n
V|bN<BYJ 与 mesg 相关的指令有: talk,write,wall。
SN|:{Am 名称:/etc/aliases
v"smmQZik 使用权限:系统管理者
G |vG5$Nf 使用方式: newaliases
97(*-e= e 说明:
9p<ZSh sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
T=->~@5 m-!Uy$yM /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
k-\RdX)E -AxO1
qO 参数:没有任何参数。 范例:
Gd%E337d # newaliases
]Syr{| 69u"/7X 下面命令会做相同的事,
,_2ZKO/k$ # sendmail -bi
(lVHKg&U[ 9;u&,R 相关命令:
S&YC" mail, mailq, newaliases, sendmail
`V[{,!l;X 名称 : talk
V}kQXz"9 使用权限 : 所有使用者
Th)Z?\8zk &udlt//^% 使用方式 :
,P9q[
L) ]|\| talk person [ttyname]
f?A1=lm~ 说明 : 与其他使用者对谈
0xYPK7a=L\ Vyqj)1Z8> 把计 :
5J4'\M person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name 8vLaSZ="[ ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
e1j3X\ \ i7/I8y 例子.1 :
Y[ciT) $Dm2>:Dmt 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
9zKrFqhNo talk Rollaend
i/%+x-# Nf<mgOAT1 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
VNcxST15a $R2iSu{kO 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
0//?,'. talk
Rollaend@linuxfab.cx pts/2
+q/ j OJGEX}3' M ;\iL?, 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
/uM;g9 m 1sqBBd"=PY 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
AUm"^-@x#> `EUufTYi 名称 : wall
M6 W{mek 使用权限 : 所有使用者
1yS[; i*Wekr3Wo 使用方式 :
]{Ytf'bG wall [ message ]
4Y)rgLFj 使用说明:
*,:>EcDr wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
s^@?+<4: I$Bu6x! 例子 :
XvU^DEfW .S l{m[nV8 传讯息"hi" 给每一个使用者 :
`5V=U9zdE wall hi
McRAy%{z 名称 : write
c&{1Z&Y 使用权限 : 所有使用者
.K=r.tf~ ?+]prbt) 使用方式 :
.>Gnb2
LX
[ _6 write user [ttyname]
&o$z[b 说明 : 传讯息给其他使用者
gkJL=, QxSJLi7t 把计 :
p5C:MA~* e'FBV[e user : 预备传讯息的使用者帐号
"B~c/%#PH ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
'@$YX*[ 0UJ%tPS 例子.1 :
WUwH W []'gIF 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
}9k/Y/. write Rollaend
4&}V3"lg H]6i1j 接下来就是将讯息打上去,结束请按 ctrl+c
2qw -: Tq\S-K}4! 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
Fgf5OHX write Rollaend pts/2
9w^lRbn 3C,G~)=
x 接下来就是将讯息打上去,结束请按 ctrl+c
u?(@hUV. TY(B]Q_o 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
raWs6b4Q ^PnXnH? 名称:kill
r\OunGUP 使用权限:所有使用者
WIe7>wkC cBZKt 使用方式:
4GA9oLl $>PXX32 kill [ -s signal | -p ] [ -a ] pid ...
qqL :#]lV5 kill -l [ signal ]
5s=ZA*(sY 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
CFm(
yFk 把计?
q&/<~RC* >UUcKq1M: -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
pO^PkX -p : 印出 pid , 并不送出信号
Tz\ PQ)! -l (signal) : 列出所有可用的信号名称
64)Fz} 范例:
?ztI8I/ BB x359 将 pid 为 323 的行程砍掉 (kill) :
XX85]49`% kill -9 323
BGtr= &Hq B6N/nCvHK 将 pid 为 456 的行程重跑 (restart) :
-C]k YQ
kill -HUP 456
#41xzN ^#|Sl D] 名称:nice
$pKlF0 . 使用权限:所有使用者
KASuSg+ UZ5O%SF 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
skd3E4 -B`Nkc
说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
:%6OFO$z r{cefKJHg
n[vwwY 把计?
<>n-+Kr I~^t\iujs -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
3 291"0 --help 显示求助讯息
F9ys.Bc --version 显示版本资讯
Frn<~ 范例:
z\d{A7 将 ls 的优先序加 1 并执行 :
8#m,TOp nice -n 1 ls
InO;DA\ !"v[\||1 将 ls 的优先序加 10 并执行 :
Re=()M nice ls将 ls 的优先序加 10 并执行
9J3@8h p 4YuJ - 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
%^bHQB% FAkrM?0/ 名称:ps
/ [s TN.MG 使用权限:所有使用者
YFJw<5& 使用方式:ps [options] [--help]
oZD+AF$R 说明:显示瞬间行程 (process) 的动态
hTEwp. 参数:
4YV0v,z ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
>>cb0fH5 -A 列出所有的行程
; _ziRy -w 显示加宽可以显示较多的资讯
Tv d}5~
5? -au 显示较详细的资讯
[P'"|TM[~ -aux 显示所有包含其他使用者的行程
yt'P,m IP LKOT~ au(x) 输出格式 :
syJLcK+e ?*)Q[P5 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
e(=() :4is USER: 行程拥有者
]C;X/8'Jf5 PID: pid
x%v[(*F#y %CPU: 占用的 CPU 使用率
e3#0r %MEM: 占用的记忆体使用率
%E R"Udh VSZ: 占用的虚拟记忆体大小
a2!U9->! RSS: 占用的记忆体大小
z4qc)-
{L TTY: 终端的次要装置号码 (minor device number of tty)
URd0|?t9^L STAT: 该行程的状态:
H;h$k]T D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
oe'f?IY R: 正在执行中
@%'1Jd7-Wp S: 静止状态
]<3n;*8k? T: 暂停执行
HzMr Z: 不存在但暂时无法消除
9{GEq@`7 W: 没有足够的记忆体分页可分配
x>cl$41!W <: 高优先序的行程
3 T1,:r N: 低优先序的行程
CN{xh=2qY[ L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
d-sT+4o} START: 行程开始时间
Q$yMU[l) TIME: 执行的时间
1dhuLN%Ce COMMAND:所执行的指令
Y&XO:jB 范例:
0h=}BCb+i ps
WYUel4Z PID TTY TIME CMD
t] CA!i` 2791 ttyp0 00:00:00 tcsh
[HEljEv 3092 ttyp0 00:00:00 ps
/E39Z* % ps -A
&o;d PID TTY TIME CMD
? K ,d 1 ? 00:00:03 init
@!Z1*a. 2 ? 00:00:00 kflushd
H|IG"JB 3 ? 00:00:00 kpiod
b9xvLR8 4 ? 00:00:00 kswapd
Ob&m&2s, 5 ? 00:00:00 mdrecoveryd
KB"N',kG .......
9Q.@RO$%C % ps -aux
;*G';VuT USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
;/h&40& root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
&RHZ7T root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
'8yC wk root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
_UA|0a!- root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
4
Aj<k ........
i91 =h 名称:pstree
~m'8<B5+ 使用权限:所有使用者
+8|9&v` 使用方式:
Ox5Es pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
*N|ak = pstree -V
TE5J
@I 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
2<T/N 参数:
!(F?Np Am -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
[v+5|twxpU -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
iG ,z3/~v 范例:
^@C/2RX! pstree
6U0BP A+MG?k>yg init-+-amd
-q]5@s/ |-apmd
<t&Qa~mA |-atd
Dv*d$ |-httpd---10*[httpd]
zIA)se
Js %pstree -p
3L CT-rp init(1)-+-amd(447)
*iN5/w{VG |-apmd(105)
| .gE9'"bv |-atd(339)
S,s#D9NU %pstree -c
#tIeI6Qw init-+-amd
sVpET |-apmd
^;9<7h[l |-atd
%L|xmx!c |-httpd-+-httpd
6)PnzeYW | |-httpd
R/xT.EQ(N | |-httpd
js9^~:Tw | |-httpd
PfsUe,* ....
I.'/!11> 名称:renice
>WA'/Sl<A< 使用权限:所有使用者
8(ot<3(D 6M
;lD5(> 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
?t/G@ t2iQ[`/?~ 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
~"\WV4}`v #~m8zG 把计?
Qr_0
L e"%uOuIYX -p pid 重新指定行程的 id 为 pid 的行程的优先序
oj[~H}> -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
=A*a9c2
-u user 重新指定行程拥有者为 user 的行程的优先序
N^M6*,F,J 范例:
1%C EUE 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
{r~=mQ renice +1 987 -u daemon root -p 32
?t<g|H/|6 Na4O( d` 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
lCgzQZ yk'L_M(= 名称:top
N4z[=b> 使用权限:所有使用者
)vUS). ;S` VJP # 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] JeN]sK)8x
ts%
n tnvI
说明:即时显示 process 的动态 #].qjOj
tLU@&NY`
把计? @^<&LG5^
U)M&AYb
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s *fs[]q'Q
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 TNckyP75u
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 kl[(!"p
s : 安全模式,将交谈式指令取消, 避免潜在的危机 ,6X__Z#rGT
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 ]imVIu
n : 更新的次数,完成后将会退出 top +p`BoF9~
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 q{_ f"
C4qK52'2s
范例: &Nh
zEl1
显示更新十次后退出 ; k~Q
5Cs
top -n 10 '7}2}KD
`zrg?
使用者将不能利用交谈式指令来对行程下命令 : aOw#]pB|
top -s Cn{v\Q~.4
LEOri=?RF
将更新显示二次的结果输入到名称为 top.log 的档案里 : yMu G? x+
top -n 2 -b < top.log %t$KVV
71>,tq
名称:skill tSux5yV
]l C2YD}
使用权限:所有使用者 IdMwpru(
xY/F)JOeG
使用方式: skill [signal to send] [options] 选择程序的规则 :iLRCK3C
)-ojm$
说明: NMfHrYHbh
YK[2KTlo
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 sVBr6
!v=
Mtv{37k~
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 H3*]}=
}!{R;,5/n
一般参数: \<(EV,m2
n$XEazUb0N
-f 快速模式/尚未完成 :4-,Ru1C"
+Adk1N8
-i 互动模式/ 每个动作将要被确认 ^>F[aT
@C!&lrf3
-v 详细输出/ 列出所选择程序的资讯 NP\mzlI~@
5jso)`IL
-w 智能警告讯息/ 尚未完成 X.S<",a{qz
LGW:+c
-n 没有动作/ 显示程序代号 fI`gF^u(
l$pz:m]Id
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 gKl9Nkd!R
|1tpXpe
-t 终端机代号 ( tty 或 pty ) i-w$-2w
^"p. 3Hy
-u 使用者名称 VBix8|
Ynvf;qs
-p 程序代号 ( pid ) ]Ml
.)$MZyo
-c 命令名称 可使用的讯号: z/+{QBen8
{Q37a=;,
以下列出已知的讯号名称,讯号代号,功能。 NN2mOJ:-
ZfX$q\7
名称 (代号) 功能/ 描述 UimofFmI%
J _dgP[
ALRM 14 离开 9unRMvE u
{| hg3R~A
HUP 1 离开 Z'j[N4%BK
qEXN}Pq<
INT 2 离开 q4Wr$T$gs=
vpf.0!zh
KILL 9 离开/ 强迫关闭 f,E7eL@
PuREqa\_[
PIPE 13 离开 [520!JhZY
\eNB L[
POLL 离开 ~
z3J4s
@XolFOL"f"
PROF 离开 UO&$1rV
>V?0#f45@
TERM 15 离开 * 30K}&T
(E)hEQ@8
USR1 离开 `7w-_o
%
+a^gC
USR2 离开 y]+5Y.Cw$
k9OGnCW\
VTALRM 离开 "FA.T7G
>h\u[I$7
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 Lo_+W1+
x x>hJ!
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 C
'MR=/sd
'nGUm[vh
TSTP 停止 /产生与内容相关的行为 ,lA@C2c
OqIXFX"
TTIN 停止 /产生与内容相关的行为
5N$XY@
3m!tb)
TTOU 停止 /产生与内容相关的行为 5v)bs\x6
o
?vGI=
STOP 停止 /强迫关闭 j\IdB:}j
~?Ky{jah:^
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 WYTqQqQk
#f) TAA
PWR 忽略 /在某些系统中会离开 vs=q<Uw)
"lw|EpQk`
WINCH 忽略 |&JeJ0k>~
}}$@Tij19[
CHLD 忽略 }R#W<4:
PBb&.<
ABRT 6 核心 9/29>K_
vio>P-2Eho
FPE 8 核心 G2kU_
M)+p H
ILL 4 核心 ^_|kEvk0
Jg[Ao#,==
QUIT 3 核心 >":xnX#
$U]T8;5Q
SEGV 11 核心 #DFi-o&-
&H;,,7u
TRAP 5 核心 _C?Wk:Y@
i cTpx#|=
SYS 核心 /或许尚未实作 ]5S`y{j1
ap}p?r
EMT 核心 /或许尚未实作 YPI)^ }
2L 1,;
BUS 核心 /核心失败 c#}K,joeU
!`I@Rk]`c
XCPU 核心 /核心失败 UTyV6~
hk4t #Km
XFSZ 核心 /核心失败 8i`>],,ch
( ~5M{Xh
范例: r)'vn[A
停止所有在 PTY 装置上的程序 \OVtvJV]
skill -KILL -v pts/* `R8&(kQ
d6QrB"J`
停止三个使用者 user1 , user2 , user3 Pn">fWRCx
skill -STOP user1 user2 user3 0dC5
-/+
)Q
=>7%ZA
其他相关的命令: kill >[|N%9\
名称:expr '1ySBl1>
使用权限:所有使用者 :LNE?@
### 字串长度 l(sVnhL6h
!="q"X/*
shell>> expr length "this is a test" v5S9h[gT
14 :Fb>=e
### 数字商数 ]q%r2 (y,k
shell>> expr 14 % 9 U*$P"sS`
5 xrg?{*\
### 从位置处抓取字串 Y)X7*iTi'j
shell>> expr substr "this is a test" 3 5 E@ U]k$M
is is bJ!\eI%ld
### 数字串 only the first character JyMk @Y
shell>> expr index "testforthegame" e M/Yr0"%Q<.
2 +`Z1L\gmA
### 字串真实重现 NAvR^"I~
shell>> expr quote thisisatestformela !|&|%x6@
thisisatestformela