首頁 > 軟體

如何建立Bash別名

2020-06-16 16:33:37

您是否經常發現自己在命令列上鍵入一個長命令或在bash歷史記錄中搜尋以前鍵入的命令?如果您對這些問題的答案都是肯定的,那麼您會發現bash別名很方便。Bash別名允許您為較長的命令設定可記憶的快捷命令。

Bash別名本質上是一個快捷方式,可以使您不必記住長命令,並在使用命令列時消除大量的輸入。例如,您可以將別名設定tgz為tar -xvfz命令的快捷方式。

本文介紹如何建立bash別名,以便在命令列上提高工作效率。

建立Bash別名

在bash中建立別名非常簡單。語法如下:

alias alias_name="command_to_run"

要通過鍵入aliaskeyword 來建立新的bash別名。然後宣告別名,後跟等號和您在鍵入別名時要執行的命令。該命令需要用引號括起來,並且等號周圍沒有間距。每個別名都需要在新行上宣告。

該ls命令可能是Linux命令列中最常用的命令之一。我通常使用此命令與-la開關列出所有檔案和目錄,包括長列表格式的隱藏檔案和目錄。

讓我們建立一個名為的簡單bash別名ll,它將是ls -la命令的快捷方式。為此,請鍵入開啟終端視窗並鍵入:

alias ll="ls -la"

現在,如果您輸入ll控制台,您將獲得與輸入相同的輸出ls -la。

該ll別名將只在當前shell對談可用。如果退出對談或從另一個終端開啟新對談,則別名將不可用。

要使別名持久化,您需要在~/.bash_profile或~/.bashrc檔案中宣告它。~/.bashrc在文字編輯器中開啟:

nano ~/.bashrc

並新增你的別名:

在?/ .bashrc

# Aliases
# alias alias_name="command_to_run"

# Long format list
alias ll="ls -la"

# Print my public IP
alias myip='curl ipinfo.io/ip'

您應該以易於記憶的方式命名別名。還建議新增註釋以供將來參考。

完成後,儲存並關閉檔案。鍵入以下內容,使當前對談中的別名可用:

source ~/.bash_profile

如您所見,建立簡單的bash別名非常簡單快捷。

如果要使.bashrc模組更加模組化,可以將別名儲存在單獨的檔案中。像Ubuntu和Debian這樣的一些發行版包含一個.bash_aliases檔案,它源自~/.bashrc。

使用引數建立Bash別名(Bash函數)

有時您可能需要建立一個接受一個或多個引數的別名,這就是bash函數派上用場的地方。

建立bash函數的語法非常簡單。它們可以以兩種不同的格式宣告:

function_name () {
  [commands]
}

要麼

function function_name {
  [commands]
}

要將任意數量的引數傳遞給bash函數,只需將它們放在函數名稱後面,用空格分隔即可。傳遞的引數是$1,$2,$3,等,對應於該引數的函數名後的位置。該$0變數是保留給函數名。

讓我們首先建立一個簡單的bash函數,它將建立一個目錄,然後導航到它:

在?/ .bashrc

mkcd ()
{
  mkdir -p -- "$1" && cd -P -- "$1"
}

與建立新別名時相同,將函數新增到~/.bashrc檔案中並執行source ~/.bash_profile以重新載入。

現在,您只需鍵入:而不是使用mkdir建立新目錄然後cd進入該目錄。

mkcd new_directory

如果你想知道什麼是--,&&這裡是一個簡短的解釋。

  • -- - 確保您不會意外地向命令傳遞額外的引數。例如,如果嘗試建立以-(破折號)開頭而不使用--目錄名的目錄,則會將其解釋為命令引數。
  • && - 確保第二個命令僅在第一個命令成功時執行。

總結

到目前為止,您應該很好地理解如何建立bash別名和函數,這將使您在命令列上的生活更輕鬆,更高效。

如果您遇到問題或有反饋,請在下面留言。


IT145.com E-mail:sddin#qq.com