UNIX操作系统概述及基本知识.docx
- 文档编号:25499712
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:25
- 大小:34.54KB
UNIX操作系统概述及基本知识.docx
《UNIX操作系统概述及基本知识.docx》由会员分享,可在线阅读,更多相关《UNIX操作系统概述及基本知识.docx(25页珍藏版)》请在冰豆网上搜索。
UNIX操作系统概述及基本知识
UNIX操作系统概述及基本知识(转)[@more@]1.UNIX操作系统简介
UNIX操作系统是一个多用户、多任务的操作系统,它自1974年问世以来,迅速地在世界范围内推广。
与一般操作系统一样,UNIX系统也是运行在计算机系统的硬件和应用程序之间,负责管理硬件并向应用程序提供简单一致的调用界面,控制应用程序的正确执行。
UNIX与其他操作系统的不同之处主要有两点:
lUNIX与其他操作系统的内部实现不同
lUNIX与其他操作系统的用户界面不同
现在的UNIX实际上已经不是一个严格意义上的操作系统了。
UNIX可以分为两部分,它除了传统操作系统模块以外,还包括一组可供调用的系统库和一些基本应用程序。
同计算机打交道的是UNIX的文件系统和进程控制模块,接着是UNIX系统提供的一组系统库,用于最顶层UNIX系统的标准应用程序和其他应用程序的调用运行。
用户可以访问到标准UNIX系统的系统库和标准应用程序。
这两部分组成了UNIX系统的用户界面,他们也形成了用户眼中的UNIX操作系统的概念。
下图给出了UNIX的层次结构。
UNIX系统中进行硬件管理和进程控制的部分称为内核。
UNIX系统把每个硬件都看成是一个文件(称为设备文件),这样用户就可以用读写的方式来实现对硬件的访问。
UNIX文件系统管理用户对系统数据和设备的读写访问。
UNIX系统还通过内核为进程分配资源(包括CPU资源)并控制进程对硬件的访问。
除了提供内核来完成传统操作系统的功能外,UNIX还为用户提供了一组系统库和标准应用。
这一标准的界面不仅可以使应用程序方便地移植,还可以让用户方便地使用。
标准界面的优点是应用的可移植性,即一个应用程序可以不加修改地运行在不同硬件结构的各种机器上。
2.UNIX操作系统的版本与标准
UNIX经过多年的发展,存在着存在着许多变体和版本。
下面我们看一下常见的UNIX系统的各种变体和版本。
lUnixWare,它的基础是SVR4,主要运行在X86(Intel或者100%可兼容)机器上。
lBSDI网络服务器:
是BSD操作系统的一个商业版本。
它继承了BSD操作系统,并且为其添加了许多新的网络功能。
由于它能很好地支持网络,它主要被ISP(InternetServiceProviders)使用,所有的X86(Intel或100%可兼容)机器上都可运行BSDI。
lFreeBSD和NetBSD是BSDI网络服务器的免费版本。
它们包含的许多强大的功能使BSD操作系统变得十分流行,但它缺乏商业团体的技术支持。
FreeBSD可在X86平台上运行。
NetBSD可在下列机器上运行:
Dec,Alpha,Amiga,Atari,HP9000/300Series,X86,m86kMacintosh,SunSeries,DecVAX等。
lSCOOpenServer是UNIX的变体,它建立在XENIX的基础上。
目前在Internet/Intranet上非常流行,在企业级服务器上占有一席之地。
技术支持较为出色,已经成为许多公司商业操作系统的选择。
lLinux最初是从minix开发而来。
现在已经发展成为非常流行、被广泛应用的操作系统。
Linux目前在工作站上非常流行,但由于它缺少专业操作系统的技术支持和稳定性,它不能用于关键任务的服务器。
l一些大型主机和工作站的生产厂家专门为它们的机器做了UNXI版本,其中包括SUN公司的Solaris系统,IBM公司的AIX和惠普公司的HP-UX。
3.文件系统基础
UNIX内核有两个基本的子系统:
文件子系统和进程控制子系统。
文件子系统负责文件的相关操作和管理进程控制子系统则负责与进程相关的操作与管理
3.1内核文件子系统
它主要负责访问和管理系统及用户文件。
UNIX系统只是把文件看作是一组数据字节,对它们的解释是通过系统提供的某种结构进行的。
UNIX内核文件子系统使用了三个数据结构来描述每一个文件以及访问文件的途径,它们分别是与具体进程相关的文件描述符表项,与内核相关的文件表项,与每个文件相关的索引节点。
l文件描述符表:
在内核中,对应于每个进程,都有一个文件描述符表,用来标识改进程要打开的所有文件。
该表中的每一项对应一个进程打开的文件,每一项中有一个称为文件描述符(filedescription)的整型数用来标识文件。
l文件表:
文件表中的每一项对应于内核中打开的文件,主要描述用户对文件的访问权限及读写起始地址。
l索引节点(IndexNode,又称inode)文件的具体信息是通过索引节点来描述的。
根据所在位置的不同,inode分为磁盘inode和内存inode。
进程要访问文件,必须通过上述三种数据结构来进行,过程具体如下:
进程先访问与它对应的文件描述符表,通过它访问文件表,进而访问inode表中与文件相关的inode表项,最后通过inode去访问文件,如下图所示。
3.2文件类型
UNIX系统中的文件类型有许多种,当用户使用ls–lfilename命令时,所列内容的第一项的第一位就标识了文件系统的类型。
l正规文件(regularfile):
又称为普通文件,在使用ls–l时,所列内容的第一项的第一位为“-”。
系统中源码、文本和shell程序等都是正规文件。
l目录文件:
在UNIX系统中,目录是一种特殊的文件,它的内容是所包含的文件的信息:
文件的位置、大小、文件的创建时间等。
使用ls–l时,第一项第一列的标识为“d”。
目录文件只能由操作系统或专门的程序来读取和修改,普通用户无法直接访问目录文件,只能读取目录文件的内容。
l套接字:
socket是UNIX系统中用于计算机之间相互通信的应用程序的接口它将完成网络上的I/O操作。
在UNIX系统中,socket并不是一个真正的文件,但是它被抽象成一个文件,使用ls–l命令时,第一项第一位的标识为“s”。
l设备文件(devicefile):
UNIX系统为了实现与外设相关的操作,提供设备文件专门负责内存与外设间的I/O操作。
UNIX系统中有两种设备文件:
字符设备文件(characterdevicefile)和块设备文件(blockdevicefile)。
字符设备文件用于与外设进行无缓冲的I/O操作,使用ls–l时,其第一项第一位标识为“e”;块设备文件用于与外设进行有缓冲的I/O操作,使用ls–l时,其第一项的第一位标识为“b”。
一般来说,系统中的磁盘驱动器(包括硬盘和CDROM)为块设备文件,磁带驱动器和终端驱动器为字符设备文件。
键盘和显示器为系统的两个标准输入/输出的字符设备文件。
l有名管道(FIFO文件):
UNIX系统提供了使用管道实现进程间通信的方法。
它是一个临时文件,严格遵守先进先出的原则,因此又称为FIFO文件。
在使用ls–l时,第一项第一位的标识为“p”。
l链接(link):
系统中的链接是一个已经存在的文件的另一个名字,它不复制文件的内容。
有两种链接方式,一种是硬链接(hardlink),另一种是符号链接(symboliclink),又称软链接。
硬链接和原有文件是存储在同一物理地址的两个不同的名字,因此硬链接是相互的;符号链接的内容只是一个所链接文件的文件名,在使用ls–l时,符号链接的第一项的第一位为“l”。
3.3文件和目录的访问权限
命令ls–l可以列出文件或目录的访问权限。
所谓访问权限是指用户是否对文件或目录进行读写和执行的权力。
文件和目录的访问权限分为三类:
l属主的权限:
定义了文件和目录属主可对其进行的操作
l同组用户的权限:
定义了与属主在同组的其他成员可对其进行的操作。
l其他用户的权限:
定义了除去属主和同组的成员外,其他用户可对其进行的操作。
UNIX系统按属主、同组用户和其他用户的顺序来验证对文件操作的用户的许可权。
在使用ls–l命令时,所列文件的第一项的第二位至第四位位文件属主的访问权限;第五和第七位位同组用户权限;第八至第十位位其他用户的访问权限。
超级用户可以读、写和执行任何一个文件而忽略该文件的属主所规定的权限。
每一类访问权限都以一个八进制的数(取值为0~7)来表示,八进制用3位表示,每位的含义如下:
第一位(r):
值0或1(定义读权限,为1时表示可读)
第二位(w):
值0或1(定义写权限,为1时表示可写)
第三位(x):
值0或1(定义执行权限,为1时表示可执行)
例如,5(101)表示可读和可执行
例如,对testfile文件的访问权限定义为。
属主可读,可写,可执行,为111=7
同组用户可读可执行,为101=5
其他用户不可访问,为000=0
则可定义文件testfile的访问权限为750。
用户管理
对系统管理员来说,用户管理是其系统的日常管理中十分重要的部分。
系统管理员在用户管理方面需要进行的主要工作主要有:
增加或删除一个用户;监视并控制用户在系统中的活动;定制用户在系统中的工作环境。
系统管理员是通过“超级用户”(root)的帐号来实现的。
1用户口令管理
口令的建立和更换:
用户可以使用命令passwd来建立和更换自己的登录口令,超级用户则可以使用passwd命令更改所有用户的登录口令或规定用户的登录口令的属性。
passwd[name]:
修改用户name的帐号口令
passwd–s[-a]:
显示所有用户的口令信息,超级用户使用
passwd–s[name]:
显示用户name的口令信息,超级用户使用
passwd[-l|-d][-f][-nmin][-xmax][-wwarn]name
-l:
锁住用户name的帐号,超级用户使用
-d:
删除某一用户的口令,超级用户使用
-f:
使用户name的口令失效,强迫用户下次登录时更改口令,超级用户使用
-nmin:
规定口令在min天后失效,超级用户使用
-xmax:
规定用户口令寿命的最长天数,超级用户使用
-wwarn:
设置在用户口令失效后的警告信息,超级用户使用
passwd文件:
UNIX所有用户的清单时passwd文件,它位于/etc目录下,文件的每一行定义一个用户,文件的属性是“只读”,属主是“超级用户”。
文件的每一行包含以下几项:
用户登录名:
经过加密处理的口令:
以x显示加密后的口令,加密处理的口令放在/etc/shadow文件中
uid值:
用户ID,系统内唯一的标识用户名的数字。
gid值:
组ID,一个表示用户默认组号的值。
该值对应/etc/group中的一项。
个人信息:
也称为GOS域,记录用户的个人信息
登录目录:
定义了用户的home目录或初始的工作目录
登录shell:
用户在进行系统登录后最初可以使用的shell。
例如,下面是lyj用户信息在passwd文件中的存储情况
lyj:
x:
301:
15:
LiYongjian:
/usr/lyj:
/bin/sh
2.用户组管理
在UNIX中,用户组的引入是为了方便用户对文件和其他资源的共享,同时又保证系统的安全性。
所谓用户组是指共同在UNIX系统中开发同一项目,因此共享文件和其他系统资源的用户的集合。
Group文件:
定义了UNIX系统中所有的用户组,它位于系统的/etc目录下。
文件的每一行定义一个用户组,格式为:
group-name:
*:
gid:
additional-user
Group-name中包含组的名称(文本格式);“*”这一项是为了与老版本的UNIX兼容,没有实际意义。
Gid域是一个唯一标识组名的数字;additional-user域包含了属于该组的用户名单。
例如:
#cat/etc/group
sys:
:
0:
root,bin,sys,adm
root:
:
0:
rootdaemon:
:
1:
root,daemon
增加和删除用户组:
通过groupadd和groupdel命令超级用户可以直接增加和删除用户组。
这实际上是对/etc/group文件的操作。
Groupadd命令通过在group文件中增加一行来在系统中增加一个新的用户组,命令格式为:
groupadd[-ggid][-o]group-name
#groupadd–g200exam增加gid为200的用户组exam。
Groupdel命令将删除group文件中的一行来删除系统中的一个用户组,命令格式为:
groupdelgroup-name
作为超级用户,系统管理员可以直接对/ect/group文件进行编辑,实现用户组的增加和删除。
使用scoadmin工具:
除了使用命令外,可以使用scoadmin来执行该操作,增加组:
scoadmin——选accountmanager——选定addmanager菜单项——输入相关内容;删除组:
scoadmin——选accountmanager——选定用户组——选择deletegroup菜单项。
修改用户组的属性:
使用groupmod命令可以修改用户组的性质和它在/etc/group文件中的一些相关信息,命令格式为:
groupmod[-ggid][-o][-name]group
修改名为group的组的属性,该组必须已经存在。
-g修改组的id,-n修改组的名称,-o组的id可以重复。
3.用户管理
在UNIX系统中增加一个用户需要以下几步:
l定义用户帐号的标识信息,包括用户登录名、uid、缺省用户组名
l指定用户帐号的原始口令
l指定用户的注册目录,并在该目录不存在时创建,同时将该目录的属主用户和组设为正要建立的用户及组。
l将上述信息加入/etc/passwd文件中
要在UNIX系统中删除用户帐号,只需将用户帐号在/etc/passwd中的信息删除即可。
利用系统的命令:
增加用户帐号的命令为useradd,删除用户帐号的命令为userdel。
useradd[-uuid[-ggroup][-Ggroup,[group…]][-ddir][-sshell][-ccomment][-m[-kskel-dir]][-finactive][-eexpire]loginname
ueradd–D[-ggroup][-bbase-dir][-finactive][-eexpire]
-g定义用户默认的组;-G定义用户可在的组;-d定义用户登录目录;-s等一用户使用的shell的绝对路径;-c定义用户的个人信息;-m若用户登录目录不存在,则创建;-k规定所需的骨架信息(如.profile文件)所在的目录;-e规定帐号使用的到期时间;-f规定用户帐号使用的最大时间;-b系统默认的用户登录目录的父目录;-D则显示参数设置。
增加用户帐号后,还需要使用passwd命令给它加上口令。
userdel[-r]loginname,使用r参数时,在删除帐号的同时,也从系统中删除它的登录目录。
使用scoadmin工具:
除了使用命令外,可以使用scoadmin来执行该操作,增加用户:
scoadmin——选accountmanager——选定adduser菜单项——输入相关内容;删除组:
scoadmin——选accountmanager——选定用户——选择deleteuser菜单项。
修改passwd文件:
用户帐号的信息存在在/etc/passwd文件中,因此可以直接对passwd文件进行操作,实现用户帐号的增加和删除。
Liu2:
:
6688:
15:
LIUYUN:
/home/liu2:
/bin/csh
修改用户属性:
系统管理员可以根据需要修改用户的属性。
一是通过直接修改/etc/passwd文件,二是使用命令:
Usermod[-uuid[-ggroup][-Ggroup,[group…]][-ddir][-sshell][-ccomment][-m[-kskel-dir]][-finactive][-eexpire][-lnewloginname]loginname,各参数和useradd相同,其中-l将修改用户的登录名为newloginname。
4.用户监控
UNIX系统为收集系统中一般的信息或某个特定用户的信息提供了一些命令。
系统利用这些命令收集的信息来监视用户,还可以进行安全性检查,性能分析或进行计帐工作等。
id命令:
id[-a],显示用户名与用户id以及用户组名和组id;使用选项-a则还显示用户所有的组和组id。
uptime命令:
uptime[-w],显示系统当前时间,系统已经启动的时间,目前在系统中登录的用户的数量以及在过去1、5、15分钟内系统的平均负载等。
w命令:
w[-fm][-h][-l|-s][user]或w-u[-m]
除了给出uptime的信息外,还给出正在系统中登录的用户的用户名(loginname),每个用户终端使用的断口(tty),用户登录使用的主机名(from),用户登录的时间(login@),用户的空闲时间(idle),所有进程所占的有效的CPU时间(JCPU)、正在运行的进程清单以及当前执行的命令名(PCPUwhat)等。
系统从空闲时间上可以判断出需要将哪一个用户退出。
使用-f时,不显示from信息,使用-h,不显示uptime命令显示的信息以及标题栏;使用-l则以长格式显示信息,该参数可缺省;使用-s则以短格式显示信息,只显示user,tty,from,idle和what这几项内容;使用-u,则等效于uptime命令。
who命令:
给出目前在系统中的用户信息。
命令格式为
who[-uTlHqpdbrtas][file]
Who-qnx[file]:
指出每行显示的用户数为x个
Whoami:
列出调用who的用户
WhoamI:
列出调用who的用户
-u只列出当前注册用户的信息;-T在默认显示的基础上,再显示终端项state信息;-l只显示系统在等待有人注册的中断线,此时的name子段显示通常为LOGIN;-H在正规输出的各字段上显示标题;-q只显示当前注册的用户名和用户数;-p列出当前正在活动的任何其他进程;-d显示所有已经终止但是仍被init进程重新创建的进程;-b指出最近重新引导的时间和日期;-r指出init进程当前的运行级别;-t指出超级用户通过date命令对系统始终的最后一次修改时间;-a打开所有的任选项;-s,默认的任选项,显示name,line和time字段。
lps命令:
给出正在运行的进程的信息
ltop命令:
与ps命令的输出类似,动态地显示正在运行的进程的信息。
lfuser命令:
使用-u参数的fuser命令可以给出使用某一指定的文件的用户及相关进程的进程ID。
ldf命令和du命令:
了解磁盘的使用情况,df命令显示每个用户对磁盘的利用率,du命令显示用户文件占用的磁盘空间。
文件子系统管理
UNIX内核有两个基本的子系统:
文件子系统和进程控制子系统。
文件子系统负责文件的操作与管理;进程控制子系统则负责与进程相关的操作与管理。
本部分我们介绍文件子系统的管理。
1.几个术语
l逻辑盘:
物理实盘在内核中的简化。
用户使用逻辑盘不必了解物理实盘的具体情况。
因此系统管理员必须了解逻辑盘。
l分区:
内核在使用逻辑盘时。
常常为了各种需要将逻辑盘分成几个部分,每个部分就成为一个分区。
l文件系统:
文件系统存在于分区之中,它只是经过处理的分区,是UNIX系统在磁盘上可以存放数据的一种机制。
l设备项:
就是与设备对应的文件。
存放在/dev目录下。
针对多数使用的IDE硬盘,UNIX以如下形式定义一个IDE硬盘/dev/hd[drive][partition],每个IDE驱动器从0开始标记,分区从0开始标记。
如/dev/hd00为第一条线上的主硬盘。
对SCSI硬盘,表示机制相同,只是把/dev/hd换成/dev/sd。
2.文件系统的构成
文件系统的结构如下图所示。
l引导块(bootblock):
位于文件系统的头部,一般占一个扇区,它含有引导和启动操作系统的代码,虽然引导系统只需要一个引导块,但是每个文件系统都有一个(可能为空)的引导块。
l超级块(superblock):
用于描述文件系统的状态,包括文件系统的大小,可以存储的文件的数量,空闲空间的位置及其他一些有用的信息。
l索引节点表(inodetable):
存放文件系统中文件的索引节点,内核通过索引节点表中的索引来访问索引,从而访问文件。
有一个节点是根索引节点,通过它就可以访问文件系统的目录结构。
l数据块(datablock):
存储文件系统中文件的数据及进行文件系统管理必须的管理数据。
3.文件系统高级管理
主要包括对文件系统的创建、安装、拆卸、监控和重组等。
3.1与文件系统管理相关的文件
l/etc/mnttab文件:
当前系统中已经被安装的文件系统的列表。
存储格式如下
special:
mount-point:
fstype:
mount-option:
mount-time
其中
special:
文件系统的设备项名
mount-point:
文件系统被安装的目录名
fstype:
文件系统的类型
mount-option:
文件系统被安装时的一些参数
mount-time:
文件系统的安装时间
例如:
/dev/root/HTFSraw=/dev/rroot00
3.2创建文件系统
文件系统的创建必须在硬盘的一个分区上进行。
因此创建文件系统分为两步:
一是对硬盘进行分区;二是创建文件系统。
硬盘分区采用fdisk命令,其使用方法基本和dos下的fdisk类似,其中有专门创建UNIX分区的选项。
创建文件系统使用mkfs命令。
例如:
#mkfs/dev/fd0135ds18
对软盘创建HTFS文件系统。
3.3安装与拆卸文件系统
lmount命令:
实现对文件系统的安装
mount[-fFstype][-v][-r][-m][-ospecific-options]{special|mount-point}
没有任何参数时,mount命令列出所有来自安装表(/etc/mnttab文件)的备安装的文件系统。
Mount命令结束后,将在文件/etc/mnttab文件中加入相应一项。
lumount命令:
实现对指定文件系统的拆卸。
umount[-m]{special|mount-point}
该命令实现对已经安装在mount-point上的文件系统或设备项为special的拆卸,命令结束后,文件/etc/mnttab中对应的项被删除。
例如:
#mount–fHS,lower/dev/cd0/cdrom
把文件系统为HS的cdrom安装到/cdrom目录下,安装时区分文件名的大小写。
#mount–fDOS,lower/dev/fd0135ds18/mnt
把文件系统为DOS的软驱安装到目录/mnt下,安装时区分文件名的大小写
#umount/mnt拆卸对软盘的安装
#umount/dev/cd0拆卸对光驱的安装
3.4监控文件系统
系统管理员对文件系统进行管理的一件日常工作就是对文件系统的监控。
常用命令如下:
ldu命令:
对磁盘分区上的文件系统的使用情况进行统计,并显示出来。
du[-sar][name…]
给出指定文件name或指定目录name下所有(递归的)文件所占用的磁盘块数。
如果不指定name,则显示当前目录的磁盘块数。
-s:
对每一个指定的name,只给出总的站用磁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UNIX 操作系统 概述 基本知识
![提示](https://static.bdocx.com/images/bang_tan.gif)