帮助:阅读
由于 ArchWiki 的绝大部分内容包含可能需要对 Arch Linux(或一般的 GNU/Linux)新手进行澄清的说明,因此编写了这份基本流程概述,既为了避免在吸收文章内容时产生混淆,也为了防止内容本身的重复。
组织结构
ArchWiki 上的大多数文章并不试图为一个主题提供全面的介绍;相反,它们的编写遵循 “不要重复自己” (DRY) 原则,并假设用户会自行寻找并阅读他们尚不理解的任何辅助材料。在可能的情况下,此类辅助材料会通过特殊格式在文中指明,参见 #格式化。
由于这种组织结构,为了完全理解一篇 ArchWiki 文章,可能需要查阅多个相关的来源。特别是对于 Arch(或一般 GNU/Linux)的新手,应该做好即便在解决简单问题时也会阅读大量文章的准备。在寻求其他用户的额外帮助之前,研究辅助材料尤为重要。
格式化
- 链接到当前文章的一个章节:#组织结构
- 链接到 另一篇 ArchWiki 文章
- 链接到 外部网页
- 链接到一个 man 手册页:intro(1)
- 仅在离线状态下可用的 man 手册页:foo(1)
- 链接到 官方仓库 中的软件包:foobar
- 链接到 AUR 中的软件包:foobarAUR
Root、普通用户或其他用户
有些行是这样写的
# mkinitcpio -p linux
另一些则有不同的前缀
$ makepkg -s
井号(#)表示该命令需要以 root 身份运行,而美元符号($)表示该命令应以 普通用户 身份运行。
# 开头的命令旨在从 root shell 中执行,例如可以通过 sudo -i 轻松进入。在非特权 shell 中运行 sudo command 而不是在 root shell 中运行 command 在大多数情况下也有效,但有一些显著的例外,如 重定向 和 命令替换,这些操作严格要求 root shell。参见 sudo#登录 shell。当命令需要以特定用户身份运行时,它们会以前缀在方括号内的用户名开头,例如
[postgres]$ initdb -D /var/lib/postgres/data
$ sudo -u postgres initdb -D /var/lib/postgres/data
一个需要留意的显著例外
# This alias makes ls colorize the listing alias ls='ls --color=auto'
在此示例中,井号周围的上下文传达了这不作为命令运行的信息;它应该被编辑到文件中。因此在这种情况下,井号表示 注释。注释可以是不会被相关程序解释的解释性文本。Bash 脚本的注释符号恰好与 root 的 PS1 提示符一致。
进一步观察,“泄露”迹象包括紧随 # 号之后的大写字母。通常情况下,Unix 命令不会这样写,而且大多数时候它们是简短的缩写而不是完整的英文单词(例如,Copy 变成 cp)。
无论如何,大多数文章通过通知读者来使这一点易于辨别
追加 到 ~/path/to/file
# This alias makes ls colorize the listing alias ls='ls --color=auto'
追加、添加、创建、编辑
当提示 追加到、添加到、创建 或 编辑 一个或多个文件时,隐含的意思是你应该使用以下方法之一。
要创建或修改多行文件,建议使用 文本编辑器。例如,使用 nano 命令编辑文件 /etc/bash.bashrc:
# nano /etc/bash.bashrc
要从字符串创建或覆盖文件,使用 输出重定向 可能更简单。以下示例使用文本 myhostname 创建或覆盖 /etc/hostname 文件的内容。
# echo myhostname > /etc/hostname
输出重定向也可用于将字符串追加到文件中。以下示例将文本 [custom-repo] 追加到文件 /etc/pacman.conf 中。
# echo "[custom-repo]" >> /etc/pacman.conf
# mkdir /mnt/boot
添加执行权限
创建一个文件后,如果它打算作为脚本运行(无论是手动运行还是由另一个程序调用),则需要将其设置为 可执行,例如通过
$ chmod +x script
参见 chmod。某些应用程序(如 文件管理器)可能会提供图形界面来执行相同操作。
Source(生效配置)
某些应用程序,尤其是 命令行 Shell,使用脚本进行配置:修改后,必须对其进行 source 操作才能使更改生效。以 bash 为例,这是通过运行以下命令完成的(你也可以用 . 代替 source)
$ source ~/.bashrc
当 Wiki 建议修改此类配置脚本时,它不会显式提醒你对文件进行 source,仅在某些情况下会通过提醒链接指向本节。
安装软件包
当文章邀请你以常规方式安装某些软件包时,它不会指示详细的操作说明;相反,它只会提及要安装的软件包名称。
以下小节概述了根据软件包类型而定的通用安装程序。
官方软件包
对于来自 官方仓库 的软件包,你会读到类似这样的内容
- 安装 foobar 软件包。
这意味着你必须运行
# pacman -S foobar
pacman 文章包含了熟练处理 Arch Linux 软件包管理的详细解释。
Arch 用户软件仓库 (AUR)
对于来自 Arch 用户软件仓库 (AUR) 的软件包,你会读到类似的内容
- 安装 foobarAUR 软件包。
这意味着通常你必须点击 foobarAUR 链接,下载 PKGBUILD 存档,解压它,验证内容,最后在同一文件夹中运行
$ makepkg -si
Arch 用户软件仓库 文章包含了处理 AUR 软件包的所有详细解释和最佳实践。
控制 systemd 单元
当文章邀请 启动、启用 等某些 systemd 单元(例如一个服务)时,它不会指示详细的操作说明,而是会读到类似这样的内容
- 启动
example.service。
这意味着你必须运行
# systemctl start example.service
一个不遵循此确切模式的显著命令是 systemctl daemon-reload,它将在不带参数的情况下被调用。
systemd#使用单元 章节包含了可用操作(如 启动、启用、启用并启动 等)及其对应 systemctl 命令的结构化列表。
系统级与用户特定配置
重要的是要记住,GNU/Linux 系统上有两种不同类型的配置。系统级 配置影响所有用户。由于系统级设置通常位于 /etc 目录中,因此更改它们需要 root 特权。例如,要应用影响所有用户的 Bash 设置,应修改 /etc/bash.bashrc。
用户特定 配置仅影响单个用户。Dotfiles(点文件)用于用户特定配置。例如,文件 ~/.bashrc 是用户特定的配置文件。其理念是每个用户都可以定义自己的设置,如别名、函数和其他交互式功能(如提示符),而不会影响其他用户的偏好。
~/ 和 $HOME 是用户主目录的快捷方式,通常为 /home/用户名/。常用 Shell 文件
Bash 和其他兼容 Bourne 的 Shell(如 Zsh)也会根据 Shell 是 登录 shell 还是 交互式 shell 来 source 文件。详情参见 Bash#配置文件 和 Zsh#启动/关闭文件。
代码示例中的伪变量
一些代码块可能包含所谓的 伪变量,顾名思义,它们不是代码中实际使用的变量。相反,它们是通用占位符,在代码运行或解析 之前,必须手动替换为系统特定的配置项。常见的 Shell(如 bash 和 zsh)为 systemctl 等常用命令提供 制表符补全 以自动补全参数。
在符合 帮助:风格/格式与标点 的文章中,伪变量 以斜体格式显示。例如
- 为从
ip link命令输出中识别出的网络接口 启用dhcpcd@interface_name.service。
在这种情况下,interface_name 被用作 systemd 模板单元中的 伪变量 占位符。所有通过 @ 符号识别的 systemd 模板单元都需要一个系统特定的配置项作为参数。参见 systemd#使用单元。
- 命令
dd if=data_source of=/dev/sdX bs=sector_size count=sector_number seek=partitions_start_sector可以以 root 身份运行,以使用特定参数擦除分区。
在这种情况下,伪变量 用于描述必须替换它们的参数。关于如何收集这些参数的详细信息在 安全擦除磁盘#手动计算要擦除的数据块 章节中进行了阐述,该章节包含了此命令。
在文件示例的情况下,将伪变量粘贴到真实的配置文件中可能会破坏使用它们的程序。
省略号
在大多数情况下,省略号 (...) 不是实际文件内容或代码输出的一部分,而是代表与所讨论主题无关的省略或可选文本。
例如 HOOKS=(... encrypt ... filesystems ...) 或
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
...
Option "CircularScrolling" "on"
Option "CircScrollTrigger" "0"
...
EndSection
但请注意,在少数情况下,省略号可能是代码语法的有效组成部分:细心的用户应该能够根据上下文识别出这些情况。