跳至內容

Alias(命令)

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 12:03 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

佇電腦運算中,alias是真濟命令列介面的命令,比如講 Unix shell,四 DOS / 四 NT 和 Windows PowerShell 等,伊共使用者提供了別名—— 也就是用自訂字串替換指定命令的功能,通常用佇簡寫系統命令,抑是講不時用命令添加預設選項,MS-DOS 和 Microsoft Windows 作業系統內,通常使用 ` DOSKey ` 號令定義別名。

alias 命令的作用時間是命令執行了後到 shell 嘿講結束,定定咧用的別名會當佇咧 shell 的設定檔比如講 C Shell(csh)的 ` ~ / . cshrc ` 抑是 Bourne Again Shell 的 ` ~ / . bashrc ` 里定義,按呢當相應的 shell 對談啟動了後就會使使用遮的自訂的別名矣。alias 命令會當直接寫入遮的設定檔,或者是單獨囥佇咧一个檔案,比如講 . alias 里,抑是以使用者使用的直譯器分別定義佇 . alias-bash,. alias-csh 等檔案,然後使用 source 命令執行該檔案來設定。

定義別名

別名會使用予 alias 命令指定鍵值對參數的方式定義,佇咧 Bash 內,語法下跤:

` ` ` alias copy='cp' ` ` `

仝款別名,佇咧 csh 抑是 tcsh 里會當按呢指定:

` ` ` alias copy " cp " ` ` `

這个別名的作用,是當使用者佇咧命令列內輸入 copy 時,命令列直譯器會共這个命令替換做 cp 命令來執行。

佇四 DOS / 四 NT 命令列內,會使用以下命令共 cp 定義為四 DOS 的 ` copy ` 號令的別名:

` ` ` alias cp copy ` ` `

愛佇咧 Windows PowerShell 內定義別名,會使用下命令落去:

` ` ` new-alias ci copy-item ` ` `

以上命令予彼 Windows PowerShell 的 ` copy-item ` 號令定義矣一个別名 ` ci `,就按呢使用者佇 Windows PowerShell 里輸入 ci 時,實際執行的是 ` copy-item ` 命令。

歷史

Unix 內,alias 命令是由 C shell 引入來的,了後嘛加入去到 tcsh 和 Bash 內。C shell 的別名予人嚴格限制佇一行里,複雜的 shell 語言愛多行,毋過單行別名對建立快捷的命令猶原真有路用。Bourne shell(sh)內無別名功能,但是伊有閣較強大的 shell 函式方式。Bash 和 Korn shell(ksh)則同時支援函式佮別名,並建議佇可能的時陣盡量使用函式。

檢視做頭前定義的別名

欲檢視做頭前命令列已定義的別名,會使用下命令落去:

` ` ` alias # 無帶參數運行 alias 命令,會當顯示當前已經定義的被名列表 alias-p # 同上,毋過佇四 DOS / 四 NT 和 PowerShell 里無效 alias _ myAlias _ # 顯示指定徛名取代的實際號令 ` ` `

忽略別名

佇咧 Unix shells 里,若別名已經指定過,會當共命令囥咧引號里,抑是佇頭前添加一个反斜槓來使別名定義失效。比如講,若已經定義以下的別名:

` ` ` alias ls='ls-la' ` ` `

欲使以上別名失效並強制執行原始的 ` ls ` 命令,會當使用落來語法:

` ` ` 'ls' ` ` `

抑是

` ` ` \ ls ` ` `

佇四 DOS / 四 NT 命令列里,著會當佇咧命令頭前添加星號來使已經定義的別名失效,比如講,會當用下跤式定義別名:

` ` ` alias dir=* dir / 二 / p ` ` `

第二个 dir 命令前的星號,確保其執行的是原始的 dir 命令,避免遞迴地別名展開,使用者閣會當執行以下命令,確保執行的是原始(未設定別名的)dir 命令:

` ` `

  • dir

` ` `

更改別名

佇咧 Windows PowerShell 里,會當使用下命令更改一个已經存在的別名:

` ` ` set-alias ci cls ` ` `

執行以上命令了後,` ci ` 將變做 ` cls ` 號令的別名。


刪除別名

佇咧 Unix shell 佮四 DOS / 四 NT 里,別名會當通過 ` unalias ` 命令清除:

` ` ` unalias * # 四 DOS / 四 NT 的清除保名號令,支持通配符 ` ` `

佇咧 Windows PowerShell 里,別名會使下令刪除:

特性

Chaining

別名通常干焦替換頭一个詞,但是有一寡命令列直譯器,比如講 Bash 和 ksh 允准替換一字元序列或者是幾个單詞,這個特性使用 shell 函式方式是做袂到的。

通常的語法是踮頭一个定義的別名所替換的號令了後加一个空格,比如定義以下兩個別名:

` ` ` alias list='ls'# 注意 ls 后面的空格 alias long='-Flas'# ls 的曲去 ` ` `

通執行

` ` ` list long myfile # 抹著行被改又閣 ls-Flas myfile ` ` `

來列出檔案詳細的資訊,可見命令列直譯器著 long 嘛進行矣別名展開。

別名里的參照乎

欲使用單引號定義一个內底帶有單引號的別名,比如講愛予以下 perl 指令碼定義別名:

你袂當按呢簡單跳脫:

猶毋過,會當按呢:

但是你會當佇雙引號里使用單引號。

你嘛會使用 shell 函式方式,無咧使用別名的。

命令參數

佇咧 C Shell 里,命令的參數會當通過字串 \ ! \ * 1875入去到別名定義里,比如定義以下的名:

` ` ` alias l-less'ls \ ! * | less' ` ` `

然後執行 l-less / etc / usr,命令會予人展開做 ls / etc / usr | less,即列出 / etc 和 / usr 兩个 kha-tá-lok-guh 的檔案,而且滿屏後暫停,若無 \ ! \ *,

` ` ` alias l-less'ls | less' ` ` `

會予人展開做 ls | less / etc / usr,這將會錯誤的試圖用 less 拍開了後兩个 kha-tá-lok-guh。

Bash 和 Korn shell 里,會用得使用 shell 函式做到,參見下文的備選段落。

典型別名

Bash 里一寡定定用的別名:

` ` ` alias ls='ls--color=auto'# 知影影影影影影影 alias la='ls-Fa'# 列出所有的文件 alias ll='ls-Fls'# 列出文件抹粉批評

alias rm='rm-i'# 抹掉進前愛需要鋪 alias cp='cp-i'# 覆著進前愛需要分 alias mv='mv-i'# 覆著進前愛需要分

alias vi='vim'# 扳入去 vi 命令提使用 vim ma-lá器 ` ` `

Windows PowerShell 的標準別名:

` ` ` new-alias cd set-location

new-alias ls get-childitem new-alias dir get-childitem

new-alias echo write-output new-alias ps get-process new-alias kill stop-process ` ` `

備選

別名應該保持簡單,若無閣考慮以下備選方式:

  • 命令指令碼,通過指令碼會當建立新的系統命令。
  • 符號連結,可囥佇咧 / usr / local / bin 予所有使用者使用,抑是囥佇使用者家己的 $ HOME / bin kha-tá-lok-guh,干焦供家己使用。這提供一个呼叫命令的新方式,而且佇咧某寡狀況下,著少數支援使用呼叫名選擇操作模式的命令,允准使用隱含的命令函式。
  • Shell 函式,特別是若命令需要修改 shell 內部執行環境(如環境變數)、 改變當前工作 kha-tá-lok-guh、抑是咧非互動 shell 使用情形下出現佇咧搜揣路草內底(特別是「較安全的」rm,cp,mv 彼版本等等)。

別名上定定看著的使用方式,是予命令添加定用的選項,這會使用定義簡單 Shell 函式的方式代替:

ls本身定義成函式,會當用下跤式定義(注意這是 Bash 的 ls 命令,比較老的 Bourne shell 需要使用 / bin / ls 代替):

參考資料

外部連結

  • ` alias ` :   定義抑是顯示別名  –  命令佮工具(Commands & Utilities)參考,單一 UNIX® 規範第七期,由國際開放標準組織發布
  • Bash 的 alias 手冊頁
  • The Linux 資訊專案(LINFO)上的 alias 命令
  • 佇咧 Linux 中設定 Alias 別名