原创 Linux shell控制台改变显示前缀

2015-5-18 20:33 1530 11 11 分类: MCU/ 嵌入式

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

Linux shell控制台改变显示前缀 - 第1张  | 吴川斌的博客

 

其实,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>

3. 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>

4. 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/ 

本文链接地址: Linux shell控制台改变显示前缀 http://www.mr-wu.cn/bash-shell-ps1/

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条