Unix操作系统基础:Unix文件系统之文件

Unix操作系统基础:Unix文件系统之文件篇

1. 文件系统的存储结构

   Unix系统可以把一个能随机存取的存储介质(如硬盘、软盘和光盘等,和小型机或大型机的磁带机顺序存取相对应)上的存储空间划分成一个至多个区域,每个区域都可以像独立的物理设备一样单独进行管理和数据存取,这样的存储区域,即是逻辑设备。在逻辑设备上按照一定的格式进行划分,就构成了逻辑文件系统,简称文件系统。对逻辑区域的访问就是对实实在在的存储介质的不同区域进行访问。

逻辑文件系统的存储结构

引导块

系统加电启动时,引导程序读入和装载操作系统的模块。一个系统只有一个引导块,需要引导的才需要引导块。它不是文件系统的必要组成部分。

超级块

存放文件系统的标题信息,包括文件系统大小、i节点表大小、数据区的使用状况等。比较重要的一个块。

i节点表

其中的每一个表项存放一个文件的静态信息:大小、类型、属主、索引表、访问权限和修改日期等。(命令:#ls -i 查看文件唯一i节点号i节点号可以查到i节点表。通过i节点表可以找到数据的存储区。

数据存储区

实际存放数据的地方:以块为单位存取

2. 文件系统的建立

   #mkfs  specialfile  blocksize  gap  blocks 

   specialfile:    要建立文件系统的逻辑设备名。

   blocksize:     文件系统块的大小,通常为512字节及其整数倍。

   gap:          间隔因子,用于提高读写速度。

                  大:间隔时间长;小:读的时间短,文件碎片就会很多。

                  (间隔因子:读完第一个扇区以后要经过多久才能读第二个扇区的内容)

   blocks:        文件系统的大小(块数)

3. 文件系统的安装和拆卸

   建立好的文件系统在使用时,应该接到一个目录下,这个目录通常为根目录下的一个空目录,用户访问该目录时也就访问到了挂接在目录下的文件系统的内容。这个挂接操作就叫安装。

   一个文件系统不用时,可使其从安装目录上拆卸下来,该安装目录断开与该文件系统的任何联系,由此保护该文件系统不受任何非法访问。

   #mount  specialfile  directoryname   

   #umount specialfile(or deiretoryname)  

如:

mount /dev/hd03 /mnt

umout /dev/hd03umount /mnt

4. 文件系统的逻辑结构

root      根目录

    bin       经常使用的比较简单的命令:whocatcpls命令等

    boot      引导文件

    unix      

    usr       

            bin

            lib

            include

            spoolcronmaillpd

    mnt        挂接的文件

    etc         系统配置文件:passwdttysrcmount

    tmp        临时性文件

    dev        设备文件:memfd0cdromhd01tty01

Unix系统中,所有静态的对象都是属于“文件”的范畴,其主要目的是规范和简化应用程序的接口。不管是一个设备还是一个目录,实际上都是看成文件。

与“文件”相对应的就是“进程”,文件和进程是Unix系统中最基本的两个概念。文件是静态的,进程是活动的,一个文件在执行,就是一个进程的状态。

5. 目录文件的内容

目录是一种特殊的文件,它仅包含要访问的存在于其中的文件或目录所必需的信息。

目录一般比其他文件占用的空间小,目录当中只包含目录在访问中所必要的信息。

目录存在的作用在于将相关的文件组织在一起。类似书柜和书柜中抽屉的作用,将文件存 放在不同的抽屉中,以缩短查找时间,所以文件的查找是有序的。

每个目录项,包括一个文件名,一个相关的inodei节点)序数。通过i节点数去查找 i 节点表,从而找到目录或文件在磁盘上的位置。从而对目录或文件进行访问。

(没有说目录的大小就是目录下包含的文件的大小累计起来。)

i节点表中如果一个i节点号是0,表示文件已被删除。是1表示是坏块。i节点号为2 示是文件节点的根文件,如果值是两个点,表示其上级是根。

3号和4号表示的是临时性的文件,5后以后就是普通的文件。

实际上,我们平时的删除、移动等都是对这个目录项进行操作。

6. 索引节点(inodei节点)

索引节点就是磁盘i节点表中的一个表项,存放文件的静态信息。

各文件之间是以其i节点号相互区别的。

用户访问文件的过程:

     指定文件名

           -〉找到相关的inode序数(命令:ls -i)

           -〉访问inode表(很多inode数组成了一张i节点表)

           -〉找到文件的位置

           -〉访问文件中包含的数据

     inode表中包含了指定文件的各种相关信息。

7. 与文件相关的命令

1. 文件名及其规范

文件名的长度:

ü 在短文件名的系统中,文件名最长为14个字符。

ü 在长文件名的系统中,文件名长度可达512个字符。

ü Unix当中可用255个字符。

文件名的可用字符:A-Z大小写字母、下划线、小数点和0-9数字。

除此之外,所有的其它字符(包括空格)不能用于文件名,以点为前缀的文件名是隐含文 件名,在列目录操作时通常是不显示出来的。如果要显示出来需要用ls -a命令。

Unix系统对文件名的含义不作任何解释,文件名(包括其后缀)的含义由使用者或调用程 序来解释。

注意:在Unix系统中字母的大小写是有严格区别的。

AIX/Linux的文件名:

Ø 文件名命令规则:只使用字母、数字及三个特殊符号(#@_),也可以用点。

Ø 文件名中不能包括空格。

Ø 文件名中不包括shell使用的特殊字符,如></;等&[]|‘’“”()等。

Ø 不能用+号或-号作为文件名的第一个字符。

Ø 不能与系统中的命令名相同。

Ø 严格的大小写区分。

Ø 文件名中最多包括255个字符。

Ø UNIX中没有文件扩展名。

Ø 点只是作为文件名的一部分,不作为区分文件类型。

Ø 使用ls命令是看不到以点作为文件前缀的文件的。

2. 命令

1) touch命令

作用:修改文件的访问和更改时间。并可以创建0字节长度的文件

格式:$touch 命令参数

目的:

ü 如果命令参数中指定的文件并不存在,这个文件将被创建

ü 如果命令参数中指定的文件已存在,那么这个文件的最后一次更改时间将被更新为当前时间。

2) cp命令

作用:复制文件,对文件备份。

格式:$cp source target
选项:

-i :如果目标文件存在,请确认是否覆盖;

-f :复制目录到新的目录

     如果目标(target)参数中指定的是一个目录名,那么新的文件可与源文件同名。但是, 如果那个目录下恰好也有与这个文件同名的文件,也会提示是否覆盖。

支持单个文件和多个文件的拷贝,也支持不同目录之间的拷贝。

cp创建新文件。新文件和源文件不属于同一个文件。修改任一个不影响另一个。

3) mv命令

作用:将一个文件从一个地方移动到另一个地方,也可以作为文件或目录名称的修改。

格式:$move sourse target

说明:源参数可以是一个文件也可以是多个文件,如果是多个文件。

      目标文件可以是一个文件,也可以是一个目录。

      如果是多个文件,目标target必须是一个目录。

      使用mv,文件数量不会发生变化,只是改变文件名或文件所处的位置。

mv更改文件名或把文件移动到别处。源文件已不存在。

4) ln命令

作用:给一个已经存在的文件再取一个名字。新的文件名与原文件名可以在同一个目录

      下,也可以在不同的目录下。新老文件名代表同一个文件。不同于快捷方式。

格式:$ln file1 file2

说明:链接前,文件已有不止一个名字;链接后,文件内容并没有被复制。

      对文件的任何一个名字操作都具有完全相同的效果。

      链接后,该文件的属主及文件的权限设定都没有变化。

      删除一个文件名时,只要剩下文件名个数不为零,文件继续存在。

 注意:

Ø ncp是不同的,ln只为文件建立另一个文件名,没有新的文件产生,

       而cp是把文件的物理位置进行复制,有两个分别的文件。

Ø ln可以指定一个已经存在的目录名作为新文件名,这样,用户可以不输入路

       径就可以在指定目录中访问该文件。

Ø ln的使用会使链接数增加。

ln为已经存在的文件建立别名。实际上指向同一个文件。

5) catmorepg显示命令

Ø catconcatenate,连结)

作用:用来显示、创建或者合并文件

格式:$cat filename1 filename2

说明:如果输出的内容超过一屏,那么系统自动滚动到最后一屏,你只能看到最后一           屏的内容。滚动过程中可以使用Ctrl+s暂停,Ctrl+q恢复。

      用cat命令显示只能显示由可打印的ASCII字符组成的纯文本文件。

      如果被显示的文件中包含不可显示的控制字符,则可能造成屏幕显示乱码,

      甚至终端被锁住。

Ø more

作用:基本功能与cat命令相同,都是打开文件并将其显示在屏幕上,但more并非

      一次性显示文件的所有内容,而是逐屏显示文件的内容。翻屏时用<space>键。

格式:$more filename

说明:如果文件长度大于屏幕允许最大的允许行数,则在屏幕底部显示"more"

      已显示字符的百分比。

Ø pg

作用:也是分屏显示文件的内容。只是显示下一屏的内容时要按<enter>键。

格式:$pg filename

说明:linux下没有pg命令。

6) rm命令

     作用:删除不需要的一个或多个文件

     格式:$rm file1 file2

     选项:

          -i:删除文件前给出确认。

          -r:删除指定的目录及目录下所有的文件和子目录。即删除整个目录结构。

     注意:

           用rm命令删除后无法恢复。

           指定文件名,删除工作目录里的文件,指定路径名,删除位于其他目录的文件。

           rm直接删除,没有提示和确认。但在linux上有确认提示。

7) lp命令

       作用:打印命令

      格式:lp [-options] file1 [file2 ...]

      选项:

            -d: 在指定打印机上打印,如:$lp -d lp2 f1

            -m:打印完成后,向用户发通知邮件

            -n: 打印指定份数,如:$lp -n2 f2

            -s: 取消屏幕提示信息

            -t: 在文档封面上打印指定的标题

            -w:打印完成后在用户终端上显示提示信息

      说明:lp命令发出后,并不等待打印机完成,而是立即出现shell提示符

            等待新的键盘命令。这体现了Unix多用户多任务的特点。

      其他打印命令:

            如:lpstat 显示打印系统中打印请求和打印机状态等。

                $lpstat

                cancel 撤销还未执行的或还未完成的打印请求。

                $cancel printer3 撤销指定打印机的所有请求 

8) cut命令

       作用: 用于“切取”文件中的列或字段,它将文本文件中每一行的一部分显示输出。

              cut命令必须指定功能选项。

       格式: $cat  -d " "   -f 1,2    -c  26-30   filename

       选项:

              -f:指定字段的位置

              -c:指定列的位置

              -d:指定字段分隔符,缺少的字段分隔符是制表符tab

9) paste命令

   作用:把文件一行接一行地连接在一起,或把两个或多个文件的域连到一个新文件里。

   格式:$paste 选项 参数

   选项:

         -d:指定分隔符,默认制表符tab

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值