舉例說明alias和unalias命令
如果不是一個命令行重度用戶的話,過了一段時間之后,你就可能已經(jīng)忘記了這些復雜且冗長的 Linux 命令了。當然,有很多方法可以讓你 回想起遺忘的命令。你可以簡單的 保存常用的命令 然后按需使用。也可以在終端里 標記重要的命令,然后在任何時候你想要的時間使用它們。而且,Linux 有一個內(nèi)建命令 history
可以幫助你記憶這些命令。另外一個記住這些如此長的命令的簡便方式就是為這些命令創(chuàng)建一個別名。你可以為任何經(jīng)常重復調(diào)用的常用命令創(chuàng)建別名,而不僅僅是長命令。通過這種方法,你不必再過多地記憶這些命令。這篇文章中,我們將會在 Linux 環(huán)境下舉例說明 alias
和 unalias
命令。
alias 命令
alias
使用一個用戶自定義的字符串來代替一個或者一串命令(包括多個選項、參數(shù))。這個字符串可以是一個簡單的名字或者縮寫,不管這個命令原來多么復雜。alias
命令已經(jīng)預裝在 shell(包括 BASH、Csh、Ksh 和 Zsh 等) 當中。
alias
的通用語法是:
alias [alias-name[=string]...]
接下來看幾個例子。
列出別名
可能在你的系統(tǒng)中已經(jīng)設置了一些別名。有些應用在你安裝它們的時候可能已經(jīng)自動創(chuàng)建了別名。要查看已經(jīng)存在的別名,運行:
$ alias
或者,
$ alias -p
在我的 Arch Linux 系統(tǒng)中已經(jīng)設置了下面這些別名。
alias betty='/home/sk/betty/main.rb'
alias ls='ls --color=auto'
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
alias update='newsbeuter -r && sudo pacman -Syu'
創(chuàng)建一個新的別名
像我之前說的,你不必去記憶這些又臭又長的命令。你甚至不必一遍一遍的運行長命令。只需要為這些命令創(chuàng)建一個簡單易懂的別名,然后在任何你想使用的時候運行這些別名就可以了。這種方式會讓你愛上命令行。
$ du -h --max-depth=1 | sort -hr
這個命令將會查找當前工作目錄下的各個子目錄占用的磁盤大小,并按照從大到小的順序進行排序。這個命令有點長。我們可以像下面這樣輕易地為其創(chuàng)建一個 別名:
$ alias du='du -h --max-depth=1 | sort -hr'
這里的 du
就是這條命令的別名。這個別名可以被設置為任何名字,主要便于記憶和區(qū)別。
在創(chuàng)建一個別名的時候,使用單引號或者雙引號都是可以的。這兩種方法最后的結(jié)果沒有任何區(qū)別。
現(xiàn)在你可以運行這個別名(例如我們這個例子中的 du
)。它和上面的原命令將會產(chǎn)生相同的結(jié)果。
這個別名僅限于當前 shell 會話中。一旦你退出了當前 shell 會話,別名也就失效了。為了讓這些別名長久有效,你需要把它們添加到你 shell 的配置文件當中。
BASH,編輯 ~/.bashrc
文件:
$ nano ~/.bashrc
一行添加一個別名:
保存并退出這個文件。然后運行以下命令更新修改:
$ source ~/.bashrc
現(xiàn)在,這些別名在所有會話中都可以永久使用了。
ZSH,你需要添加這些別名到 ~/.zshrc
文件中。Fish,跟上面的類似,添加這些別名到 ~/.config/fish/config.fish
文件中。
查看某個特定的命令別名
像我上面提到的,你可以使用 alias
命令列出你系統(tǒng)中所有的別名。如果你想查看跟給定的別名有關(guān)的命令,例如 du
,只需要運行:
$ alias du
alias du='du -h --max-depth=1 | sort -hr'
像你看到的那樣,上面的命令可以顯示與單詞 du
有關(guān)的命令。
關(guān)于 alias
命令更多的細節(jié),參閱 man 手冊頁:
$ man alias
unalias 命令
跟它的名字說的一樣,unalias
命令可以很輕松地從你的系統(tǒng)當中移除別名。unalias
命令的通用語法是:
unalias <alias-name>
要移除命令的別名,像我們之前創(chuàng)建的 du
,只需要運行:
$ unalias du
unalias
命令不僅會從當前會話中移除別名,也會從你的 shell 配置文件中永久地移除別名。
還有一種移除別名的方法,是創(chuàng)建具有相同名稱的新別名。
要從當前會話中移除所有的別名,使用 -a
選項:
$ unalias -a
更多細節(jié),參閱 man 手冊頁。
$ man unalias
如果你經(jīng)常一遍又一遍的運行這些繁雜又冗長的命令,給它們創(chuàng)建別名可以節(jié)省你的時間?,F(xiàn)在是你為常用命令創(chuàng)建別名的時候了。