鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)
Linux目录配置的依据--FHS
因为利用Linux来开发产品的公司太多,例如,CentOS、Ubuntu、ReHat...,导致了配置文件存放的目录没有统一的标准。后来就有了FHS(Filesystem Hierarchy Standard)的标准出来了。
四种交互作用的形态
1.可分享的: 可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能够分享给网络上其他主机挂载用的目录。(总结就是对系统运作没影响的文件)
2.不可分享的: 自己机器上面运作的装置文件或是与程序有关的socket文件等,由于仅与自身机器有关,所以当然就不适合分享给其他主机了。(总结就是会对系统运作有影响的文件)
3.不变的: 有些数据时不会经常变动的,跟随着distribution而不变动的。例如函式库、主机服务配置文件等。
4.可变动的: 经常改变的数据,例如登录文件、一般用户可自行操作的文件。
根目录(/)的意义与内容
根目录是整个系统最重要的一个目录。因为不但所有目录都是由根目录衍生出来的,并且根目录还有开机/还原/系统修复等动作有关。所以可以看出根目录是有多么的重要。
因此FHS标准建议:根目录(/)所在的分区槽应该越小越好(其实就是根目录下的目录越少越好,但是必要的还是不可少),且应用程序锁安装的软件最好不要与根目录放在同一个分区槽内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也较不容易发生问题。
由于上述的说明,FHS定义的根目录(/)底下应该有下面这些目录
| 目录 | 放置文件内容 |
|---|---|
| /bin | 存放的是root与一般账号锁使用的可执行文件目录,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用指令。 |
| /boot | 这个目录主要放置开机会使用到的文件 |
| /dev | 任何装置和接口设备都是以文件的形态存在于这个目录当中 |
| /etc | 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启始文件等 |
| /lib | 开机时会用到的函式库 |
| /media | 放置移除的装置,如软盘、光盘、DVD等都是挂载于此目录。 |
| /mnt | 在早些时候,这个目录用途和/media相同,后来这个目录就用来暂时挂载的。 |
| /opt | 第三方软件放置的目录 |
| /run | 开机后所产生的各项信息文件 |
| /sbin | 开机过程所需要的指令,例如开机、修复、还原系统等指令 |
| /srv | 可视为service的缩写,是一些网络服务启动之后,这些服务所需要的数据目录。例如服务www,www服务器所需要的网页子类就可以放置到/srv/www/里面。 |
| /tmp | 临时存放目录,重要的文件不要放这里!切记切记。 |
| /usr | 下面再详细介绍 |
| /var | 下面再详细介绍 |
| /home | 系统默认用户的家目录, cd ~ 就会回到你自己家啦。 |
| /root | 系统管理员(root)的家目录。 |
| /lost+found | 这个目录是使用标准的ext2/ext3/ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下。如果是xfs文件系统就不放存放到这。 |
| /proc | 放置的数据都是在内存当中的,例如系统核心、进程信息、装置的状态以及网络状态等等。 |
| /sys | 与/proc类似,主要记录核心与系统硬件信息。 |
/usr的意义与内容
/usr里面放置的数据属于可分享与不可变动的内容。很多读者都会误会/usr为/user的缩写(其实我也是),其实是Unix Software Resources的缩写,即Unix操作系统软件资源。
| 目录 | 应放置文件内容 |
|---|---|
| /usr/bin/ | 所有一般用户能够使用的指令都放在这里,CentOS 7 已将全部用户的指令放到这里,而且使用连接档(暂时理解为快捷方式,后续文章会对其详解)的方式将/bin连结到此。 |
| /usr/lib/ | /lib的连结档 |
| /usr/local/ | 系统管理员在本机自行安装的软件,建议安装到此目录。 |
| /usr/sbin/ | /sbin的连结档 |
| /usr/share/ | 只读的数据文件,也包括共享文件,我们的男人 man(联机帮助文件)就是存放于此 |
| /usr/games/ | 游戏相关文件 |
| /usr/include/ | c/c++等程序语言的文件头(header)与引用文件(include)放置处。 |
| /usr/libexec/ | 某些不被一般使用者管用的执行文件或脚本 |
| /usr/src/ | 一般的源码建议放到这里,src有source的意思。 |
/var的意义与内容
如果/usr是安装时会占用较大的硬盘的目录,那么/var就是在系统运行后才会渐渐占用硬盘容量的目录,因为/var目录主要针对常态性变动的文件。包括缓存(cache)、登录文件、以及某些软件运行时所产生的文件
| 目录 | 应防止文件内容 |
|---|---|
| /var/cache/ | 应用程序本身运行过程产生的一些暂存文件(缓存文件)。 |
| /var/lib/ | 程序执行过程所需要的数据文件放置的目录。如MYSQL数据库放置到/var/lib/mysql/ |
| /var/lock/ | 某些资源一次只能被一个应用所使用到的。就放置在此目录,因为lock上锁嘛~ |
| /var/log/ | 灰常重要!登录文件放置的目录!如/var/lib/messages |
| /var/mail | 放置个人电子邮箱的目录 |
| /var/run | 某些程序或服务启动后,会将他们的PID放置到这个目录下。 |
| /var/spool | 这个目录通常存放一些队列数据,如数据队列。 |
绝对路径与相对路径
绝对路径
由根目录(/)开始写起的文件名或目录名称,例如:/home/vagrant/
相对路径
相对于目前路径的文件名写法。例如: ../home,比较特殊的连个目录:
.代表当前目录,也可以使用./..代表上层目录,也可以使用../
第六章细讲绝对路径和相对路径
鸟哥的Linux私房菜笔记第五章,文件权限与目录配置(二)的更多相关文章
- 鸟哥的Linux私房菜笔记第四章
前言 对着<鸟哥的Linux私房菜-基础版>做了简化笔记.不想让自己知其然而不知其所然.所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来.在这里就简化一点把命令写下来. 让 ...
- 鸟哥的Linux私房菜笔记第六章(二)
文件内容查询 直接查询文件内容 查阅一个文件的内容可以使用指令cat/tac/nl. # [cat|tac|nl] 文件 区别: 1.cat是直接把文件内容输出到屏幕上,并且从第一行开始输出到末行 2 ...
- 学习鸟哥的Linux私房菜笔记(4)——文件
一.检查文件 用ls -l以长模式查看文件的详细信息,包含当前目录的硬盘使用空间.文件类型.文件权限.硬连接数.文件拥有者.文件所属组.文件大小.更改时间.文件名称. 用file检查文件类型 由于li ...
- 学习鸟哥的Linux私房菜笔记(8)——文件查找与文件管理2
四.压缩 gzip, gunzip Linux标准压缩工具 对文本文件可以达到75%的压缩率 compress, uncompress 旧的Unix压缩工具 bzip2, bunzip2 更新的Lin ...
- 鸟哥的Linux私房菜笔记第六章(一)
目录与路径 相对路径与绝对路径 上一章简单的提到绝对路径和相对路径 绝对路径:路径的写法一定是由根目录(/)写起的,例如:/home/user 这个目录 相对路径:路径的写法不是由根目录(/)写起,例 ...
- 学习鸟哥的Linux私房菜笔记(7)——文件查找与文件管理1
一.可执行文件的搜索 which 显示一个可执行文件的完整路径 按照alias->$PATH的顺序查找 查看系统的环境变量 whereis 搜索一个可执行工具及其相关配置.帮助 slocate ...
- 鸟哥的Linux私房菜——第十五章:正规表示法
视频链接 B站:http://www.bilibili.com/video/av10364761/ 目录如下 1. 前言:2. 基础正规表示法:2.1 以 grep 撷取字符串 (grep -iv ...
- 学习鸟哥的Linux私房菜笔记(15)——文件系统
一.文件结构 为了能在设备上存储与读取文件,我们需要在分区上创立文件系统 文件系统记录目录与文件我们称之为文件结构 每一个文件系统在Linux里都被解释成由一个根目录为起点的目录结构 Linux将各个 ...
- 学习鸟哥的Linux私房菜笔记(14)——硬件配置与管理
一.设备文件 Linux沿袭了Unix的风格,将所有设备看成一个文件 设备文件分为两种: 块设备文件(b):比如硬盘.光驱 字符设备文件(c):比如串口.键盘 设备文件一般存放在/dev目录下 二.常 ...
随机推荐
- STM32 HAL_Deleay() 函数 导致程序卡死
出现问题场景: 我的程序有RTOS操作系统.使用的驱动库是STM32官方最新的HAL库. 移植好LwIP以太网协议后,在初始化网卡阶段程序卡死. 出现问题原因: 后经过蠢笨的printf打 ...
- C# 类库项目 无法创建 “资源字典” 文件
1.接触WPF有两个月时间了,准备自己写一个样式库,在vs新建 类库项目后无法创建资源字典. 2.解决办法: 打开项目工程文件 ( project.csproj) 在 <Proper ...
- 手把手教你安装Virtualbox,安装并运行虚拟机
一.安装VirtualBox. 官网:https://www.virtualbox.org/wiki/Downloads 首先,进入官网下载页面,单击Windows hosts 链接(图中红色方框), ...
- java基础 - 泛型的使用
泛型的使用方式有泛型类,泛型接口,泛型方法. 泛型的意思是把参数类型也当成参数传入,也就是在使用时(类实例化或调用方法时)传入类型. 泛型类 在实例化时传入参数类型,不能对泛型类使用instancec ...
- BZOJ3894/LG4313 文理分科 新建点最小割
问题描述 BZOJ3894 LG4313 题解 显然一个人只能选文/理 -> 一个人只能属于文(S).理(T)集合中的一个 可以把选择文得到 \(art\) 的收益看做选择文失去 \(scien ...
- [译]Vulkan教程(05)Instance
[译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...
- LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees
LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees 题目: 给定一棵二叉树,返回所有重复的子树.对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可. 两 ...
- DEBUG的基本命令的使用[MASM]
DEBUG的基本命令的使用 DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段. DEBUG的命令都是一个字母,后跟一个或多个参数:字母 ...
- docker打包python应用
操作系统 : CentOS7.5.1804_x64 docker版本 : 18.06.3-ce 本文描述了怎么将简单的python应用打包成docker镜像的过程. 本文涉及文件目录结构如下: [ro ...
- C++入门到理解阶段二基础篇(9)——C++结构体
1.概述 前面我们已经了解到c++内置了常用的数据类型,比如int.long.double等,但是如果我们要定义一个学生这样的数据类型,c++是没有的,此时就要用到结构体,换言之通过结构体可以帮我们定 ...