Help:Reading (简体中文)

From ArchWiki
翻译状态:本文是 Help:Reading翻译。上次翻译日期:2017-12-07。如果英文版本有所更改,则您可以帮助同步翻译。

因为对于GNU/Linux新用户来说,绝大多数ArchWiki包含的指南可能需要澄清,本文期望通过解释一些基本操作和术语,以避免阅读指南时的混淆,并阻止ArchWiki内容本身的重复。

ArchWiki 的组织结构

ArchWiki 上的页面大多不是要对某个话题进行面面俱到的描述;相反它们遵守 DRY 的原则,假定用户会查阅相关资料以便把不懂的部分弄懂。这些页面尽可能地提供相关的链接:比如,一个页面可以引用 ArchWiki 上的另一个页面外部网页,可以在线阅读的 man 手册页(1) 或者只能离线阅读man 手册页(1)

由于 ArchWiki 的组织结构, 要看懂一个页面,可能需要查阅数个相关资源。特别需要注意的是,Arch 的新用户(或者 GNU/Linux 的新用户)可能为了解决一个简单的问题而阅读许多页面;在向其他用户寻求帮助之前,一定要阅读相关资料。

一般用户还是 root 用户

有些命令是这样的:

# mkinitcpio -p linux

另外一些命令是这样的:

$ makepkg -s

井号(#)表示命令要以 root 权限执行,而美元符号($)表示命令用一般用户权限执行。

注意:sudo -i 可以进入 root 终端,在普通终端中使用sudo command也能让command以 root 权限执行,但是这个方式不支持 重定向替代。详情参阅sudo.

注意有时候 # 表示文件中的注释:

# 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 命令:

# 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
注意: 从 AUR 或Arch 构建系统构建软件包需要安装 base-devel 包组。

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 命令,这个命令会清除硬盘上的相应扇区。——译者注

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Mention other examples, ideally from other device categories (e.g. storage), with links to background articles. The examples are meant to avoid duplicating existing explanations in other articles. (Discuss in Help talk:Reading (简体中文))

在配置文件中,如果直接将带伪变量的代码粘贴进去,可能会导致程序出错。

省略

省略号(...)一般不是文件内容或命令输出的一部分,它们代表和主题关系不大的文字。

例如,HOOKS="... encrypt ... filesystems ..." 或者:

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

请注意,在少数情况下,省略号可能是代码的一部分。细心的用户很容易根据上下文来辨别。