目錄堆棧內建命令: 操作目錄堆棧的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內建命令 章節)。