Because the vast majority of the ArchWiki contains indications that may need clarification for users new to GNU/Linux, this rundown of basic procedures was written both to avoid confusion in the assimilation of the articles and to deter repetition in the content itself.
Regular user or root
Some lines are written like so:
# mkinitcpio -p linux
Others have a different prefix:
$ makepkg -s
The numeral or hash sign (
#) indicates that the line is to be entered as root, whereas the dollar sign (
$) shows that the line is to be entered as a regular user.
A notable exception to watch out for:
# This alias makes ls colorize the listing alias ls='ls --color=auto'
In this example, the context surrounding the numeral sign communicates that this is not to be run as a command; it should be edited into a file instead. So in this case, the numeral sign denotes a comment. A comment can be explanatory text that will not be interpreted by the associated program. Bash scripts denotation for comments happens to coincide with the root PS1.
After further examination, "give away" signs include the uppercase character following the
# sign. Usually, Unix commands are not written this way and most of the time they are short abbreviations instead of full-blown English words (e.g., Copy becomes cp).
Regardless, most articles make this easy to discern by notifying the reader:
# This alias makes ls colorize the listing alias ls='ls --color=auto
Append, add, create, edit
# nano /etc/bash.bashrc
One can alternatively use output redirection to create or overwrite a file from a string. The following example creates or overwrites the contents of the file
/etc/hostname with the text
# echo myhostname > /etc/hostname
Output redirection can also be used to append a string to a file. The following example appends the text
[custom-repo] to the file
# echo "[custom-repo]" >> /etc/pacman.conf
Some applications, notably command-line shells, use scripts for their configuration: after modifying them, they must be sourced in order for the changes to be applied. In the case of bash, for example, this is done by running (you can also replace
$ source ~/.bashrc
When the wiki will suggest to modify such a configuration script, it will not explicitly remind you to source the file, and only in some cases it will point you to this section with a reminder link.
Installation of packages
When an article invites to install some packages in the conventional way, it will not indicate the detailed instructions to do so, instead it will simply mention the names of the packages to be installed.
The subsections below give an overview of the generic installation procedures depending on the package type.
For packages from the official repositories you will read something like:
- Install the package.
This means that you have to run:
# pacman -S foobar
The pacman article contains detailed explanations to deal with package management in Arch Linux proficiently.
Arch User Repository
For packages from the Arch User Repository you will read something like:
- Install the AUR package.
This means that in general you have to follow theAUR link, download the PKGBUILD archive, extract it, verify the content and finally run, in the same folder:
$ makepkg -sri
The Arch User Repository article contains all the detailed explanations and best practices to deal with AUR packages.
Control of systemd units
When an article invites to start, enable, stop or restart some systemd units (e.g. a service), it will not indicate the detailed instructions to do so, but instead you will read something like:
This means that you have to run:
# systemctl start example.service
System-wide versus user-specific configuration
It is important to remember that there are two different kinds of configurations on a GNU/Linux system. System-wide configuration affects all users. Since system-wide settings are generally located in the
/etc directory, root privileges are required in order to alter them. For example, to apply a Bash setting that affects all users,
/etc/bash.bashrc should be modified.
User-specific configuration affects only a single user. Dotfiles are used for user-specific configuration. For example, the file
~/.bashrc is the user-specific configuration file. The idea is that each user can define their own settings, such as aliases, functions and other interactive features like the prompt, without affecting other users' preferences.
Common shell files
Bash and other Bourne-compatible shells, such as Zsh, also source files depending on whether the shell is a login shell or an interactive shell. See Bash#Configuration files and Zsh#Configuration files for details.
Pseudo-variables in code examples
Some code blocks may contain so-called pseudo-variables, which, as the name says, are not actual variables used in the code. Instead they are generic placeholders and have to be manually replaced with system-specific configuration items before the code may be run or parsed. In the articles that comply with Help:Style/Formatting and punctuation, pseudo-variables are formatted in italics.
- Enable the
dhcpcd@interface_name.servicefor the network interface identified from the output of the
In this case
interface_name is used as a pseudo-variable placeholder in a systemd template unit. All systemd template units, identifiable by the
@ sign, require a system-specific configuration item as argument. See Systemd#Using units.
- The command
dd if=data_source of=/dev/sd"X" bs=sector_size count=sector_number seek=partitions_start_sectorcan be run as root to wipe a partition with the specific parameters.
In this case the pseudo-variables are used to describe the parameters that must be substituted for them. Details on how to gather them are elaborated on in the section Securely wipe disk#Calculate blocks to wipe manually, which features the command.
In case of file examples, pasting pseudo-variables in real configuration files might break the programs that use them.
In most cases ellipses (
...) are not part of the actual file content or code output, and instead represent omitted or optional text that is not relevant for the discussed subject.
HOOKS="... encrypt ... filesystems ..." or:
Section "InputClass" ... Option "CircularScrolling" "on" Option "CircScrollTrigger" "0" ... EndSection
Be aware though that, in a few instances, ellipses may be a meaningful part of the code syntax: attentive users will be able to easily recognize these cases by the context.