同样是linux,为什么shell登录后显示的前缀会不同呢,有些显示包含当前的用户名、主机名等信息,而有些仅显示一个#,如下图:

这里写图片描述

其实,shell登陆后具体显示的内容由环境变量”PS1″控制,我们可以

echo $PS1

查看一下当前的”PS1″环境变量的内容

通过修改用户的“home”目录下的.bashrc配置文件,添加内容

export PS1=”\u@\h \w> ”

或修改全局配置文件”/etc/profile”

具体的配置内容见这篇文章:

http://www.thegeekstuff.com/2008/09/bash-shell-ps1-10-examples-to-make-your-linux-prompt-like-angelina-jolie/

文章目录 [显示]
1. Display username, hostname and current working directory in the prompt

The PS1 in this 0 example displays the following three information in the prompt:

\u – Username
\h – Hostname
\w – Full path of the current working directory
-bash-3.2$ export PS1=”\u@\h \w> “

ramesh@dev-db ~> cd /etc/mail
ramesh@dev-db /etc/mail>
2. Display current time in the prompt

In the PS1 environment variable, you can directly execute any Linux command, by specifying in the format $(linux_command). In the following example, the command $(date) is 0 executed to display the current time inside the prompt.

ramesh@dev-db ~> export PS1="\u@\h [\$(date +%k:%M:%S)]> "

ramesh@dev-db [11:09:56]>
You can also use \t to display the current time in the hh:mm:ss format as shown below:

ramesh@dev-db ~> export PS1="\u@\h [\t]> "
ramesh@dev-db [12:42:55]>
You can also use \@ to display the current time in 12-hour am/pm format as shown below:

ramesh@dev-db ~> export PS1="[\@] \u@\h> "
[04:12 PM] ramesh@dev-db>
  1. Display output of any Linux command in the prompt

You can display output of any Linux command in the prompt. The following example displays three items separated by | (pipe) in the command prompt:

\!: The history number of the command
\h: hostname
$kernel_version: The output of the uname -r command from $kernel_version variable
\$?: Status of the last command
ramesh@dev-db ~> kernel_version=$(uname -r)
ramesh@dev-db ~> export PS1="\!|\h|$kernel_version|\$?> "
473|dev-db|2.6.25-14.fc9.i686|0>
  1. Change foreground color of the prompt

Display prompt in blue color, along with username, host and current directory information

$ export PS1="\e[0;34m\u@\h \w> \e[m"
[Note: This is for light blue prompt]

$ export PS1="\e[1;34m\u@\h \w> \e[m"
[Note: This is for dark blue prompt]
\e[ – Indicates the beginning of color prompt
x;ym – Indicates color code. Use the color code values mentioned below.
\e[m – indicates the end of color prompt

Color Code Table:

Black 0;30
Blue 0;34
Green 0;32
Cyan 0;36
Red 0;31
Purple 0;35

转载自 吴川斌的博客 http://www.mr-wu.cn/

Logo

更多推荐