Support Articles
Find Command Help Using the Terminal
Even experienced Linux users frequently utilize knowledge resources to find proper syntax for Terminal commands, or to discover options for known commands. All Linux shells support common utilities that search for and explain commands for a given task. These commands may navigate the user to a text file or navigable structure of help files, while others simply print output into the current Terminal session.
Why Find Help Using the Terminal?
Issues may disable user access to the desktop environment, including the web browser. In these scenarios, users can still find help that displays as output in a Terminal session. Users who still have access to a browser or second computer can find help using the Ubuntu or Debian manpage websites. The commands below are entered in a Terminal session. In Pop!_OS, Terminal sessions can be started by pressing Super + t.
--help
--help
prints out a shortened version of the man page, usually including a brief example and all options for a command. --help
prints output to the terminal session without navigating away from the shell prompt.
Use case: A user wants to quickly reference all options for a known command in the current Terminal session.
Usage: Type a command + --help
, then hit Enter. This example uses the cd
command. Commands must be an exact match.
cd --help
whatis
whatis
provides a very short description of a command's functionality.
Use case: A user wants a very brief reminder of a known command's functionality printed in the current Terminal session.
Usage: Type whatis
+ command, then hit Enter. This example uses the mkdir
command. Commands must be an exact match.
whatis mkdir
dpkg -S
dpkg -S
provides an index of files installed from a package.
Use case: A user is attempting to learn about commands included with a recently installed package.
Usage: Type dpkg -S
+ package name, then hit Enter. This command only works with currently-installed packages.
dpkg -S pop-upgrade
which & dpkg -S
which
provides the file location of a command. The output of which
can be passed into dpkg -S
to perform a search of associated packages.
Use case: A user would like to know which installed package provides a specific command.
Usage: Type which
+ command, then pipe the output of which
into dpkg -S
using xargs
. The xargs
command allows users to pass the output of a command as standard input into another command. The below example searches for the path of the libreoffice
command, and then searches for the package associated with that path.
which libreoffice | xargs dpkg -S
Commands within symlinked directories
Users may see an error stating no matching path can be found:
which mkdir | xargs dpkg -S
This occurs when a package is programmed to install a file to one directory, but that directory is symlinked to another directory on the system; in this situation, the package manager installs the file to a directory that differs from the original package's progamming. The following directories are commonly symlinked on Pop!_OS systems:
Symlink Name | Actual Directory |
---|---|
/bin | /usr/bin |
/sbin | /usr/sbin |
/lib | /usr/lib |
/lib64 | /usr/lib64 |
If dpkg -S
is unable to find a match, run which
manually, remove /usr
from the beginning of the output, and reattempt the command:
which mkdir
dpkg -S /bin/mkdir
In the above example, the mkdir
command (which comes from the coreutils
package) was supposed to be installed to /bin/mkdir
, but is located at /usr/bin/mkdir
instead because /bin
is a symlink to /usr/bin
in Pop!_OS.
Commands symlinked to other files
Sometimes, a command may not be an executable itself, but may be symlinked to an executable installed by a different package. To check if this is the case, after getting the command's path with which
, run the path through ls -l
to display any link information:
which reboot
ls -l /usr/sbin/reboot
dpkg -S /bin/systemctl
In the above example, the reboot
command is located at /usr/sbin/reboot
(which is installed from the systemd-sysv
package), but that file is actually a symlink to /bin/systemctl
(which comes from the systemd
package.)
apropos
apropos
performs a keyword search on command man pages. This is useful when searching for a command by its function. apropos
prints output to the terminal session without navigating away from the shell prompt.
Use case: A user can't remember the specific name of a command, but knows keywords commonly used to describe the command's functions.
Usage: Type apropos
+ keyword, then hit Enter. This example searches for commands related to the reboot
keyword.
apropos reboot
man
man
is short for manual pages. A command's manual page is a consistently structured text file describing the command's function, usage syntax, options, and similar commands. man
opens a manpage in the terminal session, and pressing q exits the manpage and returns the user to the shell prompt.
Use case: A user wants to see actions performed by a specific command, and available options to modify the outcome of the command.
Usage: Type man
+ any command into a Terminal session, then hit Enter. This example uses the reboot
command.
man reboot
info
info
pages are similar to man pages; however, their descriptions for command usage are more in-depth and include examples of output. Users can also navigate to other related info pages using hypertext links within the info page. info
opens an info page in the Terminal session, and pressing q exits the manpage and returns the user to the shell prompt.
Key | Function |
---|---|
Arrow Up | Move up one line |
Arrow Down | Move down one line |
Tab | Move to next hyperlink |
Enter | Select a hyperlink |
Page Up | Move up one page |
Page Down or Space bar | Move down one page |
n | Move to next info page |
p | Move to previous info page |
q | Exit the info page |
Use case: A user wants to see examples of command usage, command output, and easily navigate to commands offering related or supporting functionality.
Usage: Type info
+ any command into a Terminal session, then hit Enter. This example uses the ls
command.
info ls