Difference between revisions of "Help:Reading"

From ArchWiki
Jump to: navigation, search
m (Append, create, edit and source: less verbose)
m (Append, create, edit and source: clarification, engrish)
Line 33: Line 33:
 
  # nano /etc/bash.bashrc
 
  # nano /etc/bash.bashrc
  
''Sourcing'' a file is a way of applying changes (stated in a file) to a program, be it a shell or otherwise. For [[Bash]], this can be done in a command prompt:
+
For programs, be it shells or otherwise, ''sourcing'' applies settings specified in said a file, be it a shell or otherwise. For [[Bash]], this can be done in a command prompt:
 
  $ source /etc/bash.bashrc
 
  $ source /etc/bash.bashrc
 
and it can also happen in a file itself:
 
and it can also happen in a file itself:
 
  # This line includes settings from another file
 
  # This line includes settings from another file
 
  source /etc/bash.bashrc
 
  source /etc/bash.bashrc
 +
As a result, sourcing a file after alteration is an ''implied omission'' in the case of shell files.
  
However, not all articles will specify the nature of the changes to be made, nor ''which'' file to alter in the first place. This wiki builds-up on previous knowledge, such as common locations for files that are prone to sporadic editing. And also note that sourcing a file after alteration is an ''implied omission'' in the case of shell files.
+
However, not all articles will specify the nature of the changes to be made, nor ''which'' file to alter in the first place. This wiki builds-up on previous knowledge, such as common locations for files that are prone to sporadic editing.
  
 
==System-wide versus user-specific configuration==
 
==System-wide versus user-specific configuration==

Revision as of 20:07, 12 November 2009

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Help talk:Reading#)

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:

# pacman -S kernel26

Others have a different prefix:

$ pacman -S kernel26

The numeral 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 tells the reader that this is not to be ran as a command; it should be edited into a file instead. So in this case, the numeral sign denotes a comment. 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 Template:Codeline).

Comments are sections of code/configuration files that are not recognized by the associated program; their purpose is only to aid the coder/reader in interpreting the code.

Regardless, most articles make this easy to discern by notifying the reader:

Append to Template:Filename:

# This alias makes ls colorize the listing
alias ls='ls --color=auto

Append, create, edit and source

When prompted to append, add, create or edit, consider it an indication for using a text editor, such as nano, in order to make changes to configuration file(s).

# nano /etc/bash.bashrc

For programs, be it shells or otherwise, sourcing applies settings specified in said a file, be it a shell or otherwise. For Bash, this can be done in a command prompt:

$ source /etc/bash.bashrc

and it can also happen in a file itself:

# This line includes settings from another file
source /etc/bash.bashrc

As a result, sourcing a file after alteration is an implied omission in the case of shell files.

However, not all articles will specify the nature of the changes to be made, nor which file to alter in the first place. This wiki builds-up on previous knowledge, such as common locations for files that are prone to sporadic editing.

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 Template:Filename directory, root privileges are required in order to alter them. If settings are to be applied to all users, make the changes in Template:Filename. E.g., To apply a Bash setting that affects all users, Template:Filename should be modified.

User-specific configuration affects only a single user. Dotfiles are used for user-specific configuration. For example, the file Template:Filename 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.

Note: ~/ is a shortcut for the user's home directory, usually Template:Filename.

Common configuration files

For ease of use, here is a selective listing of basic configuration files and their locations.

Bash

See also: Bash and Template:Codeline

Within Bash and other bourne-compatible shells, such as zsh, there is even further differentiation in the purposes of the configuration files. Some files only get sourced when Bash is starting as a login shell, whereas other files only do so when Bash is an interactive shell.

When Bash is run in a virtual console, for instance, it is started as a login shell. Bash shells started in a Xorg session, such as those employed by xterm, are interactive shells.

Common files include:

Template:Filename 
System-wide settings; sourced only by a login shell
Template:Filename 
Personal shell settings; sourced only by an interactive shell