diff --git a/docs/notes/Linux.md b/docs/notes/Linux.md index e7a4d9c7..8d206097 100644 --- a/docs/notes/Linux.md +++ b/docs/notes/Linux.md @@ -31,7 +31,7 @@ * [文件属性](#文件属性) * [文件与目录的基本操作](#文件与目录的基本操作) * [修改权限](#修改权限) - * [文件默认权限](#文件默认权限) + * [默认权限](#默认权限) * [目录的权限](#目录的权限) * [链接](#链接) * [获取文件内容](#获取文件内容) @@ -137,10 +137,8 @@ sudo 允许一般用户使用 root 可执行的命令,不过只有在 /etc/sud RPM 和 DPKG 为最常见的两类软件包管理工具: -- RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。 -- 与 RPM 竞争的是基于 Debian 操作系统 (Ubuntu) 的 DEB 软件包管理工具 DPKG,全称为 Debian Package,功能方面与 RPM 相似。 - -YUM 基于 RPM,具有依赖管理和软件升级功能。 +- RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为许多 Linux 系统的既定软件标准。YUM 基于 RPM,具有依赖管理和软件升级功能。 +- 与 RPM 竞争的是基于 Debian 操作系统的 DEB 软件包管理工具 DPKG,全称为 Debian Package,功能方面与 RPM 相似。 ## 发行版 @@ -157,7 +155,7 @@ Linux 发行版是 Linux 内核及各种应用软件的集成版本。 - 编辑模式(Insert mode):按下 "i" 等按键之后进入,可以对文本进行编辑; - 指令列模式(Bottom-line mode):按下 ":" 按键之后进入,用于保存退出等操作。 -

+

在指令列模式下,有以下命令用于离开或者保存文件。 @@ -172,7 +170,7 @@ Linux 发行版是 Linux 内核及各种应用软件的集成版本。 ## GNU -GNU 计划,译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议,包含了以下内容: +GNU 计划,译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议(GNU General Public License),包含了以下内容: - 以任何目的运行此程序的自由; - 再复制的自由; @@ -195,13 +193,13 @@ IDE(ATA)全称 Advanced Technology Attachment,接口速度最大为 133MB/ ### 2. SATA -SATA 全称 Serial ATA,也就是使用串口的 ATA 接口,抗干扰性强,且对数据线的长度要求比 ATA 低很多,支持热插拔等功能。SATA-II 的接口速度为 300MiB/s,而新的 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多,有利于机箱内的空气流通,整理线材也比较方便。 +SATA 全称 Serial ATA,也就是使用串口的 ATA 接口,抗干扰性强,且对数据线的长度要求比 ATA 低很多,支持热插拔等功能。SATA-II 的接口速度为 300MiB/s,而 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多,有利于机箱内的空气流通,整理线材也比较方便。

### 3. SCSI -SCSI 全称是 Small Computer System Interface(小型机系统接口),经历多代的发展,从早期的 SCSI-II 到目前的 Ultra320 SCSI 以及 Fiber-Channel(光纤通道),接口型式也多种多样。SCSI 硬盘广为工作站以及个人电脑以及服务器所使用,因此会使用较为先进的技术,如碟片转速 15000rpm 的高转速,且传输时 CPU 占用率较低,但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。 +SCSI 全称是 Small Computer System Interface(小型机系统接口),SCSI 硬盘广为工作站以及个人电脑以及服务器所使用,因此会使用较为先进的技术,如碟片转速 15000rpm 的高转速,且传输时 CPU 占用率较低,但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。

@@ -236,7 +234,7 @@ Linux 也把分区当成文件,分区文件的命名方式为:磁盘文件 ### 2. GPT -不同的磁盘有不同的扇区大小,例如 512 bytes 和最新磁盘的 4 k。GPT 为了兼容所有磁盘,在定义扇区上使用逻辑区块地址(Logical Block Address, LBA),LBA 默认大小为 512 bytes。 +扇区是磁盘的最小存储单位,旧磁盘的扇区大小通常为 512 bytes,而最新的磁盘支持 4 k。GPT 为了兼容所有磁盘,在定义扇区上使用逻辑区块地址(Logical Block Address, LBA),LBA 默认大小为 512 bytes。 GPT 第 1 个区块记录了主要开机记录(MBR),紧接着是 33 个区块记录分区信息,并把最后的 33 个区块用于对分区信息进行备份。这 33 个区块第一个为 GPT 表头纪录,这个部份纪录了分区表本身的位置与大小和备份分区的位置,同时放置了分区表的校验码 (CRC32),操作系统可以根据这个校验码来判断 GPT 是否正确。若有错误,可以使用备份分区进行恢复。 @@ -284,19 +282,19 @@ BIOS 不可以读取 GPT 分区表,而 UEFI 可以。 除此之外还包括: - superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等; -- block bitmap:记录 block 是否被使用的位域。 +- block bitmap:记录 block 是否被使用的位图。

## 文件读取 -对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中去查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 +对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 -

+

而对于 FAT 文件系统,它没有 inode,每个 block 中存储着下一个 block 的编号。 -

+

## 磁盘碎片 @@ -321,8 +319,8 @@ inode 具体包含以下信息: - 拥有者与群组 (owner/group); - 容量; - 建立或状态改变的时间 (ctime); -- 最近一次的读取时间 (atime); -- 最近修改的时间 (mtime); +- 最近读取时间 (atime); +- 最近修改时间 (mtime); - 定义文件特性的旗标 (flag),如 SetUID...; - 该文件真正内容的指向 (pointer)。 @@ -331,7 +329,7 @@ inode 具有以下特点: - 每个 inode 大小均固定为 128 bytes (新的 ext4 与 xfs 可设定到 256 bytes); - 每个文件都仅会占用一个 inode。 -inode 中记录了文件内容所在的 block 编号,但是每个 block 非常小,一个大文件随便都需要几十万的 block。而一个 inode 大小有限,无法直接引用这么多 block 编号。因此引入了间接、双间接、三间接引用。间接引用是指,让 inode 记录的引用 block 块记录引用信息。 +inode 中记录了文件内容所在的 block 编号,但是每个 block 非常小,一个大文件随便都需要几十万的 block。而一个 inode 大小有限,无法直接引用这么多 block 编号。因此引入了间接、双间接、三间接引用。间接引用让 inode 记录的引用 block 块记录引用信息。

@@ -339,7 +337,7 @@ inode 中记录了文件内容所在的 block 编号,但是每个 block 非常 建立一个目录时,会分配一个 inode 与至少一个 block。block 记录的内容是目录下所有文件的 inode 编号以及文件名。 -可以看出文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的 w 权限有关。 +可以看到文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的写权限有关。 ## 日志 @@ -446,17 +444,15 @@ rmdir [-p] 目录名称 ### 6. cp -复制文件。 - -如果源文件有两个以上,则目的文件一定要是目录才行。 +复制文件。如果源文件有两个以上,则目的文件一定要是目录才行。 ```html cp [-adfilprsu] source destination --a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明 +-a :相当于 -dr --preserve=all -d :若来源文件为链接文件,则复制链接文件属性而非文件本身 -i :若目标文件已经存在时,在覆盖前会先询问 -p :连同文件的属性一起复制过去 --r :递归持续复制 +-r :递归复制 -u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制 --preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了 ``` @@ -513,12 +509,12 @@ cp [-adfilprsu] source destination # chmod a+w .bashrc ``` -## 文件默认权限 +## 默认权限 - 文件默认权限:文件默认没有可执行权限,因此为 666,也就是 -rw-rw-rw- 。 - 目录默认权限:目录必须要能够进入,也就是必须拥有可执行权限,因此为 777 ,也就是 drwxrwxrwx。 -可以通过 umask 设置或者查看文件的默认权限,通常以掩码的形式来表示,例如 002 表示其它用户的权限去除了一个 2 的权限,也就是写权限,因此建立新文件时默认的权限为 -rw-rw-r--。 +可以通过 umask 设置或者查看默认权限,通常以掩码的形式来表示,例如 002 表示其它用户的权限去除了一个 2 的权限,也就是写权限,因此建立新文件时默认的权限为 -rw-rw-r--。 ## 目录的权限 @@ -528,14 +524,15 @@ cp [-adfilprsu] source destination ## 链接 +

+ + ```html # ln [-sf] source_filename dist_filename --s :默认是 hard link,加 -s 为 symbolic link +-s :默认是实体链接,加 -s 为符号链接 -f :如果目标文件存在时,先删除目标文件 ``` -

- ### 1. 实体链接 在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。 @@ -557,7 +554,7 @@ cp [-adfilprsu] source destination 当源文件被删除了,链接文件就打不开了。 -可以为目录建立链接。 +因为记录的是路径,所以可以为目录建立符号链接。 ```html # ll -i /etc/crontab /root/crontab2 @@ -1108,7 +1105,7 @@ dmtsai lines: 5 columns: 9 ### 1. ps -查看某个时间点的进程信息 +查看某个时间点的进程信息。 示例一:查看自己的进程 @@ -1130,7 +1127,7 @@ dmtsai lines: 5 columns: 9 ### 2. pstree -查看进程树 +查看进程树。 示例:查看所有进程树 @@ -1140,7 +1137,7 @@ dmtsai lines: 5 columns: 9 ### 3. top -实时显示进程信息 +实时显示进程信息。 示例:两秒钟刷新一次 @@ -1162,13 +1159,14 @@ dmtsai lines: 5 columns: 9 | 状态 | 说明 | | :---: | --- | -| R | running or runnable (on run queue) | -| D | uninterruptible sleep (usually I/O) | -| S | interruptible sleep (waiting for an event to complete) | -| Z | zombie (terminated but not reaped by its parent) | -| T | stopped (either by a job control signal or because it is being traced) | +| R | running or runnable (on run queue)
正在执行或者可执行,此时进程位于执行队列中。| +| D | uninterruptible sleep (usually I/O)
不可中断阻塞,通常为 IO 阻塞。 | +| S | interruptible sleep (waiting for an event to complete)
可中断阻塞,此时进程正在等待某个事件完成。| +| Z | zombie (terminated but not reaped by its parent)
僵死,进程已经终止但是不可被其父进程获取信息。| +| T | stopped (either by a job control signal or because it is being traced)
结束,进程既可以被作业控制信号结束,也可能是正在被追踪。|
-

+ +

## SIGCHLD @@ -1181,7 +1179,7 @@ dmtsai lines: 5 columns: 9 在子进程退出时,它的进程描述符不会立即释放,这是为了让父进程得到子进程信息,父进程通过 wait() 和 waitpid() 来获得一个已经退出的子进程的信息。 -

+

## wait() diff --git a/docs/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png b/docs/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png new file mode 100644 index 00000000..69283617 Binary files /dev/null and b/docs/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png differ diff --git a/docs/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png b/docs/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png new file mode 100644 index 00000000..8c496033 Binary files /dev/null and b/docs/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png differ diff --git a/docs/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png b/docs/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png new file mode 100644 index 00000000..c65e1eaa Binary files /dev/null and b/docs/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png differ diff --git a/docs/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png b/docs/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png new file mode 100644 index 00000000..6a611257 Binary files /dev/null and b/docs/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png differ diff --git a/docs/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png b/docs/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png new file mode 100644 index 00000000..59ec8ce1 Binary files /dev/null and b/docs/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png differ diff --git a/notes/Linux.md b/notes/Linux.md index 69d0cab8..6134bcee 100644 --- a/notes/Linux.md +++ b/notes/Linux.md @@ -31,7 +31,7 @@ * [文件属性](#文件属性) * [文件与目录的基本操作](#文件与目录的基本操作) * [修改权限](#修改权限) - * [文件默认权限](#文件默认权限) + * [默认权限](#默认权限) * [目录的权限](#目录的权限) * [链接](#链接) * [获取文件内容](#获取文件内容) @@ -137,10 +137,8 @@ sudo 允许一般用户使用 root 可执行的命令,不过只有在 /etc/sud RPM 和 DPKG 为最常见的两类软件包管理工具: -- RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。 -- 与 RPM 竞争的是基于 Debian 操作系统 (Ubuntu) 的 DEB 软件包管理工具 DPKG,全称为 Debian Package,功能方面与 RPM 相似。 - -YUM 基于 RPM,具有依赖管理和软件升级功能。 +- RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为许多 Linux 系统的既定软件标准。YUM 基于 RPM,具有依赖管理和软件升级功能。 +- 与 RPM 竞争的是基于 Debian 操作系统的 DEB 软件包管理工具 DPKG,全称为 Debian Package,功能方面与 RPM 相似。 ## 发行版 @@ -157,7 +155,7 @@ Linux 发行版是 Linux 内核及各种应用软件的集成版本。 - 编辑模式(Insert mode):按下 "i" 等按键之后进入,可以对文本进行编辑; - 指令列模式(Bottom-line mode):按下 ":" 按键之后进入,用于保存退出等操作。 -

+

在指令列模式下,有以下命令用于离开或者保存文件。 @@ -172,7 +170,7 @@ Linux 发行版是 Linux 内核及各种应用软件的集成版本。 ## GNU -GNU 计划,译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议,包含了以下内容: +GNU 计划,译为革奴计划,它的目标是创建一套完全自由的操作系统,称为 GNU,其内容软件完全以 GPL 方式发布。其中 GPL 全称为 GNU 通用公共许可协议(GNU General Public License),包含了以下内容: - 以任何目的运行此程序的自由; - 再复制的自由; @@ -195,13 +193,13 @@ IDE(ATA)全称 Advanced Technology Attachment,接口速度最大为 133MB/ ### 2. SATA -SATA 全称 Serial ATA,也就是使用串口的 ATA 接口,抗干扰性强,且对数据线的长度要求比 ATA 低很多,支持热插拔等功能。SATA-II 的接口速度为 300MiB/s,而新的 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多,有利于机箱内的空气流通,整理线材也比较方便。 +SATA 全称 Serial ATA,也就是使用串口的 ATA 接口,抗干扰性强,且对数据线的长度要求比 ATA 低很多,支持热插拔等功能。SATA-II 的接口速度为 300MiB/s,而 SATA-III 标准可达到 600MiB/s 的传输速度。SATA 的数据线也比 ATA 的细得多,有利于机箱内的空气流通,整理线材也比较方便。

### 3. SCSI -SCSI 全称是 Small Computer System Interface(小型机系统接口),经历多代的发展,从早期的 SCSI-II 到目前的 Ultra320 SCSI 以及 Fiber-Channel(光纤通道),接口型式也多种多样。SCSI 硬盘广为工作站以及个人电脑以及服务器所使用,因此会使用较为先进的技术,如碟片转速 15000rpm 的高转速,且传输时 CPU 占用率较低,但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。 +SCSI 全称是 Small Computer System Interface(小型机系统接口),SCSI 硬盘广为工作站以及个人电脑以及服务器所使用,因此会使用较为先进的技术,如碟片转速 15000rpm 的高转速,且传输时 CPU 占用率较低,但是单价也比相同容量的 ATA 及 SATA 硬盘更加昂贵。

@@ -236,7 +234,7 @@ Linux 也把分区当成文件,分区文件的命名方式为:磁盘文件 ### 2. GPT -不同的磁盘有不同的扇区大小,例如 512 bytes 和最新磁盘的 4 k。GPT 为了兼容所有磁盘,在定义扇区上使用逻辑区块地址(Logical Block Address, LBA),LBA 默认大小为 512 bytes。 +扇区是磁盘的最小存储单位,旧磁盘的扇区大小通常为 512 bytes,而最新的磁盘支持 4 k。GPT 为了兼容所有磁盘,在定义扇区上使用逻辑区块地址(Logical Block Address, LBA),LBA 默认大小为 512 bytes。 GPT 第 1 个区块记录了主要开机记录(MBR),紧接着是 33 个区块记录分区信息,并把最后的 33 个区块用于对分区信息进行备份。这 33 个区块第一个为 GPT 表头纪录,这个部份纪录了分区表本身的位置与大小和备份分区的位置,同时放置了分区表的校验码 (CRC32),操作系统可以根据这个校验码来判断 GPT 是否正确。若有错误,可以使用备份分区进行恢复。 @@ -284,19 +282,19 @@ BIOS 不可以读取 GPT 分区表,而 UEFI 可以。 除此之外还包括: - superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等; -- block bitmap:记录 block 是否被使用的位域。 +- block bitmap:记录 block 是否被使用的位图。

## 文件读取 -对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中去查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 +对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 -

+

而对于 FAT 文件系统,它没有 inode,每个 block 中存储着下一个 block 的编号。 -

+

## 磁盘碎片 @@ -321,8 +319,8 @@ inode 具体包含以下信息: - 拥有者与群组 (owner/group); - 容量; - 建立或状态改变的时间 (ctime); -- 最近一次的读取时间 (atime); -- 最近修改的时间 (mtime); +- 最近读取时间 (atime); +- 最近修改时间 (mtime); - 定义文件特性的旗标 (flag),如 SetUID...; - 该文件真正内容的指向 (pointer)。 @@ -331,7 +329,7 @@ inode 具有以下特点: - 每个 inode 大小均固定为 128 bytes (新的 ext4 与 xfs 可设定到 256 bytes); - 每个文件都仅会占用一个 inode。 -inode 中记录了文件内容所在的 block 编号,但是每个 block 非常小,一个大文件随便都需要几十万的 block。而一个 inode 大小有限,无法直接引用这么多 block 编号。因此引入了间接、双间接、三间接引用。间接引用是指,让 inode 记录的引用 block 块记录引用信息。 +inode 中记录了文件内容所在的 block 编号,但是每个 block 非常小,一个大文件随便都需要几十万的 block。而一个 inode 大小有限,无法直接引用这么多 block 编号。因此引入了间接、双间接、三间接引用。间接引用让 inode 记录的引用 block 块记录引用信息。

@@ -339,7 +337,7 @@ inode 中记录了文件内容所在的 block 编号,但是每个 block 非常 建立一个目录时,会分配一个 inode 与至少一个 block。block 记录的内容是目录下所有文件的 inode 编号以及文件名。 -可以看出文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的 w 权限有关。 +可以看到文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的写权限有关。 ## 日志 @@ -446,17 +444,15 @@ rmdir [-p] 目录名称 ### 6. cp -复制文件。 - -如果源文件有两个以上,则目的文件一定要是目录才行。 +复制文件。如果源文件有两个以上,则目的文件一定要是目录才行。 ```html cp [-adfilprsu] source destination --a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明 +-a :相当于 -dr --preserve=all -d :若来源文件为链接文件,则复制链接文件属性而非文件本身 -i :若目标文件已经存在时,在覆盖前会先询问 -p :连同文件的属性一起复制过去 --r :递归持续复制 +-r :递归复制 -u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制 --preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了 ``` @@ -513,12 +509,12 @@ cp [-adfilprsu] source destination # chmod a+w .bashrc ``` -## 文件默认权限 +## 默认权限 - 文件默认权限:文件默认没有可执行权限,因此为 666,也就是 -rw-rw-rw- 。 - 目录默认权限:目录必须要能够进入,也就是必须拥有可执行权限,因此为 777 ,也就是 drwxrwxrwx。 -可以通过 umask 设置或者查看文件的默认权限,通常以掩码的形式来表示,例如 002 表示其它用户的权限去除了一个 2 的权限,也就是写权限,因此建立新文件时默认的权限为 -rw-rw-r--。 +可以通过 umask 设置或者查看默认权限,通常以掩码的形式来表示,例如 002 表示其它用户的权限去除了一个 2 的权限,也就是写权限,因此建立新文件时默认的权限为 -rw-rw-r--。 ## 目录的权限 @@ -528,14 +524,15 @@ cp [-adfilprsu] source destination ## 链接 +

+ + ```html # ln [-sf] source_filename dist_filename --s :默认是 hard link,加 -s 为 symbolic link +-s :默认是实体链接,加 -s 为符号链接 -f :如果目标文件存在时,先删除目标文件 ``` -

- ### 1. 实体链接 在目录下创建一个条目,记录着文件名与 inode 编号,这个 inode 就是源文件的 inode。 @@ -557,7 +554,7 @@ cp [-adfilprsu] source destination 当源文件被删除了,链接文件就打不开了。 -可以为目录建立链接。 +因为记录的是路径,所以可以为目录建立符号链接。 ```html # ll -i /etc/crontab /root/crontab2 @@ -1108,7 +1105,7 @@ dmtsai lines: 5 columns: 9 ### 1. ps -查看某个时间点的进程信息 +查看某个时间点的进程信息。 示例一:查看自己的进程 @@ -1130,7 +1127,7 @@ dmtsai lines: 5 columns: 9 ### 2. pstree -查看进程树 +查看进程树。 示例:查看所有进程树 @@ -1140,7 +1137,7 @@ dmtsai lines: 5 columns: 9 ### 3. top -实时显示进程信息 +实时显示进程信息。 示例:两秒钟刷新一次 @@ -1162,13 +1159,14 @@ dmtsai lines: 5 columns: 9 | 状态 | 说明 | | :---: | --- | -| R | running or runnable (on run queue) | -| D | uninterruptible sleep (usually I/O) | -| S | interruptible sleep (waiting for an event to complete) | -| Z | zombie (terminated but not reaped by its parent) | -| T | stopped (either by a job control signal or because it is being traced) | +| R | running or runnable (on run queue)
正在执行或者可执行,此时进程位于执行队列中。| +| D | uninterruptible sleep (usually I/O)
不可中断阻塞,通常为 IO 阻塞。 | +| S | interruptible sleep (waiting for an event to complete)
可中断阻塞,此时进程正在等待某个事件完成。| +| Z | zombie (terminated but not reaped by its parent)
僵死,进程已经终止但是不可被其父进程获取信息。| +| T | stopped (either by a job control signal or because it is being traced)
结束,进程既可以被作业控制信号结束,也可能是正在被追踪。|
-

+ +

## SIGCHLD @@ -1181,7 +1179,7 @@ dmtsai lines: 5 columns: 9 在子进程退出时,它的进程描述符不会立即释放,这是为了让父进程得到子进程信息,父进程通过 wait() 和 waitpid() 来获得一个已经退出的子进程的信息。 -

+

## wait() diff --git a/notes/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png b/notes/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png new file mode 100644 index 00000000..69283617 Binary files /dev/null and b/notes/pics/12a65cc6-20e0-4706-9fe6-3ba49413d7f6.png differ diff --git a/notes/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png b/notes/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png new file mode 100644 index 00000000..8c496033 Binary files /dev/null and b/notes/pics/1e46fd03-0cda-4d60-9b1c-0c256edaf6b2.png differ diff --git a/notes/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png b/notes/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png new file mode 100644 index 00000000..c65e1eaa Binary files /dev/null and b/notes/pics/2bab4127-3e7d-48cc-914e-436be859fb05.png differ diff --git a/notes/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png b/notes/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png new file mode 100644 index 00000000..6a611257 Binary files /dev/null and b/notes/pics/5b718e86-7102-4bb6-8ca5-d1dd791530c5.png differ diff --git a/notes/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png b/notes/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png new file mode 100644 index 00000000..59ec8ce1 Binary files /dev/null and b/notes/pics/b5e9fa4d-78d3-4176-8273-756d970742c7.png differ