Help:Reading (简体中文)
因为对于GNU/Linux新用户来说,绝大多数ArchWiki包含的指南可能需要澄清,本文期望通过解释一些基本操作和术语,以避免阅读指南时的混淆,并阻止ArchWiki内容本身的重复。
ArchWiki 的组织结构
ArchWiki 上的页面大多不是要对某个话题进行面面俱到的描述;相反它们遵守 DRY 的原则,假定用户会查阅相关资料以便把不懂的部分弄懂。这些页面尽可能地提供相关的链接:比如,一个页面可以引用 ArchWiki 上的另一个页面,外部网页,可以在线阅读的 man 手册页(1) 或者只能离线阅读的 man 手册页(1)。
由于 ArchWiki 的组织结构, 要看懂一个页面,可能需要查阅数个相关资源。特别需要注意的是,Arch 的新用户(或者 GNU/Linux 的新用户)可能为了解决一个简单的问题而阅读许多页面;在向其他用户寻求帮助之前,一定要阅读相关资料。
一般用户还是 root 用户
有些命令是这样的:
# mkinitcpio -p linux
另外一些命令是这样的:
$ makepkg -s
井号(#
)表示命令要以 root 权限执行,而美元符号($
)表示命令用一般用户权限执行。
注意有时候 # 表示文件中的注释:
# This alias makes ls colorize the listing alias ls='ls --color=auto'
在这个例子中,上下文表明这不是命令,而是需要加入到文件的一部分。在这种情况下,井号表示一个“注释”。注释是解释性的文字,它不会被执行。Bash 脚本的注释符号和 root 的命令提示符相同。
此外,通常包含大写字母的文字都是注释,而 Unix 命令通常是简短的缩写(例如,“Copy”被缩写成“cp”)。
当然,大部分文章都会指明这一点:
向 ~/path/to/file
添加:
# This alias makes ls colorize the listing alias ls='ls --color=auto
添加、创建、编辑文件
当提到“添加”(append to、add to)、“创建”(create)、“编辑”(edit)一个或几个文件,这就表示你应该用以下的某种方法。
推荐使用文本编辑器来创建或修改多行的文件,例如用 nano 命令来编辑文件 /etc/bash.bashrc
:
# nano /etc/bash.bashrc
要创建包含简短文本的文件或者覆盖已有的文件,输出重定向是最简单的。下面的命令演示了如何用文本 myhostname
创建或覆盖 /etc/hostname
。
# echo myhostname > /etc/hostname
输出重定向也可以用来向一个文件追加(append)文本。下面的命令演示了如何向 /etc/pacman.conf
追加文本 [custom-repo]
。
# echo "[custom-repo]" >> /etc/pacman.conf
# mkdir /mnt/boot
添加可执行权限
在创建文件之后,如果这是一个要运行的脚本(手动运行或被其他程序调用),就需要把他设为“可执行”:
$ chmod +x script
参阅 chmod。文件管理器等应用程序可能会提供一个图形界面完成相同的事情。
Source
有些程序,特别是命令行 shell,使用脚本来进行配置:修改配置文件之后,需要使用“source”命令来应用变更。以 bash 为例,执行以下命令(也可以把 source
换成 .
):
$ source ~/.bashrc
当 ArchWiki 建议修改某些配置文件时,它一般不会明确提醒你“source”这个文件,只有某些情况下会给出到本节的链接。
安装软件包
绝大部分文章仅是给出软件包的名字,不会列出详细的软件包安装命令。
下面介绍一下通用的软件包安装方式。
官方软件包
如果软件包位于 官方软件仓库,安装指令是下面这样:
- Install the foobar package.
这意味着需要执行:
# pacman -S foobar
pacman 包含了 Arch 软件包管理的详细内容。
Arch 用户仓库(AUR)
如果软件包来自AUR,你会看到下面内容:
- Install the foobarAUR package.
这意味这您需要打开foobarAUR 链接,下载 PKGBUILD,解压,验证内容,然后在文件目录执行:
$ makepkg -sri
Arch User Repository (简体中文) 包含了 AUR 软件包的详细信息。
控制 systemd 单元
绝大部分文章仅仅要求你“启动”(start)、“启用”(enable)、“停止”(stop)、“重启”(restart)systemd 单元(例如:服务),不会列出详细的命令。你会看见类似这样的说明:
-
启动
example.service
.
这意味着你需要执行
# systemctl start example.service
启动 链接到 systemd 页面,systemd 页面包含了管理 systemd 单元的详细介绍。
全局配置和用户配置
请记住,GNU/Linux 有两种类型的配置。“全局”配置影响所有用户。全局配置文件一般位于 /etc
目录,修改它们需要 root 权限。例如,要修改所有用户的 Bash 设置,修改 /etc/bash.bashrc
文件。
“用户”配置仅影响一个用户。文件名以 .
开头的文件(dotfiles,例如 ~/.bashrc
)是用户配置文件。每个用户都可以定义他们自己的设置(别名、函数、命令提示符等)而不影响其他用户。
~/
和 $HOME
是用户主目录的简写,一般是 /home/用户名/
。Shell 通用配置文件
Bash 和其他与 Bourne shell 兼容的 shell(如 Zsh (简体中文)),会根据是 “login shell” 还是 “interactive shell” 来执行相应的配置文件。参阅 Bash (简体中文)#配置文件 和 Zsh (简体中文)#配置文件介绍。
示例代码中的伪变量
一些代码块包含“伪变量”,顾名思义,这不是代码中使用的真正的变量。它们只是代码中的占位符,需要在执行或解释之前根据特定的系统配置进行手动替换。Bash (简体中文) 和 Zsh (简体中文) 这类终端提供 Tab 补全功能以补全 systemctl
之类的命令。
根据 Help:Style/Formatting and punctuation,伪变量使用斜体。例如:
- 对
ip link
命令输出的网卡名称,启动dhcpcd@interface_name.service
。
在这里,伪变量 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#Calculate blocks to wipe manually 有详细描述。
dd
命令,这个命令会清除硬盘上的相应扇区。——译者注在配置文件中,如果直接将带伪变量的代码粘贴进去,可能会导致程序出错。
省略
省略号(...
)一般不是文件内容或命令输出的一部分,它们代表和主题关系不大的文字。
例如,HOOKS="... encrypt ... filesystems ..."
或者:
/etc/X11/xorg.conf.d/50-synaptics.conf
Section "InputClass" ... Option "CircularScrolling" "on" Option "CircScrollTrigger" "0" ... EndSection
请注意,在少数情况下,省略号可能是代码的一部分。细心的用户很容易根据上下文来辨别。