1、UNIX简明教程DOC.NO. PRS-SM-04-04-NM01 (Unix.ed)Normal本地电信网综合网管监控系统UNIX简明教程Version. 1.1.21997.04Written By PowerisePOWERISE创智(湖南)软件园有限公司All Right Reserved目 录第一章 概述 1. 什么是Unix 2. 用户观点的UNIX系统 第二章 UNIX综述 1. Unix分层结构 2. Unix系统常用术语和概念 a. 访问许可 b. 文件系统 c. 文件和目录的概念 d. 多任务和多用户 e. 定向 f. 管道 g. 元字符 第三章 文件系统管理 1. 文件系
2、统空间管理 2. mount命令 a. 要在 /u上安装/dev/u,用下面命令: b. 要卸下上述文件系统,用下面命令: 第四章 进程管理 1. 关键字 2. 基本概述 3. 进程控制 4. 常用命令 a. ps b. kill c. nice 第五章 UNIX SHELL 1. shell执行环境及其工作流程 2. Bourne shell 第六章 UNIX的正文编辑器 1. vi正文编辑器 a. vi的历史 b. vi的使用 c. 系统崩溃后正文的恢复 第七章 网络管理和TCP/IP介绍 1. 建立TCP/IP连接 2. 管理本地局域网 3. TCP/IP的基本命令 a. 用Ftp命令传
3、输文件 b. 用Telnet登录到远程系统上 c. 文件共享 第八章 UNIX系统管理 1. 系统的启动与关闭 a. 启动系统 2. 停止系统 a. SCO Unix关机 b. Solaris Unix关机 3. 改变引导进程 4. SCO系统管理工具sysadmsh a. 用户帐号管理 5. cron机制 a. 查看定时器 b. 删除定时器 c. 生成定时器 d. cronfile文件格式: 第一章 概述1. 什么是UnixUnix是一个知识密集的系统,学会有效地运用它,将使您的计算机应用水平有一个突飞猛进的提高。本资料打算帮助你尽快地能够熟悉和使用这个操作系统,以提高您的工作效率,增强您在
4、Unix系统上使用应用软件的信心。Unix从1972年正式问世至今,已经走过二十多年的历程。到八十年代中期,Unix分为三个变种:BSD(Berkely System Distribution)、XENIX、UNIX System V。在本资料中专门讨论是:UNIX System V。目前UNIX System V有众多商业公司的各种移植版本,这些公司中有AT&T(AT&T SVR4),IBM(AIX Unix),Hewlett-Packard(HP-Ux),Sun Soft(Solaris OS),Santa Cruz Operation, INC(SCO Unix)。Unix是一个分时操作
5、系统,它是由一组控制用户应用程序与最低层的机器功能交互的程序。它合理地组织计算机的工作流程,尽可能有效地利用系统中的资源,让用户适时地运行各自的程序。它控制与计算机相连接的外围设备。它提供文件系统,管理诸如程序,数据之类的信息。它提供并支持:TCP/IP协议组、UUCP等广泛的网络协议,使得一台独立的Unix机器不必另外的网络协议软件就能轻松入网工作。2. 用户观点的UNIX系统使用DOS的用户在登录DOS系统时不必提供口令就可以对DOS系统做任何操作,但是因为Unix系统是一个支持多用户并发访问的系统,当您要得到Unix的服务时,它总是要求您有一个登录记录,在这个登录记录中包含有您的用户名和
6、对应的Password以及其它一些系统需要的信息。这个登录记录是一个称为root的超级用户为您设置的(具体设置用户登录记录的方法可以参见本资料的Unix系统管理一章中的用户帐号管理小节)。用户口令可以由用户自己在以后修改它。下面的例子说明了当用户wuyan试图登录时是如何工作的。wuyan的口令是ccwg1025(注意:出于安全性的原因,在实际登录过程中口令是不显示出来的)。login : wuyan - 键入登录用户名称Password: - 键入口令进入您的登录目录值得注意的是,Unix区分大小写。这一点与DOS操作系统不同。第二章 UNIX综述1. Unix分层结构广义地说,Unix通常
7、被理解为由:内核以及内核外的一些必不可少的程序。例如:C编译器,VI编辑器,命令语言,复制与打印文件所需的程序等等。它的分层结构如图所示:机器硬件:计算机系统的物理组成。如:CPU、磁盘驱动器、随机访问存储器(RAM)、终端等等。内核层:内核是计算机系统中软件、硬件资源的管理者。处于用户程序和裸机之间,是计算机向外界联系的界面,因此是Unix系统中最关键的部分。内核的功能是负责提供进程生存的条件,调度进程,分配和管理CPU、内存和外部设备,主管RAM和外设之间数据的传送,管理信息。Shell层:shell程序是把用户从直接访问操作系统内核中分离出来的程序。它使得用户透明地访问和使用Unix内核
8、所提供功能。它在核外提供了Shell和管道线等一大批实用程序,包括:Unix命令解释器(Bourne Shell、C Shell、Korn Shell),vi 编辑器,等等。应用软件层:C编译器,Syabse、Oracle数据库系统以及基于这些数据库系统之上的本地网监控系统。2. Unix系统常用术语和概念a. 访问许可Unix的各种实现均提供了固有的安全性。因为Unix环境和DOS环境有极大的不同。熟悉DOS的人都知道DOS环境是专为一个用户而设计的,没有什么机制防止多个用户连续使用同一台机器(除非用户采用一些物理上的措施),而且DOS也意识不到从一个用户到下一个用户的转换,根本不去核实用户
9、是否允许访问系统,没有提供什么手段防止一个用户的文件被其它用户所破坏。对Unix来说,由于是多用户和多任务的特性,情况则大不一样。要访问Unix,用户首先要在一台终端上注册,给出口令以向系统确认用户身份。一旦用户进入了系统,用户所创建的文件就由系统自动打上标记,将其作为文件所有者。并且建立一组存储权限(Permissions)与文件相联系,用以控制一组用户,使其能够进行读、修改或删除文件的操作,用户可以建立一组缺省的存取权限标记,Unix将其同用户创建的每一文件相联,也可以单独为一特定文件修改存储权限标记(具体设置方法可查阅下一章的Unix Shell环境一节)。一般的,Unix用户对自己所拥
10、有的文件可以做他们想做的任何处理。这意味着如果一个用户创建了一个文件,或者被分配而得到了一个文件的所有权,就可以不受存储权限的限制,去进行任何他认为合适的操作。也就是说,如果文件的存储权限是只读,文件所有者可以逾越这一存储权限,去写这个文件,甚至将它删除。其它用户则不能逾越这一存取权限设置。但是,有一个例外:超级用户(root用户)。超级用户拥有特殊的权限。在我们所说的安全机制范围内,超级用户可以做它相做的任何事。总之,Unix系统对文件的保护分三种级别和三种权利,如下表所示:级别权利中文名系统内对应字母中文名系统内对应字母用户主u读r同组g写w其它o执行x与存储许可相关的常用Shell命令有
11、:chmod、chown、chgrp、passwd。例如: *使文件可读 chmod +r file*去掉其它用户对文件可读性%chmod a-r file *使文件可写 %chmod +w file*去掉文件可写性%chmod -w file *使文件可执行 %chmod +x file*去掉文件可执行性%chmod -x file*同时修改文件上述命令 %chmod +r-w-x file *改变文件所有者 %chown own_name file*改变文件属组 %chgrp grp_name file*同时改变文件可读/写性,所有者及属组%chmod 777 file*改变用户口令%pa
12、sswd 用户的登录名称b. 文件系统文件系统(File System)是操作系统的一个特定部分,它由文件、目录以及寻找定位和访问它们所需要的信息组成。一个文件系统可以被看作一个由目录和文件构成组成的结构。每一Unix系统在其主硬盘上至少有一个文件系统,这个文件系统被称为“根文件系统(the root file system)”,并且由符号/表示。根文件系统包括构成操作系统的程序和目录。主硬盘也可以被划分成多个文件系统,一个最常见的划分是 /u 文件系统,它是用来隔离用户帐号和根文件系统的。Unix文件系统是按照层次结构组织的。在Unix文件系统中游历时应该注意如果键入不带参数的cd命令,那么
13、当前目录就被设置成用户的HOME目录。HOME目录的即用户在登录进入系统后所在的缺省目录,注册目录。在系统中通常用环境变量HOME来指示用户的注册目录的路径。c. 文件和目录的概念I.) 文件在Unix系统中,一切均可以是文件。文件是命了名称的一组信息。文件名是作为区分和存储的依据。Unix的文件不象某些操作系统中采用记录概念,它仅仅是一序列字节而已。系统不赋予文件任何结构,也不对文件内部做任何解释。文件信息被存放在磁盘或磁带那样的海量存储设备上。用户对文件的访问是由操作系统控制文件系统中的文件的存储来实现的。文件存储控制是多用户操作系统中文件系统的一个重要部分,没有这一机制,就无法保证系统文
14、件和表格的安全性。Unix系统中的一个重要特性是所有的I/O硬件与文件联在一起。对I/O设备的存储(控制)犹如存储普通文件一样。每一台外设(打印机、终端、磁盘等等)至少有一个特别的文件。用户对外设的操作就通过操作该外设在 /dev目录中对应的文件名来操作它。因此,文件可以根据其在Unix系统中不同的组织、管理、和用途等特征分为四种: 普通文件 (Ordinary File) 目录文件 (Directory File) 设备文件 (Special File) 符号符号连接文件 (Symbolic Links File)普通文件用于存放信息,一个普通文件可能包含能构执行的程序,资料文档,或计算机处
15、理的其它信息。用vi 编辑的文件是普通文件。普通文件又可分成两类:文本普通文件(Text File)和二进制普通文件(Binary File).文本文件只包含ASCII字符,且该文件在机器内存中是每一字节存储一个ASCII字符的形式。二进制文件是以其在内存内的存储格式存储在磁盘文件中。目录文件是包含一组文件的目录的文件,也就是说目录文件中的内容是一个一个的目录项。每当文件被创建时,便在某个目录文件中登记一个目录项。每个目录项占16个字节长,其中14个字节放在文件名分量,2个字节指示磁盘上与之有关的管理信息的位置,进而可以找到信息的具体存放位置。设备文件也叫设备特别文件,它代表某一硬件设备。设备
16、文件均被存放在 /dev目录下。设备文件又可以分为两类:块设备(Block Device)和 字符设备(Character Device)。块设备是以一块作为输入输出单位(一块512 Byte)。字符设备以字符为输入输出单位。符号连接文件则包括一指针,这指针会指向文件的所在。它在树状文件结构上与目录、普通文件一样,也具有名字。但它内部没有内容,只是一个指针,指向某个文件和目录,若要查看其内容,看到的却是该指针所指的文件或目录的内容。II.) 路径与目录/usr/wuyan/wuhong 称为文件wuhong的路径名。从根目录开始的路径称为绝对路径,不从根目录开始所任意一个路径明称为相对路径。在
17、Unix文件系统中,与文件相关的信息量比DOS文件系统要的要大得多。这是因为Unix文件系统是为多用户并发存储而设计。于DOS文件系统不同的是,这些相关的信息并不是存放在目录文件中,而是存放在文件系统里一个称为索引节点的结构中(索引节点一般也称为i节点,关于i节点的描述请查阅本章中i节点一节)。因此,Unix的目录文件中的目录项很小,仅存放一个文件名和表示一个i节点号的数字。用ls -l命令的输出给出了目录中文件的各类属性信息。输出的第一个域表示文件类型和存储权限。这个域的形式如下:drwxr-xr-x 表示该文件是目录0123456789其中数字0到9的含义为:0位置:、d、b、c、p分别对
18、应该文件为普通文件、目录、块设备文件、字符设备文件、管道文件。在1到9位置每一位置仅会出现。r。w。x分别表示无存储权限,有读权限,有写权限,有执行权限13位置:表示文件所有者对该文件的存储权限。46位置:表示用户小组的存储权限。79位置:其它用户的存储权限。III.) 对文件和目录操作ls-lcfilename列出文件的ctimels-lufilename列出文件的atime 读文件ls-lfilename列出文件的mtime当您在Unix操作系统提示符后用与DOS操作系统中DIR类似的列目录命令:l ( 或 ls -l ) SCO Unixls -l Solaris Unix系统在屏幕上会
19、显示:total 82drwxr-xr-x 2 pfep group 32 Nov 15 14:15 bin-rw-r-r- 1 pfep group 2849 Mar 20 13:43 termios第一个域的描述请见上一节。第二个域是文件的链接数域。文件链结是指一个文件别名的数目。注意:对任意别名的修改均会影响到原文件。第三个域是文件所有者的名字。第四个域是文件所属组名字。第五个域是文件大小。第六个域是文件最后修改的月、日、时。第七个域是文件名称。有关文件和目录操作的常用命令如下:* 查看当前目录:%pwd* 进入目录:%cd directory*退回上一级目录%cd .*创键目录%mkd
20、ir directory *删除目录(带子目录一并删除)%rm -r directory*拷贝目录%copy directory_r directory_o *移动目录%mv directory_r directory_o *删除文件 %rm file *拷贝文件 %cp file_r file_o *移动文件(给文件改名) %mv file_r file_o *可用下列任意命令查看当前目录下的文件。 %lf %ls %ls -l %ls -a %l*打印两个文件之间所有不同之处 %diff file_1 file_2*可用下列命令查找指定目录下的某个文件: %find pathname op
21、tion其中option选项有:选项说明-atime number查找在最近指定的天数(number)内未曾访问过的文件。Mtime 修改时间 mmin最后修改时间。Ctime 创建时间-exec cmd查找符合指定标准的文件并对那些文件执行cmd。命令参数()由find所找到文件的当前路径名所取代。一个逃逸的分号(;)必须跟在cmd结构的后面。如(查找/u目录下属于test用户的文件并删除掉。):%find /u -user test -exec rm ;-group gname寻找属于组gname的文件。如果gname是数字并没有在/etc/group中出现,那就把它当作一个GID。-na
22、me file寻找带有指定名字的文件。如:find /u -name temp -print|more-ok cmd它类似于-exec,不同的是它还以提示的形式显示所产生的命令;只有当用户对于提示键入y时cmd才执行。-perm onum查找完全符合onum(chmod命令所用的八进制数)所规定的访问权限的所有文件。如:find /u -perm 0777 -print-print显示find所找到的任何文件的位置。-size number查找大小大于指定块(512个字节)数的文件。如:%find /u -type d -size +3 -print-type x查找指定类型的文件;例如目录d
23、型或文件f型。-user uname查找所有属于用户uname的文件。如果uname是一个数字并且没在/etc/passwd中出现,那它就被解释为注册ID。d. 多任务和多用户应该着重提出,Unix是一个多任务和多用户环境。在Unix环境下开发和运行应用程序时应当充分的利用这一点。系统允许您同时运行多个作业,您可以在后台运行多个作业而让您的注意力集中在您的终端上,监视正在显示的那个作业。只要输入指令,Shell将会启动一个进程去执行输入的指令。一般来说,进程都以前台方式处理,然而要以后台方式起动一进程,需要在指令最后加上&符号。要指出的是当用户logout退出系统后,由该用户所启动的后台进程(
24、还在执行)将会随该用户退出系统而被中止。若要保留这些后台进程使其继续执行,则需要用命名nohup启动后台进程。语法:nohup command argnments 例如:*在后台启动命令startserver %startserver&*在后台启动命令start ,用户退出系统后,名为start进程不退出%nohup start对于SCO Unix的系统,您可以通过键盘切换到不同虚终端上,以不同的用户登录系统。具体的键盘操作方法如下:Ctrl + Alt + Fn 其中:n取数字 112表示功能键F1到F12。e. 定向用户与计算机的基本通讯设备是终端。注册以及使用Shell命令都是在终端上进
25、行的。绝大部分命令要从终端读入信息,而它们的输出要从终端上显示。Unix约定,终端被当作标准输入与标准输出,这样可以简化程序的约定。若没有指明I/O时,约定就由终端输入输出;若指明了I/O设备,就由指定的I/O设备输入输出。例如:ls、pwd、who、echo、date等那样的程序就是把输出经终端传送给用户的;而cat、pg、cd、vi等都是从标准输入上读入,然后又把结果写到标准输出上。标准化有利于问题的简洁表达,提高效率。 输出重定向程序的输出也可不送往终端,而放到文件中,称为重定向。Unix中的符号可以把标准输出导向一指定文件。例如:%ls out当在Unix中用类似DOS中的type命令
26、:cat、pg查看文件out时,可以看到ls命令的结果。输出重定向功能常用于打印ASCII文件(文本文件)。因为仅需要把输出导向位于 /dev目录下的设备文件即可。例如:%cat wuyan.txt /dev/lp用单个输出重定向会改写重定向所在文件的内容,若用,则把输出接在文件末尾。 输入重定向Unix Shell是从终端上读入命令解释执行的,但也可以不采用这种标准输入,而从某个文件中读入命令,称为输入重定向,用符号表示。例如:%sort wuyan_file排序结果%用sort对文件wuyan_file排序,sort命令的输入是wuyan_file文件的内容,而非键盘终端的输入,但是结果仍
27、然显示在终端上。要提醒读者注意的是,对的解释由Shell来完成,而不是由各个命令程序来处理。程序本身意识不到它的输入输出有何变化。Unix系统把定向的功能集中由Shell完成,用意在于使任何命令均可采用输入输出重定向来完成原来无法完成的工作。例如:*对当前目录内的文件计数%ls temp%wc -l temp%grep wuyan temp当然,这也导致一个重要约定。命令:%sort temp和命令:%sort temp均是对文件temp的内容做相同结果的排序工作,但实现的机制却不一样。因为串“ temp”是由Shell解释执行,命令sort没有把temp当作参数变元,而是对其标准输入排序现在
28、已经被Shell重定向,因此来自于文件。第二例是把名字temp作为参数变元传送给sort命令,sort命令读文件内容并将它排序。可以将输入输出重定向同时用在同一命令行内,例如:%sort tempsort命令的输入来自文件wuyan_file,而把排序后的结果导向文件temp。f. 管道在定向一节中查找一特定用户是否登录的实现过程依赖于一个技巧:把一个程序的输出经由一个临时文件放与另一个程序的输入。显然,在我们使用定向技术的时候有时会不得不使用一个这样临时文件。Unix系统中另外一种技术与有定向技术类似的相同功能但确无需用户去建立临时文件,这种技术就是:管道。管道是可以不经过任何中间文件,直接
29、把一个程序的输出作为另外一文件的输入相连接的手段;管道线则是两个或者多个程序利用管道进行的一种连接。系统中Shell用|表示管道连接的特殊记号。例如:*对当前目录内的文件计数%ls | wc -l由上例可知,管道线在命令行中比重定向更有效。有重定向的命令行在用户没有建文件权利的目录中是不能被运行的,而管道线命令行确无此限制。管道线是一个程序的标准输出和另一个程序程序的标准输入之间的连接。任何从终端上读入均可以代之从管道中读入;任何往终端上写的程序均可以向管道中写。当没有指定文件时,从标准输入中读的约定就起作用,任何符合这个约定的程序均可以使用管道线。由此可见,只能把管道线前面的命令的输出作为通
30、信通道,而管道的输出数据仅供管道线后面的数据读取,这就是管道的单向性。可以在同一命令行上让管道线中有任意多个程序。管道线中的程序是同时运行的,它们之间的一切调度和同步均由系统内核来完成。也就是当一条管道满时,其前面的一条命令停止运行;而当管道空时,其后面的一条命令停止运行;除此两种情况外,用管道所连接的两条命令“同时”运行。这就是管道的同步性。在用户要求建立管道线时,事情是由Shell安排,各个程序用不着考虑重定向的问题。当然,程序案按这种方式组合起来后,它们必须能构合理地操作。由于Unix系统的多数命令遵循相同的设计思想,因此,它们在任何位置都能构适应管道线的需要。通常情况下,使用命令的形式为:命令名 任意参数变元 任选文件如果没有给出文件名,该命令便读它的标准输入,缺省情况下就是指终端输入,但是也可以重定向到某个文件或管道输入。与此同时,在输出方面,大多数命令把其输出写到标准输出,在缺省情况下就是发送到终端,然而也可以重定向到某个文件或管道。我
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1