11. Linux shell 自定制提示符
2019-02-05 本文已影响11人
独木舟的木
[TOC]
自定制 shell 提示符
解剖一个提示符
默认提示符看起来是这样的:
ubuntu@clumsiest:~$
root@server:~#
它包含我们的用户名,主机名和当前工作目录,但是它又是怎样得到这些东西的呢? 结果证明非常简单。提示符是由一个环境变量定义的,叫做 PS1(是 “prompt string one” 的简写)。我们可以通过 echo 命令来查看 PS1 的内容。
$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Shell 提示符中用到的转义字符
序列 | 显示值 |
---|---|
\a | 以 ASCII 格式编码的铃声 . 当遇到这个转义序列时,计算机会发出嗡嗡的响声。 |
\d | 以日,月,天格式来表示当前日期。例如,“Mon May 26.” |
\h | 本地机的主机名,但不带末尾的域名。 |
\H | 完整的主机名。 |
\j | 运行在当前 shell 会话中的工作数。 |
\l | 当前终端设备名。 |
\n | 一个换行符。 |
\r | 一个回车符。 |
\s | shell 程序名。 |
\t | 以 24 小时制,hours:minutes:seconds 的格式表示当前时间. |
\T | 以 12 小时制表示当前时间。 |
@ | 以 12 小时制,AM/PM 格式来表示当前时间。 |
\A | 以 24 小时制,hours:minutes 格式表示当前时间。 |
\u | 当前用户名。 |
\v | shell 程序的版本号。 |
\V | Version and release numbers of the shell. |
\w | 当前工作目录名。 |
\W | 当前工作目录名的最后部分。 |
! | 当前命令的历史号。 |
# | 当前 shell 会话中的命令数。 |
$ | 这会显示一个 '$' 字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个 '#' 字符。 |
[ | 标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印 的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色。 |
] | 标志着非打印字符序列结束。 |
自定义提示符设计
参考: 自定制 shell 提示符