Skip to content

Commit dc527c2

Browse files
authored
fix: preliminary writing style fix (#26)
may need further modifications after agreeing up the writing guidelines.
1 parent 0e57ac0 commit dc527c2

10 files changed

+309
-302
lines changed

basic/02-searching-and-question.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696

9797
一般而言,你可以在相应技术的官网上找到官方文档的入口。比如 Python 的官方文档就可以在 [Python 官网](https://www.python.org/) 上找到。
9898

99-
除此之外,很多 Linux 命令行工具带有丰富的 mandoc 文档,可以通过 man 命令查看。man 也含有关于 Linux 系统调用,POSIX 规范和其他杂项手册。比如输入`man signal.7`可以看到 Unix 信号的介绍,输入`man signal.2`可以看到`signal()`系统调用的相关信息,而输入`man signal.3`可以看到 POSIX 规范中`signal()`这个 API 的定义和用法。
99+
除此之外,很多 Linux 命令行工具带有丰富的 mandoc 文档,可以通过 man 命令查看。man 也含有关于 Linux 系统调用,POSIX 规范和其他杂项手册。比如输入 `man signal.7` 可以看到 Unix 信号的介绍,输入 `man signal.2` 可以看到 `signal()` 系统调用的相关信息,而输入 `man signal.3` 可以看到 POSIX 规范中 `signal()` 这个 API 的定义和用法。
100100

101101
::: tip 小贴士!
102102
man 的用法可以通过 man man 查阅。你可能会疑惑,在刚刚的例子中,最后的点后面的数字是什么意思,在读完 man 的用法之后相信你就明白了!

basic/03-computer-basic-knowledge-1.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ Windows 有一个臭名昭著的“功能”————蓝屏死机,Blue Scre
243243

244244
#### 其他操作系统
245245

246-
- MacOS: 苹果专用,符合 POSIX 标准的 Unix 系统,老版本可在 Intel 机器安装(需要魔法),内核叫 Darwin,修改自 BSD 系内核,内核部分开源
246+
- macOS: 苹果专用,符合 POSIX 标准的 Unix 系统,老版本可在 Intel 机器安装(需要魔法),内核叫 Darwin,修改自 BSD 系内核,内核部分开源
247247
- FreeBSD: 符合 POSIX 标准的类 Unix 系统,和 Linux 只是内核不同,FreeBSD 带有完整的用户态程序,同时其采用更宽松的许可协议,而不是 Linux 的 GPLv2。
248248
- MSDOS: 古老的操作系统,无图形界面,已不使用,微软近期开源了几个版本的 DOS。FreeDOS 则是由其他志愿者实现的开源版本替代。
249249

@@ -344,12 +344,12 @@ TCP 是在 IP 之上的协议,利用 IP 协议提供的不可靠数据传输
344344
:::
345345

346346
::: info 提示
347-
指定端口号的地址,IPv4 可以写作 127.0.0.1:8080 这种形式,IPv6 可以写成[::1]:8080 的形式。
347+
指定端口号的地址,IPv4 可以写作 127.0.0.1:8080 这种形式,IPv6 可以写成 [::1]:8080 的形式。
348348
:::
349349

350350
### DNS 协议
351351

352-
DNS(Domain Name System)协议是用于解析域名信息的协议。我们在日常上网的过程中,由于 IP 地址过于抽象难记,经常会使用类似于`pku.edu.cn`这样的域名,DNS 就是将域名转化为 IP 地址的服务。DNS 服务从点分隔的域名的最后一部分开始查找,整个查找过程先向系统预设的 DNS 服务器查找最后一部分`cn`,返回`cn`域名的服务器,然后向`cn`域名的服务器继续询问`edu`,直到整个域名解析完成,得到最终的 IP 地址。实际情况下,有时候 DNS 服务器会直接返回下一级域名服务器作为结果,也有时候会代替你继续查询,直接返回给你最终的结果。
352+
DNS(Domain Name System)协议是用于解析域名信息的协议。我们在日常上网的过程中,由于 IP 地址过于抽象难记,经常会使用类似于 `pku.edu.cn` 这样的域名,DNS 就是将域名转化为 IP 地址的服务。DNS 服务从点分隔的域名的最后一部分开始查找,整个查找过程先向系统预设的 DNS 服务器查找最后一部分 `cn`,返回 `cn` 域名的服务器,然后向 `cn` 域名的服务器继续询问 `edu`,直到整个域名解析完成,得到最终的 IP 地址。实际情况下,有时候 DNS 服务器会直接返回下一级域名服务器作为结果,也有时候会代替你继续查询,直接返回给你最终的结果。
353353

354354
::: info 提示
355355
以前国内的网络运营商默认提供的 DNS 有时会遭到污染,进行植入广告等操作,这时候你可以自行更换 DNS 地址,你可以在互联网上查询到关于如何更换以及更换为哪些声誉较好的 DNS 服务的信息。

basic/05-drive-your-computer-1.md

Lines changed: 96 additions & 98 deletions
Large diffs are not rendered by default.

basic/06-drive-your-computer-2.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,13 @@ git init
100100

101101
我们可能需要对仓库进行一些配置,比如设置用户名和邮箱,设置代理等等。
102102

103-
配置 Git 只需要用到 config 子命令。如果需要修改全局设置,可以加上`--global`参数,如果需要打开配置文件进行编辑,可以加上`--edit`参数。现在我们修改一下全局参数,执行:
103+
配置 Git 只需要用到 config 子命令。如果需要修改全局设置,可以加上 `--global` 参数,如果需要打开配置文件进行编辑,可以加上 `--edit` 参数。现在我们修改一下全局参数,执行:
104104

105105
```shell
106106
git config --global --edit
107107
```
108108

109-
然后你的终端应该会打开一个文本编辑器(可能是 vim,在 Windows 上也可能是记事本之类的),然后在`[user]`模块下找到`name = xxx``email = xxx@xxx`,将两者修改为自己的信息。如果这两行不存在,你可以在`[user]`后另起一行,加上这两行信息,如果`[user]`也不存在,你可以在文件末尾另起一行加上。很多代码托管平台,比如 GitHub,使用提交的邮箱判断提交的作者。
109+
然后你的终端应该会打开一个文本编辑器(可能是 vim,在 Windows 上也可能是记事本之类的),然后在 `[user]` 模块下找到 `name = xxx` `email = xxx@xxx`,将两者修改为自己的信息。如果这两行不存在,你可以在 `[user]` 后另起一行,加上这两行信息,如果 `[user]` 也不存在,你可以在文件末尾另起一行加上。很多代码托管平台,比如 GitHub,使用提交的邮箱判断提交的作者。
110110

111111
由于众所周知的原因,你可能需要使用代理。请在文件末尾另起一行,填写以下内容,其中链接需要填写你自己的链接:
112112

@@ -162,7 +162,7 @@ git status
162162
git commit
163163
```
164164

165-
会弹出文本编辑器,请在第一行写你的提交信息,比如`My first commit`,然后退出编辑器。或者你也可以执行:
165+
会弹出文本编辑器,请在第一行写你的提交信息,比如 `My first commit`,然后退出编辑器。或者你也可以执行:
166166

167167
```shell
168168
git commit -m "My first commit
@@ -191,9 +191,9 @@ git status
191191
192192
总结一下,git 整体的工作流程就是修改-暂存-提交-下一轮修改-……这样一直进行。
193193
194-
如果你觉得暂存操作比较麻烦,可以加上`-a`参数,此参数会在提交前自动暂存修改过和删除的文件,但是新的文件不会被包括进来。
194+
如果你觉得暂存操作比较麻烦,可以加上 `-a` 参数,此参数会在提交前自动暂存修改过和删除的文件,但是新的文件不会被包括进来。
195195
196-
有时候上一个提交还没有完成,你可以使用`--amend`参数修订上一个提交。
196+
有时候上一个提交还没有完成,你可以使用 `--amend` 参数修订上一个提交。
197197
198198
### 查看并回退到指定历史版本
199199
@@ -297,7 +297,7 @@ git reset --hard 7a6ab
297297
298298
### 排除掉特定的文件
299299
300-
有时候一些文件不应该被版本管理系统追踪,如编译生成的目标文件,可执行文件,一些敏感配置等等。我们可以使用`.gitignore`文件来排除指定文件和文件夹。执行以下内容:
300+
有时候一些文件不应该被版本管理系统追踪,如编译生成的目标文件,可执行文件,一些敏感配置等等。我们可以使用 `.gitignore` 文件来排除指定文件和文件夹。执行以下内容:
301301
302302
```shell
303303
mkdir confidential
@@ -337,7 +337,7 @@ git status
337337
338338
```
339339
340-
可以发现`credential`目录和所有的`.o`文件都被忽略了。
340+
可以发现 `credential` 目录和所有的 `.o` 文件都被忽略了。
341341
342342
最后我们执行
343343
@@ -398,7 +398,7 @@ git branch update-example 37f7d
398398
git checkout update-example
399399
```
400400
401-
然后我们将文件`example1.txt`改为`Hello, Git2!`,执行:
401+
然后我们将文件 `example1.txt` 改为 `Hello, Git2!`,执行:
402402
403403
```shell
404404
git commit -am "Branch!"
@@ -453,7 +453,7 @@ git merge merge-example
453453
自动合并失败,修正冲突然后提交修正的结果。
454454
```
455455
456-
我们打开`example1.txt`查看内容:
456+
我们打开 `example1.txt` 查看内容:
457457
458458
```plain
459459
<<<<<<< HEAD
@@ -501,14 +501,14 @@ git clone url://path/to/be/cloned
501501
git pull
502502
```
503503
504-
如果本地有远端不存在的提交,则拉取代码不能以默认的“fast-forward”方式进行,因此需要指定`--no-ff`参数进行合并拉取或者指定`--rebase`进行变基拉取。在特别有必要时,也可以直接 hard reset 到远端 HEAD 处。
504+
如果本地有远端不存在的提交,则拉取代码不能以默认的 “fast-forward” 方式进行,因此需要指定 `--no-ff` 参数进行合并拉取或者指定 `--rebase` 进行变基拉取。在特别有必要时,也可以直接 hard reset 到远端 HEAD 处。
505505
506506
#### 推送代码
507507
508-
在工作完成,提交完成之后,可以用这个子命令将修改推送至远端。若有远端有本地没有的提交,需要先进行拉取,才能推送,或者`--force`强制推送,此时不一致的提交会被本地提交代替。
508+
在工作完成,提交完成之后,可以用这个子命令将修改推送至远端。若有远端有本地没有的提交,需要先进行拉取,才能推送,或者 `--force` 强制推送,此时不一致的提交会被本地提交代替。
509509
510510
::: danger 警告
511-
使用`--force`参数前请三思,仔细检查你将要提交的内容!
511+
使用 `--force` 参数前请三思,仔细检查你将要提交的内容!
512512
:::
513513
514514
#### 图形化工具的使用

basic/07-drive-your-computer-3.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
如需查看磁盘占用情况,Windows 和 Linux 下的文件管理器都能直观地提供以上信息,故此不再详述。
1616

17-
如需查看磁盘健康情况,可以使用`smartctl`命令(Linux)或者 CrystalDiskInfo 软件(Windows)查看。
17+
如需查看磁盘健康情况,可以使用 `smartctl` 命令(Linux)或者 CrystalDiskInfo 软件(Windows)查看。
1818

1919
![CrystalDiskInfo](../assets/basic/07-drive-your-computer-3/image.png)
2020
图 1. 笔者使用 CrystalDiskInfo 查看磁盘信息
@@ -28,7 +28,7 @@ Windows 下任务管理器即可,Linux 下推荐`btop`程序。
2828

2929
### 电池信息 {#battery-info}
3030

31-
Windows 下可以使用自带的`powercfg`命令生成 html 格式的电池信息报告,Linux 下可以使用`upower`命令查看
31+
Windows 下可以使用自带的 `powercfg` 命令生成 html 格式的电池信息报告,Linux 下可以使用 `upower` 命令查看
3232

3333
### 视频信息 {#video-info}
3434

@@ -44,7 +44,7 @@ Windows 下可以使用自带的`powercfg`命令生成 html 格式的电池信
4444

4545
蓝屏(BSOD, Blue Screen of Death),通常意味着 Windows 内核发生了不可恢复的故障。常见的蓝屏原因包括系统服务异常(多是驱动导致),关键进程退出(可能是病毒引起),机器检查(硬件故障)等。如果最近新安装了硬件,可以考虑移除它们再试试,如果怀疑是驱动问题或者是病毒问题,可以考虑进入安全模式:
4646

47-
- 如果你还能进入系统:按下`Win+R`输入`msconfig`并回车,点击“引导”选项卡,勾选“安全启动”,点击应用,重启即可。
47+
- 如果你还能进入系统:按下 `Win+R` 输入 `msconfig` 并回车,点击“引导”选项卡,勾选“安全启动”,点击应用,重启即可。
4848

4949
- 如果你不能进入系统:启动失败若干次后应该会出现恢复菜单,点击“疑难解答”-“高级选项”-“启动设置”,会提示重启进入安全模式。
5050

@@ -54,37 +54,37 @@ Windows 下可以使用自带的`powercfg`命令生成 html 格式的电池信
5454

5555
完成所有操作后,如果使用 msconfig 设置了安全模式,应当先取消勾选然后应用,然后重启回到正常模式看问题是否解决。
5656

57-
如果你想向驱动作者报告问题,可以使用 WinDbg 调试内核转储文件,在 WinDbg 中打开转储文件,使用`!analyze -v`获取完整分析报告。WinDbg 可以在应用商店中免费获取。
57+
如果你想向驱动作者报告问题,可以使用 WinDbg 调试内核转储文件,在 WinDbg 中打开转储文件,使用 `!analyze -v` 获取完整分析报告。WinDbg 可以在应用商店中免费获取。
5858

5959
### 内核恐慌 {#panic}
6060

6161
Linux 内核的严重错误被叫做 panic。其实由于 Linux 用户态和内核态耦合更低,且 Linux 本身容错能力更好,Linux panic 遇见的频率相对更低,常见的原因也不外乎驱动故障,1 号进程退出等。一般来说,部分硬件厂商为 Linux 提供的驱动问题较多,除了卸载驱动以外,还需要和驱动开发者和 Linux 内核维护者进行沟通,以取得更好的解决方案。
6262

6363
### 应用软件崩溃 {#application-crash}
6464

65-
这种情况比较复杂,有可能是软件本身的 bug,也有可能是用户的环境或者使用软件的方式的问题。部分软件带有崩溃反馈模块,你可以用这个模块向开发者反馈信息。在反馈之前,请先确保你的软件是最新的,因为你发现的故障可能在新版本中已经被修复,同时需确保你正确使用软件。然后向开发者反馈故障时,尽可能给出软件版本、操作系统版本、库版本(如果有需要)、硬件型号等信息,同时需给出较为详细的复现故障的步骤,必要时附上日志和截图(不要在正文中放大段日志,最好以附件或者在线剪贴板链接,如[gist](https://gist.github.com/)的形式给出)。如果你使用 Linux 并且恰好开启了核心转储,你也可以调试转储文件(例如使用`coredumpctl -r debug`,然后输入`bt`),给出栈回溯信息等。
65+
这种情况比较复杂,有可能是软件本身的 bug,也有可能是用户的环境或者使用软件的方式的问题。部分软件带有崩溃反馈模块,你可以用这个模块向开发者反馈信息。在反馈之前,请先确保你的软件是最新的,因为你发现的故障可能在新版本中已经被修复,同时需确保你正确使用软件。然后向开发者反馈故障时,尽可能给出软件版本、操作系统版本、库版本(如果有需要)、硬件型号等信息,同时需给出较为详细的复现故障的步骤,必要时附上日志和截图(不要在正文中放大段日志,最好以附件或者在线剪贴板链接,如 [gist](https://gist.github.com/) 的形式给出)。如果你使用 Linux 并且恰好开启了核心转储,你也可以调试转储文件(例如使用 `coredumpctl -r debug`,然后输入 `bt`),给出栈回溯信息等。
6666

67-
如果你想自行调试,首先你可以寻找软件是否提供了调试符号包,在没有调试符号包和源码的情况下调试将会是非常困难的,而且两者都不提供的软件通常在许可上不允许你做调试(因为会涉及反汇编),除非万不得已,不建议自行调试这种软件。如果没有调试符号包但是有源码,你可以尝试在干净的环境中重新构建带调试符号的软件包,对于用 gcc 编译的软件,可以考虑加上编译参数`-g`。同时不建议使用较高的优化等级,这会给调试带来困难,除非你确信是高优化等级导致的问题。
67+
如果你想自行调试,首先你可以寻找软件是否提供了调试符号包,在没有调试符号包和源码的情况下调试将会是非常困难的,而且两者都不提供的软件通常在许可上不允许你做调试(因为会涉及反汇编),除非万不得已,不建议自行调试这种软件。如果没有调试符号包但是有源码,你可以尝试在干净的环境中重新构建带调试符号的软件包,对于用 gcc 编译的软件,可以考虑加上编译参数 `-g`。同时不建议使用较高的优化等级,这会给调试带来困难,除非你确信是高优化等级导致的问题。
6868

6969
### 系统启动慢 {#system-slow}
7070

71-
Windows 下打开任务管理器检查有无不必要启动项,加以禁止即可;Linux 下可以使用`journalctl`检查日志,留意启动慢的服务,有针对性地加以解决,或者直接禁用服务
71+
Windows 下打开任务管理器检查有无不必要启动项,加以禁止即可;Linux 下可以使用 `journalctl` 检查日志,留意启动慢的服务,有针对性地加以解决,或者直接禁用服务
7272

7373
### 应用程序慢 {#app-slow}
7474

7575
建议首先检查内存和处理器占用情况,结束其他无关程序;对于有网络 IO 的程序,检查网络连接;对于有磁盘 IO 的程序,检查磁盘健康状态。
7676

7777
### 网络连接故障 {#offline}
7878

79-
建议检查网线是否插好,网关是否登陆,是否欠费,DNS 设置是否正确,上一次关机时代理是否正确关闭等等。对于 Linux 系统,可以检查`rfkill`是否允许相应网卡工作,`ip`是否启动相应适配器。
79+
建议检查网线是否插好,网关是否登陆,是否欠费,DNS 设置是否正确,上一次关机时代理是否正确关闭等等。对于 Linux 系统,可以检查 `rfkill` 是否允许相应网卡工作,`ip` 是否启动相应适配器。
8080

8181
## 小知识串讲 {#knowledge-series}
8282

8383
### 快捷键 {#shortcut}
8484

8585
#### 系统快捷键 {#system-shortcut}
8686

87-
不同系统提供了不同的快捷键,这里简单介绍 Windows 和 Linux 在系统层面提供的快捷键。Windows 徽标键(简称 Win 键)在 Linux 下也称 Meta 键,在 Mac 下则是 Command 键。F1-F12 系列按键有可能需要同时按下 Fn 键使用。
87+
不同系统提供了不同的快捷键,这里简单介绍 Windows 和 Linux 在系统层面提供的快捷键。Windows 徽标键(简称 Win 键)在 Linux 下也称 Meta 键,在 macOS 下则是 Command 键。F1-F12 系列按键有可能需要同时按下 Fn 键使用。
8888

8989
- Windows
9090

@@ -108,9 +108,9 @@ Windows 下打开任务管理器检查有无不必要启动项,加以禁止即
108108

109109
`Ctrl+Alt+{F1-F12}`: 切换 tty。一般图形桌面位于 tty1 或者 tty2。这一系列快捷键由 Wayland 或者 Xorg 提供
110110

111-
`Alt+SysRq`: 这是一系列快捷键,其中 SysRq 键就是 PrintScreen 键(有的键盘应该会在 PrintScreen 键下面一行写上 SysRq),按下这个组合键后,再按下特定按键,内核会有不同的功能,如按下`C`会让内核强制崩溃;按下`E`会向所有进程发送 SIGTERM 使得它们可以做一些清理后退出;按下`I`会向所有进程发送 SIGKILL 使得它们强行退出;按下`S`会同步磁盘写入;按下`U`会使得所有文件系统被重新挂载为只读;按下`B`会让计算机立刻重启。注意:SysRq 功能可以使用 sysctl 进行配置,默认可能并未开启全部功能。利用这些快捷键可以救回卡死的系统,或者可以在保证文件系统完整的情况下强行重启电脑。
111+
`Alt+SysRq`: 这是一系列快捷键,其中 SysRq 键就是 PrintScreen 键(有的键盘应该会在 PrintScreen 键下面一行写上 SysRq),按下这个组合键后,再按下特定按键,内核会有不同的功能,如按下 `C` 会让内核强制崩溃;按下 `E` 会向所有进程发送 SIGTERM 使得它们可以做一些清理后退出;按下 `I` 会向所有进程发送 SIGKILL 使得它们强行退出;按下 `S` 会同步磁盘写入;按下 `U` 会使得所有文件系统被重新挂载为只读;按下 `B` 会让计算机立刻重启。注意:SysRq 功能可以使用 sysctl 进行配置,默认可能并未开启全部功能。利用这些快捷键可以救回卡死的系统,或者可以在保证文件系统完整的情况下强行重启电脑。
112112

113-
- MacOS
113+
- macOS
114114

115115
TODO!
116116

0 commit comments

Comments
 (0)