docs: update docs

Log:
This commit is contained in:
xiangzelong
2023-02-16 10:56:23 +08:00
parent 710ce6d6fa
commit 82ed19889b
7 changed files with 225 additions and 71 deletions

View File

@@ -10,7 +10,6 @@ cd /
tree -L 3
```
这会展示出`/`目录下的文件树深度为3
这些文件和目录可以分散在多个设备中。`mount`(8)用于把某个设备上找到的文件系统附着到巨大的文件树上。相反的,`umount`(8)把它再次分离。在最近的 Linux 内核里,`mount`(8)带某些参数时可以把文件树的一部分绑定到另外的地方,或者可以把文件系统挂载为共享的、私有的、从设备、或不可绑定的。对每个文件系统支持的挂载选项可以在`/usr/share/doc/linux-doc-*/Documentation/filesystems/`找到。
@@ -35,7 +34,7 @@ Unix系统上叫做**目录**,某些其他系统上叫做**文件夹**。请
- 对于一个物理设备, 是没有一个特定的目录路径名来对应的组成部分. 这不同于RT-11, CP/M,OpenVMS,MS-DOS,AmigaOS, 以及微软的Windows这些系统存在一个路径包含了一个设备名字比如"C:"。(尽管如此, 路径条目确实存在引用了物理设备作为正常的文件系统的一部分. 参考第 1.2.2 节 “文件系统深入解析”。)
虽然你**可以**在文件名中使用任意的字幕或者符号, 但是在实际情况下这样做是一个坏主意. 最好避免使用一些在命令行里面含有特殊意义的字符, 比如空格, 制表符, 换行符, 和其它的特殊字符: `{ } ( ) [ ] ' ` " \ / >< | ; ! #&^ * % @ $`. 如果你想有一个区分度良好的命名, 比较好的选择是利用 时期, 连字符和下划线. 你也可以每个单词的首字母大写, 这叫大驼峰命名法, 比如这样 "`LikeThis`". 经验丰富的Linux用户会趋向于在文件名中不使用空格.
虽然你**可以**在文件名中使用任意的字幕或者符号, 但是在实际情况下这样做是一个坏主意. 最好避免使用一些在命令行里面含有特殊意义的字符, 比如空格, 制表符, 换行符, 和其它的特殊字符: `{ } ( ) [ ] '` " \ / >< | ; ! #&^ * % @ $`. 如果你想有一个区分度良好的命名, 比较好的选择是利用 时期, 连字符和下划线. 你也可以每个单词的首字母大写, 这叫大驼峰命名法, 比如这样 "`LikeThis`". 经验丰富的Linux用户会趋向于在文件名中不使用空格.
这个 "root" 可能既表示 "超级用户root" 又表示 " 根目录"(/root) . 应该根据上下文确定它的用法
@@ -113,7 +112,7 @@ Unix系统上叫做**目录**,某些其他系统上叫做**文件夹**。请
- 文件的名字
字符 说明
字符 说明
|||
|-|-|
@@ -133,7 +132,6 @@ sudo chgrp newgroup foo
sudo chmod [ugoa][+-=][rwxXst][,...] foo
```
例如,你可以按照下面使一个目录树被用户`foo`所有,并共享给组`bar`。
```Shell
@@ -142,7 +140,6 @@ sudo chown -R foo:bar .
sudo chmod -R ug+rwX,o=rX .
```
有三个更加特殊的权限位。
- Set-User-ID(SUID)位s或S替换用户的x
@@ -155,7 +152,7 @@ sudo chmod -R ug+rwX,o=rX .
给一个可执行文件设置 **Set-User-ID** 位将允许一个用户以他自己的ID运行这个可执行文件例如 **root 用户**)。类似的,给一个可执行文件设置了**Set-Group-ID** 位将允许一个用户以文件所属组的 ID 运行该文件。(例如 **root** 组)。由于这些设置可能导致安全风险,设置它们为可用的时候需要格外留意。
在一个目录上设置“**Set-Group-ID**”将打开[类 BSD ](https://zh.wikipedia.org/wiki/Berkeley_Software_Distribution)的文件创建计划,所有在目录里面创建的文件将属于目录所属的**组**。
在一个目录上设置“**Set-Group-ID**”将打开[类 BSD](https://zh.wikipedia.org/wiki/Berkeley_Software_Distribution)的文件创建计划,所有在目录里面创建的文件将属于目录所属的**组**。
给一个目录设置“**粘滞位**”将保护该目录内的文件不被其所有者之外的一个用户删除。为了保护一个在像“`/tmp`”这样所有人可写或同组可写的目录下文件内容的安全,不仅要去除**可写**权限,还要给其所在目录设置**粘滞位**。否则,该文件可以被任意对其所在目录有写权限的用户删除并创建一个同名的新文件。
@@ -175,7 +172,6 @@ drwxrwsr-x 2 root mail 4096 Oct 15 21:40 /var/mail
drwxrwxrwt 3 root root 4096 Oct 16 21:20 /var/tmp
```
`chmod`(1)有另一种数值模式来描述文件权限。这种数字模式使用3到4位八进制底为8
|数字|说明|
@@ -198,7 +194,6 @@ ls -l foo bar
-rw-r--r-- 1 penguin penguin 0 Oct 16 21:35 foo
```
如果你需要在 shell 脚本中访问“`ls -l`”显示的信息,你需要使用相关命令,如`test`(1)`stat`(1)和`readlink`(1)。shell 内置命令,如“[”或“test”可能也会用到。
## 1.2.4. 控制新建文件的权限umask
@@ -209,7 +204,6 @@ ls -l foo bar
(file permissions) = (requested file permissions) & ~(umask value)
```
|umask值|创建的文件权限|创建的目录权限|用法|
|-|-|-|-|
|0022|-rw-r--r--|-rwxr-xr-x|仅所属用户可写|
@@ -224,13 +218,10 @@ deepin 默认使用用户私人组UPG。每当一个新用户添加到系
组的成员。你需要注销之后重新登录(或运行 “`exec newgrp`”)以启用新
的组配置。
或者,你可以通过添加一行 “`auth optional pam_group.so`”到 “`/etc/
pam.d/common-auth`” 以及配置 “`/etc/security/group.conf`” ,使得在身
份验证过程动态添加用户到组。(参见第 4 章认证和访问控制。)
在 deepin 系统中,硬件设备是另一种文件。如果你从一个用户账户访问
某些设备出现问题例如CD-ROM和U盘你需要使这个用户成为相关
组的成员。
@@ -308,7 +299,6 @@ $ LANG=fr_FR.UTF-8 ls -l foo
-rw-rw-r-- 1 penguin penguin 0 oct. 16 21:35 foo
```
参考第 9.3.4 节 “定制时间和日期的显示” 自定义 “ls -l” 输出 。
## 1.2.7. 链接
@@ -319,9 +309,9 @@ $ LANG=fr_FR.UTF-8 ls -l foo
[硬链接](https://zh.wikipedia.org/wiki/Hard_link)
- 对现有文件重复名称
- 对现有文件重复名称
- “`ln foo bar`”
- “`ln foo bar`”
- [符号链接或 symlink](https://zh.wikipedia.org/wiki/Symbolic_link)
@@ -354,7 +344,6 @@ $ cat baz
New Content
```
硬链接可以在同一个文件系统内创建,并共用同一个 inode 号,由`ls`(1)带 “`-i`”选项显示。
符号链接总是名义上具有“`rwxrwxrwx`”的文件访问权限,如上面例子所示,实际的有效访问权限由它所指向的文件确定。
@@ -389,7 +378,6 @@ mypipe
$ rm mypipe
```
## 1.2.9. 套接字
套接字被广泛应用于所有的互联网通信数据库和操作系统本身。它类似于命名管道FIFO并且允许进程之间甚至不同计算机之间进行信息交换。对于套接字这些进程不需要在同一时间运行也不需要是同一个父进程的子进程。它是[进程间通信IPC](https://zh.wikipedia.org/wiki/Inter-process_communication)的一个节点。信息的交换可能会通过网络发生在不同主机之间。最常见的两种是 [互联网套接字](https://zh.wikipedia.org/wiki/Internet_socket) 和 [UNIX域套接字](https://zh.wikipedia.org/wiki/Unix_domain_socket) 。
@@ -432,7 +420,6 @@ crw-rw---T 1 root dialout 4, 64 Oct 16 20:57 /dev/ttyS0
crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
```
- "`/dev/sda`"的主设备号是8次设备号是0。它可以被`disk`群组的用户读写。
- "`/dev/sr0`"的主设备号是11次设备号是0。它可以被`cdrom`群组的用户读写。