帮助:阅读

来自 ArchWiki
(重定向自 Add

因为绝大多数 ArchWiki 内容包含可能需要为 Arch Linux 新用户(或一般的 GNU/Linux 用户)澄清的指示,所以编写了这份基本流程概要,既是为了避免在理解文章时产生混淆,也是为了阻止内容本身的重复。

组织

ArchWiki 上的大多数文章并不试图全面介绍单个主题;相反,它们的编写遵循 “不要重复自己” 原则,假设用户会查找并阅读他们还不理解的任何辅助材料。在可能的情况下,此类辅助材料通过特殊格式在文章中指示,请参阅 #格式化

由于这种组织方式,可能需要查阅几个相关来源才能完全理解 ArchWiki 文章。 特别是,Arch 新用户(或一般的 GNU/Linux 用户)应该预计即使在解决简单问题时也最终会阅读大量文章。 在向其他用户寻求额外帮助之前,研究辅助材料尤其重要。

格式化

Root、普通用户或另一个用户

有些行是这样写的

# mkinitcpio -p linux

另一些行有不同的前缀

$ makepkg -s

数字或井号 (#) 表示该命令需要以root身份运行,而美元符号 ($) 表示该命令应以普通用户身份运行。

注意:# 为前缀的命令旨在从root shell执行,例如可以使用 sudo -i 轻松访问 root shell。 从非特权 shell 运行 sudo command 而不是从 root shell 运行 command 在大多数情况下也有效,但也有一些值得注意的例外,例如 重定向命令替换,它们严格要求 root shell。 请参阅 sudo#登录 shell

当命令需要以特定用户身份运行时,它们将以方括号中的用户名为前缀,例如

[postgres]$ initdb -D /var/lib/postgres/data

这意味着您应该使用 权限提升工具,例如使用 sudo

$ 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 命令

# mkdir /mnt/boot

设为可执行

创建文件后,如果要将其作为脚本运行(无论是手动运行还是被另一个程序调用),则需要将其设置为可执行,例如使用

$ chmod +x script

请参阅 chmod。 某些应用程序(如 文件管理器)可能会提供图形界面来执行相同的操作。

来源

某些应用程序,特别是 命令行 shell,使用脚本进行配置:修改它们后,必须source 它们才能应用更改。 以 bash 为例,这是通过运行以下命令完成的(您也可以将 source 替换为 .

$ source ~/.bashrc

当 wiki 建议修改此类配置文件时,它不会明确提醒您 source 该文件,只有在某些情况下才会使用提醒链接指向此部分。

软件包安装

当文章邀请您以传统方式安装某些软件包时,它不会指示执行此操作的详细说明;相反,它只会提及要安装的软件包的名称。

注意: 通常,安装已安装 链接用于指向本文档部分。 但是,必须启用 JavaScript 才能使这些链接工作。

以下小节概述了通用安装过程,具体取决于软件包类型。

官方软件包

对于来自 官方仓库 的软件包,您将读到类似的内容

安装 foobar 软件包。

这意味着您必须运行

# pacman -S foobar

pacman 文章包含有关熟练处理 Arch Linux 中的软件包管理的详细说明。

Arch 用户仓库

对于来自 Arch 用户仓库 (AUR) 的软件包,您将读到类似的内容

安装 foobarAUR 软件包。

这意味着通常您必须关注 foobarAUR 链接,下载 PKGBUILD 压缩包,解压它,验证内容,最后在同一文件夹中运行

$ makepkg -si
注意: 需要 base-devel 元软件包才能从 AUR 或使用 Arch 构建系统 构建软件包。

Arch 用户仓库 文章包含处理 AUR 软件包的所有详细说明和最佳实践。

systemd 单元控制

当文章邀请启动启用等某个 systemd 单元(例如服务)时,它不会指示执行此操作的详细说明,而是您将读到类似的内容

启动 example.service

这意味着您必须运行

# systemctl start example.service

一个不遵循此确切模式的值得注意的命令是 systemctl daemon-reload,它将在没有参数的情况下调用。

systemd#使用单元 部分包含可用操作(如启动启用启用并启动等)及其对应的 systemctl 命令的结构化列表。

系统级与用户特定配置

重要的是要记住,GNU/Linux 系统上有两种不同的配置。 系统级配置影响所有用户。 由于系统级设置通常位于 /etc 目录中,因此需要 root 权限才能更改它们。 例如,要应用影响所有用户的 Bash 设置,应修改 /etc/bash.bashrc

用户特定配置仅影响单个用户。 点文件用于用户特定配置。 例如,文件 ~/.bashrc 是用户特定的配置文件。 想法是每个用户都可以定义自己的设置,例如别名、函数和其他交互功能(如提示符),而不会影响其他用户的首选项。

注意: ~/$HOME 是用户主目录的快捷方式,通常是 /home/username/

常用 shell 文件

Bash 和其他 Bourne 兼容 shell(如 Zsh)也会根据 shell 是登录 shell 还是交互式 shell 来 source 文件。 有关详细信息,请参阅 Bash#配置文件Zsh#启动/关闭文件

代码示例中的伪变量

某些代码块可能包含所谓的伪变量,顾名思义,它们不是代码中使用的实际变量。 相反,它们是通用占位符,必须在代码运行或解析之前手动替换为系统特定的配置项。 常见的 shell(如 bashzsh)提供 制表符补全,以自动完成常用命令(如 systemctl)的参数。

在符合 Help:Style/Formatting and punctuation 的文章中,伪变量以斜体格式化。 例如

  • 启用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 身份运行,以使用特定参数擦除分区。

在本例中,伪变量用于描述必须替换它们的参数。 有关如何收集它们的详细信息在 安全擦除磁盘#手动计算要擦除的块 部分中进行了阐述,其中包含该命令。

本文或章节需要扩充。

原因: 提及其他示例,最好来自其他设备类别(例如存储),并链接到背景文章。 这些示例旨在避免重复其他文章中已有的解释。 (在 Help talk:Reading 中讨论)

在文件示例的情况下,将伪变量粘贴到实际配置文件中可能会破坏使用它们的程序。

省略号

在大多数情况下,省略号 (...) 不是实际文件内容或代码输出的一部分,而是表示与所讨论主题无关的省略或可选文本。

例如 HOOKS="... encrypt ... filesystems ..."

/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass"
    ...
    Option      "CircularScrolling"          "on"
    Option      "CircScrollTrigger"          "0"
    ...
EndSection

但请注意,在少数情况下,省略号可能是代码语法中有意义的一部分:细心的用户应该能够通过上下文识别这些情况。