第一章 Unix 基础知识

一: 引言

 

二: UNIX体系结构

    1. 操作系统: 严格意义上, 可将操作系统定义为一种软件,一般而言, 我们称此种软件为内核(kernel)。

                       作用: (1)控制计算机硬件资源。

                                   (2)提供程序运行环境。

 

    2. 系统调用(system call): 内核的接口。

                          (1)函数库和shell构建在系统调用基础上。

                            (2)  应用软件既可以使用库函数, 也可以使用系统调用。

               注: shell是一种特殊的应用程序, 为运行其他应用程序提供接口。

              

 


三: 登录

    1. 登录名:用户在登录unix系统时,先键入登录名,后键入口令。系统在口令文件(通常是/etc/passwd)中查看登录名。

                     口令文件中的登录项目由7个以冒号分隔的字段组成, 它们是

                     (1)登录名;

                     (2)加密口令;

                     (3)数值用户ID;

                     (4)数值组ID;

                     (5)注释字段;

                     (6)起始目录;

                     (7)shell程序;

                              gavin : x : 1000 : 1000 :  : /home/gavin : /bin/bash

        目前所有的系统已经将加密口令移到另一个文件中。 第 6 章将说明这种文件以及访问它们的函数。

 

    2. shell

        用户通常使用终端(terminal), 有时则通过文件(成为shell脚本, shell script)向 shell 进行输入。

 

四: 文件和目录

    1. 文件系统: 文件系统是目录和文件组成的一种层次结构。 目录的起点称为根(root), 其名字是一个字符 /。

                      (1) 目录(directory)是一个包含许多目录项的文件。 在逻辑上, 可以认为每个目录项都包含一个文件名, 同时还包含说明该文件属性的信息。

                                                      文件属性是指文件类型(普通文件还是目录), 文件大小, 文件所有者, 文件权限(其他用户能否访问该文件), 以及文件的

                                                      最后修改时间等。

 

    2. 文件名:

       (1)目录中每个文件的名字文件名(filename), 不能出现在文件名中的字符只有斜线(/)和空操作符(null)。

                      斜线用来分隔构成路径名, 空操作符用来终止路径名。

 

        (2)创建目录时会自动创建两个文件名: (.)和(..) 。

 

        (3)路径名: 一个或多个以斜线分隔的文件名序列构成路径名(pathname), 以斜线开头的路径名称为绝对路径名(absolute pathname), 否则称为

                               相对路径名(relative pathname)。

               

         (4) 工作目录: 每个进程都有一个工作目录(working directory), 有时称其为当前工作目录(current working directory)。 所有相对路径名都从工作目录开始解

                                释。 进程可以用chdir函数更改其工作目录。

 

        (5)起始目录: 登录时, 工作目录设置为起始目录(home directory), 该起始目录从口令文件中相应用户的登录项中取得。

 

五: 输入和输出

 

    1. 文件描述符(file descriptor): 通常是一个小的非负整数, 内核用它描述一个特定进程在访问的文件。 当内核打开一个已有文件或创建一个新文件时, 它返回一

                                                    个文件描述符。 在读, 写文件时, 就可以使用它。

        Ubuntu下查看FD。

        打开System Monitor, 查看process。

        选中某个process, open files.

       

    2. 标准输入, 标准输出, 标准出错: 按惯例, 每当运行一个新程序时, 所有的shell都会为其打开三个文件描述符: 标准输入(standard input), 标准输出

                                                              (standard output), 标注出错(standard error)。 如果 像简单命令ls 那样没有做什么处理, 则这三个描述符都链向终端。

                                                              大多数shell都提供一种方法, 使其中任何一个或所有这三个描述符都能重新定向到某个文件, 如。

                                                                  ls > file.list。

 

    3. 不用缓冲的I/O: 函数open, read, write, lseek以及 close都提供了不用缓冲的I/O。 这些函数都是使用文件描述符。

                                  如果愿意从标准输入读, 并向标注写出, 则程序清单1-2中的程序可用于复制任一UNIX普通文件。

 

 

 

 

 

    

       

posted @ 2013-09-22 11:30  安心种田  阅读(163)  评论(0编辑  收藏  举报