最近搞一個(gè)Django站點(diǎn),需要經(jīng)常進(jìn)入/var/www/site/mycitsm/這個(gè)目錄,每次都得重復(fù)的輸入這一長串路徑進(jìn)入該目錄,顯得麻煩而費(fèi)時(shí),有沒有一種好的方式可以將“cd /var/www/site/mycitsm”這樣一個(gè)命令取一個(gè)別名,每次只需輸入該別名就可以進(jìn)入該目錄呢?
很慶幸,Linux系統(tǒng)提供了一個(gè)有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過于冗長的命令設(shè)置一個(gè)別名,這樣一來,以后只需輸入一個(gè)簡短的別名就可以達(dá)到同樣的作用。
用法:alias [-p] [name[=value] ... ] 注意‘=’和字符串之間不能包含空格
顯示當(dāng)前設(shè)置的別名:
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'
若只想顯示某個(gè)別名代表的含義可輸入alias name,比如:
shell>alias ll
alias ll='ls -l --color=tty'
若想為某個(gè)命令設(shè)置別名可輸入 alias 新命令='原命令 選項(xiàng)/參數(shù)',比如:
shell>alias site='cd /var/www/site/mycitsm/'
若想取消某個(gè)別名可輸入unalias name,比如
shell>unalias site
但是,上述設(shè)置方法存在一個(gè)問題,也即設(shè)置的命令別名只針對(duì)當(dāng)前回話有效,一旦連接斷開并重連之前設(shè)置的別名別不在有效。
可以通過將設(shè)置別名的命令寫進(jìn)啟動(dòng)文件使別名持久生效。大多數(shù)Linux發(fā)行版使用下述三個(gè)啟動(dòng)文件中的一個(gè):
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
可將設(shè)置別名的命令寫進(jìn)啟動(dòng)文件內(nèi),這樣,每次連入系統(tǒng)的時(shí)候別名都會(huì)生效。若想在命令寫入啟動(dòng)文件后立即生效記得執(zhí)行source命令,比如:
source $HOME/.bash_profile
通過上述方式設(shè)置命令別名解決了命令別名只針對(duì)回話生效的問題,但是,寫進(jìn)每個(gè)用戶特定的主目錄下的啟動(dòng)文件中的命令別名只針對(duì)該用戶有效。對(duì)其他用戶沒有什么效果,這通常也是正常情況下期望看到的情況。但如果確實(shí)像使設(shè)置的別名對(duì)任意用戶有效則可將設(shè)置別名的命令寫進(jìn)全局啟動(dòng)文件中,如/etc/profile。