详解 Linux 文件系统目录结构

By Long Luo

linux的文件系统采用单根倒置树结构,在此结构中的最上层是根目录/,然后在此目录下再创建其他的目录。与windows多个根目录不同,Linux只有一个根目录。

文件名称区分大小写。 以.开头的为隐藏文件。 Linux中路径用/来进行分割;windows中使用。 文件有元数据与数据本身两种类型。 默认的基本目录结构如下:

目录 说明 /bin(重点) binary的缩写,存放最常用的命令 /sbin Super User的意思,存放系统管理员使用的系统管理程序 /home(重点) 存放普通用户的主目录,Linux中每个用户都有一个自己的目录,一般是以用户的账号命名 /root(重点) 系统管理员,也称为超级权限者的用户主目录 /lib 系统开机需要的动态连接共享库,作用类似于Windows中的DLL文件。几乎所有的应用程序都要用到这些共享库 /lost+found 一般情况下是空的,当系统非法关机后,这里就存放了一些文件 /etc(重点) 所有的系统管理需要的配置文件和子目录my.conf /usr(重点) 用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录 /boot(重点) 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 /proc(别乱动) 是一个虚拟目录,是系统内存的映射,访问这个目录来获取系统信息 /srv(别乱动) service缩写,该目录存放一些服务启动之后需要提取的数据 /sys(别乱动) Linux2.6内核一个很大的变化,该目录安装了2.6内核中新出现的一个文件系统 /tmp 存放一些临时文件 /dev 类似Windows的设备管理器,把所有的硬件用文件的形式存储 /media(重点) Linux系统会自动识别一些设备,如U盘、光驱等,识别后,Linux会把识别的设备挂在到该目录下 /mnt(重点) 此目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以看里面的内容 /opt 为主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下 /usr/local(重点) 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装程序 /var(重点) 存放着在不断扩充着的东西,习惯上将经常被修改的目录放在这个目录下,包括各种日志文件 /selinux 全称security-enhanced linux,类似于Windows的360,SELinux是一种安全子系统,它能控制程序只能访问特定文件 文件系统结构总结:

Linux的目录中只有一个根目录/ Linux的各个目录存放的内容是规划好的,不要乱放文件。 Linux是以文件的形式管理设备的,因此Linux系统中一切皆为文件。 Linux的各个文件目录下存放什么内容,需要有一个准确的认识。

在 Linux 系统中,所有内容都是以文件的形式保存和管理的,即「一切皆文件」。普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。

linux只有一个根目录,而且文件和目录被组织成一个单根倒置树结构, 此结构最上层是根目录,用“/”表示

根文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4)

如下图:

关于目录结构,有些比较重要的目录我们要需要记住:

/etc/resolv.conf Linux 系统DNS客户端配置文件,DNS(Domain Name System)在网站的运行中起到了至关重要的作用,其主要负责将网站域名解析为对应的IP地址。

/etc/hostname 主机名配置文件 hostnamectl set-hostname itlaoxin 这个命令会直接修改配置文件

/etc/hosts 设定用户IP与名字(或域名)的对应解析表,相当于本地(局域网内)的DNS解析文件 Linux系统下的这个/etc/hosts类似于C:

/etc/fstab:配置开机设备自动挂载的文件

/etc/inittab:系统启动时设定运行级别等配置的文件

./etc/profile及/etc/bashrc:配置系统的环境变量/别名等的文件

/etc/profile.d:用户登录后执行的脚本所在的目录

/etc/init.d:软件启动程序所在的目录(centos7之前),centos7之后这个目录已经不用了。

/etc/motd:配置用户登录系统之后显示提示内容的文件

/etc/redhat-release:查看Red Hat版本号和名称信息的文件

/etc/sysctl.conf:Linux内核参数设置文件

/var/log:记录系统及软件运行信息文件所在的目录

var/log/secure:用户登录信息日志文件

/var/log/dmesg:记录硬件信息加载情况的日志文件

/proc/cpuinfo 当前cpu相关的信息

/proc/meminfo 当前内存信息

/proc/loadavg 当前平均负载相关的信息

/proc/mounts 当前挂载相关的信息

文件类型

使用命令查看文件,首字母会标记该文件的文件类型,有以下几种类型:

-: 普通文件 d: 目录文件 b: 块文件 c: 字符文件 l: 符号链接文件 p: 管道文件 pipe s: 套字节文件 socket

参考文献

https://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files