Unix基础之 文件基础和Shell
UNIX向来是强劲的作业系统,屹立多年不倒,但是,对一般使用个人电脑的用户来说,确是
比较陌生,有见及此,编辑部选择了在个人电脑上也可运行自如,毋须庞大的Mainframe或甚
麽大机器的SCO UNIX,介绍给大家,让各位对另一广阔无限的作业领域探首一下,也许玩起
Iternet时,会有另一番天地,别错过这一连十二期的「UNIX基础篇」了。
可能有些人会误以为UNIX只是那些功能强劲的庞然大机方会使用的作业系统,谁不知道在个
人电脑上,一样可以使用,只不过所使用的是特别为个人电脑设计的PC UNIX,SCO UNIX就是
其中的佼佼者。
对於惯用DOS或视窗环境的朋友来说,UNIX的第一重关卡就是那些「敏感标号」(Sensitive
Case),字母的大小写具有不同的意思,Ls、IS、LS或Is这些指令全不相同,所谓「差之毫
厘,谬之千里」,它对大小写可是绝对敏感的。
文件名称
在SCO UNIX下,建立的文件档案名称,可以是包含最多十四个字母数字字符的任意组合,既
可使用下横「□」,也可使用句号「。」。不过,文件名称却不能使用某些特定字符,因为
它们对Shell来说有特定意义。这些不能用作文件名的字符,分别是「;」「|」、「〈」、
「〉」、「’」「$」、
「!」 、「%」、「(」和「)」,而文件名称中也不能含有空白空格等。
文件存取权
每个文件都可以拥有不同的存取权限,界定其它用户能否存取文件和目录。每个文件分为三
类所有权:文件的属性、属主所在小组的成员(即组员),可存取系统的其它用户。用「ls
」的指令,就可以查看文件的权限。
drwxrwx…
好像上列的文件存取权限,第一个符号指示文件类型,减号为普通文件,d则表示目录文件
。接著的九个字符分成三组,分别表示属主、组员和其它用户的存取权;每组有三种存取权
:「代表读(Read)、w代表写(Write)和x代表执行(Execute)。而没有存取权的相应位
置则会出现减号(-)代替。
目录存取权
基本上,文件与目录之间的存取权的设置大致一样,但仍有些微分别。首先,要查看目录的
存取
权限,就要在「|」之後,加一个空白处,再加上「-d」。如果要改变当前目录,则用「c
d」。
改变存取权限
要加文件或目录的存取权限,可用「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
按〈space bar〉,显示正文的下一全屏幕;按〈return〉,转往下一行;按q进出文件;键
入模式前缀(/),就可键入需要查找的匹配模式,若模式找不到,则会显示「pattern no
t found」的信息。按pg则逐次翻一个屏幕,而每个全屏幕後,都随提示符(:),按〈ret
urn〉,看下一屏幕,键入+n,向前移动n个屏幕;-n,向後移动n个屏幕;打入$,则移到
文件尾。如果使用Cat看文件内容,就可以在全屏幕上滚动文件内容。在任何位置,按<ctr
l>s,文件就会停止滚动;按<ctrl>q,则会继续滚动;按〈del〉则中断不看。
处理文件
cp指令为复制文件,可以有多种用法。
(一)$cp old.file new.file 备份一个文件
(二)$cp file 1 file 2 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;和菜单驱动sh
ell。而菜单驱动shell可再细分为三类,分别是Open Desktop,Sysadmsh或scoadmin和客户
应用程序。每个shell都有自己特定的环境文件,可以自行修改至合用,这些环境文件就仿如
DOS的批次档案(Batch File)。
Bourne shell
对普遍用户来说,Bourne shell可以说是第一个UNIX shell ,它是由AT&T贝尔实验室Steph
en Bourne所编写。默认提示(Prompt)是美元符($),其环境文件为profile文件,由於
文件档案不大,可以马上启动执行。profile是存放在主目录下的普通正文文件(Text File
),通过设置环境变量(Variable)和终端模式,可以使环境个人化,每次注册进入系统时
,shell会读入profile文件,并执行所列出的指令。每当系统管理员创建新用户的户口时,
系统都会自动构造一个相应的.profile文件;而整个系统的环境文件就放置在/etc/.profil
e中。用户可以使用vi或其他正文编器修改。若要使用env命令显示,由於注册时已设置了这
些变量,也不一定需要另行设置。
C shell
C shell是由Berkeley的Bill Joy编写,是标准BSD(Berkeley System Distributou)命令解
释,其默认提示是份符(%),环境文件则是cshrc和.login。C shell采用C语言,是UNIX和
XENIX系统上公共软件的开发语言,提供了方便工具,快速打入,校正和再打入命令行。.lo
gin是C shell的注册环境文件,负责启动shell,注册时执行一次,而.cshrc则存放常用指令
如alias等指令。譬如我们要创建一个永久别名,把命令who|sort|more别名化为wh,在提
示(%)後,只需要键入wh即
可。用户可在.cshrc□键入下面一行:
alias wh 'who/sort/more'
Korn shell
Korn shell是AT&T贝尔实验室David Korn所开发,是Bourne shell的增强版本,综合了Bour
ne shell和C shell的特点和约定,而Korn shell则比Bourne和C shell执行得更快。Korn s
hell的默认提示与环境文件,跟其前身--Bourne shell一样,同为美元符号($)和.pro
file文件。
进程控制
虽然同一时间,系统中运行许多进程,但是某一特定时刻,CPU只会让一个进程使用,而CPU
则在行使中的进程之间快速轮换,每个进程所占用的时间,称为时间片。SCO System V为了
保持、跟踪或调度每个进程,会给每个进程一个进程标识号ID或PID。要确定那些进程正在运
行,用户可以使用ps显示阁下的进程;或加上-e选项,显示所有进程;加-f选项,则显示的
进程还包括已启动指令的执行中进程;-u login显示某注册用户的进程。在SCO UNIX Syste
m 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 Passwor
d)。
三、客户应用程序
某些用户为了存取内部邮件、字处理或报表等应用程序时,方会使用SCO System V,系统管
理员可以装上这些程序,令它们在注册时呈现。许多程序提供一个菜单选项,用简单打键选
取一个选项,用户毋须记著指令和指令选项,亦能操控。
UNIX向来是强劲的作业系统,屹立多年不倒,但是,对一般使用个人电脑的用户来说,确是
比较陌生,有见及此,编辑部选择了在个人电脑上也可运行自如,毋须庞大的Mainframe或甚
麽大机器的SCO UNIX,介绍给大家,让各位对另一广阔无限的作业领域探首一下,也许玩起
Iternet时,会有另一番天地,别错过这一连十二期的「UNIX基础篇」了。
可能有些人会误以为UNIX只是那些功能强劲的庞然大机方会使用的作业系统,谁不知道在个
人电脑上,一样可以使用,只不过所使用的是特别为个人电脑设计的PC UNIX,SCO UNIX就是
其中的佼佼者。
对於惯用DOS或视窗环境的朋友来说,UNIX的第一重关卡就是那些「敏感标号」(Sensitive
Case),字母的大小写具有不同的意思,Ls、IS、LS或Is这些指令全不相同,所谓「差之毫
厘,谬之千里」,它对大小写可是绝对敏感的。
文件名称
在SCO UNIX下,建立的文件档案名称,可以是包含最多十四个字母数字字符的任意组合,既
可使用下横「□」,也可使用句号「。」。不过,文件名称却不能使用某些特定字符,因为
它们对Shell来说有特定意义。这些不能用作文件名的字符,分别是「;」「|」、「〈」、
「〉」、「’」「$」、
「!」 、「%」、「(」和「)」,而文件名称中也不能含有空白空格等。
文件存取权
每个文件都可以拥有不同的存取权限,界定其它用户能否存取文件和目录。每个文件分为三
类所有权:文件的属性、属主所在小组的成员(即组员),可存取系统的其它用户。用「ls
」的指令,就可以查看文件的权限。
drwxrwx…
好像上列的文件存取权限,第一个符号指示文件类型,减号为普通文件,d则表示目录文件
。接著的九个字符分成三组,分别表示属主、组员和其它用户的存取权;每组有三种存取权
:「代表读(Read)、w代表写(Write)和x代表执行(Execute)。而没有存取权的相应位
置则会出现减号(-)代替。
目录存取权
基本上,文件与目录之间的存取权的设置大致一样,但仍有些微分别。首先,要查看目录的
存取
权限,就要在「|」之後,加一个空白处,再加上「-d」。如果要改变当前目录,则用「c
d」。
改变存取权限
要加文件或目录的存取权限,可用「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
按〈space bar〉,显示正文的下一全屏幕;按〈return〉,转往下一行;按q进出文件;键
入模式前缀(/),就可键入需要查找的匹配模式,若模式找不到,则会显示「pattern no
t found」的信息。按pg则逐次翻一个屏幕,而每个全屏幕後,都随提示符(:),按〈ret
urn〉,看下一屏幕,键入+n,向前移动n个屏幕;-n,向後移动n个屏幕;打入$,则移到
文件尾。如果使用Cat看文件内容,就可以在全屏幕上滚动文件内容。在任何位置,按<ctr
l>s,文件就会停止滚动;按<ctrl>q,则会继续滚动;按〈del〉则中断不看。
处理文件
cp指令为复制文件,可以有多种用法。
(一)$cp old.file new.file 备份一个文件
(二)$cp file 1 file 2 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;和菜单驱动sh
ell。而菜单驱动shell可再细分为三类,分别是Open Desktop,Sysadmsh或scoadmin和客户
应用程序。每个shell都有自己特定的环境文件,可以自行修改至合用,这些环境文件就仿如
DOS的批次档案(Batch File)。
Bourne shell
对普遍用户来说,Bourne shell可以说是第一个UNIX shell ,它是由AT&T贝尔实验室Steph
en Bourne所编写。默认提示(Prompt)是美元符($),其环境文件为profile文件,由於
文件档案不大,可以马上启动执行。profile是存放在主目录下的普通正文文件(Text File
),通过设置环境变量(Variable)和终端模式,可以使环境个人化,每次注册进入系统时
,shell会读入profile文件,并执行所列出的指令。每当系统管理员创建新用户的户口时,
系统都会自动构造一个相应的.profile文件;而整个系统的环境文件就放置在/etc/.profil
e中。用户可以使用vi或其他正文编器修改。若要使用env命令显示,由於注册时已设置了这
些变量,也不一定需要另行设置。
C shell
C shell是由Berkeley的Bill Joy编写,是标准BSD(Berkeley System Distributou)命令解
释,其默认提示是份符(%),环境文件则是cshrc和.login。C shell采用C语言,是UNIX和
XENIX系统上公共软件的开发语言,提供了方便工具,快速打入,校正和再打入命令行。.lo
gin是C shell的注册环境文件,负责启动shell,注册时执行一次,而.cshrc则存放常用指令
如alias等指令。譬如我们要创建一个永久别名,把命令who|sort|more别名化为wh,在提
示(%)後,只需要键入wh即
可。用户可在.cshrc□键入下面一行:
alias wh 'who/sort/more'
Korn shell
Korn shell是AT&T贝尔实验室David Korn所开发,是Bourne shell的增强版本,综合了Bour
ne shell和C shell的特点和约定,而Korn shell则比Bourne和C shell执行得更快。Korn s
hell的默认提示与环境文件,跟其前身--Bourne shell一样,同为美元符号($)和.pro
file文件。
进程控制
虽然同一时间,系统中运行许多进程,但是某一特定时刻,CPU只会让一个进程使用,而CPU
则在行使中的进程之间快速轮换,每个进程所占用的时间,称为时间片。SCO System V为了
保持、跟踪或调度每个进程,会给每个进程一个进程标识号ID或PID。要确定那些进程正在运
行,用户可以使用ps显示阁下的进程;或加上-e选项,显示所有进程;加-f选项,则显示的
进程还包括已启动指令的执行中进程;-u login显示某注册用户的进程。在SCO UNIX Syste
m 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 Passwor
d)。
三、客户应用程序
某些用户为了存取内部邮件、字处理或报表等应用程序时,方会使用SCO System V,系统管
理员可以装上这些程序,令它们在注册时呈现。许多程序提供一个菜单选项,用简单打键选
取一个选项,用户毋须记著指令和指令选项,亦能操控。