硬盘分区

答:为什么进行硬盘分区,其一是为了将数据进行有序的存放,其二是为了方便将数据在逻辑上进行分类,例如,我们的CDEF盘,往常我们喜欢将C盘作为系统盘,D盘作为文档盘,E盘作为转为存储游戏。最开始的时候,磁盘分区只有一种类型,即主分区,最多分4个,但是随着数据量的增多,出现扩展分区和逻辑分区,扩展分区和主分区平级,即扩展分区和主分区加起来不能超过4个,扩展分区不可以直接写入数据,需要将其划分成逻辑分区才可以使用,在Liunx中,IDE硬盘最多有59个逻辑分区,SCSI硬盘最多有11个逻辑分区。

文件系统

答:文件系统是提供计算机存储信息的结构,信息存储在文件中,文件则存储在硬盘中,就是告诉操作系统以何种方式存储和组织信息,格式化的目的就是写入文件系统,让信息以指定的结构进行存储,常用的文件系统格式有:ext3,ext4,fat32,ntfs.

ext3文件系统:ext2的升级,具有日志功能,支持最大16TB的分区,和最大2TB的文件;

ext4文件系统:ext3的升级,支持无限量子目录,最大支持1EB的分区,和16TB的文件;

fat32文件系统:早期window的文件系统,最大支持32GB的分区和最大4GB的文件;

ntfs文件系统:现在window的文件系统,最大支持2T的分区和最大64GB的文件;

分区号

答:Linux中,不同的硬盘采用不同的表示方式,IDE硬盘,使用hd表示,SCSI硬盘,使用sd表示,SATA硬盘,使用sd表示,对于分区,则使用阿拉伯数字进行区分。注意主分区和扩展分区,使用0-4号表示,注意,即使主分区和扩展分区不足4个,逻辑分区也从序号5开始。

硬链接和软连接

软链接的源地址必须写成绝对路径,不能写成相对路径。首先来分析一下查找文件的过程:

前提知识:

Linux采用的是ext4文件系统,ext4文件系统将分区分为两部分,一部分是保存文件的inode信息,一部分是保存block信息。inode信息的默认大小为128Byte,用来记录文件的权限,文件的所有者和属组,文件的大小,文件的状态,以及文件的修改实践,文件的真正保存的block编号,每个文件占用一个innode,block的大小默认4KB,也可以是1,2KB,block用于实际的数据存储,如果一个block存储不了数据,则占用多个块。注意,在inode信息中,是不会记录文件名臣,将文件名称记录在上级目录的block中,即目录的block记录的是这个目录下的所有一级子文件和子目录的文件名以及inode的对应。

当我们查找/home/a.txt文件时:

首先找根目录的inode,判断用户是否有权限访问该目录-》如果有,则在根目录的block中访问到/home/的文件名以及对应的inode号-》通过/home/目录的inode号,找到/home/目录的inode信息,判断用户是否有权限访问/home/目录的block-》如果有,,则从/home/目录的block中读取a.txt文件的文件名以及对应的inode号-》通过a.txt文件的inode号,可以找到a.txt文件的inode信息,判断该用户是否有权限访问a.txt文件的block-》如果有,则可以读取block中的数据。

当建立硬链接时,eg:ln /root/a.txt /tmp/al.txt,a.txt和al.txt的inode信息是相同的,即无论访问哪个文件,最终都会访问到制定的inode号的文件。这就是硬链接的原理,

硬链接的特点是:

⑴修改源文件,都会发生变化;

⑵不论删除源文件还是硬链接文件,只要有一个文件存在,这个文件都可以被访问;

⑶硬链接不会创建新的inode信息,也不会更改inode总数;

⑷硬链接不能跨文件系统建立,因为在不同的文件系统中,inode号会被从新计算

⑸硬链接不能链接目录;

软连接又称符号链接,软链接的源文件必须是绝对路径,软连接的标志位权限位中的“l",文件使用“->"来显示出源文件的完整名字,软连接就相当于快捷方式,软链接的和源文件的inode号不一致,推荐使用软链接。

软链接的特点:

⑴删除软链接,源文件不受影响,删除源文件,则软链接找不到实际数据,显示不存在

⑵软链接会新建自己的inode信息和block,但在block中不存储实际文件数据,而存储的是源文件的文件名和inode号;

⑶软链接可以链接目录;

权限解释

答:在Linux中,权限即读(r),写(w),执行(x),对于不同的目标文件,则其附有的操作时不同的;

当r,w,x对应于文件时:

r:代表可以读取文件的数据;w:代表可以修改文件中的数据,但不能删除文件本身,只能修改文件中的数据;x:代表该文件可以运行,但是至于文件是否能够运行,还需要使用特定的语言来编写,

当r,w,x对应于目录时:

r:代表可以查看目录下的内容,目录下的子文件和子目录;w:代表修改目录下的数据,可新建,删除,复制,剪切子文件或子目录;x:代表可以进入目录,但目录是不能运行的。

为什么对文件具有写权限,却不能删除文件?

首先,文件的存储是分两部分,即inode和block,inode中存储文件的权限,属组,修改时间,block信息, 但是文件名保存在上级目录的block中,即对文件拥有写权限,只能删除文件中的数据,不能删除文件本身,想要删除文件,想要对文件所在的目录具有写权限;

搜索命令的区别

whereis:只能用于搜索系统的命令,不能搜索普通文件;

which:只能用于搜索系统的命令,与whereis的区别是:whereis在查找到二进制命令的饿时候,还查找到帮助文档的位置;which命令在查找二进制命令的同时,如果命令有别名,则还找到别名;

locate:可以按照文件名搜索普通文件,有局限,只能按照文件名来搜索;

find:不仅按照文件名搜索,还可以按照权限,大小,时间,inode号来搜索文件;

 

 

参考《细说Linux基础知识》 作者沈超,李明。  感谢作者。如有错误,敬请指出,与君共勉。