refactor: 重构文档目录

移除了所有数字标号

Log:
This commit is contained in:
xzl
2023-03-06 16:38:17 +08:00
committed by HarryLoong
parent 74927fabf8
commit 75e27661e0
31 changed files with 178 additions and 181 deletions

View File

@@ -1,6 +1,6 @@
# 1.1. 控制台基础
# 控制台基础
## 1.1.1. shell 提示符
## shell 提示符
启动系统后当你看到登陆界面时按Ctrl+Alt+F2就可以切换到tty2进行登陆假设你的主机名为`foo`那么登录提示符将如下所示。如果是非标准键盘用户可能需要同时按下fn键
@@ -44,7 +44,7 @@ Welcome to Deepin V23 GNU/Linux
约定GUI表示图形界面
## 1.1.2. GUI 下的 shell 提示符
## GUI 下的 shell 提示符
deepin预装了GUI环境并且提供终端模拟器deepin-terminal,你可以按Ctrl+Alt+T打开它或者通过开始菜单打开它如下
@@ -52,7 +52,7 @@ deepin预装了GUI环境并且提供终端模拟器deepin-terminal,你可
关于终端的其他介绍见deepin wiki ,此处不再赘述。
## 1.1.3. root 账户
## root 账户
root 账户也被称作超级用户或特权用户。用这个账户,你能够履行下面的系统管理任务。
@@ -72,7 +72,7 @@ root 账户也被称作超级用户或特权用户。用这个账户,你能够
一个文件(包括硬件设备,如 CD-ROM 等,这些对 Linux 系统来说都只是一个文件)的权限可能会导致非 root 用户无法使用或访问它 。虽然在这种情况下,使用 root 帐户是一个快速的方法,但正确的解决方法应该是对文件权限和用户组的成员进行合适的设置(参见第[1.2.3 节 “文件系统权限](./1.2.%E7%B1%BBUnix%E7%B3%BB%E7%BB%9F.md))”)。
## 1.1.4. root shell 提示符
## root shell 提示符
这里有一些基本的方法可以让你在输入 root 密码后获得 root的 shell 提示符。
@@ -88,7 +88,7 @@ root 账户也被称作超级用户或特权用户。用这个账户,你能够
注意任何情况都不建议使用root用户直接登陆而是使用sudo+命令方式
## 1.1.5. 虚拟控制台
## 虚拟控制台
在默认的 deepin系统中有6个可切换的类VT100字符控制台可以直接在 Linux 主机上启动 shell。GUI界面占据tty1。
@@ -102,7 +102,7 @@ root 账户也被称作超级用户或特权用户。用这个账户,你能够
sudo chvt 3
```
## 1.1.6. 雷神终端
## 雷神终端
这是deepin的特有功能在GUI界面下按Alt+F2唤出和普通终端一致。快捷键可以在控制中心修改。
@@ -112,13 +112,13 @@ sudo chvt 3
这是一种快捷调出终端的方式并且调出的终端一直存在于后台直到你显式退出exit
## 1.1.7. 怎样退出命令行提示符
## 怎样退出命令行提示符
同时按下`左侧Ctrl键``D键`,即可关闭 shell 活动。如果你正处于字符控制台,你将会返回到登录提示行。你也可以键入 ”`exit`" 退出命令行。
如果你位于`x终端模拟器`中,你可以使用这个关闭`x 终端模拟器`窗口。
## 1.1.8. 怎样关闭系统
## 怎样关闭系统
就像任何其他的现代操作系统一样deepin 会通过内存中的[缓存数据](https://zh.wikipedia.org/wiki/%E7%BC%93%E5%AD%98)进行文件操作以提高性能,因此在电源被安全地关闭前需要适当的关机过程,通过将内存中的数据强制写入硬盘来维持文件的完整性。如果软件的电源控制可用,那么关机过程中会自动关闭系统电源。(否则,你可能需要在关机过程之后按电源键几秒钟:相当于强制关机)
@@ -136,11 +136,11 @@ sudo poweroff -i -f
参见[第 6.3.8 节 “怎样通过 SSH 关闭远程系统”](https://www.debian.org/doc/manuals/debian-reference/ch06.zh-cn.html#_how_to_shutdown_the_remote_system_on_ssh)。
## 1.1.9. 恢复一个正常的控制台
## 恢复一个正常的控制台
当做了一些滑稽的事(例如“`cat二进制文件`屏幕会发狂你可以按Ctrl+C来取消当前命令。你也可以输入“`clear`”来清屏。
## 1.1.10. 建议新手安装的额外软件包
## 建议新手安装的额外软件包
deepin作为一个开箱即用的系统已经预装了许多软件包但是依然有些软件包是值得被推荐的
@@ -156,7 +156,7 @@ deepin作为一个开箱即用的系统已经预装了许多软件包
sudo apt-get install <package_name>
```
## 1.1.11. 额外用户账号
## 额外用户账号
如果你不想用你自己的主用户账户来进行下面的练习操作,你可以使用下面的方式创建一个练习用户账户,比如说,创建一个用户名为 `fish` 的账号。
@@ -172,7 +172,7 @@ sudo adduser fish
sudo deluser --remove-home fish
```
## 1.1.12. sudo 配置
## sudo 配置
对于典型的单用户工作站,例如运行在笔记本电脑上的桌面 deepin 系统,通常简单地配置 `sudo`(8) 来使为非特权用户(例如用户 `penguin`)只需输入用户密码而非 root 密码就能获得管理员权限。
@@ -198,7 +198,7 @@ sudo echo "penguin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
随着越来越细致周密的配置sudo(8) 可以授予一个共享系统上的其它用户有限的管理权限而不共享 root 密码。这可以帮助对有多个管理员的主机进行责任追究,你可以了解到是谁做什么。另一方面,你可能不想任何人有这样的权限。
## 1.1.13. 动手时间
## 动手时间
现在你已经准备好在 deepin 系统上开工了,只要你使用非特权用户账号就不会有风险。

View File

@@ -1,5 +1,4 @@
# 1.2. 类 Unix 文件系统
# 类 Unix 文件系统
在GNU/Linux和其他[类Unix](https://zh.wikipedia.org/wiki/Unix-like)操作系统中,[文件](https://zh.wikipedia.org/wiki/Computer_file)被组织到[目录](https://zh.wikipedia.org/wiki/Directory_(file_systems))中。所有的文件和目录排放在以“`/`”为根的巨大的树里。叫它树是因为如果你画出文件系统,它看起来就像一棵树,但是它是颠倒过来的。
@@ -16,7 +15,7 @@ tree -L 3
Unix系统上叫做**目录**,某些其他系统上叫做**文件夹**。请同样留意在任何Unix系统上没有的**驱动器**的概念,例如“`A:`”。这只有一个文件系统,并且所有东西都包含在内。这相对于 Windows 来说是一个巨大的优点。
## 1.2.1. Unix 文件基础
## Unix 文件基础
下面是一些 Unix 文件基础。
@@ -58,7 +57,7 @@ Unix系统上叫做**目录**,某些其他系统上叫做**文件夹**。请
|/dev|硬件以文件形式存储|
|/dev|用户临时挂载其他文件系统|
## 1.2.2. 文件系统深入解析
## 文件系统深入解析
按照**UNIX系统的传统**deepin GNU / Linux 的[文件系统](https://zh.wikipedia.org/wiki/File_system)是在物理数据存储设备诸如磁盘或其他存储设备上,与硬件设备的交互,如控制台和远程串口终端都是以统一的方式呈现在 “`/dev/`” 下面。
@@ -68,7 +67,7 @@ Unix系统上叫做**目录**,某些其他系统上叫做**文件夹**。请
如果您需要识别文件树和物理实体之间的对应关系,请尝试不带参数运行`mount`
## 1.2.3. 文件系统权限
## 文件系统权限
类Unix系统的文件系统权限被定义给三类受影响的用户。
@@ -196,7 +195,7 @@ ls -l foo bar
如果你需要在 shell 脚本中访问“`ls -l`”显示的信息,你需要使用相关命令,如`test`(1)`stat`(1)和`readlink`(1)。shell 内置命令,如“[”或“test”可能也会用到。
## 1.2.4. 控制新建文件的权限umask
## 控制新建文件的权限umask
什么权限将应用到新建文件受 shell 内置命令 `umask` 的限制。参见`dash`(1)`bash`(1),和`内建命令`(7)。
@@ -211,7 +210,7 @@ ls -l foo bar
deepin 默认使用用户私人组UPG。每当一个新用户添加到系统的时候都会创建一个UPG。UPG 的名字和创建它的用户相同这个用户是这个UPG的唯一成员。自从每个用户都有自己的私人组之后把umask设置成`0002`变得更安全了。(在某些 Unix 变体中,把所有普通用户设置到一个叫**`users`**的组是非常常见的做法在这种情况下出于安全考虑把umask设为`0022`是一个好主意)
## 1.2.5. 一组用户的权限(组)
## 一组用户的权限(组)
为了使组权限应用到一个特定用户,这个用户需要通过使用 “`sudo vigr`”
编辑 `/etc/group` 以及使用 “`sudo vigr -s`” 编辑 `/etc/gshadow` 成为该
@@ -258,7 +257,7 @@ share/doc/base-passwd/users-and-groups.html`中,当前版本的“用户和
用户和组系统的管理命令参见passwd(5)group(5)shadow(5)
newgrp(1)vipw(8)vigr(8)以及pam_group(8)。
## 1.2.6. 时间戳
## 时间戳
GNU/Linux 文件有三种类型的时间戳。
@@ -296,12 +295,12 @@ $ LANG=C ls -l foo
$ LANG=en_US.UTF-8 ls -l foo
-rw-rw-r-- 1 penguin penguin 0 Oct 16 21:35 foo
$ LANG=fr_FR.UTF-8 ls -l foo
-rw-rw-r-- 1 penguin penguin 0 oct. 16 21:35 foo
-rw-rw-r-- 1 penguin penguin 16 21:35 foo
```
参考第 9.3.4 节 “定制时间和日期的显示” 自定义 “ls -l” 输出 。
## 1.2.7. 链接
## 链接
有两种方法把一个文件 “`foo`” 链接到一个不同的文件名 “`bar`”。
@@ -356,7 +355,7 @@ New Content
如果你刚从 Windows 迁移到Linux你很快将清楚 Unix 的文件名链接相较于 Windows 最相近的“快捷方式”是多么精心设计的。由于它是在文件系统中实现的,应用无法看到链接文件跟原始文件之间的区别。在硬链接这种情况,这真的是毫无差别。
## 1.2.8. 命名管道(先进先出)
## 命名管道(先进先出)
[命名管道](https://zh.wikipedia.org/wiki/Named_pipe)是一个像管道一样的文件。你把内容放进了文件它从另一端出来。因此它被称为FIFO即先进先出你从管道这端先放进去的东西会从另一端先出来。
@@ -378,13 +377,13 @@ 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) 。
通过 "`netstat -an`" 命令可以很方便的查看系统已经打开了哪些套接字。
## 1.2.10. 设备文件
## 设备文件
[设备文件](https://zh.wikipedia.org/wiki/Device_file)包括系统的物理设备和虚拟设备,如硬盘、显卡、显示屏、键盘。虚拟设备的一个例子是控制台,用“`/dev/console`”来描述。
@@ -430,7 +429,7 @@ crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
在现代Linux系统中处在"`/dev`"之下的文件系统会自动被`udev`()机制填充。
## 1.2.11. 特殊设备文件
## 特殊设备文件
还有一些特殊的设备文件。
@@ -445,7 +444,7 @@ crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
这些特别设备文件经常和 shell 数据重定向联合使用(参考[第 1.5.8 节 “典型的顺序命令和 shell 重定向”](https://www.debian.org/doc/manuals/debian-reference/ch01.zh-cn.html#_typical_command_sequences_and_shell_redirection))。
## 1.2.12. procfs 和 sysfs
## procfs 和 sysfs
[procfs](https://zh.wikipedia.org/wiki/Procfs)和[sysfs](https://zh.wikipedia.org/wiki/Sysfs)两个伪文件系统,分别加载于"`/proc`"和"`/sys`"之上,将内核中的数据结构暴露给用户空间。或者说,这些条目是虚拟的,他们打开了深入了解操作系统运行的方便之门。
@@ -459,7 +458,7 @@ crw-rw-rw- 1 root root 1, 5 Oct 16 20:57 /dev/zero
参考"`proc.txt(.gz)`""`sysfs.txt(.gz)`"以及其他相关的Linux内核文档"`/usr/share/doc/linux-doc-*/Documentation/filesystems/*`"),这些文件由`linux-doc-*`软件包提供。
## 1.2.13. tmpfs
## tmpfs
[tmpfs](https://zh.wikipedia.org/wiki/Tmpfs#Linux)是一个临时文件系统,它的文件都保存在[虚拟内存](https://zh.wikipedia.org/wiki/Virtual_memory)中。必要时,位于内存[页缓存](https://zh.wikipedia.org/wiki/Page_cache)的tmpfs数据可能被交换到硬盘中的[交换分区](https://zh.wikipedia.org/wiki/Paging)。

View File

@@ -1,9 +1,8 @@
# 1.4. 类 Unix 工作环境基础
# 类 Unix 工作环境基础
虽然 MC 差不多可以让你做任何事情,但学会从 shell 提示下使用命令行工具也是非常重要的,可以让你变得熟悉类 Unix 工作环境。
## 1.4.1. 登录 shell
## 登录 shell
因登录 shell 可以被一些系统初始化程序使用,请谨慎的把登录 shell 保持为 `bash`或者其他POSIX shell 例如zsh ,并避免把它转换为 `chsh`
@@ -26,7 +25,7 @@
在本教程中,交互式的 shell 总是指 `bash`.
## 1.4.2. 定制 bash
## 定制 bash
你可以通过“`~/.bashrc`”来定制`bash`(1)的行为。
@@ -64,7 +63,7 @@ export EDITOR
bash-completion 软件包能够让 bash 进行命令补全.
## 1.4.3. ZSH
## ZSH
zsh是我个人更为推荐的shell,在安装插件之后能实现自动补全,自动记忆以及高亮命令。
@@ -72,7 +71,7 @@ zsh几乎100%兼容bash的操作
具体教程不在这里赘述,请移步-→
## 1.4.4. 特殊按键
## 特殊按键
在 [类Unix](https://zh.wikipedia.org/wiki/Unix-like) 环境有一些具有特殊含义的按键。请注意普通的Linux字符控制台只有左手边的 `Ctrl``Alt` 键可以正常工作。其中有几个值得记住的按键。
@@ -92,7 +91,7 @@ zsh几乎100%兼容bash的操作
|Tab|在 bash 命令行中补全文件名|
|Ctrl-V Tab|在 bash 命令行中输入 Tab 而不是进行补全|
## 1.4.5. 鼠标操作
## 鼠标操作
[Debian 系统针对文本的鼠标操作混合 2 种风格](https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt),外加一些新的方法:
@@ -129,11 +128,11 @@ zsh几乎100%兼容bash的操作
为了在 Linux 字符控制台中使用鼠标,您需要让 `gpm`(8) 作为后台守护进程daemon运行。
## 1.4.6. 分页程序
## 分页程序
`less`(1) 命令是一个增强版的分页程序(文件内容查看器)。它按照指定的命令参数或标准输出来读取文件。在用 `less` 命令查看的时候如果需要帮助可以按 “`h`”。它的功能比 `more`(1) 命令更丰富,通过在脚本的开头执行 "`eval $(lesspipe)`" 或 "`eval $(lessfile)`" 它的功能还能变得更加强大。详细请参考 "`/usr/share/doc/less/LESSOPEN`"。 "`-R`" 选项可以实现原始的字符输出还可以启用 ANSI 颜色转义序列。详细请参考 `less`(1)。
## 1.4.7. 文本编辑器
## 文本编辑器
在使用类 Unix 系统过程中, 各种类似于[Vim](https://zh.wikipedia.org/wiki/Vim_(text_editor)) 或 [Emacs](https://zh.wikipedia.org/wiki/Emacs)的工具,你应该精通其中的一个。
@@ -152,7 +151,7 @@ zsh几乎100%兼容bash的操作
GUI文本编辑器deepin内置了deepin-editor,是非常好用的还有宇宙第一ide——装了插件的vscode见vscode的词条
## 1.4.8. 设置默认文本编辑器
## 设置默认文本编辑器
Debian 有许多不同的编辑器。我们建议安装上面提到的 `vim` 软件包。
@@ -164,7 +163,7 @@ sudo update-alternatives --config editor
对于新手,我建议使用“`/usr/bin/vim.basic`”代替“`/usr/bin/vim.tiny`”,因为它支持格式高亮。
## 1.4.9.使用
##使用
使用vim我个人认为是很难在这一点页面说完的所以本着不重复造轮子的思想在这放出基本命令和优质中文教程
@@ -194,7 +193,7 @@ sudo update-alternatives --config editor
`vim` 程序基于 **模式** 输入的按键来改变它的行为。在 `插入`-模式和 `替代`-模式下,输入的按键大部分进入了缓冲区。移动光标大部分在 `普通`-模式下完成。交互选择在 `可视`-模式下完成。在`普通`-模式下输入 "`:`" ,改变它的 **模式** 进入到 `Ex`-模式。 `Ex`-接受命令。
## 1.4.10. 记录 shell 活动
## 记录 shell 活动
shell 命令的输出有可能滚动出了屏幕并可能导致你无法再查看到它。将shell活动记录到文件中再来回顾它是个不错的主意。当你执行任何系统管理任务时这种记录是必不可少的。
@@ -215,7 +214,7 @@ Script started, file is typescript
vim typescript
```
## 1.4.11. 基本的 Unix 命令
## 基本的 Unix 命令
让我们来学习基本的 Unix 命令。在这里我指的是一般意义上的“UNIX”。任何 UNIX 克隆系统通常都会提供等价的命令。deepin 系统也不例外。如果有一些命令不像你想的那样起作用,请不要担心。如果 shell 中使用了别名,其对应的命令输出会不同。这些例子并不意味着要以这个顺序来执行。

View File

@@ -1,5 +1,4 @@
# 1.5. 简单 shell 命令
# 简单 shell 命令
现在,你对如何使用 deepin 系统已经有一些感觉了。让我们更深入了解 deepin 系统的命令执行机制。在这里,我将为新手做一般的讲解。精确的解释参见`bash`(1)。
@@ -15,7 +14,7 @@
- 控制操作(可选:`&&` `||` 换行符 , `;` , `&` , `(` , `)`
## 1.5.1. 命令执行和环境变量
## 命令执行和环境变量
一些[环境变量](https://zh.wikipedia.org/wiki/Environment_variable)的值会改变部分 Unix 命令的行为。
@@ -27,7 +26,7 @@
- 用户特有的程序初始化时,可以重新设置在 "`~/.profile`"、"`~/.bash_profile`" 和 "`~/.bashrc`" 中设置的环境变量。
## 1.5.2. “`$LANG`”变量
## “`$LANG`”变量
默认的语言环境是在 "`$LANG`" 环境变量中定义,它在安装的时候配置为 "`LANG=xx_YY.UTF-8`",或者在接下来的 GUI图形用户界面中配置例如在 GNOME 中是,"设置" → "区域 & 语言" → "语言" / "格式"。
@@ -86,7 +85,7 @@ mer. 19 mai 2021 15:19:24 UTC
对于语言环境配置的细节,参见 [第 8.1 节 “语言环境”](https://www.debian.org/doc/manuals/debian-reference/ch08.zh-cn.html#_the_locale)
## 1.5.3. "`$PATH`" 变量
## "`$PATH`" 变量
当你在 Shell 里输入命令的时候Shell 会在 "`$PATH`" 变量所包含的目录列表里进行搜索,"`$PATH`" 变量的值也叫作 Shell 的搜索路径。
@@ -94,7 +93,7 @@ mer. 19 mai 2021 15:19:24 UTC
在zsh中为`~/.zshrc`
## 1.5.4. "`$HOME`" 变量
## "`$HOME`" 变量
很多命令在用户目录中都存放了用户指定的配置,然后通过配置的内容来改变它的执行方式,用户目录通常用 "`$HOME`" 变量来指定。
@@ -109,7 +108,7 @@ mer. 19 mai 2021 15:19:24 UTC
Shell 扩展 "~/" 为转入当前用户的主目录,也就是"$HOME/"。Shell 扩展 "~foo/" 为foo 的目录,也就是 "/home/foo/"。
## 1.5.5. 命令行选项
## 命令行选项
一些命令附带参数。这些参数以 "`-`" 或 "`--`" 开头,通常称之为选项,用来控制命令的执行方式。
@@ -122,7 +121,7 @@ Thu, 20 May 2021 01:08:12 +0900
这里的命令参数 "`-R`" 改变 `date`(1) 命令输出为 [RFC2822](http://tools.ietf.org/html/rfc2822) 标准的日期字符格式。
## 1.5.6. Shell 通配符
## Shell 通配符
经常有这种情况你期望命令成串自动执行而不需要挨个输入,将文件名扩展为 **glob**(有时候被称为 **通配符**),以此来满足这方面的需求。
@@ -138,11 +137,11 @@ Thu, 20 May 2021 01:08:12 +0900
尝试下列例子
```Shell
$ mkdir junk; cd junk; touch 1.txt 2.txt 3.c 4.h .5.txt ..6.txt
$ mkdir junk; cd junk; touch 1.txt 2.txth .5.txt ..6.txt
$ echo *.txt
1.txt 2.txt
$ echo *
1.txt 2.txt 3.c 4.h
1.txt 2.txth
$ echo *.[hc]
3.c 4.h
$ echo .*
@@ -160,7 +159,7 @@ $ cd ..; rm -rf junk
BASH 可以使用内置的 shopt 选项如 " `dotglob` "" `noglob` "," `nocaseglob` "," `nullglob` "," `extglob` "定制全局行为,使用 `bash` ( 1 )查看详细说明。
## 1.5.7. 命令的返回值
## 命令的返回值
每个命令都会返回它的退出状态(变量:“`$?`”)作为返回值。
@@ -178,7 +177,7 @@ $ [ 1 = 2 ] ; echo $?
1
```
## 1.5.8. 典型的顺序命令和 shell 重定向
## 典型的顺序命令和 shell 重定向
让我们试着记住下面 Shell 命令里部分命令行所使用的命令习语。
@@ -240,7 +239,7 @@ Hello
|stdout|标准输出|1|
|stderr|标准错误|2|
## 1.5.9. 命令别名
## 命令别名
你可以为经常使用的命令设置一个别名。

View File

@@ -1,8 +1,8 @@
# 1.6. 类 Unix 的文本处理
# 类 Unix 的文本处理
在类 Unix 的工作环境中,文本处理是通过使用管道组成的标准文本处理工具链完成的。这是另一个重要的 Unix 创新。
## 1.6.1. Unix 文本工具
## Unix 文本工具
这里有一些在类 Unix 系统中经常使用到的标准文本处理工具。