LINUX的文件系统
在Linux的眼睛中,一切都为文件,这也是Linux的中心哲学思想。正因如此造就了一个性能稳定,功能强大,效率高的操作系统。Linux有自己的层级标准,它定义了每个系统分区的用途,和所需要的最小构成文件目录。由不同的文件来完成不同的功能造就了一个Linux的完整生态。
linux的文件系统格式比较丰富,它的核心系统能支持十多种文件系统类型。比如:
JFS;etx;etx2;etx3;etx4;ISo9660;XFS;VFA;NTFS;HPFS;NFS;SMB;PROC;MSDOS等。
我们可以用命令 :cat /etc/fstab或者 df -T -h 来查看Linux的文件系统,
以我自己的linux为示例:
可以看出,Linux可以支持多种文件系统,者样使他更加灵活。并且Linux拥有Virtual File System(虚拟文件系统),这使得用户可以在同一系统下安装许多不同的文件,并且为用户提供了快速高效的文件访问服务。
在文件系统的,xfs最为先进。xfs文件系统是全新64位的,快速且稳定,并且是具有可升级性的。它的i/o性能和可升级性增加了该系统的复杂性,所以xfs系统主要应用于相对高端的用户。
ext系列的文件系统是由开放资源社区开放的日志文件,其中ext4最为可靠,etx3缺少现代文件系统所具有的解压速度高的性能。ext4是ext3的后继版本。ext4的发布,实现了向前向后兼容功能。
JFS是一种提供日志的字节级文件系统。该文件系统主要是为满足服务器(从单处理器系统到高级处理器和群集系统)的高吞吐量和可靠性需求而设计开发的。与非日志文件系统相比,JFS文件系统的突出优点是快速重启能力;缺点是使用JFS日志文件系统性能上会有一定损失,系统资源占用的比率也偏高。
这是比较常见的三种文件系统格式,介绍完文件系统格式后就说一下linux的文件系统。
linux发行版之间的差别很少,差别主要表现在系统管理的特色工具和软件包管理方式的不同。目录结构基本都是一样的。Linux的文件系统是单个的树状结构。也就意味着整个系统只会有一个目录。但是可以有多个分区。
分区和目录的关系:
- 任何一个要分区都要挂载在目录上才能进行读写。
- 目录是逻辑上的,而分区是物理分区。
- 根目录是系统所有文件和目录所在的地方,必要挂载一个分区。
- 有些目录不能独立出去单独划为一个磁盘,比如:/dev,/etc。
划分分区有哪些优点:
- 可以吧不同的资料分别管理来降低风险
- 方便检索
相应命令 :
fdisk 查看分区表,会显示出分区结构。
df 查看分区上可使用的空间
du 查看文件和目录的使用空间
接下来就要说Linux的文件系统了
刚刚说过Linux整个系统目录就相当于一个树状图。在最顶端的目录是所有文件的父目录,我们称为根,用/表示。
用ls命令可以查看根目录下的所有子目录。
以我的目录为例介绍一下。
这是在根目录查看的结果,最前面显示的是各个文件的权限,文件权限有三个不同用户,其中每三个为一组,第一段为文件所有者,第二段为所有者所在组,第三段为其他。它们分的权限有三个不同的,r代表读,w代表写,x代表执行,也可以用数字表示,他们分别为4,2,1。这些都是在创建文件时设定。
接下来介绍一下主要目录:
/ :根目录,所有文件的入口。
/bin:二进制可执行命令,系统所需的配置命令;
/boot:开始启动过程所需的文件;
/dev:即设备驱动;
/home:普通用户存储其个人数据和配置文件的主目录;
/root:系统管理员的主目录;
/run:自上一次系统启动以来启动的进程的运行时数据。包括进程ID文件和锁定文件,此目录中的内容在重启时重新创建;
/sbin:类似/bin目录,系统管理命令,这里存放的是系统管理员使用的管理程序,一般不给普通用户使用;
/tmp:供临时文件使用的全局可写空间,目录存放程序在运行时产生的信息和数据;
/usr:最庞大的目录,安装的软件、共享的库,包括文件和静态制度程序数据;
/var:特定于此系统的可变数据,在系统启动之间保持永久性;
/lib:根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件;
/mnt:系统管理员临时安装文件系统的安装点;
/proc:文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,因而这是一个非常特殊的目录;
在这么多文件中,又分了好几个文件类型,其中有以下几种:
- 普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。
- 目录文件:目录,存储文件的唯一地方。
- 链接文件:指向同一个文件或目录的的文件。
- 特殊文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。
这么多文件,通过软连接和硬链接两连接方式:
软连接:又称为符号链接,保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。
硬链接:与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
Linux不使用文件名扩展来识别文件的类型。相反,Linux根据文件的头内容来识别其类型。为了提高文件可读性您仍可以使用文件名扩展,但这对 Linux 系统来说没有任何作用。不过,有一些应用程序,比如 Web 服务器,可能使用命名约定来识别文件类型,但这只是特定的应用程序的要求而不是 Linux 系统本身的要求。
Linux通过文件访问权限来判断文件是否为可执行文件。任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。这样做有利于安全。保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。
文件目录管理命令:
cat
查看文件的内容。全程式concatenate的意思,将文件内容连续输出到屏幕上。第一行到最后一行显示
tac
和cat刚好相反 是从最后一行到第一行的方式查看。
cat有个比较不好的地方时当文件比较大时候没办法看清楚,这个时候可以用more或者Less命令。
more
如果使用grep或者find等命令时,可以配合使用more一页一页的查看。如果看到一半想退出,则敲入’q’即可退出。
文件目录与权限: chmod
文件查找:
which
该命令用于查询通过PATH路径到该路径内查找可执行文件。
find
该命令用于在指定路径下查找文件。不是通过数据来查询,所以速度会比较慢。
原创文章,作者:phosphor,如若转载,请注明出处:http://www.178linux.com/76134