在計算機運算中，alias 是許多命令列介面的命令，比如 Unix shell，4DOS4NT 和 Windows PowerShell 等，它給使用者提供了別名 也就是用自定義字串替換指定命令的功能，通常用於簡寫系統命令，或給常用命令新增預設選項，MSDOS 和 Microsoft Windows 作業系統內，通常使用 DOSKey 命令定義別名。 alias 命令的作用時間是命令執行之後到 shell 會話結束，經常使用的別名可在 shell 的配置檔案比如 C Shell（csh）的～cshrc 或 Bourne Again Shell 的～bashrc 裡定義，如此當相應的 shell 會話啟動後就可以使用這些自定義的別名了。alias 命令可以直接寫入這些配置檔案，或單獨放在一個檔案，比如 alias 裡，或依使用者使用的直譯器分別定義於 aliasbash，aliascsh 等檔案，然後使用 source 命令執行該檔案來設定。 定義別名 別名可以使用給 alias 命令指定鍵值對引數的方式定義，在 Bash 內，語法如下： alias copycp 同樣的別名，在 csh 或 tcsh 裡可以這樣指定： alias copy cp 這個別名的作用，是當用戶在命令列內輸入 copy 時，命令列直譯器會把該命令替換為 cp 命令來執行。 在 4DOS4NT 命令列內，可以使用以下命令把 cp 定義為 4DOS 的 copy 命令的別名： alias cp copy 要在 Windows PowerShell 內定義別名，可以使用以下命令： newalias ci copyitem 以上命令給 Windows PowerShell 的 copyitem 命令定義了一個別名 ci，因此使用者在 Windows PowerShell 裡輸入 ci 時，實際執行的是 copyitem 命令。 歷史 Unix 內，alias 命令是由 C shell 引入的，之後也被加入到 tcsh 和 Bash 內。C shell 的別名被嚴格限制在一行裡，複雜的 shell 語言則需要多行，不過單行別名對建立快捷的命令仍然很有用。Bourne shell（sh）內沒有別名功能，但它有更強大的 shell 函式方式。Bash 和 Korn shell（ksh）則同時支援函式和別名，並建議在可能時儘量使用函式。 檢視當前已定義的別名 要檢視當前命令列已定義的別名，可以用以下命令： alias 不帶引數執行 alias 命令，可顯示當前已定義的別名列表 alias p 同上，但在 4DOS4NT 和 PowerShell 裡無效 alias myAlias 顯示指定別名取代的實際命令 忽略別名 在 Unix shells 裡，如果別名已經指定過，可以把命令放在引號裡，或在前面新增一個反斜槓來使別名定義失效。比如，若已定義了以下別名： alias lsls la 要使以上別名失效並強制執行原始的 ls 命令，可使用以下語法： ls 或 ls 在 4DOS4NT 命令列裡，則可以在命令前面新增星號來使已定義的別名失效，比如，可用以下方式定義別名： alias dir dir 2p 第二個 dir 命令前的星號，確保其執行的是原始的 dir 命令，避免遞迴地別名展開，使用者還可以執行以下命令，確保執行的是原始（未設定別名的）dir 命令： dir 更改別名 在 Windows PowerShell 裡，可使用以下命令更改一個已經存在的別名： setalias ci cls 執行以上命令後，ci 將變成 cls 命令的別名。 刪除別名 在 Unix shell 和 4DOS4NT 裡，別名可以透過 unalias 命令清除： unalias copy 刪除 copy 別名 unalias a a 選項會清除所有已定義的別名，此選項在 4DOS4NT 裡無效 unalias 4DOS4NT 的清除別名命令，支援萬用字元 在 Windows PowerShell 裡，別名可用以下命令刪除： removeitem aliasci 刪除別名 ci 特性 Chaining 別名通常只替換第一個詞，但有些命令列直譯器，比如 Bash 和 ksh 允許替換一個字元序列或幾個單詞，這個特性使用 shell 函式方式是做不到的。 通常的語法是在第一個定義的別名所替換的命令後加一個空格，比如定義以下兩個別名： alias listls 注意 ls 後面的空格 alias longFlas ls 的選項 然後可執行 list long myfile 執行時被解釋為 ls Flas myfile 來列出檔案詳細資訊，可見命令列直譯器對 long 也進行了別名展開。 別名裡的引用 要使用單引號定義一個裡面帶有單引號的別名，比如要給以下 perl 指令碼定義別名： perl pes foo1 bar 你不能這樣簡單轉義： alias foo2barperl pe s foo1 bar 錯誤：反斜槓並不會對後一個字元進行轉義 不過，可以這樣： alias foo2barperl pe s foo1 bar 把反斜槓放在引號裡使之成為 但你可以在雙引號裡使用單引號。 alias foo2barperl pe s foo1 bar 你也可以使用 shell 函式方式，而非使用別名。 命令引數 在 C Shell 裡，命令的引數可以透過字串 嵌入到別名定義裡，比如定義以下別名： alias lless ls less 然後執行 lless etcusr，命令會被展開成 ls etcusr less，即列出 etc 和 usr 兩個目錄的檔案，且滿屏後暫停，若沒有 ， alias lless ls less 會被展開成 ls less etcusr，這將會錯誤的試圖用 less 開啟後兩個目錄。 Bash 和 Korn shell 裡，可以使用 shell 函式做到，參見下文的備選段落。 典型別名 Bash 裡一些常用的別名： alias lsls colorauto 輸出顯示為彩色 alias lals Fa 列出所有檔案 alias llls Fls 列出檔案詳細資訊 alias rmrm i 刪除前需確認 alias cpcp i 覆蓋前需確認 alias mvmv i 覆蓋前需確認 alias vivim 輸入 vi 命令時使用 vim 編輯器 Windows PowerShell 的標準別名： newalias cd setlocation newalias ls getchilditem newalias dir getchilditem newalias echo writeoutput newalias ps getprocess newalias kill stopprocess 備選 別名應保持簡單，否則應考慮以下備選方式： 命令指令碼，透過指令碼可以建立新的系統命令。 符號連結，可放在 usrlocalbin 給所有使用者使用，或放在使用者自己的 HOMEbin 目錄，只供自己使用。這提供了一個呼叫命令的新方式，並在某些情況下，對少數支援使用呼叫名選擇操作模式的命令，允許使用其隱含的命令函式。 Shell 函式，特別是如果命令需要修改 shell 內部執行環境（如環境變數）、改變當前工作目錄、或在非互動 shell 使用情況下出現在搜尋路徑裡面（特別是 較安全的 rm，cp，mv 版本等等）。 別名最常見的使用方式，是給命令新增常用的選項，這可以使用定義簡單 Shell 函式的方式代替： alias llls Flas 列出檔案詳細資訊，別名方式 ll ls Flas 列出檔案詳細資訊，Shell 函式方式 把 ls 本身定義成函式，可以用以下方式定義（注意這是 Bash 的 ls 命令，較老的 Bourne shell 需要使用 binls 代替）： ls command ls colorauto 參考資料 外部連結 Bash 的 alias 手冊頁 The Linux 資訊專案（LINFO）上的 alias 命令 在 Linux 中設定 Alias 別名 Alias CategoryUnix SUS2008 實用工具 CategoryWindows 管理