我是Linux shell的新手,不得不最近開始使用它來工作......我現在已經習慣了bash中的基本命令以找到我的方式......但是有很多命令我發現自己一遍又一遍地打字,每次都輸入它的麻煩...所以任何人都可以告訴我如何縮短我經常使用的命令語法。創建bash命令的較短版本
一個非常簡單的例子,我經常使用ls -lh
命令,雖然這很短暫,但我只是舉個例子。我可以有什麼東西(一個shell腳本可能),以便我可以通過鍵入只是說lh
來運行它。
我想爲它做更復雜的命令。
我是Linux shell的新手,不得不最近開始使用它來工作......我現在已經習慣了bash中的基本命令以找到我的方式......但是有很多命令我發現自己一遍又一遍地打字,每次都輸入它的麻煩...所以任何人都可以告訴我如何縮短我經常使用的命令語法。創建bash命令的較短版本
一個非常簡單的例子,我經常使用ls -lh
命令,雖然這很短暫,但我只是舉個例子。我可以有什麼東西(一個shell腳本可能),以便我可以通過鍵入只是說lh
來運行它。
我想爲它做更復雜的命令。
alias lh='ls -lh'
如果您希望跨會話使其持續存在,請將其置於您的.bashrc
文件中。之後不要忘記運行source .bashrc
以使bash知道這些更改。
如果你想傳遞變量,一個別名是不夠的。你可以做一個功能。作爲一個例子,考慮命令lsall
列出指定目錄下的一切(注意,這只是一個例子,因此非常容易出錯):
function lsall
{
ls $1/*
}
$N
獲取與第N個參數替代。
編輯完成後。bashrc,所做的更改不會奇蹟般地出現在當前shell中 - 您將不得不「源代碼.bashrc」。新的終端窗口將會接受更改。 – 2010-08-16 16:49:09
@glenn jackman:謝謝,我更新了我的答案。 – Job 2010-08-16 17:49:59
您會將以下別名在.bashrc
文件:
alias lh='ls -lh'
現在lh
是ls -lh
簡寫。
對於更復雜的任務,您可以使用bash函數。舉例來說,在我的機器之一,我有這會導致「ls」的一個功能,每一個成功的「CD」後運行:
cdls() {
builtin cd "$*" && ls
}
alias cd='cdls'
可以定義aliases。對於較長的命令,使用一個函數,將其放入一個庫文件中,並在需要使用函數時獲取它。
並確保遵循鏈接功能 - 有時一個別名太簡單了。 – 2010-08-16 15:16:15
;)我記得我剛開始使用Linux時遇到的一個問題,那就是我會問這樣的問題,人們會認真回答它們,但沒有人會解釋如何使這種更改永久化,所以我發現自己每次打開終端時都要輸入一堆命令。因此,儘管其他人已經準確地回答了這個問題,但如果您想要使更改永久化,請將別名行放入您的〜/ .profile或〜/ .bashrc文件(〜=您的主目錄) 。這取決於你運行的分發版本,但是我總是嘗試將我的別名首先添加到〜/ .profile文件中,如果這樣做不起作用,那麼〜/ .bashrc。其中一人應該肯定工作。
只要確保'lh'不會做其他事情(我不認爲它會這樣做,但您可能會遇到其他縮寫)。 – FrustratedWithFormsDesigner 2010-08-16 15:16:47