linux常用命令
Id'@!U:NA !YEU<9 称:/etc/aliases
*oz=k 使用权限:系统管理者
0!,)7 使用方式: 请用 newaliases 更新资料库
.j 0]hn] 说明:
R7!^ M sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
;t}ux 9wC:8@`6E /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。范例:
Y4dTv<=K@i # newaliases
cP MUu9du UT7".1H 下面命令会做相同的事,
=m=utd8 # sendmail -bi
Gg9NG`e6I 7<VfE`Q3 相关命令:
~+Da`Wp mail, mailq, newaliases, sendmail
wuTCdBu6hU "RJf2~(ZX ” mail [返回]
))>)qav 名称:mail
xj!_]XJ^w dSBW&-p 使用权限:所有使用者
Ctxx.MM DeTZl+qm1E 使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]
SAGLLk07G 8M;G@ Q80 说明:
_[W`!#" mail 不仅只是一个指令, mail 还是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。
0\y@etb:mf c{t[iXDG 参数:
_A.?:'- i 忽略 tty 的中断讯号。 (interrupt)
U"v}br-kb I 强迫设成互动模式。 (Interactive)
c=p @l<) v 列印出讯息,例如送信的地点、状态等等。 (verbose)
W[3)B(Vq<E n 不读入 mail.rc 设定档。
kM\O2ay s 邮件标题。
tEl4 !vA c cc 邮件地址。
lYu1m b bcc 邮件地址。
;DKwv} !&Q3>8l 范例:
mckrR$> "@I"0OA 将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。
cuP5cL/Y mail
user1@email.address
S:"t]gbF = mail
user1@email.address user2
%.R_[.W ngN_,x7yc 将 mail.txt 的内容寄给 user2 同时 cc 给 user1 。如果将这一行指令设成 cronjob 就可以定时将备忘录寄给系统使用者。
ZR'q.y[k) U<
p kg mail -s 标题 -c user1 user2 < mail.txt
<`q|6XWL _k@{>
?(a 指令:mesg
a".uS4x 使用权限 : 所有使用者
Wwf#PcC] 5i$~1ZC 使用方式 : mesg [y|n]
41TB e+F5FAMR68 说明 : 决定是否允许其他人传讯息到自己的终端机介面
#={L!"3?e SS;QPWRZ 把计 ?
FBcF yX(6C]D y : 允许讯息传到终端机介面上。
%d9UW Q n : 不允许讯息传到终端机介面上 。
$0Y&r]' 如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
0PnW|N0 OI.2C F 例子 :
3HA$k[%7P 改变目前讯息设定,改成不允许讯息传到终端机介面上 :
[#td mesg n
05MtQB 与 mesg 相关的指令有: talk,write,wall。
_rqOzE) 名称:/etc/aliases
va8V{q@t' 使用权限:系统管理者
zY|]bP[NEH 使用方式: newaliases
AAdRuO{l1 说明:
^>ca*g sendmail 会使用一个在 /etc/aliases 中的档案做使用者名称转换的动作。当 sendmail 收到一个要送给 xxx 的信时,它会依据 aliases档的内容送给另一个使用者。这个功能可以创造一个只有在信件系统内才有效的使用者。例如 mailing list 就会用到这个功能,在 mailinglist 中,我们可能会创造一个叫
redlinux@link.ece.uci.edu 的 mailinglist,但实际上并没有一个叫 redlinux 的使用者。实际 aliases 档的内容是将送给这个使用者的信都收给 mailing list 处理程式负责分送的工作。
v}]x>f oA~m*| /etc/aliases 是一个文字模式的档案,sendmail 需要一个二进位格式的 /etc/aliases.db。newaliases 的功能传是将 /etc/aliases 转换成一个 sendmail 所能了解的资料库。
%1]2+_6 l1N{ujM 参数:没有任何参数。 范例:
.>?["e #, # newaliases
= sIR[V'( 88U4I 下面命令会做相同的事,
|7/B20 # sendmail -bi
#~.i\|VL H+3I[`v 相关命令:
7Yxy2[ mail, mailq, newaliases, sendmail
!o4xI? 名称 : talk
*<U&DOYV: 使用权限 : 所有使用者
EBM\p+x& 64\Z OG\, 使用方式 :
c`X'Q)c&K $YSD%/c talk person [ttyname]
fwAN9zs 说明 : 与其他使用者对谈
4ij` 5!Z+2Cu] 把计 :
vO{ijHKE person : 预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入
person@machine.name ?/)5U}*M0T ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
=O)JPo&iwY ok\+$+$ju 例子.1 :
GKY:"q&h nHKEtKDd 与现在机器上的使用者Rollaend对谈,此时 Rollaend 只有一个连线 :
0m`7|80#P talk Rollaend
9rao&\eH _|TE )h 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk jzlee`即可开始对谈,结束请按 ctrl+c
n/?5[O-D] 5.[{PJ]bq 例子.2 :与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈 :
e|Sg?ocR talk
Rollaend@linuxfab.cx pts/2
OqBw&zm hDlk! #*
OV8b~k4= 接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入 `talk
jzlee@jzlee.home`即可开始对谈,结束请按 ctrl+c
R/^JyL cT0utR& 注意 : 若萤幕的字会出现不正常的字元,试着按 ctrl+l 更新萤幕画面。
X_'.@q<!CV Z{p6Q1u 名称 : wall
Sc6wC H 使用权限 : 所有使用者
X=\#n-* C3@.75-E 使用方式 :
F` I-G~e wall [ message ]
sjTsaM;< 使用说明:
$xu?zd" wall 会将讯息传给每一个 mesg 设定为 yes 的上线使用者。当使用终端机介面做为标准传入时, 讯息结束时需加上 EOF (通常用 Ctrl+D)?
;wQWt_OtuJ % C
3jxt 例子 :
:GK{JP j5'Jp} 传讯息"hi" 给每一个使用者 :
6>=>Yj wall hi
)1fQhdO}x 名称 : write
@L<[38 使用权限 : 所有使用者
DQlaSk4hF_ b7AuKY{L 使用方式 :
uaPBM< Msd!4TrBJ write user [ttyname]
!W%HAlUAG[ 说明 : 传讯息给其他使用者
X^|oY]D zK-hNDFL{ 把计 :
(uG4W|?p D8?$Fn= user : 预备传讯息的使用者帐号
: l>Ue& ttyname : 如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息
@>9p2u)= TLSy+x_gX 例子.1 :
B?0{=u u\e#_*> 传讯息给 Rollaend,此时 Rollaend 只有一个连线 :
j^%i?BWw write Rollaend
btOTDqG`a =H,cwSE+% 接下来就是将讯息打上去,结束请按 ctrl+c
!7xp<= CMBW]b| 例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3 :
<go~WpA|r write Rollaend pts/2
qz0v1057# 4[J3HLQ 接下来就是将讯息打上去,结束请按 ctrl+c
,#wVqBEk 5R=lTx/Hj 注意 : 若对方设定 mesg n,则此时讯席将无法传给对方
#Y5I_:k F7;xf{n< 名称:kill
S-rqrbr|AT 使用权限:所有使用者
tJwF
h6
l#~FeD 使用方式:
/5x`TT T),:8/ kill [ -s signal | -p ] [ -a ] pid ...
huF L [ kill -l [ signal ]
*}_/:\v 说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
@zJI0_Bp 把计?
BL8\p_U 5./
(fgx> -s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
k(
g$_ ]X -p : 印出 pid , 并不送出信号
7&At_l_ -l (signal) : 列出所有可用的信号名称
sN
C?o[9l! 范例:
nUd\4;J# Vd?v"2S(9 将 pid 为 323 的行程砍掉 (kill) :
'!.;(Jo kill -9 323
q~^:S~q
yX-xVvlv@ 将 pid 为 456 的行程重跑 (restart) :
s^oNQ} kill -HUP 456
\9}5}X_x. @qC:% |> 名称:nice
c"YK+2 使用权限:所有使用者
0&.lSwa 20moX7L 使用方式:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command ][arg...]]
xF/D YXC{8 'QS"4EvdD 说明:以更改过的优先序来执行程式, 如果未指定程式, 则会印出目前的排程优先序, 内定的 adjustment 为 10, 范围为 -20 (最高优先序) 到 19 (最低优先序)
gPwp
[ v)d0MxSC <=inogf 把计?
o 4b{>x KB"iF}\P0 -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
$0*47+f --help 显示求助讯息
$dnHUBB --version 显示版本资讯
Nb#7&_f= 范例:
WsV3>=@f 将 ls 的优先序加 1 并执行 :
) ,hj7 nice -n 1 ls
\Zv =?\ dI!/:x 将 ls 的优先序加 10 并执行 :
:7ngVc nice ls将 ls 的优先序加 10 并执行
# 0!IUSa {@#L'i| 注意 : 优先序 (priority) 为作业系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
/K!,^Xn }}1/Ede{5 名称:ps
=|!~0O 使用权限:所有使用者
~1'468 使用方式:ps [options] [--help]
U959=e 说明:显示瞬间行程 (process) 的动态
cx,A.Lc 参数:
+lT]s#Fif ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
wY.g-3 -A 列出所有的行程
i/J NG -w 显示加宽可以显示较多的资讯
%^l&fM* -au 显示较详细的资讯
u}1vn} F{ -aux 显示所有包含其他使用者的行程
+r$.v|6 /
3k\kkv! au(x) 输出格式 :
5lxq-E3 z{g<y^Im+E USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
I7PWOd USER: 行程拥有者
5tU"|10m3 PID: pid
5)zB/Ta< %CPU: 占用的 CPU 使用率
3=l-jGJk %MEM: 占用的记忆体使用率
B%@!\D# VSZ: 占用的虚拟记忆体大小
]2%P``Yj RSS: 占用的记忆体大小
\r%Vgne-g TTY: 终端的次要装置号码 (minor device number of tty)
VQ?H:1R STAT: 该行程的状态:
$cOD6Xr)d D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
<u?hdwW\ R: 正在执行中
\.1b\\ S: 静止状态
Gr@{p"./z T: 暂停执行
N`Xnoehu Z: 不存在但暂时无法消除
*Z`eNz} W: 没有足够的记忆体分页可分配
`7%eA9*.m <: 高优先序的行程
E@jl: -*E N: 低优先序的行程
NoAb}1uae L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)
MJ9SsC1 START: 行程开始时间
jN}7BbX TIME: 执行的时间
ePpK+E[0Z COMMAND:所执行的指令
~9 WJrRWB 范例:
')<FLCFwT ps
lq8ko@ PID TTY TIME CMD
/eRtj:9M 2791 ttyp0 00:00:00 tcsh
DsW`V~T 3092 ttyp0 00:00:00 ps
8Qz7uPq % ps -A
RpK,ixbtA+ PID TTY TIME CMD
7 3z
Y^x 1 ? 00:00:03 init
9H}iX0O 2 ? 00:00:00 kflushd
A4Q)YY9~ 3 ? 00:00:00 kpiod
K^vp(2 4 ? 00:00:00 kswapd
z){UuiUM+= 5 ? 00:00:00 mdrecoveryd
!-RpRRR[Co .......
%H}Y]D~R % ps -aux
Mto~ / USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
!$xEX,vj|W root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]
`/JR}g{O root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]
wwcwYPeg root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]
a^T4\ root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]
q3-;}+ ........
/^33 e+j 名称:pstree
fd"~[z [ 使用权限:所有使用者
sR>;h / 使用方式:
4`-?r%$,: pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
31sgf5 s pstree -V
C$RAJ 说明:将所有行程以树状图显示, 树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root) ,如果有指定使用者 id , 则树状图会只显示该使用者所拥有的行程
TnBG MI,g' 参数:
]<;i}n|
< -a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
WUWb5xA -c 如果有重覆的行程名, 则分开列出 (预设值是会在前面加上 *
Rf(x^J{ 范例:
@
U8}sH^ pstree
~:}XVt0%8 qv*uM0G6i init-+-amd
h NOYFH |-apmd
"4k=(R? |-atd
ckjVa\ |-httpd---10*[httpd]
%M)oHX1p %pstree -p
Cb%.C;q init(1)-+-amd(447)
wz0$g4 |-apmd(105)
fpK0MS]=b |-atd(339)
"p~]m~g %pstree -c
S7NnC4)=-f init-+-amd
BQuliX& |-apmd
&8_f'+i0 |-atd
3@ F+ E\k |-httpd-+-httpd
-6~dJTm[t | |-httpd
>_0 i=.\ | |-httpd
a,57`Ks+n< | |-httpd
&^3~=$
....
af?\kBm 名称:renice
,4>WLJDo 使用权限:所有使用者
t1:S!@ zsMw5C 使用方式:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
rGn5QV %I|+_ z&x 说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
lGnql 1( sPE)m_u 把计?
}Uwkef.Q 3dX=xuQ%/ -p pid 重新指定行程的 id 为 pid 的行程的优先序
tgvpf/cQ -g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
]EVe@ -u user 重新指定行程拥有者为 user 的行程的优先序
5 <)gCHa 范例:
n<%=~1iY+ 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 :
iA%'
;V renice +1 987 -u daemon root -p 32
~^%0V<*-} yYG3/Z3u5 注意 : 每一个行程(Process)都有一个唯一的 (unique) id?
wHt#'`5 Oa.f~|
名称:top
Vyq#p9Q 使用权限:所有使用者
]w_ y=oVUsG 使用方式:top [-] [d delay] [q] [c] [S] [s]
[n] ET,0ux9F
hs{&G^!jo
说明:即时显示 process 的动态 GTp?)nh^
\f /!
把计? Ere?d~8
\8>
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s bRK CY6
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行 g:uvoMUD
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来 9zoT6QP4
s : 安全模式,将交谈式指令取消, 避免潜在的危机 -'O Q-5
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程 j[m_qohd7
n : 更新的次数,完成后将会退出 top .Ca"$2
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内 wO2V%v^bp
;gxN@%}@
范例: xZ.~:V03\t
显示更新十次后退出 ; W 9&0k+#^
top -n 10 93E,
7]/dg*A )C
使用者将不能利用交谈式指令来对行程下命令 : K9e~Wl<3
top -s 2Y E;m&
'!j #X_;
将更新显示二次的结果输入到名称为 top.log 的档案里 : C=oM,[ESQ0
top -n 2 -b < top.log `2B*CMW{
p4m^ ~e
名称:skill F,p`-m[q
DEUd[
使用权限:所有使用者 `G=ztL!gq
H4PbO/{xO
使用方式: skill [signal to send] [options] 选择程序的规则 toS(UM n
;Pol#0_(
说明: E3~,+68U
N_u&3CG
送个讯号给正在执行的程序,预设的讯息为 TERM (中断) , 较常使用的讯息为 HUP , INT , KILL , STOP , CONT ,和 0 Kcscz,
%sO Wg.0_
讯息有三种写法:分别为 -9 , -SIGKILL , -KILL , 可以使用 -l 或 -L 已列出可使用的讯息。 5u2{n rc
<ICZ"F`S
一般参数: ~w
Zl2I
.-SDo"K.h
-f 快速模式/尚未完成 g
,/a6M
D~G5]M,}$
-i 互动模式/ 每个动作将要被确认 F[>7z3I
M!eoe5
-v 详细输出/ 列出所选择程序的资讯 N3uMkH-<
ioB|*D<U2
-w 智能警告讯息/ 尚未完成 q[{:
d&}pgb-Md
-n 没有动作/ 显示程序代号 =y)p>3p}&
Zi 2o
参数:选择程序的规则可以是, 终端机代号,使用者名称,程序代号,命令名称。 1% $d D2
&Q\_;
-t 终端机代号 ( tty 或 pty ) ! (2-(LgA
9
9Ba{qj
-u 使用者名称 !MZ+- dpK
Z~r[;={,
-p 程序代号 ( pid ) G{@C"H[$<
:7 qqjs
-c 命令名称 可使用的讯号: Jt##rVN
zq,iLoY[R
以下列出已知的讯号名称,讯号代号,功能。 iP<k1#k
BQyvj\uJ
名称 (代号) 功能/ 描述 j y7
;EgzC^2e
ALRM 14 离开 6OfdD.y
t9G}Yd[T
HUP 1 离开 kP7a:(P_g
7cIC&(h5
INT 2 离开 -'I _*fu
k4S} #!
KILL 9 离开/ 强迫关闭 l%rx#;=u
cqeR<len
PIPE 13 离开 /SnynZ.q
mgy"|\]
POLL 离开 {F'Az1^I=
1a<]$tZk
PROF 离开 J__;.rnk
ykxbX
TERM 15 离开 q^Z~IZ8IT
'Pf_5q
USR1 离开 LYp'vZ!
Nc{]zWL9
USR2 离开 Uh>.v |P6
wb]*u7G
t/
VTALRM 离开 aGpCNc{+
Hl4\M]]/&
STKFLT 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 ddoST``G
HV ;;
UNUSED 离开/ 只适用于i386, m68k, arm 和 ppc 硬体 D,MyI#
Ej'
7h~ =v
TSTP 停止 /产生与内容相关的行为 Z`rK\Bc
>4,{6<|
TTIN 停止 /产生与内容相关的行为 %PzQ\c
'nMApPl
TTOU 停止 /产生与内容相关的行为 A^pu
p?;-!TUv
STOP 停止 /强迫关闭 ;_iPm?Y8
-<_7\09
CONT 从新启动 /如果在停止状态则从新启动,否则忽略 D,k(~
WElrk:b
PWR 忽略 /在某些系统中会离开 jRofG'
R4V \B
WINCH 忽略 HzE1r+3Q@
WNhbXyp_
CHLD 忽略 H6_xwuw:
^Z2kq2}a
ABRT 6 核心 , 7Xqte
*9J1$Wa
FPE 8 核心 hL0]R,t;'
(zY * 0lN
ILL 4 核心 z/S,+!|z
O7v]p
QUIT 3 核心 M:_!w[NiLp
Xtft*Z
SEGV 11 核心 5^>n5u/
_().t5<
TRAP 5 核心 r:-WzH(Ms
NH'iR!iGo
SYS 核心 /或许尚未实作 mG_BM/$
<{giHT
EMT 核心 /或许尚未实作 Rvvh{U;t
s|Zx(.EP
BUS 核心 /核心失败 }'lNi^"XL
Q!K`e )R
XCPU 核心 /核心失败 [G a~%m
&eIGF1ws
XFSZ 核心 /核心失败 m=QCG)s
@F?=a*s"!
范例: MD<-w|#8IV
停止所有在 PTY 装置上的程序 1i
u =Y
skill -KILL -v pts/* AliRpxxd
84'?um
停止三个使用者 user1 , user2 , user3 O-j$vzHpdY
skill -STOP user1 user2 user3 0qv$:w)g+v
pW{8R^vKm
其他相关的命令: kill {]^2R>0Q
名称:expr j5\$[-';
使用权限:所有使用者 \X&
C4#
### 字串长度 ^n9a" qz
W
(`c
shell>> expr length "this is a test" X2gz6|WJ
14 kM!V.e[g
### 数字商数 t}Ss=0dJO
shell>> expr 14 % 9 _UkmYZ/
5 L,~MicgV
### 从位置处抓取字串 Fd7*]a
shell>> expr substr "this is a test" 3 5 (S oo<.9~
is is H0a-(
### 数字串 only the first character /BpxKh2p
shell>> expr index "testforthegame" e ~GG?GB
2 2zK"*7b?
### 字串真实重现 hmZvIy(
shell>> expr quote thisisatestformela
-4flV D
thisisatestformela