Shell 符號

  針對許多頻繁使用的命令行參數(shù),Shell 提供了相應(yīng)的符號 或記號作為簡寫。您只需輸入這些符號來代替相應(yīng)的參數(shù)。

  如上所述,~ 表示您的 home 目錄。與之類似的簡寫形式 ~username 表示 username 的 home 目錄。例如,~joe 表示 joe 的 home 目錄,所以,要將文件從 joe 的 doc 目錄復(fù)制到您的 info 目錄,您可以輸入下面的命令:
代碼:
$ cp ~joe/doc/report.txt ~/info
  假設(shè) joe 的 home 目錄位于 /guests,而您的 home 目錄為 /staff/bobr,~joe 將由 /guests/joe 替換,而 ~ 則變成 /staff/bobr,最后產(chǎn)生命令 cp /guests/joe/doc/report.txt /staff/bobr/info。

  另一個有用的符號是 ..(兩個點號),這是當(dāng)前目錄的父目錄的簡寫。使用 .. 和 .(當(dāng)前工作目錄的簡寫符號),您可以引用文件系統(tǒng)中相對于當(dāng)前工作目錄的文件和目錄。

  例如,如果您的當(dāng)前工作目錄為 ~/jane/projects/lambda,那么簡寫 ../.. 表示向上兩級目錄的目錄,即 ~/jane。要表示包含 ~/jane 的目錄,您可以使用 ../../../(“向上三級目錄”)或路徑 ~jane/../。后面的這個路徑表示從 ~jane 開始,然后轉(zhuǎn)到上一級目錄。

  要將文件復(fù)制到您的當(dāng)前目錄,不需要指定目標(biāo)目錄,可以直接使用 .(“點”)來表示:
代碼:$ cp -pr /path/to/lots/of/stuff
  前面的命令將 /path/to/lots/of/stuff 目錄遞歸地復(fù)制到您的當(dāng)前目錄,并保持其原始的時間和日期戳。引用 .. 和 . 的路徑名稱為相對路徑名。以 /(正斜杠)或 ~(波浪符號)開頭的路徑名稱為絕對路徑名,因為您是從文件系統(tǒng)的頂端、或從一個目錄層次結(jié)構(gòu)的頂端開始來引用相應(yīng)的文件。

用波浪號快速修改輸錯的命令

假如打錯了一個很長的命令,需要重新輸入是十分沮喪的事情。例如:

  $ find . -naem "*.txt" -print

  的例子中,name 被錯誤的輸成了 naem ,我們能夠用下面的波浪符號來替換:

  $ ^em^me^

  find . -name "*.txt" -print


檢驗?zāi)墓ぷ?/strong>

  如果您想要查看命令行符號擴展后的結(jié)果,可以使用 echo 命令:
代碼:$ echo ~joe/doc/report.txt ~/info
/guests/joe/doc/report.txt /staff/bobr/info

$ echo $SHELL
/bin/zsh

$ ls
architecture.txt  Services.pdf
services.txt      Schema.pdf

$ echo *.txt
architecture.txt services.txt
  echo 命令將完整地表達您在命令行中輸入的內(nèi)容。然而,因為 Shell 會在調(diào)用任何程序之前,對(大多數(shù))命令行參數(shù)進行擴展,所以該命令將打印出所有替換的結(jié)果。(Shell 環(huán)境變量 $SHELL 包含當(dāng)前正在運行的 Shell 的名稱。)