Linux文件系统介绍

 更新时间:2022年6月1日 09:15  点击:336 作者:springsnow

一、简介

文件系统就是分区或磁盘上的所有文件的逻辑集合。 
文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。 
不同Linux发行版本之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录结构基本上都是一样的。

文件系统有多种类型

  • ext2 : 早期linux中常用的文件系统;
  • ext3 : ext2的升级版,带日志功能;
  • RAMFS : 内存文件系统,速度很快;
  • iso9660:光盘或光盘镜像;
  • NFS : 网络文件系统,由SUN发明,主要用于远程文件共享;
  • MS-DOS : MS-DOS文件系统;
  • FAT : Windows XP 操作系统采用的文件系统;
  • NTFS : Windows NT/XP 操作系统采用的文件系统。

二、分区与目录

文件系统位于磁盘分区中;一个硬盘可以有多个分区,也可以只有一个分区;一个分区只能包含一个文件系统。 
Linux文件系统与Windows有较大的差别。Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如 C、D、E、F等。Linux的文件结构是单个的树状结构,根目录是“/”其他目录都要位于根目录下。 
每次安装系统的时候我们都会进行分区,

Linux下磁盘分区和目录的关系

  • 任何一个分区都必须对应到某个目录上,才能进行读写操作,称为“挂载”。
  • 被挂载的目录可以是根目录,也可以是其他二级、三级目录,任何目录都可以是挂载点。
  • 目录是逻辑上的区分。分区是物理上的区分。
  • 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。

下图是常见的目录和分区的对应关系:

为什么要分区,如何分区?

  • 可以把不同资料,分别放入不同分区中管理,降低风险。
  • 大硬盘搜索范围大,效率低。
  • /home、/var、/usr、/local 经常是单独分区,因为经常会操作,容易产生碎片。

为了便于定位和查找,Linux中的每个目录一般都存放特定类型的文件,

各种Linux发行版本的常见目录

  • / : 根目录,只能包含目录,不能包含具体文件。
  • /bin: bin是Binary的缩写,存放可执行文件。很多命令就对应/bin目录下的某个程序,例如 ls、cp、mkdir。/bin目录对所有用户有效。
  • /dev: dev是Device(设备)的缩写,硬件驱动程序。例如声卡、磁盘驱动等,还有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。
  • /etc: 主要包含系统管理所需要的配置文件和用户、用户组配置文件。
  • /lib: 主要包含共享库文件,类似于Windows下的DLL;有时也会包含内核相关文件。
  • /boot: 系统启动文件,例如Linux内核、引导程序等。
  • /home: 用户工作目录(主目录),每个用户都会分配一个目录。
  • /mnt: 临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,例如挂载CD-ROM的/mnt/cdrom目录,然后进入该目录就可以查看光驱里的内容了。
  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件。
  • /tmp: 临时文件目录,系统重启后不会被保存。
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
  • /usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。user目下的文件比较混杂,包含了管理命令、共享文件、库文件等,可以被很多用户使用。
    • /usr/bin:系统用户使用的应用程序。

    • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src:内核源代码默认的放置目录。

  • /var: 这个目录中存放着在不断扩充着的东西,主要包含一些可变长度的文件,会经常对数据进行读写,例如日志文件和打印队列里的文件。
  • /sbin: s就是Super User的意思,和 /bin 类似,主要包含可执行文件,不过一般是系统管理所需要的,不是所有用户都需要。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  • /srv: 该目录存放一些服务启动之后需要提取的数据。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

  • /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
  • /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。 
    值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
  • /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

三、常用文件管理命令

你可以通过下面的命令来管理文件:

  • cat filename 查看文件内容。
  • cd dirname 改变所在目录。
  • cp file1 file2 复制文件或目录。
  • file filename 查看文件类型(binary, text, etc)。
  • find filename dir 搜索文件或目录。
  • head filename 显示文件的开头,与tail命令相对。
  • less filename 查看文件的全部内容,可以分页显示,比more命令要强大。
  • ls dirname 遍历目录下的文件或目录。
  • mkdir dirname 创建目录。
  • more filename 查看文件的全部内容,可以分页显示。
  • mv file1 file2 移动文件或重命名。
  • pwd: 显示用户当前所在目录。
  • rm filename 删除文件。
  • rmdir dirname 删除目录。
  • tail filename 显示文件的结尾,与head命令相对。
  • touch filename 文件不存在时创建一个空文件,存在时修改文件时间戳。
  • whereis filename 查看文件所在位置。
  • which filename 如果文件在环境变量PATH中有定义,那么显示文件位置。

四、用户和群组配额

用户和群组配额可以让管理员为每个用户或群组分配固定的磁盘空间。 
管理员有两种方式来分配磁盘空间:

  • 软限制:如果用户超过指定的空间,会有一个宽限期,等待用户释放空间。
  • 硬限制:没有宽限期,超出指定空间立即禁止操作。

下面的命令可以用来管理配额:

  • quota: 显示磁盘使用情况以及每个用户组的配额。
  • edquota: 编辑用户和群组的配额。
  • quotacheck: 查看文件系统的磁盘使用情况,创建、检查并修复配额文件。
  • setquota: 设置配额。
  • quotaon: 开启用户或群组的配额功能。
  • quotaoff: 关闭用户或群组的配额功能。
  • repquota: 打印指定文件系统的配额。

到此这篇关于Linux文件系统的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持猪先飞。

原文出处:https://www.cnblogs.com/springsnow/p/12192626.html

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • python实现学生通讯录管理系统

    这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
  • 在linux中使用包管理器安装node.js

    网上文章中,在linux下安装node.js都是使用源码编译,其实node的github上已经提供了各个系统下使用各自的包管理器(package manager)安装node.js的方法。...2015-03-15
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15