# 练习 30：打磨、洗练、重复：总复习

> 原文：[Exercise 30. Lather, Rinse, Repeat: The Grand Rote Learning](https://archive.fo/RCaku)

> 译者：[飞龙](https://github.com/wizardforcel)

> 协议：[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)

> 自豪地采用[谷歌翻译](https://translate.google.cn/)

本指南中的信息量相当大。没有足够长的练习和一些深入研究，你不能记住它。所以剩下的唯一的工作就是填写这张表，每天都把这张表打印在你的记忆中，直到你知道了它。

你可能想问，为什么需要记住所有这些东西，如果你可以随时查看的话。那么简短的答案是因为你不能。这意味着为了高效地查找事物，你需要知道要寻找什么，并且为了知道要寻找什么，你需要一个坚实的基础。一旦你有了这个基础，一旦你明白什么是重要的，什么不是，以及系统的组织方式，你将能够高效寻找东西。

你可能会想知道，为什么在我的指南中有很多详细的表格，其中包含许多字段的列表，其中包含几乎不需要的信息。你必须明白的是，你应该以这种方式训练自己，来查看任何控制台程序。你应该熟悉这个信息，而不像是一本科幻小说那样，其中你可能不会注意细节，但仍然很了解它。你应该将所有这些数据看做数学公式，其中每个符号都有其意义，甚至更多，如果你不明白特定的符号意味着什么，你将无法走地更远。

有时完全可以留下一些未解释的东西，但让自己变得更深入，即使经常是这样。通过研究这个特定的工具，了解它告诉你什么以及为什么，给自己一个礼物。如果你这样做，如果你会深入内部，你对操作系统的理解（在我们这种情况下是 Linux）将会极大增加。

## 文档

### `man`, `info`

| 命令或概念 | 含义 |
| --- | --- |
| `man` | |
| `info` | |
| `man 1` | |
| `man 2`  | |
| `man 3` | |
| `man 4` | |
| `man 5` | |
| `man 6` | |
| `man 7` | |
| `man 8` | |
| `man 9` | |
| `man -k` | |
| `man -wK` | |
| **粗体** |  | |
| *斜体* |  | |
| `[]` | |
| `-a&#x7c;-b` | |
| `argument ...` | |
| `[expression] ...` | |

### Google 和实用资源

| 搜索术语/资源 | 含义 |
| --- | --- |
| `(a&#x7c;b) c` |  |
| `site:foo.bar` |  |
| `"a long query"` |  |
| <http://en.wikipedia.org> |  |
| <http://stackexchange.com/> |  |
| <http://www.cyberciti.biz/> |  |
| <http://tldp.org/> |  |
| `programname.site` |  |

### 包管理：Debian 包管理工具`aptitude`

| 命令或概念 | 含义 |
| --- | --- |
| `aptitude` |  |
| `aptitude search` |  |
| `aptitude install` |  |
| `dpkg -l` |  |
| `dpkg -L` |  |
| 预期操作 |  |
| 包状态 |  |
| <http://www.debian.org/distrib/packages> |  |

### 系统启动：运行级别, `/etc/init.d`, `rcconf`, `update-rc.d`

| 命令或概念 | 含义 |
| --- | --- |
| `rcconf` |  |
| `update-rc.d` |  |
| `sysv-rc-conf` |  |
| 运行级别 |  |
| 运行级别 1 |  |
| 运行级别 2 |  |
| 运行级别 6 |  |


### 进程：处理进程，`ps`，`kill`

| 命令或概念 | 含义 |
| --- | --- |
| `ps` |  |
| `kill` |  |
| `ps ax` |  |
| `ps axue` |  |
| `ps axue --forest` |  |
| 信号 |  |
| `HUP` |  |
| `TERM` |  |
| `KILL` |  |
| 为什么 `KILL -9` 是不好的？ |  |

### 任务调度：`cron`，`at`

| 命令或概念 | 含义 |
| --- | --- |
| `crontab -l` |  |
| `crontab -e` |  |
| `crontab -r` |  |
| `crontab /foo` |  |
| `crontab > foo` |  |
| `* * * * *` |  |
| `at` |  |
| `atq` |  |
| `atq` |  |
| `atrm` |  |
| `batch` |  |

### 日志, `/var/log`, `rsyslog`, `logger`

| 命令或概念 | 含义 |
| --- | --- |
| `logger` |
| `grep -irl` |
| `find . -mmin -5` |
| `tail -f` |
| `logrotate` |
| 日志守护程序 |  |
| 日志级别 |  |
| 日志轮替 |  |

### 文件系统

| 命令或概念 | 含义 |
| --- | --- |
| 文件系统 |  |
| 文件 |  |
| 目录 |  |
| 索引节点 |  |
| 块 |  |
| 挂载 |  |
| UUID |  |
| 日志 |  |
| MBR |  |
| 分区 |  |
| 分区表 |  |

### 挂载, `mount`, `/etc/fstab`

| 命令或概念 | 含义 |
| --- | --- |
| `parted` |  |
| `cfdisk` |  |
| `fdisk` |  |
| `mount` |  |
| `umount` |  |
| `mount -a` |  |
| `/etc/fstab` |  |
| `fsck` |  |
| `blkid` |  |

### 创建和修改文件系统，`mkfs`，`tune2fs`

| 命令或概念 | 含义 |
| --- | --- |
| `tune2fs` |  |
| `mkfs` |  |
| 块大小 |  |
| 保留块数量 |  |
| 最大挂载数量 |  |
| 检查间隔 |  |

### 更改根目录，`chroot`

| 命令或概念 | 含义 |
| --- | --- |
| `chroot` |  |
| `ldd` |  |
| 根目录 |  |
| 更改根目录 |  |
| 动态库依赖 |  |

### 移动数据：`tar`，`dd`

| 命令或概念 | 含义 |
| --- | --- |
| `tar` |  |
| `dd` |  |
| `losetup` |  |

### 安全权限：`chown`，`chmod`

| 命令或概念 | 含义 |
| --- | --- |
| `chmod` |  |
| `chown` |  |
| `umask` |  |
| 权限 |  |
| 权限模式 |  |
| 权限类 |  |
| Umask 机制 |  |

### 网络

| 网络概念 | 含义 |
| --- | --- |
| OSI 模型 |  |
| DOD 模型 |  |
| 通信协议 |  |
| 以太网 |  |
| MAC 地址 |  |
| 以太网广播地址 |  |
| TCP/IP |  |
| IP |  |
| IP 封包 |  |
| IP 地址 |  |
| IP 子网 |  |
| 端口 |  |
| 网络套接字 |  |
| 本地套接字地址 |  |
| 远程套接字地址 |  |
| 套接字对 |  |
| 路由 |  |
| 默认网关 |  |
| IP 广播地址 |  |
| ICMP |  |
| TCP |  |
| TCP 封包 |  |
| UDP |  |
| UDP 封包 |  |
| 主机名称 |  |

### 网络配置, `ifconfig`, `netstat`, `iproute2`, `ss`

| 命令或概念 | 含义 |
| --- | --- |
| `/etc/network/interfaces` |  |
| `auto` |  |
| `allow-hotplug` |  |
| `/etc/hosts` |  |
| `/etc/hostname` |  |
| `localhost` |  |
| 回送接口 |  |
| 伪接口 |  |

### 封包过滤配置，`iptables`

| 命令或概念 | 含义 |
| --- | --- |
| `iptables-save` |  |
| `iptables` |  |
| `modprobe` |  |
| `nc` |  |
| `tcpdump` |  |
| `LINKTYPE_LINUX_SLL` |  |
| 以太网帧头部 |  |
| IPv4 头部 |  |
| TCP 段 |  |
| `netfilter` |  |
| iptables 表 |  |
| iptables 链 |  |
| iptables 目标 |  |

### 安全 Shell, `ssh`, `sshd`, `scp`

| 命令或概念 | 含义 |
| --- | --- |
| `ssh` |  |
| `sshd` |  |
| `scp` |  |
| `ssh-keygen` |  |
| 主机密钥 |  |
| 证密钥 |  |
| 数据加密密码 |  |
| 数据完整性算法 |  |
| SSH 会话密钥 |  |

### 性能：获取性能状态, `uptime`, `free`, `top`

| 命令或概念 | 含义 |
| --- | --- |
| `uptime` | |
| `free` | |
| `vmstat` | |
| `top` | |
| CPU 占用 (`us`,`sy`,`id`,`wa`) |  |
| 内存 (`swpd`, `free`, `buff`, `cache`, `inact`, `active`) |
| Slab 分配 |  |
| 磁盘 (`IOPS`, `read`, `write`) |  |
| 进程 (`PR`, `NI`, `VIRT`, `RES`, `SHR`, `Status`) |  |

### 内核：内核消息，`dmesg`

| 命令或概念 | 含义 |
| --- | --- |
| `dmseg` | |
| `/var/log/dmesg` | |
| `/var/log/messages` | |
| `/var/log/syslog` | |
| `/var/log/kern.log` | |
| 内核消息缓冲区 |  |
