目录堆栈内建命令: 操作目录堆栈的Bash内建命令。
目录堆栈是最近访问的目录的列表。内建命令 pushd 在改变当前目录时,向堆栈增加目录,而内建命令 popd 从堆栈移除指定的目录,并改变当前目录到被移除的目录。内建命令 dirs 显示目录堆栈的内容。
dirs
dirs [+N | -N] [-clpv]
显示当前记录的目录。 pushd 命令添加目录到列表中,而 popd 命令从列表中移除目录。
显示第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数),从0开始。
显示第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数),从0开始。
删除所有元素,以清除目录堆栈。
产生长列表;默认的列表格式中,使用波浪线代表home目录。
使dirs在每一行上显示一个目录堆栈中的元素。
使dirs在每一行上显示一个目录堆栈中的元素,并且在每行前面显示该元素在堆栈中的索引。
popd [+N | -N] [-n]
从目录堆栈中移除顶端的元素,并 cd 到新的顶部目录。当没有参数时, popd 从堆栈顶部移除目录,并且执行 cd 命令到新的顶部目录。对于用dirs列出的内容,元素从0开始计数,例如: popd等价于 popd +0。
移除第 N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数),从0开始。
移除第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数),从0开始。
在从堆栈中移除目录时,不执行改变目录的操作,即只操作堆栈。
pushd [-n] [+N | -N | dir ]
保存当前目录到目录堆栈的顶部,并 cd 到 dir。若没有参数,则 pushd 交换顶部的两个目录。
在向堆栈中增加目录时,不执行改变目录的操作,即只操作堆栈。
通过旋转堆栈,把第N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数,从0开始)带到列表顶部。
通过旋转堆栈,把第N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数,从0开始)带到列表顶部。
把当前工作目录放到堆栈顶部,并执行 ‘cd dir’,cd到dir目录。
6.9 控制提示符
Bash在每次打印提示符之前都检测变量 PROMPT_COMMAND 的值。如果 PROMPT_COMMAND 被设置,并且有非空值,则计算该值,并打印到命令行上。
此外,下面的表格描述了可以出现在提示符变量中的特殊字符:
\a
响铃字符。
\d
日期,格式是 "Weekday Month Date" ,(例如: Tue May 26)
\D{format}
format 被传送给 strftime(3) ,然后把结果插入到提示符字符串中,空的 format 的结果是环境的locale指定的格式。括号是必须出现的。
\e
逃逸字符。
\h
主机名,第一个 ‘.’ 字符之前的部分。
\H
主机名。
\j
shell当前管理的作业数目。
\l
shell终端设备名的基础名字。
\n
新行符号。
\r
回车换行符号。
\s
shell的名字,$0的基础名(最后的斜杠后面的部分)。
\t
时间,24小时格式:HH:MM:SS 。
\T
时间,12小时格式:HH:MM:SS 。
\@
时间,12小时格式:am/pm 。
\A
时间,24小时格式:HH:MM 。
\u
当前的用户名。
\v
Bash的版本。(例如 2.00)
\V
Bash的发行版,版本号+补丁号(例如 2.00.0)
\w
当前的工作目录,把$HOME缩写成波浪号(使用 $PROMPT_DIRTRIM 变量)。
\W
$PWD 的基础名,把$HOME缩写成波浪号。
\!
这个命令的历史号码。
\#
这个命令的命令号码。
\$
如果有效用户的uid是0,则是#,否则是 $。
\nnn
ASCII是8进制nnn的字符。
\\
反斜杠
\[
开始一段非打印字符。用于嵌入终端控制序列到提示符中。
\]
终止一段非打印字符。
命令号码和历史号码一般是不同的,命令的历史号码是它在历史列表中的位置,该列表是从历史文件中读取到的(见 Bash历史工具 章节),而命令号码是在当前shell会话中执行的命令序列中的位置。
字符串解码后,它要经过参数扩展,命令替换,算术表达,和移除引号,根据shell选项 promptvars的值(见 Bash内建命令 章节)。