WHATEVER You can create your own environment variables to provide shortcuts in your work. Choose any name that is not being used and assign a useful value to it. For example, if you do lots of work with files in the /work/time/files/info/memos directory, you could set the following variable: M=/work/time/files/info/memos ; export MYou could make that your current directory by typing cd $M. You could run a program from that directory called hotdog by typing $M/hotdog. You could edit a file from there called bun by typing vi $M/bun.
Getting Information about Commands
When you first start using the shell, it can be intimidating. All that you see is a prompt. How do you know which commands are available, which options they use, or how to use advanced features? Fortunately, lots of help is available. Here are some places that you can look to supplement what you learn in this chapter:
Check the PATH. Type echo $PATH. You see a list of the directories containing commands that are immediately accessible to you. Listing the contents of those directories displays most standard Linux commands. For example:$ ls /bin arch dd fusermount loadkeys mv awk df gawk login nano basename dmesg gettext ls netstat bash dnsdomainname grep lsblk nice cat domainname gtar lscgroup nisdomainname chgrp echo gunzip lssubsys ping chmod ed gzip mail ping6 chown egrep hostname mailx ps cp env ipcalc mkdir pwd cpio ex kbd_mode mknod readlink csh false keyctl mktemp red cut fgrep kill more redhat_lsb_init dash find link mount rm date findmnt ln mountpoint rmdir
Use the help command. Some commands are built into the shell, so they do not appear in a directory. The help command lists those commands and shows options available with each of them. (Enter help | less to page through the list.) For help with a particular built-in command, enter help command, replacing command with the name that interests you. The help command works with the bash shell only.
Use --help with the command. Many commands include a --help option that you can use to get information about how the command is used. For example, if you enter date --help | less, the output shows not only options, but also time formats that you can use with the date command. Other commands simply use a –h option, like fdisk -h.
Use the info command. The info command is another tool for displaying information about commands from the shell. The info command can move among a hierarchy of nodes to find information about commands and other items. Not all commands have information available in the info database, but sometimes more information can be found there than on a man page.
Use the man command. To learn more about a particular command, enter man command. (Replace command with the command name you want.) A description of the command and its options appears on the screen.
Man pages are the most common means of getting information about commands as well as other basic components of a Linux system. Each man page falls into one of the categories listed in Table 3.8. As a regular user, you will be most interested in man pages in section 1. As a system administrator, you will also be interested in sections 5 and 8, and occasionally section 4. Programmers will be interested in section 2 and 3 man pages.
TABLE 3.8 Manual Page Sections
Section Number | Section Name | Description |
1 | User Commands | Commands that can be run from the shell by a regular user (typically no administrative privilege is needed) |
2 | System Calls | Programming functions used within an application to make calls to the kernel |
3 | C Library Functions | Programming functions that provide interfaces to specific programming libraries (such as those for certain graphical interfaces or other libraries that operate in user space) |
4 | Devices and Special Files | Filesystem nodes that represent hardware devices (such as Terminals or CD drives) or software devices (such as random number generators) |
5 | File Formats and Conventions |
Types of files (such as a graphics or word processing file) or specific configuration files (such as the passwd or group file)
|
6 | Games | Games available on the system |
7 | Miscellaneous | Overviews of topics such as protocols, filesystems, character set standards, and so on |
8 | System Administration Tools and Daemons | Commands that require root or other administrative privileges to use |
Options to the man
command enable you to search the man page database or display man pages on the screen. Here are some examples of man commands and options:
$ man -k passwd … passwd (1) - update user's authentication tokens passwd (5) - password file $ man passwd $ man 5 passwd
Using the -k
option, you can search the name and summary sections of all man pages installed on the system. There are about a dozen man pages that include “passwd
” in the name or description of a command.
NOTE
If man -k
displays no output, it may be that the man page database has not been initialized. Type mandb as root to initialize the man page database.
Let's say that the two man pages in which I am interested are the passwd
command (in section 1 of the man pages) and the passwd
file (in section 5) man pages. Because just typing man passwd displays the section 1 page, I need to request explicitly the section 5 man page if I want to see that instead (man 5 passwd).
While you are displaying a man page, you can view different parts of the file using Page Down and Page Up keys (to move a page at a time). Use the Enter key or up and down arrows to move a line at a time. Press a forward slash (/) and type a term to search the document for that term. Press n to repeat the search forward or N to repeat the search backward. To quit the man page, type q.
Summary
To become an expert Linux user, you must be able to use the shell to type commands. This chapter focuses on the bash shell, which is the one that is most commonly used with Linux systems. You learned how commands are structured and how many special features, such as variables, command completion, and aliases, are used.
The next chapter describes how to move around the Linux filesystem from the shell command line.
Exercises
Use these exercises to test your knowledge of using the shell. These tasks assume that you are running a Fedora or Red Hat Enterprise Linux system (although some tasks work on other Linux systems as well). If you are stuck, solutions