首页 > 系统相关 >Linux文件的目录结构解析

Linux文件的目录结构解析

时间:2023-10-21 21:32:53浏览次数:30  
标签:系统 usr Linux 根目录 解析 目录 FHS

学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要。

使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如 /bin/bash、/bin/ed 等。Linux 文件系统目录总体呈现树形结构,/ 根目录就相当于树根。

由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。

试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。

FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。

Linux 根目录(/)

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

  1. 所有目录都是由根目录衍生出来的;
  2. 根目录与系统的开机、修复、还原密切相关;

因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件。

Linux文件的目录结构解析_根目录

Linux文件的目录结构解析_根目录_02

Linux /usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

Linux文件的目录结构解析_根目录_03

Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。

Linux文件的目录结构解析_文件系统_04

根据以上各表列举的各目录及作用,如果我们要做一些实验和练习,需要创建一些临时文件,应该保存在哪里呢?

答案是用户的主目录或 /tmp/ 临时目录。但是要小心有些目录中不能直接修改和保存数据,比如 /proc/fn/sys/ 目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;/boot/ 目录也不能保存额外数据,因为 /boot/ 目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。

总之,Linux 要在合理的目录下进行操作和修改。

标签:系统,usr,Linux,根目录,解析,目录,FHS
From: https://blog.51cto.com/u_15641375/7969716

相关文章

  • 第八周 Linux课后技术总结
    4.2基本权限ACL4.2.1ACL基本用法1查看ACL权限:getfacl2为用户设置ACL权限:setfacl-mu:3为组设置ACL权限:setfacl-mg:4删除ACL权限:setfacl-x5删除所有ACL权限,回到UGO的基本权限:setfacl-b4.2.2ACL高级特性1mask权限:临时修改文件的ACL权限,在任意ACL权限修改......
  • C语言经典例题加解析
    1、假设今天是星期三,编程求20天之后是星期几?#include<stdio.h>intmain(){intcurrentDay=3:1/假设今天是星期三,星期日为0,星期一为1,以此类推intdaysToAdd=20;/计算20天后的星期几intfutureDay=(currentDay+daysToAdd)%7;printf(~20天后是星期bd\n”,futureDay);......
  • ubuntu 20.1 (linux) 下软件安装教程(基本上都是使用命令行安装)
    一、node1.安装教程#第二步,添加源后安装需要什么版本直接替换后面的数字即可,如果需要21,直接将20替换为21就可以了curl-sLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-#开始进行安装sudoaptinstall-ynodejs#https://learnku.com/articles/42581#......
  • 第三章 Unix/Linux进程管理
    #第三章Unix/Linux进程管理##多任务处理Unix/Linux中的多任务处理是指通过操作系统的调度机制,使多个进程可以同时运行,互不影响,并共享计算机系统的资源。这样可以提高系统的效率和利用率。1.进程状态:进程可以处于运行(Running)、就绪(Ready)、等待(Blocked)等不同的状态,调度器根......
  • 将linux的ip地址设置为固定ip
    1.查看ip地址ifconfig 我们此时的ip地址为192.168.124.128,如果我们不设置为固定的,等下次开启时,ip地址可能会变 2.编辑ens33网卡的配置信息在窗户输入以下内容回车,进入编辑界面vi/etc/sysconfig/network-scripts/ifcfg-ens33 进入配置文件,进行修改 修改后的文......
  • linux创建及删除文件节点的命令
     1.手动创建文件节点的命令(mknod):  命令       文件目录&名称   文件类型     主设备号      次设备号mknod          /xxx/xx        c         120       ......
  • 构造linux内核源码树(转载)
    本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程,很多简单的问题在我来说是相当的困难的。望有识之士不要笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。刚看O'REILLY写的《L......
  • Linux中如何构建内核源码树
    Linux中如何构建内核源码树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。要编写Linux的驱动,必须要构建内核源码树。内核源码树的作用是构造可以在Linux内核中装载和卸载的模块,因此若是要为目标板构造模块,必须保证......
  • Linux基础命令
    1.基本命令uname -m 显示机器的处理器架构uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息arch 显示机器的处理器架构uname ......
  • 传奇客户端常见补丁功能解析
    NewopUI.Pak基础补丁如血条界面框等很多用到这个补丁ChrSel.pak游戏登陆界面,选择人物界面图Effect.pak沙的门和墙破碎图Hair.pak人物头发图Magic.pak魔法效果图Magic2.pak补充魔法效果图,召唤神兽时符和雷电的图MagIcon.pak技能栏里的魔法缩略图Mon1.pak-Mon**.pak各种传奇......