can change the prompt to display any characters you like and even read in pieces of information about your system – for example, you can use the current working directory, the date, the local computer name, or any string of characters as your prompt. To configure your prompt, see the section “Setting your prompt” later in this chapter.
Although a tremendous number of features are available with the shell, it's easy to begin by just typing a few commands. Try some of the commands shown in the remainder of this section to become familiar with your current shell environment.
In the examples that follow, the dollar ($
) and pound (#
) symbols indicate a prompt. A $
indicates that the command can be run by any user, but a #
typically means you should run the command as the root user – many administrative tools require root permission to be able to run them. The prompt is followed by the command that you type (and then press Enter). The lines that follow show the output resulting from the command.
Using a terminal window
With the desktop GUI running, you can open a terminal emulator program (sometimes referred to as a Terminal window) to start a shell. Most Linux distributions make it easy for you to get to a shell from the GUI. Here are two common ways to launch a Terminal window from a Linux desktop:
● Right-click the desktop. In the context menu that appears, if you see Open in Terminal, Shells, New Terminal, Terminal Window, Xterm, or some similar item, select it to start a Terminal window. (Some distributions have disabled this feature.)
● Click the panel menu. Many Linux desktops include a panel at the top or bottom of the screen from which you can launch applications. For example, in some systems that use the GNOME 2 desktop, you can select Applications
In all cases, you should be able to type a command as you would from a shell with no GUI. Different terminal emulators are available with Linux. In Fedora, Red Hat Enterprise Linux (RHEL), and other Linux distributions that use the GNOME desktop, the default Terminal emulator window is the GNOME Terminal (represented by the gnome-terminal
command).
GNOME Terminal supports many features beyond the basic shell. For example, you can cut and paste text to or from a GNOME Terminal window, change fonts, set a title, choose colors or images to use as background, and set how much text to save when text scrolls off the screen.
To try some GNOME Terminal features, start up a Fedora or RHEL system and log in to the desktop. Then follow this procedure:
1. Select Applications
2. Select Edit
3. On the General tab, uncheck the “Use the system fixed width font” box.
4. From the Font field, try a different font and select OK. The new font appears in the Terminal window.
5. Re-select the “Use system fixed width font” box. This takes you back to the original font.
6. On the Colors tab, clear the “Use colors from system theme” check box. From here, you can try some different font and background colors.
7. Re-select the “Use colors from system theme” box to go back to the default colors.
8. Go to the Profile window. There are other features you may want to experiment with, such as setting how much scrolled data is kept.
9. Close the Profile window when you are finished. You are now ready to use your Terminal window.
If you are using Linux from a graphical desktop, you will probably most often access the shell from a Terminal window.
Using virtual consoles
Most Linux systems that include a desktop interface start multiple virtual consoles running on the computer. Virtual consoles are a way to have multiple shell sessions open at once in addition to the graphical interface you are using.
You can switch between virtual consoles by holding the Ctrl and Alt keys and pressing a function key between F1 and F6. For example, in Fedora, press Ctrl+Alt+F1 (or F2, F3, F4, and so on up to F6 on most Linux systems) to display one of seven virtual consoles. The first virtual workspace in Fedora is where the GUI is and the next six virtual consoles are text-based virtual consoles. You can return to the GUI (if one is running) by pressing Ctrl+Alt+F1. (On some systems the GUI runs on the virtual console 5 or 6. So you'd return to the GUI by pressing Ctrl+Alt+F5 or Ctrl+Alt+F6.)
Try it right now. Hold down the Ctrl+Alt keys, and press F3. You should see a plain-text login prompt. Log in using your username and password. Try a few commands. When you are finished, type exit to exit the shell. Then press Ctrl+Alt+F1 to return to your graphical desktop interface. You can go back and forth between these graphical consoles as much as you like.
Choosing Your Shell
In most Linux systems, your default shell is the bash shell. To find out what your default login shell is, type the following commands:
The who am i
command shows your username, and the grep
command (replacing chris
with your name) shows the definition of your user account in the /etc/password
file. The last field in that entry shows that the bash shell (/bin/bash
) is your default shell (the one that starts up when you log in or open a Terminal window).
It's possible, although not likely, that you might have a different default shell set. To try a different shell, simply type the name of that shell (examples include ksh
, tcsh
, csh
, sh
, dash
, and others, assuming they are installed). You can try a few commands in that shell and type exit when you are finished to return to the bash shell.
You might choose to use different shells for the following reasons:
● You are used to using UNIX System V systems (often ksh
by default) or Sun Microsystems and other Berkeley UNIX-based distributions (frequently csh
by default), and you are more comfortable using default shells from those environments.
● You want to run shell scripts that were created for a particular shell environment, and you need to run the shell for which they were made so you can test or use those scripts from your current shell.
● You simply prefer features in one shell over those in another. For example, a member of my Linux Users Group prefers ksh
over bash
because he doesn't like the way aliases are used with bash
.
Although most Linux users have a preference for one shell or another, when you know how to use one shell, you can quickly learn any of the others by occasionally referring to the shell's man page (for example, type man bash). The man pages (described later in the “Getting Information about Commands” section) provide documentation for commands, file formats, and other components in Linux. Most people use bash just because they don't have a particular reason for using a different shell. The rest of this section describes the bash shell.
Bash includes features originally developed for sh
and ksh
shells in early UNIX systems, as well as some csh
features. Expect bash to be the default login shell in most Linux systems you are using, with the exception of some specialized Linux systems (such as some that run on embedded devices) that may require a smaller shell that needs less memory and requires fewer features. Most of