The appearance of the prompt is governed by the shell variable PS1. Command continuations are indicated by the PS2 string, which can be modified in exactly the same ways discussed here - since controlling it is exactly the same, and it isn't as "interesting," I'll mostly be modifying the PS1 string. (There are also PS3 and PS4 strings. These are never seen by the average user - see the Bash man page if you're interested in their purpose.) To change the way the prompt looks, you change the PS1 variable. For experimentation purposes, you can enter the PS1 strings directly at the prompt, and see the results immediately (this only affects your current session, and the changes go away when you exit the current shell). If you want to make a change to the prompt permanent, look at the section below Section 2.6.
Before we get started, it's important to remember that the PS1 string is stored in the environment like any other environment variable. If you modify it at the command line, your prompt will change. Before you make any changes, you can save your current prompt to another environment variable:
[giles@nikola giles]$ SAVE=$PS1 [giles@nikola giles]$ |
The simplest prompt would be a single character, such as:
[giles@nikola giles]$ PS1=$ $ls bin mail $ |
This demonstrates the best way to experiment with basic prompts, entering them at the command line. Notice that the text entered by the user appears immediately after the prompt: I prefer to use
$PS1="$ " $ ls bin mail $ |
which forces a space after the prompt, making it more readable. To restore your original prompt, just call up the variable you stored:
$ PS1=$SAVE [giles@nikola giles]$ |