帮助:阅读
因为绝大多数 ArchWiki 包含可能需要为 Arch Linux 新用户(或广义上的 GNU/Linux)澄清的指示,所以编写了这份基本步骤概述,既是为了避免在理解文章时产生混淆,也是为了防止内容本身出现重复。
组织
ArchWiki 上的大多数文章并不试图提供对单一主题的全面介绍;相反,它们是按照 “不要重复自己” 原则编写的,并假设用户会寻找并阅读他们尚不理解的任何辅助材料。在可能的情况下,此类辅助材料通过特殊格式在文章中指出,请参见 #格式化。
由于这种组织方式,可能需要查阅多个相关来源才能完全理解一篇 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。某些应用程序(如 文件管理器)可能会提供图形界面来执行相同的操作。
来源
某些应用程序,特别是 命令行 Shell,使用脚本进行配置:修改它们后,必须载入它们才能应用更改。例如,在 bash 的情况下,这是通过运行以下命令完成的(您也可以将 source
替换为 .
)
$ source ~/.bashrc
当 Wiki 建议修改此类配置文件时,它不会明确提醒您载入文件,仅在某些情况下,它会使用提醒链接指向此部分。
软件包安装
当一篇文章邀请您以传统方式安装某些软件包时,它不会指示执行此操作的详细说明;而是,它只会提及要安装的软件包的名称。
以下小节概述了取决于软件包类型的通用安装过程。
官方软件包
对于来自 官方仓库的软件包,您会读到类似的内容
- 安装 foobar 软件包。
这意味着您必须运行
# pacman -S foobar
pacman 文章包含有关如何在 Arch Linux 中熟练处理软件包管理的详细说明。
Arch 用户仓库
对于来自 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/username/
。常用 Shell 文件
Bash 和其他 Bourne 兼容的 Shell(如 Zsh)也根据 Shell 是登录 Shell 还是交互式 Shell 来载入文件。有关详细信息,请参见 Bash#配置文件 和 Zsh#启动/关闭文件。
代码示例中的伪变量
某些代码块可能包含所谓的伪变量,顾名思义,它们不是代码中使用的实际变量。相反,它们是通用占位符,必须在代码运行或解析之前手动替换为系统特定的配置项。常见的 Shell(如 bash 和 zsh)提供 Tab 补全 功能,以自动完成常见命令(如 systemctl)的参数。
在符合 Help:Style/格式化和标点 的文章中,伪变量以斜体格式显示。例如
- 启用 网络接口的
dhcpcd@interface_name.service
,该网络接口从ip link
命令的输出中识别。
在这种情况下,interface_name
用作 systemd 模板单元中的伪变量占位符。所有 systemd 模板单元(可通过 @
符号识别)都需要一个系统特定的配置项作为参数。请参见 systemd#使用单元。
- 可以以 root 身份运行命令
dd if=data_source of=/dev/sdX bs=sector_size count=sector_number seek=partitions_start_sector
,以使用特定参数擦除分区。
在这种情况下,伪变量用于描述必须替换它们的参数。有关如何收集它们的详细信息在 Securely wipe disk#手动计算要擦除的块 部分中进行了详细说明,该部分包含该命令。
如果是文件示例,将伪变量粘贴到实际配置文件中可能会破坏使用它们的程序。
省略号
在大多数情况下,省略号 (...
) 不是实际文件内容或代码输出的一部分,而是表示与所讨论主题无关的省略或可选文本。
例如 HOOKS="... encrypt ... filesystems ..."
或
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass" ... Option "CircularScrolling" "on" Option "CircScrollTrigger" "0" ... EndSection
但请注意,在少数情况下,省略号可能是代码语法的重要组成部分:细心的用户应该能够通过上下文识别这些情况。