指令:
mesg
使用权限:
所有使用者
使用方式:
mesg[y|n]
说明:
决定是否允许其他人传讯息到自己的终端机介面
把计
y:
允许讯息传到终端机介面上。
n:
不允许讯息传到终端机介面上。
如果没有设定,则讯息传递与否则由终端机界面目前状态而定。
例子:
改变目前讯息设定,改成不允许讯息传到终端机介面上:
mesgn
与mesg相关的指令有:
talk,write,wall。
名称:
/etc/aliases
使用权限:
系统管理者
使用方式:
newaliases
说明:
sendmail会使用一个在/etc/aliases中的档案做使用者名称转换的动作。
当sendmail收到一个要送给xxx的信时,它会依据aliases档的内容送给另一个使用者。
这个功能可以创造一个只有在信件系统内才有效的使用者。
例如mailinglist就会用到这个功能,在mailinglist中,我们可能会创造一个叫redlinux@link.ece.uci.edu的mailinglist,但实际上并没有一个叫redlinux的使用者。
实际aliases档的内容是将送给这个使用者的信都收给mailinglist处理程式负责分送的工作。
/etc/aliases是一个文字模式的档案,sendmail需要一个二进位格式的/etc/aliases.db。
newaliases的功能传是将/etc/aliases转换成一个sendmail所能了解的资料库。
参数:
没有任何参数。
范例:
#newaliases
下面命令会做相同的事,
#sendmail-bi
相关命令:
mail,mailq,newaliases,sendmail
名称:
talk
使用权限:
所有使用者
使用方式:
talkperson[ttyname]
说明:
与其他使用者对谈
把计:
person:
预备对谈的使用者帐号,如果该使用者在其他机器上,则可输入person@machine.name
ttyname:
如果使用者同时有两个以上的tty连线,可以自行选择合适的tty传讯息
例子.1:
与现在机器上的使用者Rollaend对谈,此时Rollaend只有一个连线:
talkRollaend
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入`talkjzlee`即可开始对谈,结束请按ctrl+c
例子.2:
与linuxfab.cx上的使用者Rollaend对谈,使用pts/2来对谈:
talkRollaend@linuxfab.cxpts/2
接下来就是等Rollaend回应,若Rollaend接受,则Rollaend输入`talkjzlee@jzlee.home`即可开始对谈,结束请按ctrl+c
注意:
若萤幕的字会出现不正常的字元,试着按ctrl+l更新萤幕画面。
名称:
wall
使用权限:
所有使用者
使用方式:
wall[message]
使用说明:
wall会将讯息传给每一个mesg设定为yes的上线使用者。
当使用终端机介面做为标准传入时,讯息结束时需加上EOF(通常用Ctrl+D)
例子:
传讯息"hi"给每一个使用者:
wallhi
名称:
write
使用权限:
所有使用者
使用方式:
writeuser[ttyname]
说明:
传讯息给其他使用者
把计:
user:
预备传讯息的使用者帐号
ttyname:
如果使用者同时有两个以上的tty连线,可以自行选择合适的tty传讯息
例子.1:
传讯息给Rollaend,此时Rollaend只有一个连线:
writeRollaend
接下来就是将讯息打上去,结束请按ctrl+c
例子.2:
传讯息给Rollaend,Rollaend的连线有pts/2,pts/3:
writeRollaendpts/2
接下来就是将讯息打上去,结束请按ctrl+c
注意:
若对方设定mesgn,则此时讯席将无法传给对方
名称:
kill
使用权限:
所有使用者
使用方式:
kill[-ssignal|-p][-a]pid...
kill-l[signal]
说明:
kill送出一个特定的信号(signal)给行程id为pid的行程根据该信号而做特定的动作,若没有指定,预设是送出终止(TERM)的信号
把计
-s(signal):
其中可用的讯号有HUP
(1),KILL(9),TERM(15),分别代表着重跑,砍掉,结束;详细的信号可以用kill-l
-p:
印出pid,并不送出信号
-l(signal):
列出所有可用的信号名称
范例:
将pid为323的行程砍掉(kill):
kill-9323
将pid为456的行程重跑(restart):
kill-HUP456
名称:
nice
使用权限:
所有使用者
使用方式:
nice[-nadjustment][-adjustment][--adjustment=adjustment][--help][--version][command[arg...]]
说明:
以更改过的优先序来执行程式,如果未指定程式,则会印出目前的排程优先序,内定的adjustment为10,范围为-20(最高优先序)到19(最低优先序)
把计
-nadjustment,-adjustment,--adjustment=adjustment皆为将该原有优先序的增加adjustment
--help显示求助讯息
--version显示版本资讯
范例:
将ls的优先序加1并执行:
nice-n1ls
将ls的优先序加10并执行:
nicels将ls的优先序加10并执行
注意:
优先序(priority)为作业系统用来决定CPU分配的参数,Linux使用『回合制(round-robin)』的演算法来做CPU排程,优先序越高,所可能获得的CPU时间就越多。
名称:
ps
使用权限:
所有使用者
使用方式:
ps[options][--help]
说明:
显示瞬间行程(process)的动态
参数:
ps的参数非常多,在此仅列出几个常用的参数并大略介绍含义
-A列出所有的行程
-w显示加宽可以显示较多的资讯
-au显示较详细的资讯
-aux显示所有包含其他使用者的行程
au(x)输出格式:
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
USER:
行程拥有者
PID:
pid
%CPU:
占用的CPU使用率
%MEM:
占用的记忆体使用率
VSZ:
占用的虚拟记忆体大小
RSS:
占用的记忆体大小
TTY:
终端的次要装置号码(minordevicenumberoftty)
STAT:
该行程的状态:
D:
不可中断的静止(通悸□□缜b进行I/O动作)
R:
正在执行中
S:
静止状态
T:
暂停执行
Z:
不存在但暂时无法消除
W:
没有足够的记忆体分页可分配
<:
高优先序的行程
N:
低优先序的行程
L:
有记忆体分页分配并锁在记忆体内(即时系统或捱AI/O)
START:
行程开始时间
TIME:
执行的时间
COMMAND:
所执行的指令
范例:
ps
PIDTTYTIMECMD
2791ttyp000:
00:
00tcsh
3092ttyp000:
00:
00ps
%ps-A
PIDTTYTIMECMD
1?
00:
00:
03init
2?
00:
00:
00kflushd
3?
00:
00:
00kpiod
4?
00:
00:
00kswapd
5?
00:
00:
00mdrecoveryd
.......
%ps-aux
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
root10.00.71096472?
SSep100:
03init[3]
root20.00.000?
SWSep100:
00[kflushd]
root30.00.000?
SWSep100:
00[kpiod]
root40.00.000?
SWSep100:
00[kswapd]
........
名称:
pstree
使用权限:
所有使用者
使用方式:
pstree[-a][-c][-h|-Hpid][-l][-n][-p][-u][-G|-U][pid|user]
pstree-V
说明:
将所有行程以树状图显示,树状图将会以pid(如果有指定)或是以init这个基本行程为根(root),如果有指定使用者id,则树状图会只显示该使用者所拥有的行程
参数:
-a显示该行程的完整指令及参数,如果是被记忆体置换出去的行程则会加上括号
-c如果有重覆的行程名,则分开列出(预设值是会在前面加上*
范例:
pstree
init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree-p
init
(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree-c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
||-httpd
||-httpd
||-httpd
....
名称:
renice
使用权限:
所有使用者
使用方式:
renicepriority[[-p]pid...][[-g]pgrp...][[-u]user...]
说明:
重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)
把计
-ppid重新指定行程的id为pid的行程的优先序
-gpgrp重新指定行程群组(processgroup)的id为pgrp的行程(一个或多个)的优先序
-uuser重新指定行程拥有者为user的行程的优先序
范例:
将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1:
renice+1987-udaemonroot-p32
注意:
每一个行程(Process)都有一个唯一的(unique)id
名称:
top
使用权限:
所有使用者
使用方式:
top[-][ddelay][q][c][S][s][i][n][b]
说明:
即时显示process的动态
把计
d:
改变显示的更新速度,或是在交谈式指令列(interactivecommand)按s
q:
没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行
c:
切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S:
累积模式,会将己完成或消失的子行程(deadchildprocess)的CPUtime累积起来
s:
安全模式,将交谈式指令取消,避免潜在的危机
i:
不显示任何闲置(idle)或无用(zombie)的行程
n:
更新的次数,完成后将会退出top
b:
批次档模式,搭配"n"参数一起使用,可以用来将top的结果输出到档案内
范例:
显示更新十次后退出;
top-n10
使用者将不能利用交谈式指令来对行程下命令:
top-s
将更新显示二次的结果输入到名称为top.log的档案里:
top-n2-b名称:
skill
使用权限:
所有使用者
使用方式:
skill[signaltosend][options]选择程序的规则
说明:
送个讯号给正在执行的程序,预设的讯息为TERM(中断),较常使用的讯息为HUP,INT,KILL,STOP,CONT,和0
讯息有三种写法:
分别为-9,-SIGKILL,-KILL,可以使用-l或-L已列出可使用的讯息。
一般参数:
-f快速模式/尚未完成
-i互动模式/每个动作将要被确认
-v详细输出/列出所选择程序的资讯
-w智能警告讯息/尚未完成
-n没有动作/显示程序代号
参数:
选择程序的规则可以是,终端机代号,使用者名称,程序代号,命令名称。
-t终端机代号(tty或pty)
-u使用者名称
-p程序代号(pid)
-c命令名称可使用的讯号:
以下列出已知的讯号名称,讯号代号,功能。
名称(代号)功能/描述
ALRM14离开
HUP1离开
INT2离开
KILL9离开/强迫关闭
PIPE13离开
POLL离开
PROF离开
TERM15离开
USR1离开
USR2离开
VTALRM离开
STKFLT离开/只适用于i386,m68k,arm和ppc硬体
UNUSED离开/只适用于i386,m68k,arm和ppc硬体
TSTP停止/产生与内容相关的行为
TTIN停止/产生与内容相关的行为
TTOU停止/产生与内容相关的行为
STOP停止/强迫关闭
CONT从新启动/如果在停止状态则从新启动,否则忽略
PWR忽略/在某些系统中会离开
WINCH忽略
CHLD忽略
ABRT6核心
FPE8核心
ILL4核心
QUIT3核心
SEGV11核心
TRAP5核心
SYS核心/或许尚未实作
EMT核心/或许尚未实作
BUS核心/核心失败
XCPU核心/核心失败
XFSZ核心/核心失败
范例:
停止所有在PTY装置上的程序
skill-KILL-vpts/*
停止三个使用者user1,user2,user3
skill-STOPuser1user2user3
其他相关的命令:
kill
名称:
expr
使用权限:
所有使用者
###字串长度
shell>>exprlength"thisisatest"
14
###数字商数
shell>>expr14%9
5
###从位置处抓取字串
shell>>exprsubstr"thisisatest"35
isis
###数字串onlythefirstcharacter
shell>>exprindex"testforthegame"e
2
###字串真实重现
shell>>exprquotethisisatestformela
thisisatestformela
名称:
tr
###1.比方说要把目录下所有的大写档名换为小写档名?
似乎有很多方式,"tr"是其中一种:
#!
/bin/sh
dir="/tmp/testdir";
files=`find$dir-typef`;
foriin$files
do
dir_name=`dirname$i`;
ori_filename=`basename$i`
new_filename=`echo$ori_filename|tr[:
upper:
][:
lower:
]`>/dev/null;
#echo$new_filename;
mv$dir_name/$ori_filename$dir_name/$new_filename
done
###2.自己试验中...lowercasetouppercase
trabcdef...[del]ABCDE...[del]
tra-zA-Z
tr[:
lower:
][:
upper:
]
shell>>echo"thisisatest"|tra-zA-Z>www
shell>>catwww
THISISATEST
###3.去掉不想要的字串
shell>>tr-dthis###去掉有关t.e.s.t
this
man
man
test
e
###4.取代字串
shell>>tr-s"this""TEST"
this
TEST
th
TE
指令:
clear
用途:
清除萤幕用。
使用方法:
在console上输入clear。
名称:
reset,tset
使用方法:
tset[-IQqrs][-][-ech][-ich][-kch][-mmapping][terminal]
使用说明:
reset其实和tset是一同个命令,它的用途是设定终端机的状态。
一般而言,这个命令会自动的从环境变数、命令列或是其它的组态档决定目前终端机的型态。
如果指定型态是?
的话,这个程式会要求使用者输入终端机的型别。
由于这个程式会将终端机设回原始的状态,除了在login时使用外,当系统终端机因为程式不正常执行而进入一些奇怪的状态时,你也可以用它来重设终端机o例如不小心把二进位档用cat指令进到终端机,常会有终端机不再回应键盘输入,或是回应一些奇怪字元的问题。
此时就可以用reset将终端机回复至原始状态。
选项说明:
-p
将终端机类别显示在萤幕上,但不做设定的动作。
这个命令可以用来取得目前终端机的类别。
-ech
将erase字元设成ch
-ich
将中断字元设成ch
-kch