提示符
在交互模式下,shell的提示符提示用户输入。当用户看见提示符的时候,就知道输入命令了。bash有四种提示符:最基本的是$提示符;第二种是">"; 第三,第四种分别是PS3和PS4.当shell在交互模式下运行的时候,提示符就会出现在屏幕上。当然你也可以替换提示符。当然了一般就是linux命令。变量PS2是第二种提示符,默认的是">“符号。假如你输入的是部分,或称为不完全的命令,并敲了回车,”>"符号就会出现。你也可以用其他的符号来变换第一或第二种提示符。
基本提示符:即$符号,是默认的基本提示符。你也可以替换为其他的提示符。一般而言,提示符可在/etc/bashrc或在用户的初始文件.bash_profile里
转换/定义。
例如将提示符设置为以下格式:
$ PS1="$(uname -n) >" #=> chef-client >
用特殊转义序列设置提示符:可以通过在提示符字符串插入特殊用反斜线转义的字符序列来定制提示符。下表列出了特殊序列。
反斜杠序列 | 功能 |
---|---|
\t | 以"HH:MM:SS"格式显示的当前时间 |
\d | 以"Weekday Month Date" 格式显示的日期(“Tue May 26”) |
\n | 换行符 |
\s | shell的名称,$0(接着的部分是终结斜线)的基本名(basename) |
\w | 当前工作目录 |
\W | 当前工作目录的基本名 |
\n | 当前用户的用户名 |
\h | 主机名 |
# | 本命令的命令个数 |
! | 本命令的历史序列号 |
$ | 如果有效UID为0,则为#, 否则为$ |
\nnn | 八进制数字对应的ASCII字符 |
\ | 一个反斜杠 |
[ | 非打印字符串序列的起始符,这些非打印字符串可用于在提示符中嵌入终端控制序列 |
] | 非打印字符串序列的结束符 |
以下为bash 2.x版本中的新序列 | |
\a | |
@ | 以12小时AM/PM格式显示当前时间 |
\H | |
\T | 以12小时HH:MM:SS格式显示当前时间 |
\e | ASCII转义字符(033) |
\v | bash版本号,如2.03 |
\V | bash版本号,如2.03.0 |
$ PS1="[\u@\h \W]\\$" #=>[root@chef-client ~]$
这里用反斜线转义来设置bash主提示符.
$ PS1="\W: \d" #=> ~: Sun Apr 05 >
次提示符:PS2变量被赋值为次提示符字符串。其值在标准错误中显示,默认情况下为监视器。
当没有完成输入或期望更多的输入时就会出现这个提示符。默认次提示符为">".
$ echo "hello
> there"
hello
there
#=> 这里由于命令没有输入完整,键入换行符后就出现了次级提示符。直到输入闭合的双引号才会显示次级提示符。
$ PS2="---->"
$ echo "hello
----> there"
hello
there
$ PS2="\s:PS2 > "
$ echo "hello
bash:PS2 > there"
hello
there