1. Home
  2. Computing & Technology
  3. Linux
Basic Linux Operations FAQ
Part 3 of the Linux Newbie Administrator Guide
 
 Related Resources
• Linux Newbie Administrator Guide
• 0. Linux Benefit
• 1. Before Installation
• 2. Linux Resources/Help
• 3. Basic Operations FAQ
• 4. Newbie Admin FAQ
• ~ 4.1 Lilo
• ~ 4.2 Drives
• ~ 4.3 X-Windows
• ~ 4.4 Configurations
• ~ 4.5 Networking
5. Shortcuts / Commands
• 6. Linux Applications
• 7. Learn Linux Commands
• A. How to Upgrade Kernel?
 

3.4.2 How do I customize my shell prompt?

On my machine, the prompt may look like this:

[stan@marie stan]$ _

Here "stan" is my login name, "marie" is the name of the computer, the second "stan" is the name of my current working directory, and "_" represents the cursor.

The prompt is set by the environmental variable called PS1.  To display the current setting, I can use:

echo $PS1

The system-wide setting of the prompt (for all users on the system) is in the file /etc/bashrc which on my system contains such a line:

PS1="[\u@\h \W]\$ "

To customize the prompt, I can edit the file /etc/bashrc (as root) and insert almost any text inside the quotation marks. Here is the meaning of some special codes I may also choose to use:

\u   -    username of the current user (= $LOGNAME),
\h   -    the name of the computer running the shell (hostname),
\H   -    entire hostname,
\W   -    the base of the name of the current working directory,
\w   -    the full name of the current working directory,
\$   -    display "$" for normal users and "#" for the root,
\!   -    history number of the current command,
\#   -    number of the current command (as executed in the current shell),
\d   -    current date,
\t   -    current time (24-hr),
\T   -    current time (12-hr) - bash 2.0 only,
\@   -    current time (AM/PM format) - bash 2.0 only,
\s   -    name of the shell,
\a   -    sound alarm (beep),
\j   -    number of jobs the user has,
\n   -    new line,
\\   -    backslash,
\[   -    begin a sequence of non-printable characters,
\]   -    end a sequence of non-printable characters,
\nnn -    the ASCII character corresponding to the octal number nnn.
$(date) - output from the date command (or any other command for that matter),
 

Here is an example on how to add colour. See the next chapter for details about colour:

PS1="\[\033[1;32m\][\u@\h \W]\$\[\033[0m\] "

There is also the second-level prompt, set by a variable called PS2. The shell uses the second level prompt when it expects additional input, and on my system the secondary prompt is "> ". I don't worry too much about PS2, but if I did I could set it the same way as PS1. There are even PS3 and PS4, but these are rarely seen.

Next > 3.4.3  Colour on text terminal

Can't find what you are looking for?
Search the

Stay up-to-date!
Subscribe to the Linux free newsletter.

Explore Linux
About.com Special Features

Holiday Central

What to eat, where to go, fun things to do and how to save money on the perfect gifts. More >

Family Tech Center

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

  1. Home
  2. Computing & Technology
  3. Linux

©2009 About.com, a part of The New York Times Company.

All rights reserved.