加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

比起Windows,怎样解读Linux的文件系统与目录结构?

发布时间:2021-01-11 19:06:33 所属栏目:安全 来源:网络整理
导读:副标题#e# 《比起Windows,怎样解读Linux的文件系统与目录结构?》要点: 本文介绍了比起Windows,怎样解读Linux的文件系统与目录结构?,希望对您有用。如果有疑问,可以联系我们。 Linux 和Windows的文件系统有些不同,在学习使用 Linux 之前,若能够了解这

实质上,我们启动系统所看到的 “根目录”,逻辑上是 Linux 虚拟文件系统的根目录中的一个子目录,我们看不到除了这个 “根目录” 以外的其他的目录,那些目录和操作系统的具体实现相关是被操作系统内核隐藏起来了的,所以这里就介绍我们所能看到的文件系统中的“根目录” 的各个子目录中的作用吧.

在 Linux 文件系统中的每一个子目录都有特定的目的和用途.一般都是根据 FHS 标准定义一个正式的文件系统结构的,这个标准规定了哪些目录应该哪些作用.这里我们先介绍一些日常经常用到的目录,然后给出 FHS 相关的内容.

常用的重要目录 ?

这里,根据本人的使用经验,给出比较常见重要的一些目录,最开始我们对它们有所了解就可以了.随着对 Linux 使用的经验的加深,我们会了解越来越多的目录.对目录的功能知道得越多,我们对 Linux 系统的工p作原理就理解的越深刻,理解操作系统的工作原理,更助于我们更为规范地使用和理解系统中每个目录存在的意义,直至最后几乎知道系统中的每个文件……

  • / 根目录包含了几乎所的文件目录.相当于中央系统.进入的最简单方法是:cd /.
  • /boot 引导程序,内核等存放的目录这个目录,包括了在引导过程中所必需的文件,引导程序的相关文件(例如 grub,lilo以及相应的配置文件)以及 Linux 操作系统内核相关文件(例如 vmlinuz 等)一般都存放在这里.在最开始的启动阶段,通过引导程序将内核加载到内存,完成内核的启动(这个时候,虚拟文件系统还不存在,加载的内核虽然是从硬盘读取的,但是没经过 Linux 的 虚拟文件系统,这是比较底层的东西来实现的).然后内核自己创建好 虚拟文件系统,并且从 虚拟文件系统的其他子目录中(例如 /sbin/etc )加载需要在开机启动的其他程序或者服务或者特定的动作(部分可以由用户自己在相应的目录中修改相应的文件来配制).如果我们的机器中包含多个操作系统,那么可以通过修改这个目录中的某个配置文件(例如grub.conf )来调整启动的默认操作系统,系统启动的择菜单,以及启动延迟等参数.
  • /sbin 超级用户可以使用的命令的存放目录存放大多涉及系统管理的命令(例如引导系统的 init 程序),是超级权限用户 root 的可执行命令存放地,普通用户无权限执行这个目录下的命令(但是有时普通用户也可能会用到).这个目录和 /usr/sbin,/usr/X11R6/sbin或/usr/local/sbin 等目录是相似的,我们要记住,凡是目录 sbin 中包含的都是 root 权限才能执行的,这样就行了.后面会具体区分.
  • /bin 普通用户可以使用的命令的存放目录系统所需要的那些命令位于此目录,比如 lscpmkdir 等命令;类似的目录还/usr/bin,/usr/local/bin 等等.这个目录中的文件都是可执行的、普通用户都可以使用的命令.作为基础系统所需要的最基础的命令就是放在这里.
  • /lib 根目录下的所程序的共享库目录此目录下包含系统引导和在根用户执行命令时候所必需用到的共享库.做个不太好但是比较形象的比喻,点类似于Windows上面的 system32 目录.按理说,这里存放的文件应该是/bin 目录下程序所需要的库文件的存放地,也不排除一些例外的情况.类似的目录还/usr/lib,/usr/local/lib 等等.
  • /dev 设备文件目录在 Linux 中设备都是以文件形式出现,这里的设备可以是硬盘,键盘,网卡,终端,等设备,通过访问这些文件可以访问到相应的设备.设备文件可以使用 mknod 命令来创建,具体参见相应的命令;而为了将对这些设备文件的访问转化为对设备的访问,需要向相应的设备提供设备驱动模块(一般将设备驱动编译之后,生成的结果是一个 *.ko 类型的二进制文件),在内核启动之后,再通过 insmod 等命令加载相应的设备驱动之后,我们就可以通过设备文件来访问设备了.一般来说,想要 Linux 系统支持某个设备,只需要三个东西:相应的硬件设备,支持硬件的驱动模块,以及相应的设备文件.
  • /home 普通用户的家目录(或 $HOME 目录、主目录)在 Linux 机器上,用户主目录通常直接或间接地置在此目录下.其结构通常由本地机的管理员来决定.通常而言,系统的每个用户都有自己的家目录,目录以用户名作为名字存放在/home 下面(例如 quietheart 用户,其家目录的名字为 /home/quietheart ).该目录中保存了绝大多数的用户文件(用户自己的配置文件,定制文件,文档,数据等),root 用户除外(参见后面的 /root 目录).由于这个目录包含了用户实际的数据,通常系统管理员为这个目录单独挂载一个独立的磁盘分区,这样这个目录的文件系统格式就可能和其他目录不一样了(尽管表面上看,这个目录还是属于根目录的一棵子树上),将系统文件和数据文件分开存放,有利于维护.
  • /root 用户root的 $HOME 目录系统管理员(就是 root 用户或超级用户)的主目录比较特殊,不存放在 /home 中,而是直接放在 /root 目录下了.
  • /etc 全局的配置文件存放目录系统和程序一般都可以通过修改相应的配置文件,来进行配置.例如,要配置系统开机的时候启动那些程序,配置某个程序启动的时候显示什么样的风格等等.通常这些配置文件都集中存放在 /etc 目录中,所以想要配置什么东西的话,可以在 /etc 下面寻找我们可能需要修改的文件.一些大型套件,如 X11,在 /etc 下它们自己的子目录.系统配置文件可以放在这里或在 /usr/etc . 不过所有程序总是在 /etc 目录下查找所需的配置文件,你也可以将这些文件链接到目录 /usr/etc .另外,还一个需要注意的常见现象就是,当某个程序在某个用户下运行的时候,可能会在该用户的家目录中生成一个配置文件(一般这个文件最开始就是 /etc 下相应配置文件的拷贝,存放相应于“当前用户”的配置),这样当前用户可以通过配置这个家目录的配置文件,来改变程序的行为,并且这个行为只是该用户特有的.原因就是:一般来说一个程序启动,如果需要读取一些配置文件的话,它会首先读取当前用户家目录的配置文件,如果存在就使用;如果不存在它就到 /etc 下读取全局的配置文件进而启动程序.就是这个配置文件不自动生成,我们手动在自己的家目录中创建一个文件的话,也有许多程序会首先读取到这个家目录的文件并且以它的配置作为启动的选项(例如我们可以在家目录中创建 vim 程序的配置文件 .vimrc,来配置自己的 vim 程序).
  • /usr 这个目录中包含了命令库文件和在通常操作中不会修改的文件这个目录对于系统来说也是一个非常重要的目录,其地位类似Windows上面的 Program Files 目录(请原谅我可能这样做比较不太恰当^_^).安装程序的时候,默认就是安装在此文件内部某个子文件夹内.输入命令后系统默认执行 /usr/bin 下的程序(当然,前提是这个目录的路径已经被添加到了系统的环境变量中).此目录通常也会挂载一个独立的磁盘分区,它应保存共享只读类文件,这样它可以被运行 Linux 的不同主机挂载.
  • /usr/lib 目标库文件,包括动态连接库加上一些通常不是直接调用的可执行文件的存放位置这个目录功能类似 /lib 目录,理说,这里存放的文件应该是 /bin 目录下程序所需要的库文件的存放地,也不排除一些例外的情况.
  • /usr/bin 一般使用者使用并且不是系统自检等所必需可执行文件的目录此目录相当于根文件系统下的对应目录( /bin ),非启动系统,非修复系统以及非本地安装的程序一般都放在此目录下.
  • /usr/sbin 管理员使用的非系统必须的可执行文件存放目录此目录相当于根文件系统下的对应目录( /sbin ),保存系统管理程序的二进制文件,并且这些文件不是系统启动或文件系统挂载 /usr 目录或修复系统所必需的.
  • /usr/share 存放共享文件的目录在此目录下不同的子目录中保存了同一个操作系统在不同构架下工作时特定应用程序的共享数据(例如程序文档信息).使用者可以找到通常放在 /usr/doc/usr/lib/usr/man 目录下的这些类似数据.
  • /usr/include C程序语言编译使用的头文件Linux 下开发和编译应用程序所需要的头文件一般都存放在这里,通过头文件来使用某些库函数.默认来说这个路径被添加到了环境变量中,这样编译开发程序的时候编译器会自动搜索这个路径,从中找到你的程序中可能包含的头文件.
  • /usr/local 安装本地程序的一般默认路径当我们下载一个程序源代码,编译并且安装的时候,如果不特别指定安装的程序路径,那么默认会将程序相关的文件安装到这个目录的对应目录下.例如,安装的程序可执行文件被安装(安装实质就是复制)到了 /usr/local/bin 下面,此程序(可执行文件)所需要依赖的库文件被安装到了 /usr/local/lib 目录下,被安装的软件如果是某个开发库(例如 Qt,Gtk 等)那么相应的头文件可能就被安装到了 /usr/local/include 中等等.也就是说,这个目录存放的内容,一般都是我们后来自己安装的软件的默认路径,如果择了这个默认路径作为软件的安装路径,被安装的软件的所文件都限制在这个目录中,其中的子目录就相应于根目录的子目录.
  • /proc 特殊文件目录这个目录采用一种特殊的文件系统格式( proc 格式),内核支持这种格式.其中包含了全部虚拟文件.它们并不保存在磁盘中,也不占据磁盘空间(尽管命令 ls -c 会显示它们的大小).当您查看它们时,您实际上看到的是内存里的信息,这些文件助于我们了解系统内部信息.例如:

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读