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 提示符

上一篇 下一篇

猜你喜欢

热点阅读