bash参考手册之六(Bash特性)续六

来源:互联网 发布:一彩支票打印软件 编辑:程序博客网 时间:2024/05/21 18:26
6.8 目录堆栈

目录堆栈内建命令: 操作目录堆栈的Bash内建命令。

目录堆栈是最近访问的目录的列表。内建命令 pushd 在改变当前目录时,向堆栈增加目录,而内建命令 popd 从堆栈移除指定的目录,并改变当前目录到被移除的目录。内建命令 dirs 显示目录堆栈的内容。

目录堆栈的内容也是shell变量 DIRSTACK 的值。

6.8.1 目录堆栈内建命令

dirs
dirs [+N | -N] [-clpv]
显示当前记录的目录。 pushd 命令添加目录到列表中,而 popd 命令从列表中移除目录。
+N
显示第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数),从0开始。
-N
显示第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数),从0开始。
-c
删除所有元素,以清除目录堆栈。
-l
产生长列表;默认的列表格式中,使用波浪线代表home目录。
-p
使dirs在每一行上显示一个目录堆栈中的元素。
-v
使dirs在每一行上显示一个目录堆栈中的元素,并且在每行前面显示该元素在堆栈中的索引。

popd
popd [+N | -N] [-n]
从目录堆栈中移除顶端的元素,并 cd 到新的顶部目录。当没有参数时, popd 从堆栈顶部移除目录,并且执行 cd 命令到新的顶部目录。对于用dirs列出的内容,元素从0开始计数,例如: popd等价于 popd +0。
+N
移除第 N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数),从0开始。
-N
移除第 N 个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数),从0开始。
-n
在从堆栈中移除目录时,不执行改变目录的操作,即只操作堆栈。

pushd
 pushd [-n] [+N | -N | dir ]
保存当前目录到目录堆栈的顶部,并 cd 到 dir。若没有参数,则 pushd 交换顶部的两个目录。
-n
在向堆栈中增加目录时,不执行改变目录的操作,即只操作堆栈。
+N
通过旋转堆栈,把第N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从左开始数,从0开始)带到列表顶部。
-N
通过旋转堆栈,把第N个目录(当使用不带选项的 dirs 命令时,显示的命令列表,从右开始数,从0开始)带到列表顶部。
dir
把当前工作目录放到堆栈顶部,并执行 ‘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内建命令 章节)。





0 0