Man page

From ArchWiki
Revision as of 04:47, 19 February 2010 by Pointone (talk | contribs) (apropos)
Jump to: navigation, search

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

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Man page#)
Template:Article summary start

Template:Article summary text Template:Article summary heading Template:I18n entry Template:Article summary end

Man pages (abbreviation for "manual pages") are the extensive documentation that comes preinstalled with almost all substantial UNIX-like operating systems, including Arch Linux. The command used to display them is Template:Codeline.

In spite their scope, man pages are designed to be self-contained documents, consequentially limiting themselves to referring to another man page when it comes to related subjects. This is a sharp contrast with the hyperlink-aware info files, GNU's attempt at replacing the traditional man page format.

Searching manuals

Whilst the Template:Codeline utility allows users to display man pages, a problem arises when one knows not the exact name of the desired manual page in the first place! Fortunately, the Template:Codeline or Template:Codeline options can be used to search the manual page descriptions for instances of a given keyword. For example, to search for man pages related to "password":

$ man -k password


$ man --apropos password

This is equivalent to calling the Template:Codeline command:

$ apropos password

The given keyword is interpreted as a regular expression by default.

Colored man pages

For some users, color-enabled man pages allow for a clearer presentation and easier digestion of the content. Given that users new to Linux are prone to spend a considerable amount of time familiarizing themselves with basic userspace tools, setting up a comfortable environment is a necessity to most.

There are two prevalent methods for achieving colored man pages: using Template:Codeline, or opting for Template:Codeline. The former is simpler to configure, at the expense of the advanced functionality that is native to Template:Codeline.

First method: using 'most'

Install Template:Package Official using pacman:

# pacman -S most

This is similar to Template:Codeline and Template:Codeline, yet allows rendering colored text in an easier way.

Edit Template:Filename, uncomment the pager definition and change it to:

DEFINE     pager     most -s

Test the new setup by typing:

$ man whatever_man_page

Modifying the color values requires editing Template:Filename (creating the file if it is not present) or editing Template:Filename for system-wide changes. Example Template:Filename:

% Color settings
color normal lightgray black
color status yellow blue
color underline yellow black
color overstrike brightblue black

Another example showing keybindings similar to Template:Codeline (jump to line is set to 'J'):

% less-like keybindings
unsetkey "^K"
unsetkey "g"
unsetkey "G"
unsetkey ":"

setkey next_file ":n"
setkey find_file ":e"
setkey next_file ":p"
setkey toggle_options ":o"
setkey toggle_case ":c"
setkey delete_file ":d"
setkey exit ":q"

setkey bob "g"
setkey eob "G"
setkey down "e"
setkey down "E"
setkey down "j"
setkey down "^N"
setkey up "y"
setkey up "^Y"
setkey up "k"
setkey up "^P"
setkey up "^K"
setkey page_down "f"
setkey page_down "^F"
setkey page_up "b"
setkey page_up "^B"
setkey other_window "z"
setkey other_window "w"
setkey search_backward "?"
setkey bob "p"
setkey goto_mark "'"
setkey find_file "E"
setkey edit "v"

Second method: using 'less'

Source: nion's blog - less colors for man pages

Alternatively, getting an approximate coloured result in manual pages with Template:Codeline is also a possibility. This method has the advantage that Template:Codeline has a bigger feature set than Template:Codeline, and that might be the preference for advanced users.

Add the following to a shell configuration file. For Bash it would be Template:Filename:

export LESS_TERMCAP_mb=$(printf "\e[1;37m")
export LESS_TERMCAP_md=$(printf "\e[1;37m")
export LESS_TERMCAP_me=$(printf "\e[0m")
export LESS_TERMCAP_se=$(printf "\e[0m")
export LESS_TERMCAP_so=$(printf "\e[1;47;30m")
export LESS_TERMCAP_ue=$(printf "\e[0m")
export LESS_TERMCAP_us=$(printf "\e[0;36m")

To customize the colors, see Wikipedia:ANSI escape code for reference.

Reading man pages with a browser

Instead of the standard interface, using browsers such as elinks and Firefox to view man pages effectively enables info pages' main benefit; hyperlinked text.

First, install Template:Package AUR using yaourt or another AUR helper:

$ yaourt -S man2html

Now, convert a man page:

$ man bash | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/bash.html

Another use for Template:Codeline is exporting to raw, printer-friendly text:

$ man bash | man2html -bare > ~/bash.txt