UNIX向来是强劲的操作系统,屹立多年不倒,但是,对一般使用
个人电脑的用户来说,确是比较陌生,有见及此,编辑部选择了在个人
电脑上也可运行自如,毋须庞大的Mainframe或甚麽大机器的SCO UNIX,
介绍给大家,让各位对另一广阔无限的作业领域探首一下,也许玩起
Internet时,会有另一番天地,别错过这一连续十二期的「UNIX自学篇」了。
可能有些人会误以为UNIX只是那些功能强劲的庞然大机方会使用
的操作系统,谁不知道在个人电脑上,一样可以使用,只不过所使用的
是特别为个人电脑设计的PC UNIX,SCO UNIX就是其 中的表表者。
第一讲
对於惯用DOS或视窗环境的朋友来说,UNIX的第一重关卡就是那
些「敏感标号」(Sensitive Case),字母的大小写俱有不同的意思,
Ls、IS、LS或Is这些命令全不相同,所谓「差之毫□,谬 之千里」,
它对大小写可是绝对敏感的。
文件名称 在SCO UNIX下,建立的文件档案名称,可以是包含最多十四个
字母数字字符的任意组合,既可使用下横「_」,也可使用句号 「.」。
不过,文件名称却不能使用某些特定字符,因为它们对Shell来说
有特定意义。这些不能用作文件名的字符,分别是「;」「|」、
「〈」、「〉」、「'」「$」、「!」、「%」、「(」和「)」,
而文件名称中也不能含有空白空格等。
(freelab注:现在绝大数unix命名都可长至256字符,中间可有空格)
文件存取权
每个文件都可以拥有不同的存取权限,界定其它用户能否存取文件和目录。
每个文件分为三类所有权:文件的属性、属主所在小组的成员(
即组员),可存取系统的其它用户。用「|」的命令,就可以查
看文件的权限。 drwxrwx…
好像上列的文件存取权限,第一个符号指示文件类型,减号为普
通文件,d则表示目录文件。接著的九个字符分成三组,分别表
示属主、组员和其它用户的存取权;每组有三种存取权:「代表
读(Read)、w代表写(Write)和x代表执行(Execute)。而没
有存取权的相应位置则会出现减号(-)代替。 目录存取权
基本上,文件与目录之间的存取权的设置大致一样,但仍有些微 分别。
首先,要查看目录的存取权限,就要在「|」之後,加一个空白
处,再加上「-d」。如果要改变当前目录,则用「cd」。 改变存取权限
要加文件或目录的存取权限,可用「chmod」的命令,例子如下:
$chmod g+rw filename
g代表更改组员可以享有的存取权限,+rw就是让组员可以读与写
该文件。而u则代表文件的属性,o代表其它用户;减号(-)则
代表取消某类人的某些存取权限。
另一种更改权限的方法,就是使用八进制的数值指定存取权。每
个符号赋与一个数值,r是4,w是2和x是1。例如组合读与写,其
存取权的数值就是6。又譬如欲使文件对文件属主、组员和其它用
户均具读写权,命令如下: $chmod 666
filename 更改用户属主 每当创建新档案与目录时,标记你是属主,
你的同组人员为组员,
如果要把文件的使用权交给别人,只有属主方可更改,命令如下:
$chown owner file
chown改变了文件的身分ID (UID)
改变属组要改变文件所属的组别文件组ID(GID),命令变 为:
$chgrp group file
浏览文件内容 需要求助,可按?键。
至於,浏览文件内容有几种方法,可使用more,显示大文件,
命令如下: $more filename
按〈spacebar〉,显示正文的下一全萤幕;按〈return〉,转往
下一行;按q进出文件;键入模式前缀(/),就可键入需要查找
的匹配模式,若模式找不到,则会显示「pattern not found」的 信息。
按pg则逐次翻一个萤幕,而每个全萤幕後,都随提示符(:),
按〈return〉,看下一萤幕,键入+n,向前移动n个萤幕;-n,
向後移动n个萤幕;打入$,则移到文件尾。
如果使用Cat看文件内容,就可以在全荧幕上滚动文件内容。在任
何位置,按<ctrl>s,文件就会停止滚动;按<ctrl>q,则会 继续
滚动;按〈del〉则中断不看。
处理文件
cp命令为复制文件,可以有多种用法。
(一)$cp old.file new. file 备份一个文件
(二)$cp file1 file2 Test
将file 1和file 2复制到Test目录下 至於,mv则为改名命令,譬如
$mv fruit apples 就是fruit改名为apples
rm则是删除文件的命令。文件一经删除,就不能恢复它,故此,
要加倍小心。 $rm- i filename
加上「-i」,删除前,系统需要确认。
第二讲shell环境
何谓shell shell是用户与操作系统之间的交互层,用户修改其环境,
设置或取消shell的环境变量,迎合用户的需要和爱好。
shell本身就是一个电脑程序,用C语言编写,为协助用户与作业
系统之间通讯而设计,管理用户与核心(Dernel)之间对话,并
把操作系统命令换成机器代码,其实PC用户常用的DOS,本身就
是一个shell。
shell的用途
shell的主要任务是:提示用户打入命令,读命令,转换命令为核
心所能理解的语言。其实,shell可以看作为命令解释程序,提供
一些工具,亦可以利用shell的编写工具,构造电脑程序。
System V shell类 SCO System V的shell可分为四大类:
Bourne shell;C shell; Korn Shell;和菜单驱动shell。
而菜单驱动shell可再细分为三类,分别是Open Desktop,Sysadmsh
或scoadmin和客户应用程序。
每个shell都有自己特定的环境文件,可以自行修改至合用,这些
环境文件就仿如DOS的批次档案(Batch File)。 Bourne shell 对
普遍用户来说,Bourne shell可以说是第一个UNIX shell , 它是由
AT&T贝尔实验室Stephen Bourne所编写。默认提示(Prompt)是
美元符($),其环境文件为profile文件,由於文件档案不大,可
以马上启动执行。 profile是存放在主目录下的普通文本文件(Text File),
通过设置环境变量(Variable)和终端模式,可以使环境个人化,每
次注册进入系统时,shell会读入profile文件,并执行所列出的 命令。
每当系统管理员创建新用户的户口时,系统都会自动构造一个相
应的.profile文件;而整个系统的环境文件就放置在 /etc/.profile中。
用户可以使用vi或其他正文编器修改。若要使用env命令显示,由
於注册时已设置了这些变量,也不一定需要另行设置。
C shell
C shell是由Berkeley的Bill Joy编写,是标准BSD(Berkeley System Distributou)
命令解释,其默认提示是份符(%),环境文件则是cshrc和.login。
C shell采用C语言,是UNIX和XENIX系统上公共软件的开发语
言,提供了方便工具,快速打入,校正和再打入命令行。
.login是Cshell的注册环境文件,负责启动shell,注册时执行
一次,而.cshrc则存放常用命令如alias等命令。譬如我们要创建
一个永久别名,把命令who|sort|more别名化为wh,在提示(%)
後,只需要键入wh即可。用户可在.cshrc□键入下面一行:
alias wh 'who/sort/more'
Korn shell
Korn shell是AT&T贝尔实验室David Korn所开发,是Bourne shell的
增强版本,综合了Bourne shell和C shell的特点和约定, 而Korn shell
则比Bourne和C shell执行得更快。 Korn shell的默认提示与环境文件,
跟其前身Bourne shell一 样,同为美元符号($)和.profile文件。
进程控制
虽然同一时间,系统中运行许多进程,但是某一特定时刻,CPU只
会让一个进程使用,而CPU则在行使中的进程之间快速轮换,每
个进程所占用的时间,称为时间片。SCO System V为了保持、跟
踪或调度每个进程,会给每个进程一个进程标识号ID或PID。
要确定那些进程正在运行,用户可以使用ps显示阁下的进程;
或加上-e选项,显示所有进程;
加-f选项,则显示的进程还包括已启动命令的执行中进程;
-u login显示某注册用户的进程。
在SCO UNIX System V中,如果阁下拥有Root命令的作用权,
就更可以看到所有进程。
当一个命令需要较长时间完成,可以在命令行後尾加入&元字符,
该命令就会在後台执行,但对交互工作方式的命令就不适用了。
菜单驱动shell
菜单驱动(Menu-Driven)shell可再细分为三项:
一、Open Desktop
Open Desktop采用XWindow图形用户介面,用户可用图符(Icon)窗口和
菜单操作,如Open Desktop的操作系统就是SCO UNIX System V/386。
二、系统管理员Shell:Sysadmsh或scoadmin
Sysadmsh或scoadmin则是字符介面,用户可不用学习命令行语法
和选项,就可以执行大批命令。大多数系统管理任务仅由系统管
理处理,系统管理员则有特定的根口令(Root Password)。
三、客户应用程序
某些用户为了存取内部邮件、字处理或报表等应用程序时,方会使用SCO
SystemV,系统管理员可以装上这些程序,令它们在注册时呈现。
许多程序提供一个菜单选项,用简单打键选取一个选项,用户毋
须记著命令和命令选项,亦能操控。 --
第三讲 vi editor
任何用户最常做的事要数创建和编辑文件,包括文档、报告和文
字,vi(Visual Editor)是一个有效而相对简单的全荧幕编辑,
使用vi,只要记著少量基本命令,就可以开始起步,再学习其他
更复杂的命令,而系统管理员则使用vi管理和维护系统。
vi是包含在SCO System V操作系统中的全荧幕编辑,其实,vi不 独存
在於SCO UNIX内,而是UNIX内相当普及的文件编辑。
开启文件
无论是开启新档或修改旧文件,都可以使用vi,所需命令为: $ vi filemane
如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在
创建新文件。如果文件早已存在,vi则会显示文件的首廿四行,
用户可再用游标(cursor)移动文件。 This is what vi looks like. ~ ~
上面是一个经vi开启的模拟文件,一行开始处的波折号(~)表
示文件的结尾。
命令态与插入态
vi使用了两种状态,一是命令态(Command Mode),另一是插入态(Insert Mode)。
当vi处於命令态时,打入的内容会视作命令来解释;另一方面,
当vi处於插入态时,就可以打入正文(text) 给文件。
大多数vi命令是单字符,由插入态改变为命令态,指〈Esc〉键;而由命令
态转为插入态,则可以使用下面的插入令,直接打入, 无需再按<Return>键。
命令i在游标处插入正文
命令I在一行开始处插入正文
命令a在游标後追加正文
命令A在行尾追加正文
命令o在游标下面新开一行
命令O在游标上面新开一行
要记著一点,在插入态处,不能打入命令,必需先按〈Esc〉键,
返回命令态。假若户不知身处何态,也可以按〈Esc〉键,不管处 於何态,
都会返回命令态。
存档及退出
在修改文件时,如何存档及退出指定文件都非常重要。在vi内,
行使存档或退出的命令时,要先按冒号(:),改变为命令态,用
户就可以看见在荧幕左下方,出现冒号(:),显示vi已经改为指 令态,
可以进行存档或退出等工作。下面就是一些这方面常用的命令。
:q!放弃任何改动而退出vi,也就是强行退出 :w存档 :wq存档并退出vi
:x与wq的工作一样 :zz与wq的工作一样删除正文
删除或修改正文都是利用插入态,故此,下面所提及的命令只需在插
入态内,直接选入命令即行。
—x删除游标处字符(Character) —nx删除游标处後n个字符 —nX删除游标处前n个字符
—ndw删除游标处下n个单词(word) —dd删除整行 —d$或D删除由游标至该行最末
—u恢复前一次所做的删除
修改正文
当使用vi修改正文,加减字符时,就会采用另一组在插入态操作
的命令。
— r char由char代替游标处的字符
—Rtext〈Esc〉由text代替游标处的字符
— cwtext〈Esc〉由text取代游标处的单词
— Ctext〈Esc〉由text取代游标处至该行结尾处
— cc使整行空白,但保留游标位置,让你开始打入
—如删除命令一样,在命令前打入的数,表示执行该命令多少次。 正文模式检索
要检索文件,必需在命令态下进行。
所谓「模式」,就是一个特定字符串,其中可含空格符。
—/str〈Return〉向前搜寻str直至文件结尾处
—?str〈Return〉往後搜寻str直至文件开首处
—n同一方向上重复检索 —N相反方向上重复检索
—vi缠绕整个文件,不断检索,直至找到与模式相匹配的下一个 出现。
其他
如果要在vi执行期间,转到shell执行,使用惊叹号(!)执行系 统命令,
例如在vi期间,列出当前目录内容,可以打入 :!If
另一方面,用户可以在主目录中创建.exrc环境文件,用set打入
选项,每次调用vi时,就会读入.exrc中的命令与设置。下面是 .exrc环境文件的实例:
set wrapmarging=8
set showmode
set autoindent
set number --
第四讲:系统管理
今次要谈的系统管理员负责管理SCO UNIX的系统,拥有独特的
注册名--root,能够读取任何文件,写入和删除任何文件,执
行任何实用程序和命令,亦可以执行和终止任何用户程序。
系统管理员的工作包括系统控制的任务,例如备份加锁和解锁终
端和记帐号、增加、隐退和撤消用户。亦可以给用户一些特权,
让他们实现特权系统任务。
基本命令
shell命令的基本数据结构是文件,因此,基本命令和操作包含以 下功能:
-显示及管理文件中的命令
- 管理目录的命令
-输入输出重新定向和管道,重定向标准I/O,并执行组合命令$ W|grep 'john'〉john,file
- 输出重定向符(>)把标准输出重新定向输出到文件
- 输入重定向符(<)把标准输入重定向从文件输入
-管道符(|)把标准输出重定向输出到别一命令
寻找文件 find(c)命令可以在层次目录中查找文件,
例如: $find/-name filename -exec rm {};
-name filename指定filename -exec rm表示在所找的文件中执行rm移动这个命令
另外,用户亦可以加入,-print表达式,显示找到文件的全路径 名。
除此之外,find(c)也可以用来找出特定用户或用户组所持有的 文件,
譬如: $find/-user bin -print
$find/-group mmdf -print 又或者,用find(c)重新定向过滤程序,输出错误信息,
例如: $find/-name motd -print
2〉/dev/null SCO shell 使用SCO shell,可以让用户从单个菜单中选出应用程序,
管理文件和目录,运行系统实用程序,要调用SCO shell,可键入: $scosh
可以利用空格条键〈Space Bar〉或箭头键〈Pointer〉移动光标, 加亮所选的菜单项
-按〈Esc〉 回到上一级,或放弃当前操作
-按〈F3〉 显示所在字段中可用选项表 -按〈Ctrl〉v 在字段选项表中选出每一项
-按〈F1〉 显示求助信息
-按Quit或打入q 退出SCO shell
系统管理shell 需要调用系统管理员shell,应该打入: $sysadmsh或$scoadmin
虽然每个用户都可以调用sysadmsh,但是,只有实权的用户才可 执行有关特权管理任务。
基本上,使用方法与SCO shell差不了多少,只是多了几个功能 键(Function
Key),例如〈F5〉搜索,〈F6〉改变目绿和〈F7〉
执行格式。而且,scoadmin更可以在XWindow的图形环境下执行,
用户在图符(lcon)上找到不同的管理任务。 多重注册萤幕
控制台上,可以允许用户最多具有十二个不同注册期的萤幕。多
重萤幕令系统管理员可以同时执行几个任务。
系统启动时,控制台上的多重萤幕就会自动活动起来。同时按〈Alt〉键与〈F1〉
至〈F12〉功能键,实现萤幕之间转换。
至於,在终端上,启动多重注册萤幕,则可用mscreen实用程序,
为正确工作,mscreen要求为tty。例如启动两个萤,应该打入 $mscreen-n2
然後按〈Shift〉键与〈F1〉或〈F2〉键,在两个萤幕之间转换, 当注销时,
确保所有萤幕注销。 --
第五讲:电子邮件 文:Santa Cruz Operation,Inc.
在SCO System V下,每个用户都有一个系统维护的私人邮箱,
用户能够与系统任何用户或用户组之间收发电子邮件,所收发的
信息可以保留在邮箱内或作独立文件处理。
发送邮件 打入mail命令,後跟收件人注册名,就可发送邮件。假如发送邮
件给多个收件人,名字用空格符〈space〉分隔,而不是逗号。收
件人可以是一个单独注册名或一个别名,别名代表用户组,例如:
$mail peter amy
接著,萤幕上会出现subject:的提示符,用户即可打入简短的信
息说明,完成後,按〈Return〉键,然後,就可以编写邮件内容。
需要校正错误,就该使用空格符或左箭头键,用不当的空格符或
不合适的箭头键,即使在萤幕上看起来对,但是收件人可能只收
到不可读和篡改了的信息。请记著,mail内的内容编写,不是
「 所见即所得」(What You See is What YouGet)。
假若需要取消整个信息,按〈del〉键两次。写完邮件内容,按〈Return〉键,
取得新行後,按〈Ctrl〉d,发送邮件。d就是done( 完成)的缩写。 阅读邮件
每次注册进入系统时,系统都会通知阁下,在阁下的邮箱中可有邮件,需要翻
阅邮件,打入 $mai若有邮件,每每邮件都会显示出相应的信息标题,包括信息数,
送件人及发送日期。下面是邮件范例:
$mail
SCO System V mail(Versin 3.2)Type? for Help "/usr/spool/mail/joesco":
2 messages/new/unread
n2 mary Sun Aug 05 23:48 47/2109 level 2500
n1 paul Fri Aug 03 08:01 23/6332 Tardy reports!
要阅读来件,可以使用箭头键移动选取,按〈Return〉键阅读,或在提示处,
直接按入来件编号。若已读到邮箱中最後一批信息, mail在萤幕上会显示
"Can't go beyond last message" 。
处理mail 当打入一个无效命令时,mail会回答一个问号,或"What" 的信息,
显示命令不清。假若用户想显示mail命令表,可以打入?;或打
入h,显示邮牛标题表;打入l,则会发送信息至打印机。另有一 些常用的命令,协助处理mail:
一、保留邮件
"s filename"按普通文本文件保存整个信息至filename内,连同邮件的标题信息,一并送入文件内。
"w filename"撇除邮件标题後,保存信息到filename内。
二、删除邮件
"d x" 删除信息x这个信息号数 "u x"恢复被删除的x信息
三、覆件
"r"发信回答给送件人 "R"发送回答给To:和Cc:表上的所有用户
四、转发邮件
"f login"转发信息,予其它用户,并分送来件正文(Original Message);login乃用作的注名 "F
login"只转发信息,不分送来件正文
五、退出邮件 "q"退出mail程序,并更新所有改变
"x"退出mail程序,但不作任何改动
其它处理邮件的方法
除了以上所提到的基本命令处理邮件外,SCO UNIX尚有其他较 复杂的命令可整理邮件。
在mail内,所有命令前都要加上波折号~
v,调用vi编辑,一旦完成编辑信息,通过vi的命令,例如保存和退出命令:wq,就可返
回mail程序;按〈Ctrl〉d,就可以直接发 送邮件信息。 其它mail的增强命令如下
-~m messate-no.把邮箱中指定信息 (message-no.)放到所编写的信息中
-~r filename读入指定文件(filename),送到当前信息中
-~p 察看信息中的当前内容
-~? 求助
为了方便mail通讯,系统管理员能够定义不同的特定单用户或组
别名,通过这些单个组、别名或名字,就可以把邮件信息发送给
全组用户。发送给别名成员,可键入如下命令: $mail aliasname
如果要限制组员和其它用户的私人邮件的存取权限,可以使用 chmod命令,例子如下:
$chmod 600mbox
在普通电子邮件提示处打入set,可以控制选项,改变读和发送邮件,这些选项可以由
系统管理员为用户自动建立,也可以自己修 改这些设置,
例如: set page 10
mailrc环境文件 mail的环境文件叫做mailrc,负责保存所要文件的永久记录。
与其它环境文件一样,mailrc必需放在主目录中,它是文本文件,包涵有效的mail命令,
mailrc通常包括set命令和alias 定义。不过,运行mail程序,倒不一定要有.mailrc文件。
如要查看 .mailrc,可以打入more .mailrc,下面是.mailrc的一个实例:
cd -在mail内,改变主目录
nset autombox 删除自动把所读件转送到私人邮箱
set page 20 -若信息大於二十行,用more显示
alias crew john wanda frank-发送给crew的邮件转发给表中列出的用户
set EDITOR /us/lib/word -把word作为mail默认编辑
unset chron-显示当前最新邮件
上述的.mailrc例的□面,当打入$mail crew,就能够把邮件发送给john,wanda和frank。
监视mbox是默认设置,如果不想设置的话,应该使用unset autombox,而当mbox的内容
很快增长时,通常会删去旧信息。如果要读mbox中的邮件,可以使用如下命令:
$mail -f mbox
第六讲:备份复制
电脑系统内,数据可是相当重要的一环。贮存数据的方法,可以
经软盘、硬盘或盒式带(Cartridge),盒式带通常为大量数据提 供备份(Backup)。
复制目录
在安装的文件系统中,把一个目录内容复制到另一个目录中,用 copy 命令:
$copy source> destination> #copy-mor source> destination>
转换并复制文件使用 dd(c)命令,可以把一个文件转换成另一个文件,也可以选择
文件的一部份传输,在传输的数据中,也可以交换字节顺序。
$dd if=/dev/fd0 of=/temp/save skip=5 count=86 bs=5k
上面的命令″/dev/fd0″ 是指电脑上的软盘,″skip=n″代表在复制到输出文件之前,
跳过输入文件上的几个记录。″bs=n″则 表示设置输入输出字节块长度,用 k 表示
1024 字节。″count=n″ 只复制输入记录的指定数。 同时,也可以利用 dd命令检查
归档(archive)情况,命令如下:
$dd if=dev/fd0 of=/dev/null bs=1k 1200+0 record read in 1200+0 record read out
归档文件:
tar(c) tar 是对非特权用户最易用和最可靠的实用程序(utility),从
归档介质上保留和恢复文件,亦能从多文件归档中抽取单个文件。 tar
归档使用文件和目录的相对或绝对路径名。 打入 tar,即会显示所有变量选项;
”cv”是创建归档;
”cv#”用於来自 /etc/default/tar 的设备号 #;
”rv”追加已有归档;
”uv”更新在已有归档上的文件;
”tv”显示归档内容表;
”xv”从归档中抽取文件;
”f”从指定文件中读入或写出;
”L”使 tar跟随符号连接继续追查下去,默认情况下则会忽略符号连接。
譬如要归档指定文件,而复盖盘上的已有数据,命令如下:
$cd pub $tar cv6 ascii greek volume end at 1199k,block factor=5k seek=0k a ascii 3k seek=3k a greek 1k
要列出 tar 归纳的内容:
$tar tv6 rw-r--r-- 2/22114 Jan 2 13:41
1996 ascii rw-r--r-- 2/2475 Jan 2 13:41
1996 greek 创建 tar 归档,使用相对路径名,否则,恢复另一系统就会盖写
其他系统的文件。
#tar cv6 /etc/motd #cd /tmp #tar xv6 x /etc/motd, 943 bytes,2k 归纳文件
当需要备份指定设备、备份空设备与使用匹配符的时候,就不能 使用操作容易的 tar,而
需要转用比较复杂的cpio,用以归纳文件。 譬如,需要选取文件建立归档,命令如下:
$find /u/bill -print| cpio -oB -O /dev/fd0 20 blocks
又例如,需要抽取 cpio 归档文件名时:
$cpio -idmuBv -I /dev/fd0 .profile ascii eqnchar greek 20 blocks cpio
主要选项为:
-v 显示工作 -i 读归档 -o 写入归档 -t 内容表 -d 创建目录 -m 保留原修改日期 -U 无条复制
-B分割因子置为 5k -Cn 分割因子置为 n -Kn 介质长度置为 n
备份复制
备份就是要平衡运行一般备份的代价与损失数据的代价,确定要归档的数据类,并确
定要用何级实现,以及确定所要求磁带的盘数和带的容量,多久存储一次备份等等问题。
一般来说,备份复制可在 sysadminsh 或 scoadmin 执行。
所谓增量备份(Incremental Backup Levels),就是只需要以上次归档後发生改变的那部
分数据备份。当实现调度备份时,在/usr/lib/sysadmin/last/中,将文件记录下来,
可以透 过使用备份级来实现。
备份级的 0级就是备份文件系统上全部文件;
1 级则备份以上次 0 级备份以来改变的文件:
2 级,备份以上次 0 级或 1级备份以 来改变的文件;
3 级,备份以上级 0级、1 级或 2 级备份以後改变 文件。
经定义备份工具後,备份调度(Backup Schedule)就可以更方便 地执行,配置档案则会
被安置在/usr/lib/sysadmin/schedule 中。 假若在紧急关头或特殊情况下,用户亦可以使用非
调度放援,进 行紧急备份。