# 第三章 目录及其存储
[TOC]
## 3.1 目录、路径名和存取权限
> **控制管理信息:文件名、文件大小等**
>
> **I节点:文件名(每个文件有唯一的I结点)**
>
> **除了root目录,其他都是子目录**

### 主目录
```
为新用户建立帐户时系统指定的工作目录(用户也可以自行修改)。主目录往往位于/home目录之下,并且与用户的注册名相同 。通常,用户主目录包含子目录、数据文件,以及用于注册环境的配置文件。
```
### 工作目录
```
使用一个目录作为参照点,以后不作具体指定情况下,所访问的文件都是该目录中的文件。
```
### 常见的目录形式
#### bin 目录
```
包含二进制(binary)文件的可执行程序
```
#### sbin目录
```
存放用于语管理系统的命令
```
#### boot目录
```
存放引导系统时使用的各种文件,如LILO等。
```
#### etc目录
```
包含很多Linux系统配置文件(如etc/passwd、etc/profile等)
```
#### root目录
```
超级用户的目录
```
#### dev目录
```
包含表示文件的特别文件
```
#### home目录
```
用户起始目录的基础目录。通常用户主目录就保存在该目录
```
#### lib目录
```
保存程序运行时使用的共享库
```
#### lost+found目录
```
存放系统非正常关闭时正在处理的文件,以便下次系统启动时予以恢复
```
#### mnt目录
```
存放安装文件系统的安装点
```
#### proc目录
```
实际上是一个虚拟文件系统的安装点
```
#### tmp目录
```
目录用于存放程序运行时生成的临时文件。
```
#### usr目录
```
包含多个子目录,其中保存系统一些重要的程序,可供所有用户共享
```
#### var目录
```
包括正常运行时要改变的数据
```
#### 工作目录(pwd目录)
```
使用一个目录作为参照点,以后不作具体指定情况下,所
访问的文件都是该目录中的文件。
```
#### 主目录
```
为新用户建立帐户时系统指定的工作目录(用户也可以自行修改)。主目录往往位于/home目录之下,并且与用户的注册名相同 。通常,用户主目录包含子目录、数据文件,以及用于注册环境的配置文件。
```
### 路径
#### 绝对路径
1. **以根目录为起点的路径名称为绝对路径名**。
2. 绝对路径总是以斜线字符(/)开头,表示根目录
例:/home/mengqc/lib/func/file1
#### 绝对路径
1. **相对路径以当前的路径**;
例:目录是/home/mengqc/lib ,
绝对路径名为/home/mengqc/lib/func/file1,
相对路径名是 func/file1。
2. **点(.):目录表示本目录自身,**
**点点(..):目录代表该目录的父目录。**
### 用户类型
> 用户使用文件命令对文(包括目录)进行操作的前提拥有相应权限。不同类型的用有不同的职责和操作权限。
#### 1.文件主
#### 2.可访问系统的其他用户
#### 3.同组用户
#### 4.超级用户
### 不同用户之间的权限
##### 文件主
```
文件或目录的创建者对创建的文件或目录拥有特别使用权。
只有文件主或root才有权利用chown命令改变文件的所有关系(UID)。
```
##### 用户组
```
通常,组中包含了有相同需求的用户。文件用
户组关系的标识是GID。
```
⚠️警告:文件的GID只能由文件主或超级用户(root)来修改。利用chgrp命令可以改变文件的GID。
### 创建目录和删除目录
**创建目录(mkdir)**
```
用来创建目录。
一般格式:
mkdir [选项] dirname…
```
**删除目录**
```
可以从一个目录中删除一个或多个空的子目录。
一般格式:
rmdir [选项] … dirname…
```
### 改变和显示目录
| 代码 | 作用 | 一般格式 |
| ------- | ---------------------------- | ---------------------- |
| cd命令 | 用来改变工作的目录。 | cd [dirname] |
| pwd命令 | 命令显示出当前工作的绝对路径 | |
| ls命令 | 列出指定XD目录的内容 | ls [选项]... [FILE]... |
### 连接文件的命令
#### 硬链接
```
建立硬链接时,在另外的目录或本目录增加目标文件的一个目录项,这样,一个文件(如m2.c)就登记在多个目录中
```
硬链接限制
1. 不能对目录文件做硬链接
2. 不能在不同的文件文件系统之间做硬链接

#### 符号链接
```
也称为软链接,是将一个路径名链接到一个文件。事实上只是一个文本文件,其中包含它提供链接的另一个文件的路径名。
```
**ln命令**
```
用来创建链接。
一般格式: ln [选项]... 源文件 [目标文件]...
```
### 改变文件或目录存取权限
> ⚠️:只有文件主或超级用户root才有权用chmod命令改变文件或目录的存取权限。
#### chmod命令
1**.以符号模式改变权限**
```
一般格式:chmod [选项]... MODE[,MODE]... 文件...,MODE 由以下各项组成: [who] [操作符号] [mode]
```

2.**以绝对方式改变权限**
```
一般格式: chmod [选项]... OCTAL-MODE 文件...
```
**例:**

#### unmask命令
```
用来设置限制新建文件权限的掩码
```

#### 改变用户组合文件主命令
**chagrp命令**
```
用来改变文件或目录所属的用户组。
一般格式: chgrp [选项]... GROUP FILE...
```
**chown命令**
```
改变某个文件或目录的所有者和/或所属的组。
一般格式:chown [选项]... OWNER或GROUP FILE...
```
## 3.3. 联机帮助
### man命令
```
该命令可以格式化并显示联机帮助手册页。
一般格式: man [选项]... 参数...
```
### Help命令
```
用来查看所有shell内置命令的帮助信息。
一般格式: help [-s] [pattern]
```
