最近搞一個Django網站,需要經常進入/var/www/site/mycitsm/這個目錄,每次都得重複的輸入這一長串路徑進入該目錄,顯得麻煩而費時,有沒有一種好的方式可以將“cd /var/www/site/mycitsm”這樣一個命令取一個別名,每次只需輸入該別名就可以進入該目錄呢?
很慶幸,Linux系統提供了一個有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過於冗長的命令設定一個別名,這樣一來,以後只需輸入一個簡短的別名就可以達到同樣的作用。
用法:alias [-p] [name[=value] ... ] 注意‘=’和字串之間不能包含空格
顯示當前設定的別名:
shell>alias -p
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
或者直接輸入:
shell>alias -p
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
若只想顯示某個別名代表的含義可輸入alias name,比如:
shell>alias ll
alias ll='ls -l --color=tty'
若想為某個命令設定別名可輸入 alias 新命令='原命令 選項/參數',比如:
shell>alias site='cd /var/www/site/mycitsm/'
若想取消某個別名可輸入unalias name,比如
shell>unalias site
但是,上述設定方法存在一個問題,也即設定的命令別名只針對當前回話有效,一旦串連斷開並重連之前設定的別名別不在有效。
可以通過將設定別名的命令寫進開機檔案使別名持久生效。大多數Linux發行版使用下述三個開機檔案中的一個:
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
可將設定別名的命令寫進開機檔案內,這樣,每次連入系統的時候別名都會生效。若想在命令寫入開機檔案後立即生效記得執行source命令,比如:
source $HOME/.bash_profile
通過上述方式設定命令別名解決了命令別名只針對回話生效的問題,但是,寫進每個使用者特定的主目錄下的開機檔案中的命令別名只針對該使用者有效。對其他使用者沒有什麼效果,這通常也是正常情況下期望看到的情況。但如果確實像使設定的別名對任意使用者有效則可將設定別名的命令寫進全域開機檔案中,如/etc/profile。