unix系统管理.pdf

上传人:qwe****56 文档编号:70342613 上传时间:2023-01-19 格式:PDF 页数:323 大小:1.43MB
返回 下载 相关 举报
unix系统管理.pdf_第1页
第1页 / 共323页
unix系统管理.pdf_第2页
第2页 / 共323页
点击查看更多>>
资源描述

《unix系统管理.pdf》由会员分享,可在线阅读,更多相关《unix系统管理.pdf(323页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、UNIX 基础基础 第一章:第一章:UNIX 操作系统简介操作系统简介 1.1 什么是操作系统?什么是操作系统?操作系统是一种特殊的用于控制计算机(硬件)的程序(软件)。操作系统在资源使用者和资源之间充当中间人的角色。为众多的消耗者协调分配有限的系统资源。系统资源包括,CPU,内存,磁盘,和打印机。举个例子,一个用户(也可以是程序)将一个文件存盘,操作系统就会开始工作:管理磁盘空间的分配,将要保存的信息由内存写到磁盘等。当用户要运行一个程序时,操作系统必须先将程序载入内存,当程序执行时,操作系统会让程序使用 CPU。在一个分时系统中,通常会有多个程序在同一时刻试图使用 CPU。操作系统控制应用

2、程序有序地使用 CPU,就好象一个交通警察在一个复杂的十字路口指挥交通。十字路口就象是 CPU;每一条在路口交汇的支路好比一个程序,在同一时间,只有一条路的车可以通过这个路口,而交通警察的作用就是指挥让哪一条路的车通过路口,直到让所有路口的车辆都能通过路口。UNIX 操作系统的历史操作系统的历史 UNIX 操作系统 1969 年在贝尔实验室诞生。Ken Thompson 在udd Canaday,Doug Mcllroy,Joe Ossana,and Dennis Ritchie,的协助下,写出一个小的分时系统,开始得到关注,在许诺为实验室的管理人员提供一个文档准备工具后,UNIX 先驱们可以

3、使用到一台更大的计算机,从而得以继续他们的开发工作。在七十年代的中期,一些大学得到使用 UNIX 的许可,并很快在学院之间得到广泛流行,其主要的原因是:小巧:最早的 UNIX 系统只占用 512K 字节的磁盘空间,其中系统内核使用 16K,用户程序使用 8K,文件使用 64K。灵活:源代码是可利用的,UNIX 是用高级语言写成,提高了操作系统的可移植性。便宜:大学能以一盘磁带的价格得到一个 UNIX 系统的使用许可。早期的 UNIX 系统提供了强大的性能,使其能在许多昂贵的计算机上运行。以上优点在当时掩盖了系统的不足:没有技术支持:AT&T 在当时大部分的资源和都用在 MUTICS 上,没有兴

4、趣开发 UNIX 系统。Bug 的修补:由于没有技术支持,bug 的修补也得不到保证。很少的,或者根本没有说明文档:用户有问题经常只能是去看源代码。当 UNIX 传播到位于 California 的 Berkeley 大学的时候,Berkeley 大学的使用者们创建了自己的 UNIX 版本,在得到国防部得支持后,他们开发出了许多新的特性。但是,作为一个研究机构,Berkeley 大学提供的版本和 AT&T 的版本一样,也没有技术支持。当 AT&T 意识到这种操作系统的潜力后就开始将 UNIX 商业化,为了加强产品性能,他们在 AT&T 的不同部门进行 UNIX 系统开发,并且开始在系统中结合B

5、erkeley 开发出的成果。UNIX 最终的成功可以归结为:一个灵活的、包含多种工具的用户界面与操作环境。模块化的系统设计可以很容易地加入新的工具。支持多进程,多用户并发的能力。Berkeley 大学 的 DARPA 支持。强大的系统互连的能力。能在多种硬件平台上运行。标准化的界面的定义促进应用的可移植性。1.3 UNIX 系统的特性系统的特性 UNIX 为用户提供了一个分时的系统以控制计算机的活动和资源,并且提供一个交互,灵活的操作界。UNIX 被设计成为能够同时运行多进程,支持用户之间共享数据。同时,UNIX支持模块化结构,当你安装 UNIX 操作系统时,你只需要安装你工作需要的部分,例

6、如:UNIX 支持许多编程开发工具,但是如果你并不从事开发工作,你只需要安装最少的编译器。用户界面同样支持模块化原则,互不相关的命令能够通过管道相连接用于执行非常复杂的操作。运行中的系统 内核是运行中的系统,它负责管理系统资源和存取硬件设备。内核中包含有它检测到的每个硬件的驱动模块,这些模块提供了支持程序用来存取、内存、磁盘、终端、网络的功能。当安装了一种新的硬件,新的模块会被加入到内核之中。运行环境 工具和应用程序 UNIX 的模块化设计在这里表现得非常明显,UNIX 系统命令的原则就是每条命令做好一件事情,组合一系列命令就组成工具箱,选择合适的命令就可以完成你的工作,恰当地组合这些工具能够

7、帮你完成更复杂的任务。从开始,UNIX“工具箱”就包括了一些可以同系统进行交互的基本命令,UNIX 系统也提供了以下几种工具:电子邮件(mail,mailx)文字编辑(ed,ex,vi)文本处理(sort,grep,wc,awk,sed)文本格式化(nroff)程序开发(cc,make,lint,lex)源程序版本管理(SCCS,RCS)系统间通讯(uucp)进程和用户帐号(ps,du,acctcom)因为 UNIX 系统的用户环境被设计为一种交互的,可编程的,模块化的结构,新的工具能很容易地开发,并且添加到用户工具箱之中,而哪些不是必须的工具能够被省略,这种省略不会影响系统的操作。举个例子,

8、一个程序员和一个打字员同时在使用 UNIX 系统,他们会使用许多普通的命令,虽然他们的工作性质不相同。他们会用一些与他们的工作相关的工具。程序员使用的工具会包括程序开发和程序管理的工具,而打字员会使用字处理,文档管理的工具。有趣的是:程序员用来修订程序的工具同时也被打字员用来文档的修订。因此,他们的系统看上去十分相似,但是,每一个用户选择模块都与他或她的应用要求密切相关。UNIX 系统的流行很大程度可以归结与:UNIX 系统的完整性与灵活性使其能适应许多的应用环境。众多的集成的工具提高了用户的工作效率。能够移植到不同的硬件平台。SHELL Shell 是一个交互的命令解释器。命令是在 SHEL

9、L 提示符下键入,shell 会遵照执行键入的命令。用户通过 shell 与计算机交互。shell 从键盘获得用户键入的命令,然后将命令翻译为内核能够理解的格式。然后系统就会执行这个命令。你会注意到 shell 与内核是分离的两部分。如果你不喜欢当前 shell 提供的特性,你能很容易地用另一种 shell 代替当前的 shell。一些 shell 是命令行方式,一些提供菜单界面。UNIX 系统支持的普通的 shell 都包括一个命令解释器和一个可编程的接口。有四个最通用的 shell,分别是:Bourne shell:由 AT&T 提供的最原始的 shell,由贝尔实验室的 Stephen

10、Bourne 开 发。可提供命令的解释,支持可编程接口,提供诸如变量定义、变量替代、变量与文件测试,分支执行与循环执行等功能。C Shell(/usr/bin/csh):C Shell 是在 California Berkeley 大学的 Bill Joy 开发,一般存 在于 BSD 系统中,于是被称为 California shell,简写名称为 C Shell。它被认为是 BourneShell 的一个改进版本。因为它提供拉交互的特征例如命令堆栈(允许简单地调用和编辑以前输入的命令,)别名(提供对已有命令取个人的别名)Korn Shell(/usr/bin/ksh):贝尔实验室最新的开发成

11、果,由 David Korn 开发成功。它被认为是是一种增强型的 Bourne Shell,因为它提供对简单可编程的 Bourne Shell 界面的支持,同时提供 C Shell 的简便交互的特征。它的代码也被优化来提供一种更快,更高效的 shell。POSIX Shell:POSIX 是一种命令解释器和命令编程语言,这种 shell 同 Korn Shell 在许多方面都很相似,它提供历史机制,支持工作控制,还提供许多其它有用的特性 表 11 shell 特征的比较 1.4 UNIX 的其他特征的其他特征 层次化的文件系统 存储在磁盘上的信息称为文件。每一个文件都分配有一个名字,用户通过这

12、个名字来访问文件,文件的内容通常是数据,文本,程序等等,UNIX 系统通常有几百个文件存在,于是另外一种容器:目录被用来让用户在一个逻辑上的分组里管理它的文件。在 UNIX 系统中,目录被用来存储文件和其它的目录。文件系统的结构非常复杂,如果用户的工作部门改变,用户的文件和目录能很容易移动,改名,或组织到新的或不同的目录中,这些操作只需使用一些简单的 UNIX 系统的命令即可完成。文件系统就象一个电子排列柜,它能让用户分割,组织他们的信息到适合自己环境与应用的目录中去。多任务 在 UNIX 系统中,能有几个不同的任务在同一时刻执行。一个用户在一个终端可以执行几个程序,看上去好象是同时在运行。这

13、意味着一个用户可以编辑一个文本文件时格式化另一个文件,同时打印另一个文件 实际上,CPU 在同一时刻只能执行一个任务,但是 UNIX 系统能够将 CPU 的执行分成时间片,通过调度,使在同一时间内执行,对用户看来,就好象在同时执行不同的程序一样。多用户 多用户就是允许多个用户在同一时刻登录和使用系统。多个终端和键盘能连接在同一台计算机上。这是多任务功能的一种自然延伸。如果系统能够同时运行多个程序,一些程序也能够支持多个用户线索。另外,一个单个用户能够通过多个终端在不同的时刻登录同一个系统。这种体系结构的一个很大的好处是:工作组的成员能同时操作相同的数据。第二章:用户登录和普通命令定位第二章:用

14、户登录和普通命令定位 目标 完成了这一章,你能够做以下事情:登录 UNIX 系统 退出 UNIX 系统 使用联机帮助查找命令用法 理解 shell 命令的格式 用一些简单的命令来鉴别系统用户 用一些简单的命令来与系统中的用户通信 用一些简单的命令来实现多种功能并输出结果 2.1 一个典型的终端会话过程一个典型的终端会话过程 为了能和计算机通信,需要有以下条件:一个具有完全 ASCII 字符集的终端 一条连接计算机的数据通信线路 一个登录 ID(用户身份确认)一个密码 一个终端会话过程开始于用户登录一个系统认可的终端,结束于退出信号(logoff),计 算 机会在你登录期间响应你的键入的命令 U

15、NIX 通过用户名(有时也称为登录)来识别是否是系统中的用户。你的用户名,就是系统管理员分配给你的名称,通常是你的名字或是名字的缩写。你帐号的密码可以是一个随意的的字符串,你的系统管理员会提供给你一个你可以更改的初始化密码,你的密码是你私人所有的,你自己决定密码是什么,没人知道或能找出你的密码是什么。如果你忘记了你的密码,你就不得不求助于你的系统管理员。因为只有系统管理员有权删除修改用户的密码。在终端上出现登录提示符时,你就可以输入用户名和密码登录以系统。在登录上系统后,你可以输入命令,SHELL 会解释命令,操作系统会为你执行命令,任何执行命令产生的响应都会显示在你的屏幕上。当工作结束后,你

16、可以退出系统以终止终端对话,这会释放终端以便让其他人可以通过这台终端登录系统。建议你在离开时退出系统,以防其他人使用你的帐号使用系统。2.2 登录和退出登录和退出 你需要执行以下步骤来登录系统:打开终端,如果一些终端显示已经超时(现象为屏幕上没有任何显示)你只需要敲一个键(例如 shift 键)激活显示。如果你没有看到 login:提示符,或者出现一些垃圾字符,敲一下回车,如果仍旧不工作,敲一下 break 键。垃圾字符通常是计算机试图以错误的速度与你的终端联结,break 键告诉计算机尝试另外一种速度,你可以通过敲 break 键来实验不同的速度,但记住在每次敲键后要等待机器响应。当 log

17、in:提示符出现后,键入你的登录。如果 passwd:提示符出现,键入你的密码,为了确保安全,你键入的密码不会在屏幕上显示。注意:键盘上的退格键在登录过程中没有删除功能。$符号是 Bourne Shell(/usr/old/bin/sh),korn Shell(/usr/bin/ksh),和 POSIX Shell(/usr/bin/sh)的标准提示符,而符通常表示这是 C Shell(/usr/bin/csh)。如果你用的是 POSIX shell,你会看到一个$提示符。而#提示符一般是为系统管理员保留的。当你以系统管理员的身份登录时,会出现这个符号。这也为你的特殊身份提供一个有用的提示功能

18、:因为作为系统管理员,你能更改(或删除)系统中的任何数据。密码的说明:第一次登录系统,你的帐号可能被设置为要你键入密码。你提供的密码必须满足以下条件:你的密码必须不小于六个字符 前六个字符中至少要有两个字母。前六个字符中至少要有一个不是字母。当你第一次输入你的密码后,系统会提示你重新输入一次以确认密码。然后系统会重新出现登录提示符,你可以用你的新的密码来完成登录步骤。2.3 Shell-命令解释器命令解释器 当你登录的过程中,shell 已经开始在为你工作。终端上会出现提示符,并且解释执行你输入的命令,我们会在本章剩下的部分讨论不同的命令,包括如何使用在线帮助,找出谁登录了你的系统,和如何同你

19、系统中的其他用户通信等等。正如你在上图中所看到的,shell 还支持许多其他的命令解释功能 2.4 命令行的格式命令行的格式 在你看到 shell 提示符($)后,你就可以键入命令。一个正确的命令名通常是在命令行的第一项。许多的命令还有命令选项,选项的作用是为了扩展命令功能,而参数通常是一些文本,一个文件名,或者是目录名等命令可以操作的东西。选项通常以短横线(-)开始。空字符的作用是分割命令,选项,参数,空字符被定义为一个或多个空格符(space),或 TAB键,例如:命令 echo Hi 和 echoHi 是有很大的差别的,计算机会将第一个理解为命令 echo 和一个命令的参数(Hi),而第

20、二个会被认为是一个名为 echoHi 的命令,而这个命令可能不是一个有效的命令 每个命令输入之后都应该输入回车符,回车符会将命令送往计算机执行。在上图中,回车符会被系统识别,而其他的字符不会产生作用。终端的输入支持“预键入”,预先键入的意思是在你键入一个命令后在提示符返回前立即键入另一个命令,你键入的命令会先被缓存,并在当前命令执行完成之后执行。注意:UNIX 的命令是对大小写敏感的,大多数的命令和参数都是小写字符。因而,“echo hi”是一个合法的命令而 ECHO hi 不能被系统识别。注意:你可以同时键入两个命令,方法是用分号(;)分割两个命令,如:$ls;pwd 2.5 第二提示符第二

21、提示符 Bourne,Korn,和 POSIX shells 都支持多命令行。如果 shell 要求更多的输入来完成一个 命令,在回车前,就会出现第二提示符()。有些命令是成对出现的,而有的字符要求有结束字符,(例如一个开始的 if 要求 fi 来结束,开始的括号要求一个结束的括号,一个开始的引号要求一个结束的引号。)如果你键入一个错误的命令,就像上图中描述的一样,SHELL 会显示第二提示符。通常按ctrl+c 会中止当前正在运行的程序,然后返回到 SHELL 提示符下,你可以通过 stty -a 命令来自行定义你的中止键 2.6 帮助手册帮助手册 联机帮助手册对查找命令用法非常有用,但是它

22、不是作为教材而设计的,它对学习如何使用UNIX 操作系统的帮助也不大。有经验的 UNIX 系统用户使用帮助来查找命令的细节和用法 就像上图中表示的那样,帮助手册被分为几个部分。以下是每一节的简短的说明:第一节:用户命令 这一节描述直接被用户或是 shell 脚本使用的程序。任何系统中的用户都可以使用这个帮助。第 1M 节:系统维护 这一节描述系统管理员用来维护系统的命令的使用,只有 root 用户才能使用。第二节:系统调用 这一节描述与 UNIX 系统内核接口的函数,包括 C 语言的接口。第三节:函数与函数库 这一节阐述了系统提供的与直接系统调用不同的一些二进制格式的函数。这些函数通常通过C

23、程序来存取,例如:输入输出处理和数学计算的函数。第四节:文件格式 这一节定义用户配置文件的组成,文档,和不同文件类型的格式(例如 a.out)第五节:多方面的主题 这一节包括不同的信息,例如头文件的描述,字符集,宏包。和其它的主题。第七节:特殊的设备文件 这一节讨论特殊的设备文件的特性,这些文件提供 uniz 系统与系统 I/O 设备,如磁盘,磁带机,打印机)之间的链接。第九节:字典 这一节定义了贯穿整个帮助手册中的术语。在每一个章节里,命令以字母的顺序列出,用户可以通过检索手册的索引来找到 一个命令。2.7 手册页中的内容手册页中的内容 了解帮助页的格式是非常重要的。在整个 UNIX 系统的

24、文档中,参考以 cmd(n)的格式给出,其中 cmd 是命令名,而 n 代表八个帮助章节的其中一个,因而,date(1)代表在帮助手册第一节中关于 date 命令的内容,在每一个章节里,命令是以字母的顺序列出的,这是由维护帮助手册的方式造成的,页的编号没有意义,每一个命令都是从第一页开始的。每一个帮助页(一些命令有多个帮助页)有几个主要的标题。帮助页也不总是有标题。以下是每个标题的列表和其内容的描述;名字 包括命令名和简短的描述,章节中的这个文本被用来产生索引。大纲 定义了如何引用一个命令。黑体字的条目表示必须在终端上正确输入的部分。方括 号中的是任选项,规则类型的条款会被你所选择的合适的文本

25、所代替,省略号(.)被用来显示先前重复的参数。如果对摘要的意思有疑问,你可以去阅 读DESCRIPTION 项。描述 包括每个命令和选项的功能的详细描述。额外的影响 提供不同口语的编程信息,这对于国际化的支持非常有用。网络特性 基于网络特征的功能。返回值 描述程序调用完成后的返回值。诊断信息 解释命令可能出现的错误信息 错误 列出错误的条件合相应的错误信息或是返回值。范例 提供命令使用的范例。警告 指出潜在的陷阱。相关性 指出与不同硬件平台相关的 UNIX 系统操作的变化。作者 命令的开发人员。文件 命令使用的任何特殊的文件。SEE ALSO 指明帮助手册中的其他页,或是其他包含附加信息的文档

26、。BUGS 讨论已知的漏洞和缺陷和所支持的修正 标准一致性 描述每一个条目支持的标准。2.9 联机手册联机手册 有另外一种方法从帮助手册中检索信息。在许多 UNIX 系统中,帮助手册通常是在线的。在线帮助手册通过 man 命令来存取。语法是:man-k keyword 或者 man 12345791m command 其中:man-k keyword 列出所有的命令,在命令描述中有字符串 keyword。man 1234579m command 显示指明帮助章节的命令的帮助页。man command 显示命令的默认的帮助条目。也许一个 命令的条目,在不止一个的帮助页中。以上的所有的命令要求系统

27、管理员已经正确地安装了在线帮助。在以上的例子中,man passwd 会显出改变密码的命令。man 4 passwd 会显示 passwd 文件的格式。在指定命令的帮助条目的第一页已经出现在屏幕上。你可以使用以下的方法浏览:return 显示下一行 space 显示下一页 Q 或 q 退出 man 命令并且回到提示符下:有时,在你读取在线手册时会看到一下的信息:reformatting retry.wait.这个信息的意思是指定命令的帮助手册页需要解压缩,因为对当前用户来说是第一次使用。这条信息在用户下一次检索这个手册时不会再出现。多个帮助手册页 一些命令有多个帮助条目。你可以用 wherei

28、s 命令来显示帮助的章节。例如:$whereis passwd passwd:/sbin/passwd/usr/bin/passwd/usr/share/man/man.1.z/passwd.1 /usr/share/man/man4.Z/passwd.4$whereis nothere nothere:这说明在章节 1 和 4 中有一个关于 passwd 命令的帮助条目,没有关于 nothere 的帮助手册。2.10 一些初级命令一些初级命令 我们将学习一些基本的命令,其中的大多数命令除本书提到的选项之外的还有更多的选项,你可以使用联机手册来了解其它的选项的用法。id 命令 为了用户存取文件

29、和执行程序的安全性考虑,UNIX 必须要知道你的用户和组的 id 号,这种由操作系统维护 ID 号,对应哪些为用户方便而使用文字名称,当你登录时,系统会使用 ID号确认你的身份。在你已经登录后,你也可以更改你的用户和组。id 命令的作用就是显示你当前的用户和组的定义。计算机将所有的用户的信息存储在文件/etc/passwd 中,组的信息存储在/etc/group 中。组 组的用途在于可以让一组用户共享地存取文件。只有系统管理员才能定义组中的用户,每一个用户都能存在于不同的组中。组通常由机构中已经定义的工作组组成。例如,一个机构可能由生产,管理,帐务组组成。这些组的用户结构可能定义为一下的结构:

30、*号指明登录时的组的定义 其中:chris 是所有的三个组的成员。mike 是两个组的成员。因而,chris 能够使用与生产,管理,帐务三个部门有关的文件,mike 能够存取与生产,帐务部门有关的文件。其他的用户只能存取他们登录组中的文件。who 命令 who 命令可以报告哪些用户登录系统,每一个用户连接的终端和登录时间的信息。who am i 报告本用户的用户名和端口信息,whoami 命令报告系统与本地终端的关联的用户名。用户是否有权执行一个命令,依靠的是用户的 ID,一个用户能够通过更改他的身份 ID 来存取其它的命令或程序。date 命令 date 命令被用来报告系统的当前日期和时间。

31、date 可以加上参数来更改输出的格式 通常 date 命令不带任何选项和参数使用。系统管理员有权限修改系统时间和日期。passwd 命令 在许多的系统中,系统管理员控制着用户的密码。在 UNIX 系统中,系统管理员能允许用户直接控制他们自己的密码,用户可以使用 passwd 命令改变他们的口令,语法如下:$passwd 输入这个命令后,系统会要求输入你当前的密码,(老密码)。这是为了避免在你登录了系统后,离开你的终端时间内有人更改你的密码。然后系统会要求你输入新密码,并要求重输入一次以确认你的新密码,这样做是为了避免你打字的错误。你的新旧密码必须至少有三个字符不同。在你输入密码时,新旧密码字

32、符都不会出现在屏幕上。密码限制:你的密码至少有六个字符,前六个字符中至少要有两个是字母,前六个字符中至少有一个不是字母。系统管理员不受这些规则限制,所以如果系统管理员给你的帐号分配一个密码,这个密码可能不符合这些规则。echo 命令 echo 命令使你可以显示命令行参数的,这个意思是,一个如下的命令:$echo hello 输出:helllo 这看上去十分平常,但是这个命令让我们可以佷方便地在 shell 程序中显示用户信息和检查shell 变量的值。在 shell 编程中,echo 命令用的很普遍。clear 命令 clear 命令清除终端屏幕上的字符。这个命令仅仅清除当前的屏幕,所以,用户

33、有可能向上翻屏来查看以前的屏幕信息,想要清除所有的屏幕信息,按 HOME 键,将光标至到 home,然后键入 clear 命令。write 命令 使用 write 命令可以向当前登录到同一个系统的用户的终端发送信息。当你使用 write 时,write 会让你输入信息,每一次你敲回车,信息就会被传送到接收者的终端上,接收者可以向你回写信息,你可以通过你的终端进行交互的对话。当你完成键入信息后,敲入 ctrl+d.就可以结束你的对话。注意:除非你已经禁用此项功能,否则别人在任何时候都可以发送信息到你的终端上来,如果这时你正在使用一个工具,如 man,mail,或是一个编辑器的时候,这些信息会出现

34、在你的屏幕上,并与你正常的信息交错在一起,因此造成混乱。如果你想要发送信息给一个用户,而这个用户当前没有登录系统,你会得到如下提示:user is not logged on(用户没有登录系统),其中 user 表示你试图发送信息的人的用户名 mesg 命令 你可以通过 mesg 命令禁止其它用户发送信息到你的终端。如果你给一个已经禁止接收其它用户发送信息的用户发送信息,你会接到 Permission Denied 错误。mesg n 拒绝其他人 write 到你的终端。mesg y 允许其他人 write 到你的终端。mesg 报告是允许或是不允许其他人写到你的终端。即使你的终端是禁止写入的

35、,系统管理员一样能发送信息到你的终端。news 命令 系统中的所有用户都感兴趣的信息可以通过 news 命令广播出去。这个命令通常是系统管理员对系统中所有用户进行通告的时候,例如在系统关闭,备份时,或是在新的硬件生效时使用。你可以键入 news 命令来阅读新闻。如果命令后没有选项,只有那些你还没有阅读过的信息会显示。news 命令的选项有:-a 读取所有的新闻,不管是否已经被读取过。-n 只显示未读过的新闻的标题 每一个存取新闻的用户在他的 HOME 目录下都有一个.news_time 文件。每一个 UNIX 系统中的文件都有一个时间标志,时间标志记录有上一次文件被修改的时间。.news_ti

36、me 上的时间标志会被更新,以匹配你最后读取得新闻信息的时间。如果一条新的新闻加入,news 命令知道这条新闻还没有被阅读,因为你的.news_time 文件的时间标志比新的新闻的时间标志早。第三章:文件系统导航第三章:文件系统导航 第三章 文件系统 目标 完成这一节,你能做以下事情:描述 UNIX 文件系统的布局 了解文件与目录的不同之处 自如地操作一个 UNIX 文件系统。建立和删除目录 描述绝对路径和相对路径的不同 在可能的情况下,使用相对路径来简化你的输入。3.1 什么是文件系统什么是文件系统 UNIX 系统提供文件系统来管理和组织你的文件和目录。文件通常是数据的一个容器,而目录是文件

37、和(或)其他目录的容器,一个目录包含下的另一个目录通常被称为子目录,UNIX 的文件系统与文件柜十分相似。整个文件系统就象一个文件柜,文件柜包含所有的抽屉,文件夹,和报表。抽屉同子目录一样能够包含报告和文件夹。一个文件夹当它包含报表时就像一个子目录。报表就代表一个文件,因为它存储实际的数据。3.2 树型结构树型结构 目录结构能够用一个层次化的树形结构来表示。树上的每一个分支可以是目录或者文件。目录用椭圆来表示,文件用矩形来表示,以便在图中能够区别它们。3.3 文件系统层次文件系统层次 象整齐的文件柜一样,UNIX 文件系统层次提供了一种简单有效的机制来组织你的文件。由于一个 UNIX 发布版本

38、通常包括几百个文件和程序,所以每个 UNIX 系统都使用一种默认的目录结构。在目录的顶端是根目录(因为它在一个倒转的树的顶部),根目录由一个反斜杠(/)来表示。UNIX 系统同时提供了一些命令,可以让你在你需要时很容易地创建新的目录,也可以从一个目录移动或是拷贝文件到另一个目录。就象加入一个新的文件夹到一个文件柜的抽屉中和将新的文件夹移动一个报表到一个老的文件夹一样容易。UNIX 系统中的文件可以分为两类:静态文件和动态文件。静态文件(共享的文件)主要存在于三个目录中:/opt,/usr,/sbin/opt:这个目录一般用来存放应用程序。开发人员和系统管理员会用它来安装新的产品和本地使用的应用

39、程序。/usr/bin:这个目录包含了基础的 UNIX 系统操作和文件处理的命令,所有的用户都有权限读取这个目录(bin 是 binary 的缩写)。/usr/sbin:这个目录中有所有的在帮助手册 1m 章节中的命令,这些命令都是系统管理命令。其中的大多数命令只有超级用户才能使用。在帮助手册 1m 中有关于这些命令的文档。/usr/lib:这个目录包括应用程序使用的文档和共享的库 /usr/share:这个目录包括独立提供的文件(其中最重要的是帮助手册)/usr/share/man:这个目录包括所有的语在线帮助页有关的所有的文件。/uar/local/bin:这个目录通常用来存放本地开发的程

40、序和工具。/usr/contrib/bin:这个目录通常用来存放公用的程序和工具 /sbin:这个目录包括基本的用于启动与关闭系统的命令。动态文件 动态文件(私有的文件)主要存在于七个目录中:/home,/etc,/stand,/tmp,/dev,/mnt,和/var;/home 每一个 UNIX 系统的用户都有他或她自己的帐号。同登录 id 和口令一起,系统管理员会分配给你一个你自己的目录。而这个目录一般都存放在/home 目录下。用户对自己的目录有完全的控制权,并负责对自己的目录下面的子目录和文件进行组织和管理。当你登录进一个系统,你会进入与你帐号相联系的目录中,这个目录,通常被称为 HO

41、ME目录或是登录目录。从这个目录出发,你可以进入任何你有权进入的其它目录,至少你可以存取在你 HOME 目录中的任何东西;甚至你还可移动到 UNIX 系统的其它目录中(默认情况如此),除非系统管理员限制用户对系统中特殊目录的存取。/etc 这个目录中有许多的系统配置文件,这些文件在帮助手册第四节有说明文档。/stand/vmUNIX 这个文件存储的是 UNIX 系统内核的文件。当系统启动时,会将这个文件装载入内存,对通过内核对所有的系统操作进行控制。/tmp 这个目录通常用作操作系统的一个临时空间,操作系统创建中间文件,或是应用程序或者用户的临时文件通常都是放在这个目录下面。注意:UNIX 系

42、统的惯例:无论何时,都可以删除 tmp 目录下的任何文件。/dev 这个目录下有那些可以被联接到你系统中的硬件设备的文件,由于这些设备是作为一个到设备之间的联接,数据从来不会被直接存储到这些文件中,这些问文件通常被叫 做特殊文件或是设备文件。/mnt 这个用来安装其它的设备(例如:光驱)/var/mail 这个目录包括每一个有邮件的用户的信箱。/var/news 这个目录包括当前的新闻信息的所有的文件。他的内容可以通过键入news-a 来显示。/var/tmp 这个目录通常被用于用户的临时空间。3.4 目录名称 绝对路径:相对于/home/user3 的路径/home/user3/f1 f1/

43、home/user3/memo memo/home/user3/memo/f1 memo/f1 相对/home/user1 的路径/home/user1/f1 f1 许多的 UNIX 系统命令的操作对象是文件和目录。由于系统中的文件和目录很多,并且有可能有同名的文件名或者目录名。为了指明你需要对哪个文件或目录进行操作,需要提供一个路径名作为这个命令的一个参数。路径名代表遍历一个层次结构来找到你所需要的文件或目录所经历的路由。$command options pathname pathname.为了阐明目录名的概念,我们使用模拟的方法,用一只铅笔从沿着 UNIX 系统的树形结构从一个位置画到另一

44、个位置。路径名也就是铅笔的笔迹通过的层次结构所遇到的节点(即目录)的一个列表,这个列表直到你想要到达的目录或文件为止。当指明文件或目录的路径名时,反斜杠(/)被用来分割目录或文件名。Directory/directory/directory(目录/目录/目录)Directory/file(目录/文件)每当你登录一个 UNIX 系统,你都会发现你存在于层次结构的一个目录下,你可以 通过 UNIX 系统命令来将你更换到另外的目录中去,但无论什么时候你都是在处在一个目录下。举个例子:当你登录一个系统,系统会初始化将你置于你的 HOME 目录中。绝对路径和相对路径都能够指明文件和目录的位置 绝对路径

45、给出文件或目录的位置的完全的描述。通常由层次结构的顶端开始(根目录)。通常第一个字符是/。不关心你当前在目录结构中所处的位置。整个目录结构只有一条路线。绝对路径名的例子 以下的路径名指明目录结构中的所有的叫做 f1 的文件的位置。请注意,有许多 f1 文件,但是每一个文件的绝对路径都是不相同的。/tmp/f1/home/user1/f1/home/user2/f1/home/user2/f1/home/user2/f1/home/user3/memo/f1 相对路径 通常由目录结构中的当前的位置开始 不由/开始。相对当前的位置只有唯一表示方法。一般都比绝对路径要短。相对路径的例子 以下的例子再

46、次指明名为 f1 的文件的路径,但是这些路径的定义必须依靠用户在目录结构中的当前位置。假设当前的位置是/home:user1/f1 user2/f1 user3/f1 user3/memo/f1 假设当前的位置是/home/user3:f1 memo/f1 假设当前的位置是/home/user3/memo f1 请 f1 不是唯一的,但是 UNIX 系统知道应该去找哪个文件,因为系统知道你是在/home/user1检索/home/user1/f1,还是在/home/user3/memo 的位置检索/home/user3/memo/f1。同时,你可能已经注意到:相对路径可能比绝对路径要短的多,例

47、如,如果在目录/home/user3/mem 中,你可以用一下两个命令来打印文件 f1:绝对路径:lp/home/user3/memo/f1 相对路径:lp f1 这表明使用相对路径名可以减少你大量的键盘操作。注意:如果系统中有同名的文件存在于不同的目录中,而你又要使用相对路径来存取文件,这时,知道你当前的位置是非常重要的。在 UNIX 系统内部是通过绝对路径来查找所有的目录和文件。因为绝对路径名可以绝对并且唯一地确定一个文件和目录,(由于只有一个根(/),UNIX 系统允许使用相对路径仅仅是为了方便用户的键入。3.5 一些特殊的目录一些特殊的目录 绝对路径 相对于/home/user3 的路

48、径/home./home/user2./user2/home/user1/f1./user1/f1/././tmp/f1././tmp/f1/usr/bin/vi././bin/vi 任何目录在创建时,两个条目会自动被创建,它们分别是 点(.),和点点(.)。在使用相对路径的时候通常会用到这两个条目。在上一个例子中,你也许已经注意到:相对路径的例子仅仅只能向下穿越文件结构,但如果使用.,你也能够向上穿越文件系统。登录目录 当一个新的用户被加入到系统中,他(或她)会被分配一个登录 id,可能还有一个密码,和一个用户自己拥有和控制的目录。这个目录通常创建在/home 目录下,与用户的登录 id 名

49、相同,然后这个用户就可以在此目录下任意创建自己的文件和子目录。当你登录一个系统时,你会自动处于这个目录中,这个目录被称为你的登录目录或者是你的HOME 目录。点(.)这个称为点的条目代表你当前所在地目录。点(.)的例子 如果你当前正处于目录/home/user3 中:.代表你当前的,目录/home/user3./f1 代表/home/user3/f1./memo/f1 代表/home/user3/memo/f1 点点(.)这个称为点点的条目代表当前目录的上一级目录。通常被称为父目录。每一个目录在自己的下面都可以有多个文件和多个子目录。但是每一个目录只能有一个父目录。这样,当向上进入文件系统的结

50、构时不会混淆。根目录(/)象其他的目录一样,包含有点,和点点条目,但是由于根目录没有父目录,所以它的点点代表是根目录本身。点点(.)的例子:如果你当前所在地目录是/home.代表/目录./.同样代表/目录./tmp 代表/tmp./tmp/f1 代表/tmp/f1 如果你当前的目录是/home/user3.代表/home 目录./.代表/目录./user2 代表/home/user2./user1/f1 代表/home/user1/f1././tmp/f1 代表/tmp/f1 在例子的最后,你会发现绝对路径比相对路径还要短,所以有一个原则就是:如果相对路径使你穿越/目录,使用绝对路径会比相对路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com