man
man
stands for "manual" and is a command which presents the "man pages" for a particular command.
What are "man pages"? Man pages are text documents that describe the utility or command, what it does, how to use it, and what options are available to use. It is one of the best resources to learn about a given command. The man
command should be your first stop to learn about a new command.
To see the "man pages" for the cat
command, you can run the following.
man cat
You will then be presented with text describing the cat
command and its various options. To scroll down in the presented interface, press the "j" button on your keyboard, or use the down arrow key, or the space bar. To scroll up, press the "k" button or the up arrow key. To quit the man pages, press the "q" button (for quit).
whatis
Closely related to the man
command is the whatis
command, which gives a one-line summary of a command. For instnace, here is the operation of whatis cat
and whatis nano
and whatis vi
and whatis head
x-mdw@login06.anvil:[~] $ man -f cat
cat (1p) - concatenate and print files
cat (1) - concatenate files and print on the standard output
x-mdw@login06.anvil:[~] $ whatis cat
cat (1p) - concatenate and print files
cat (1) - concatenate files and print on the standard output
x-mdw@login06.anvil:[~] $ whatis nano
nano (1) - Nano's ANOther editor, an enhanced free Pico clone
x-mdw@login06.anvil:[~] $ whatis vi
vi (1p) - screen-oriented (visual) display editor
vi (1) - Vi IMproved, a programmer's text editor
x-mdw@login06.anvil:[~] $ whatis head
head (1p) - copy the first part of files
HEAD (1) - Simple command line user agent
head (1) - output the first part of files
whereis
The whereis
command shows where a program is available. For instance, here is the operation of whereis
for emacs
, vi
, nano
, man
, and cd
.
x-mdw@login06.anvil:[data] $ whereis emacs
emacs: /usr/share/emacs
x-mdw@login06.anvil:[data] $ whereis vi
vi: /usr/bin/vi /usr/share/man/man1p/vi.1p.gz /usr/share/man/man1/vi.1.gz
x-mdw@login06.anvil:[data] $ whereis nano
nano: /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz /usr/share/info/nano.info.gz
x-mdw@login06.anvil:[data] $ whereis man
man: /usr/bin/man /usr/share/man /usr/share/man/man7/man.7.gz /usr/share/man/man1p/man.1p.gz /usr/share/man/man1/man.1.gz
x-mdw@login06.anvil:[data] $ whereis cd
cd: /usr/bin/cd /usr/share/man/man1p/cd.1p.gz /usr/share/man/man1/cd.1.gz
type and which
Another way to check where a command is located is to use type
or which
; see page 36 in Section 2.6 of Unix Power Tools
For instance, we could check:
type cat
and type nano
and type vi
and type head
and in bash
we can type:
type -all cat
and type -all nano
and type -all vi
and type -all head
and
which cat
and which nano
and which vi
and which head