每天一个Linux命令(23)--linux 目录结构(一)

  对于每一个Linux 学习者来说,了解 Linux 文件系统的目录结构,是学好Linux 的至关重要的一步,深入了解Linux 文件目录结构的标准和每个目录的详细功能,对于我们用好Linux 系统至关重要,下面我们就开始了解一下 Linux 目录结构的相关知识。

  当在使用Linux 的时候,如果您通过 ls   -l   /  就会发现,在 /  下包涵很多的目录,比如 etc  usr  var   bin  等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件。文件系统在 Linux 下看上去就像树形结构,所以我们可以把文件系统的结构形象的称为  树形结构。

  文件系统是用来组织和排列文件存取的,所以它是可见的,在Linux 中,我们可以通过 ls 等工具来查看其结构,在Linux 系统中,我们见到的都是树形结构;比如操作系统安装在一个文件系统中,它表现为 由  / 起始的树形结构。Linux 文件系统的最顶端是  / , 我们称 /  为Linux 的root,也就是 Linux 操作系统的文件系统。Linux 的文件系统的 入口就是 /,所有的目录、文件、设备都在 / 之下,/ 就是 Linux 文件系统的组织者,也是最上级的领导者。

  由于 Linux 是开发源代码,各大公司和团体根据 Linux 的核心代码做各自的操作,编程。这样就造成在根下的目录的不同。这样就造成个人不能使用他人的Linux 系统的PC。因为你根本不知道一些基本的配置,文件在哪里。这就造成了混乱。这就是FHS(Filesystem Hierarchy Standard)机构诞生的原因。该机构是Linux 爱好者自发的组成的一个团体,主要是对Linux 做一些基本的要求,不至于是操作者换一台主机就成了Linux 的文盲

  根据FHS(http://www.pathname.com/fhs/)的官方文件指出,他们的主要目的是希望让使用者可以了解到已安装软件通常放置于哪个目录下,所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS 的标准。也就是说, FHS 的重点在于规范每个特定的目录下应该要放置什么样子的数据而已。这样做好处非常多,因为Linux 操作系统就能够在既有的面貌下(目录架构不变)发展出开发者想要的独特风格。  

  事实上,FHS 是根据过去的惊艳一直在持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随意更动,而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:

  可分享的(shareable) 不可分享的(unshareable)
不变的(static)
/usr(软件放置处)

/opt(第三方协力软件)


/etc (配置文件)

/boot(开机与核心文档)

可变动的(variable)
/var/mail(使用者邮箱)

/var/spool/news(新闻组)


/var/run (程序相关)

/var/lock (程序相关)

四种类型:

1.可分享的:可以分享给其他系统挂在使用的目录,所以包含执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载的目录;

2.不可分享的:自己机器上面运作的装置文件或者是与程序有关的socket 文件等,由于仅与自身机器有关,所以当然就不适合分享给其他主机了。

3.不变的:有些数据是不会经常变动的,跟随着distribution 而不变动。例如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等等;

4.可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。

     事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:

/ (root,根目录)  与开机系统有关;

/usr  (unix  software   resource)  与软件安装/执行有关

/var (variable)   与系统运作过程有关

一、根目录 的意义与内容。

  根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录与开机/还原/系统修复等动作有关。由于系统开始时需要特定的开机软件,核心文件,开机所需程序,函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的过程才行。因为跟目录是这么的重要,所以在 FHS 的要求方面,他希望根目录不要放在非常大的分区,因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能有较多发生错误的机会。

  因此FHS 标准建议:根目录 / 所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。说白了,就是根目录和Windows的C盘一个样。

  根据以上原因,FHS认为根目录下应该包含以下目录:

目录 应放置档案内容
/bin  
系统有很多放置执行档的目录,但/bin比较特殊。以为/bin放置的是在单人维护模式下还能

够被操作的指令。在/bin底下的指令可以被root 与一般账号所使用,

主要有:cat.chmod,chown,date,mv,mkdir,cp,bash等常用指令。

/boot  
主要放置开机会使用到的档案,包括Linux 核心档案以及开机选项与开机所需设定档等等。

Linux kernel 常用的档案为:vmlinuz,如果使用的是 grub这个开机管理程序,

则还会存在/boot/grub这个目录

/dev
在Linux 系统上,任何装置与周边设备都是以档案的形态存在与这个目录当中。

只要通过存取这个目录下的某个档案,就等于存取某个装置。比较重要的档案有:

  /dev/null,  /dev/tty, /dev/lp* , /dev/hd* , /dev/sd* 等等

/etc
系统主要的设定档几乎都放置在这个目录内,例如人员的账号密码,各种服务的起始文档。

一般来说这个目录下的各种档案属性是可以让一般使用者查询的,但是只有 root 有权利修改。

FHS建议不要放置可执行档(binary)在这个目录中。

比较重要的档案有:/etc/inittab, /etc/init.d/, /etc/modprobe.conf  /etc/X11 /etc/fatab

  /etc/sysconfig 等等。

另外,其下重要的目录有:/etc/init.d  所有服务的预设启动script 都是放在这里的。

例如要启动或者关闭 iptables : /etc/init.d/iptables strat

/etc/xinetd.d  这就是所谓的 super daemon 管理的各项服务的设定档目录

/etc/X11  与X Window 有关的各种设定档都在这里,

     尤其是xorg.conf或XF86Config这两个X Server的设定档。

/home 
这是系统预设的使用者家目录。在你新增一个一般使用者账号时,

预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:

~:代表当前使用者的家目录,

~guest: 则代表用户名为guest 的家目录

/lib
系统的函式库非常的多,而/lib 放置的则是在开机时会用到的函式库,以及在 /bin或 /sbin

底下的指令会呼叫的函式库而已。什么事函式库?你可以将它想成是外挂,某些命令必须

要有这些外挂才能够顺利完成程式的执行之意。尤其重要的是 /lib/modules 这个目录,

因为该目录会放置核心相关的模组(驱动程序)

/media  
media 是媒体的英文,这个/media 底下放置的就是可以移除的装置。包括

软碟、光碟、DVD等等装置,常见的档案命名:/media/floppy,   /media/cdrom

/mnt
如果你有想要暂时挂载某些额外的装置,一般建议你可以放置到这个目录中。

在古早的时候,这个目录的用途与/media  相同。只是有了 /media 之后,这个

目录就被用来暂时挂载用了。  

/opt  
这个是给第三方协议软件放置的目录。什么是第三方协软件?举例来说:

  KDE这个桌面管理系统是一个独立的计划,不过它可以安装到 Linux 系统中,

一次,KDE的软体就建议放置到此目录下了。另外,如果你想要自行安装额外的软件,

那么你也能够将你的软件安装到 /opt 目录下。或者还有人习惯放置在/usr/local目录下。

/root  
系统管理员(root)的家目录。之所以放在这里,是因为如果进入单人维护模式而仅

挂载根目录时,该目录就能够拥有root的家目录,所有我们会希望root 的家目录与根

目录放置在同一个分区中。

/sbin  
linux 有非常多指令是用来设定系统环境的,这些指令只有 root 才能够利用来设定系统,

其他使用者最多只能用来查询。放在/sbin 底下的,是开机过程中所需要的,

里面包括了开机、修复、还原系统所需要的指令。至于某些服务器软件程序,一般

则放置到/usr/sbin 当中。至于本机自行安装的软件所产生的系统执行文档,

则放置到/usr/local/sbin当中了、

常见的指令包括:fdisk   fsck  ifconfig  init  mkfs

/srv
srv 可以看做 service 的缩写,是一些网络服务启动之后,这些服务所需要取用的资料目录

常见的服务例如:WWW FTP等,举例来说,WWW服务器需要的网页资料就可以放置在

/srv/www里面

/tmp
这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能存取的

所以需要定时的清理一下。当然,重要的资料不可放置在此目录。防止被误删除。

事实上,FHS 针对目录所定义的标准就仅限于上表,不过仍旧有些目录也需要我么了解一下。

目录  
应放置文件内容  

/lost+found  
这个目录是使用标准的ext2 /ext3档案格式才会产生的一个目录,目的在于档案系统发生错误时,

将一些遗失的片段放置到这个目录下。这个目录通常会分割到最顶层存在,

例如你加装一个硬盘于/disk 中,那在这个系统下就会自动产生一个这样的目录/disk/lost+found

/proc
这个目录本身是一个虚拟文件系统(virtual filesystem)。它放置的资料都是在内存当中,

例如系统核心、进程信息,外设的状态及网络状态。因为这个目录下的资料都是在内存当中,

所以本身不占任何硬盘空间。

比较重要的档案有:/proc/cpuinfo,  /proc/dma, /proc/interrupts,/proc/ioports,/proc/net/*

/sys
这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的内容。

包括目前已载入的核心模块与核心检测到的硬件等。这个目录同样不占硬盘容量。

除了这些目录的内容之外,另外要注意的是,因为根目录与开机有关,开机过程仅有根目录会被挂载,其他分区则是在开机完成之后才会持续的进行挂载的行为。

就是因为如此,因此根目录下与开机过程有关的目录,就不能够与根目录放到不同的分区去。那哪些目录不可与根目录分开呢?

/etc  配置文件

/bin  重要的执行文件

/dev  所需要的设备文件

/lib  执行文件所需的函式库与核心所需的模块

/sbin  重要的系统执行文件

今天这篇略显长,所有一分为二。不然一下看太多了记不住。

时间: 2024-10-06 00:45:28

每天一个Linux命令(23)--linux 目录结构(一)的相关文章

每天学习一个LINUX命令:ls 目录列表(list 清单目录 名单)

ls命令用于显示文件目录列表.当不加参数时,默认列出当前目录的列表信息. 语法参数: ls [参数] [目录或文件名] 参数(注意区分大小写) -a:显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出):-A:显示除影藏文件"."和".."以外的所有文件列表:-C:多列显示输出结果.这是默认选项:-l :与"-C"选项功能相反,所有输出信息用单列格式输出,不输出为多列:-b:将文件中的不可输出的字符以反

Linux命令学习笔记目录

Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 2.linux命令学习笔记(2):cd命令 3.linux命令学习笔记(3):pwd命令 4.linux命令学习笔记(4):mkdir命令 5.linux命令学习笔记(5):rm 命令 6.linux命令学习笔记(6):rmdir 命令 7.linux命令学习笔记(7):mv命令 8.linux命

04 Linux根文件系统和目录结构及bash特性

Linux文件系统: Linux:glibc 程序编译方式: 动态链接式编译 静态链接式编译 进程的类型: 终端:硬件设备,在硬件设备上可以关联一个用户接口,从而让用户用此接口与操作系统打交道 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:kernel(内核),application(应用程序) 文件系统:层级结构 FHS: Filesystem Hierarchy Standard(文件系统层次化标准) /bin:所有用户可用的基本命令程序文件 /

20个Linux命令及Linux终端的趣事

20个Linux命令及Linux终端的趣事 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时我们应该如何获得一些乐趣而不是看见“command not found”呢? 安装 sl [email protected]:~# apt-get install sl (In Debian like OS) [email protected]:~# yum -y install sl (In Red Hat lik

linux 命令——23 目录结构

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识. 当在使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc.usr.var.bin ... ... 等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在Linux下看上去就象树形结构,所以我们

Linux界面交互与目录结构

一.交互通道 Linux系统环境默认有六个命令交互通道和一个图形界面交互通道,默认进入的是图形界面通道. 命令交互模式切换:ctrl+alt+F1-F6 图形界面交互模式:ctrl+alt+F7   图形界面参数介绍:[email protected]:~$ kaiye:用户名 Ubuntu:主机名 ~:路径,假如当前的路径正好是 该用户存放数据的根目录,则显示~,如windows系统下C盘用户名文件夹下的目录 $:用户类型 $代表普通用户,#代表超级用户 二.Linux目录结构  1.bin:

【转】完美解读Linux中文件系统的目录结构

一.前 言 接触Linux也有一段时间了,不过这几天在编译开源程序时,才发现自己对linux文件系统的目录结构了解的不够透彻,很多重要目录都说不清楚是用来干嘛的,于是在网上百度了一下这方面的介绍,根据自己的使用习惯,整理出来一篇关于Linux文件系统的目录结构的文章,和大家一起分享. 文章对Linux下所有目录一一说明,对比较重要的目录加以重点解说,以帮助初学者熟练掌握Linux的目录结构.同时文章最后附录了一份Linux目录结构的简明手册,以便大家查阅. 二.目 录 1.什么是文件系统 2.文

Linux文档与目录结构

Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有"盘(C盘.D盘.E盘)"的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录. Windows目录: Linux目录: Linux首先是建立一个根"/"文件系统,所有的目录也都是由根目录衍生出

4.Linux根文件系统和目录结构及bash特性

4.1Linux目录结构和根文件系统全面讲解 Linux文件系统: Linux:glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备, 关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 操作系统的组成: 静态:Kernel,application 文件系统:层级结构 FHS: Filesystem Hierachry Stanard /bin: 所有用户可用的基本命令程序文件 /sbin:供系统管理使用的工具程序 /boot:引导加载器

Linux下文档与目录结构

目录分类 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写. Linux不像Windows那样的系统目录,Linux使用正斜杠"/"而不是反斜杠"\"来标识目录 /var: 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下.包括各种日志文件. /etc: 这个目录用来存放所有的系统管理所需要的配置