对于linux系统,我们进入到根目录/
并列出根目录下所有文件可以看到:
[root@localhost /]# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
这些似懂非懂的目录名都有什么含义呢?
FHS标准
其实,linux系统的目录都遵循一个标准,即由Linux基金会发布的 文件系统层次结构标准 (Filesystem Hierarchy Standard, FHS)。这个标准里面定义了linux系统该有哪些目录,各个目录应该存放什么,起什么作用等等。具体说明如下:
目录 | 解释 |
---|---|
/bin | binary,即用来存放二进制可执行文件,并且比较特殊的是/bin里存放的是所有一般用户都能使用的可执行文件,如:cat, chmod, chown, mv, mkdir, cd 等常用指令 |
/boot | 存放开机时用到的引导文件 |
/dev | device(并不是develop哦),任何设备都以文件的形式存放在这个目录中 |
/etc | Editable Text Configuration(早期含义为etcetera,但是有争议),存放系统配置文件,如各种服务的启动配置,账号密码等 |
/home | 用户的主目录,每当新建一个用户系统都会在这个目录下创建以该用户名为名称的目录作为该用户的主目录。并且在命令行中~ 代表当前用户的主目录,~yousiku 表示yousiku 这个用户的主目录 |
/lib | library,存放着系统开机时所需的函数库以及/bin和/sbin目录下的命令会调用的函数库 |
/lib64 | 存放相对于/lib中支持64位格式的函数库 |
/media | 可移除的媒体设备,如光盘,DVD等 |
/mnt | mount,临时挂载的设备文件 |
/opt | optional,可选的软件包,即第三方软件。我们可以将除了系统自带软件之外的其他软件安装到这个目录下 |
/proc | process,该目录是一个虚拟文件系统,即该目录的内容存放于内存中而不是硬盘中,存放着系统内核以及进程的运行状态信息 |
/root | 超级管理员root的主目录 |
/run | 最近一次开机后所产生的各项信息,如当前的用户和正在运行中的守护进程等 |
/sbin | 存放一些只有root账户才有权限执行的可执行文件,如init, ip, mount等命令 |
/srv | service,存放一些服务启动后所需的数据 |
/sys | system,与/proc类似也是一个虚拟文件系统,存放系统核心与硬件相关的信息 |
/tmp | temporary,存放临时文件,可以被所有用户访问,系统重启时会清空该目录 |
/usr | Unix Software Resource(并不是指user哦),存放着所有用户的绝大多数工具和应用程序(下文详细介绍) |
/var | variable,存放动态文件,如系统日志,程序缓存等(下文详细介绍) |
/usr目录
Unix Software Resource 意为 Unix系统软件资源,系统自带的软件都装在这个目录下(好比Windows系统的"C:\Windows"),用户安装的第三方软件也在这个目录下(好比Windows系统的"C:\Program Files"),不同的是,在Windows系统上安装软件通常将该软件的所有文件放置在同一个目录下,但是在Linux系统安装软件会将该软件的不同文件分别放置在/usr目录下的不同子目录下,而不应该自行创建该软件自己的独立目录。进入到/usr目录,一般有以下子目录:
[root@localhost /]# cd usr/
[root@localhost usr]# ls
bin etc games include lib lib64 libexec local sbin share src tmp
目录 | 含义 |
---|---|
/usr/bin | 即/bin,用链接文件到方式将/bin链接至此 |
/usr/etc | 应用程序的配置文件 |
/usr/games | 与游戏相关的数据 |
/usr/include | c/c++程序的头文件 |
/usr/lib | 即/lib,用链接文件到方式将/lib链接至此 |
/usr/lib64 | 即/lib64,用链接文件到方式将/lib64链接至此 |
/usr/libexec | 不常用的执行文件或脚本 |
/usr/local | 应用程序的安装目录,每个应用程序目录下还会有对应的bin, etc, lib等目录 |
/usr/sbin | 即/sbin,用链接文件到方式将/sbin链接至此 |
/usr/share | 共享文件,通常是一些文字说明文件,如软件文档等 |
/usr/src | source,应用程序源代码 |
/usr/tmp | 应用程序临时文件 |
/var
/var主要存放一些动态文件,比如程序缓存,登陆文件,程序运行所产生的文件等,常见的子目录有:
[root@localhost usr]# cd /var
[root@localhost var]# ls
adm crash empty gopher lib lock mail opt run tmp
cache db games kerberos local log nis preserve spool yp
目录 | 含义 |
---|---|
/var/cache | 应用程序缓存 |
/var/lib | 应用层序运行所需的数据文件,在这个目录下各自的程序应该要有各自的目录 |
/var/lock | 文件锁,使某些文件资源一次只能被一个应用程序使用 |
/var/log | 日志文件 |
/var/run | 进程或服务PID |
/var/spool | 队列数据,即等待处理的任务,如发送信息若发送失败则先存放至此,等发送成功后就被删除 |
一般来说,我们在Linux上管理文件与目录时只要记住大概的FHS标准定义下必须存在的目录以及目录含义,对于标准约束外的目录我们就可以自行配置啦
网友评论