[TOC] >[success] # 文件目录 ~~~ 1.多数Linux版本采用'FHS'(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),FHS定义了系统中 每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理 2.FHS定义了两层规范: 2.1.'第一层', / 下面的各个目录应该要放什么文件数据,例如'/ect文件中放置的是设置文件','/bin放置的是可执行件' 2.2.'第二层','/usr'及'/var'这两个目录的子目录来定义。例如'/var/log放置系统登录文件'、'/usr/share放置共享数据'等 ~~~ * 关于FHS  [FHS\_2.3标准文档](http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.pdf) >[info] ##### 详解 | 目录 | 用途 | | --- | --- | | / | 根目录 | | /boot | 启动目录,启动相关文件系统引导文件、内核 | | /dev | 设备文件 | | /etc | 配置文件 | | /home | 普通用户的家目录,可以操作 | | /lib | 系统库保存目录 | | /mnt | 移动设备挂载目录 | | /media | 光盘挂载目录 | | /misc | 磁带机挂载目录 | | /root | 超级用户的家目录,可以操作 | | /tmp | 临时目录,可以操作 | | /opt| 第三方应用程序的安装位置 | | /srv | 系统运行的服务用到的数据 | | /proc | 正在运行的内核信息映射, 主要输出进程信息、内存资源信息和磁盘分区信息等等 | | /sys | 硬件设备的驱动程序信息 | | /var | 变量 | | /bin | 普通的基本命令,如ls,chmod等,一般的用户也都可以使用 | | /sbin | 基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,只有管理员才可以运行 | | /usr/bin | 是你在后期安装的一些软件的运行脚本 | | /usr/sbin | 放置一些用户安装的系统管理的必备程序 | >[danger] ##### 存放二进制程序文件 - bin/sbin ~~~ 1.二进制程序存放的两个重要目录:'bin'与'sbin',其中包括 '/bin','/sbin','/user/bin','/user/sbin' , '/user/local/bin' '/user/local/sbin',其中二者类型的主要区别'bin'(英文全称'binary',中文'二进制') 存放是所有用户都可以执行的命令 'sbin'文件(英文全称'system binary'中文'系统二进制')存放的只有管理员用户可以执行的指令 1.1. '/bin'文件是系统启动必要的程序,其中'/bin' 是存放着系统的一些指令一般是所有用户都可以执行的命令, 而'/sbin'存放的一般存放系统管理的指令 1.2. '/user/bin' 和'/user/sbin' 二者存放是为了完成系统特定功能的某些指令,其中 '/user/bin' 主要放置应用程序工具 的必备执行文件也包括'后期安装的一些软件的运行脚本','/user/sbin'管理员用户的一些管理程序例如放置网路管 理的必备程序和系统守护程序 1.3. '/user/local/bin' 和'/user/local/sbin' 存放和系统功能无关的程序例如自己写的程序 2.总结: 如果是用户和管理员必备的二进制文件,就会放在/bin; 如果是系统管理员必备,但是一般用户根本不会用到的二进制文件,就会放在 /sbin。 如果不是用户必备的二进制文件,多半会放在/usr/bin; 如果不是系统管理员必备的工具,如网络管理命令,多半会放在/usr/sbin。 ~~~ * **/bin** ~~~ bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、 more、mount、rm、su、tar等。 ~~~ ![](https://img.kancloud.cn/b9/34/b9348e19947a550dfa5dfb834c8c010f_1620x152.png) * **/sbin** ~~~ 主要放置一些系统管理的必备程序例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、 init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。 ~~~ ![](https://img.kancloud.cn/84/95/849511ee5a768b0f7a2e1d929140e5d5_1620x390.png) * **/usr/bin** ~~~ 主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、 gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、 nslookup passwd、quota、smb*、wget等 ~~~ ![](https://img.kancloud.cn/28/89/288908cb5aa3d1a940adec717d940da9_1620x413.png) * **/usr/sbin** ~~~ 放置一些网路管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、 samba、sendmail、squid、swap、tcpd、tcpdump等 ~~~ ![](https://img.kancloud.cn/7a/6f/7a6f99f0a4f7c84687254c7ec2e322b2_1620x522.png) >[danger] ##### 配置文件目录 -- /etc ~~~ 1.'/etc' 存放系统管理需要的配置文件,简单说就是'系统中的的配置文件都在这里',常见的一些/etc 目录含义 1.1.'/etc/passwd' --- 用户账户文件 1.2.'/etc/shadow' --- 账号密码文件 关于更多可以参考 'https://www.cnblogs.com/ftl1012/p/9279523.html' ~~~ >[danger] ##### 用户家目录 -- /root 、/home ~~~ 1.'/root' -- 管理员用户的家目录 2.'/home' -- 普通用户的家目录在home 每个用户都有一个自己的目录,一般该目录事宜用户的账号名命名 ~~~ >[danger] ##### 临时文件目录 -- /tmp ~~~ 1. '/tmp' -- '临时文件目录' 这个目录下的文件,如果在30天内没有被重复的访问或修改过,那么该文件被自动删除 所有用户都在可这个目录下创建文件每个用户都可以在这个目录下读取自己或者别的用户的文件,但是只能删除 自己的,不能删除别人的 ~~~ >[danger] ##### 存放经常变化的文件目录 -- /var ~~~ 1.'/var' -- 存放经常变化的文件目录,例如缓存、日志文件、软件运行过程中产生的文件等其中'/var/log'存放了各种 系统日志文件,常用几个文件例如: 1.1.'/var/log/ messages' --- 记录系统日志信息(经常产生新信息) 1.2.'/var/log/secure' -- 安全信息和系统登录与网络连接的信息,里面记录用户登录失败的信息包括'登录用的用户名' '客户的IP地址'。通过这文件记录信息如果发现,在短时间内有用人频发用相同或者不同的用户尝试登录系统, 说明有人在尝试暴力破通过这个可以查看服务器被入侵的记录,可以用防火墙封堵该IP 1.3.通过使用命令 'lastb'命令用于列出登入系统失败的用户相关信息。单独执行lastb指令,它会读取位于 '/var/log'目录下,名称为'btmp'的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。 1.4.'/var/log/lastlog' -- 记录系统中每个用户上一次登录时间和IP、登录方式,可以通过指令'lastlog'查看 1.5.'/var/log/wtmp' -- 显示每个用户的登录状态信息和最后的关机操作,命令:'last' ~~~ >[danger] ##### 共享目录权限 -- /usr ~~~ 1.'/usr' -- 共享文件目录该目录下的文件普通用户只有读权限,例如'/usr/share/fonts' -- 存放字体 ~~~ >[danger] ##### 核心文件 -- /boot ~~~ 1.'/boot' -- 这里存放的是启动 Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 ~~~ >[danger] ##### 设备文件目录 -- /dev ~~~ 1.'/dev' -- dev是 Device(设备)的缩写,该目录下存放的是 Linux的外部设备,在 Linux中访问设备的方 式和访问文件的方式是相同的。 1.1.'/dev/sda' -- 第一个硬盘、'/dev/sdb'-- 第二个硬盘 1.2.'/dev/null' -- 黑洞文件(任何文件和内容放到nu11中就自动消失通常用来屏蔽不需要有的信息,将信息定向到此文件 中即可),举个例子当通过ls 查看一个不存在的文件的时候会产生报错信息,想把这个报错信息屏蔽掉就可以使用 'ls /tmpa 2>/dev/null' -- 其中2表示错误信息,相对的想屏蔽正确信息用1,如果多命令想错误正确都屏幕掉,可以 'ls /tmpa//home/&>/dev/null' 或者 'ls/tmpa//home/ 2>1 1>/dev/null' ~~~ >[danger] ##### 库文件目录 -- /lib ~~~ 1.'/ib' -- 软件安装相关的这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows里的DLL文件。几 乎所有的应用程序都需要用到这些共享库 例如:'/lib' ,'/lib64','/usr/lib','/usr/lib64','/usr/local/lib','/usr/local/lib64' ~~~ >[danger] ##### 挂载点 ~~~ 1.'/mnt' -- 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt上 然后进入该目录就可以查看光驱里的内容了 2.'/media' -- linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,inux会把识别的设备 挂载到这个目录下。 '关于挂在点':在inux中每个目录可以挂载到不同的设备(磁盘)上,Linux下设备不挂载不能使用,挂载通常是将一个存储 设备挂接到一个已经存在的目录上,访问这个目录就是访问该存储设备的内容。对于 Linux系统来说,一切接文件,所 有文件都放在以根目录为起点的树形目录结构中,任何硬件设备也都是文件形式 ~~~ >[danger] ##### 伪文件系统 ~~~ 1.'/proc' -- 系统硬件和内核信息的映射例子: 1.1.'/proc/ cpuinfo' -- 记录CpU信息 1.2.'/proc/ meminfo' -- 记录内存信息 2.'/sys' -- 外围设备的映射 该文件特点:此两个目录中的内容是空的在开机的时候,系统会扫描硬件,将硬件信息保存到这两个目录下 在关机的时候,这些信息消失,因此这两个目录下的文件也就有了 ~~~ >[danger] ##### 文件碎片目录 -- /ost+found ~~~ 1.' /ost+found':这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 ~~~ >[danger] ##### 编译安装 -- /opt ~~~ 1.'/opt' -- 这是给主机额外安装软件所摆放的目录。比如你安装一个 ORACLE数据库则就可以放到这 个目录下。默认是空的。理解成第三方软件位置 ~~~ >[info] ## 文章参考 [Linux /bin, /sbin, /usr/bin, /usr/sbin 区别 ](https://cloud.tencent.com/developer/article/1392451) [Linux目录结构](https://www.bilibili.com/video/BV1Di4y1b7Vr?p=6&spm_id_from=pageDriver)