2013-04-03 26 views
0

我在一個全新的服務器(CentOs 6)中使用Perlbrew。運行Perlbrew時的Bash別名

在我以前的系統(RedHat 4)WiTHOUT Perlbrew中,我曾經在bash shell中使用一些別名,例如alias nreload='/usr/local/nginx/sbin/nginx -s reload'來重新啓動Nginx,只是將該行放入.bash_profile文件中。

現在,在Perlbrew中,我在.bash_profile和.bashrc中嘗試了它,但沒有運氣。我可以在飛行中製作別名,但我不能讓它們永久可用。

我遵循Perlbrew安裝提示,並複製.bashrc文件中的行source ~/perl5/perlbrew/etc/bashrc。我認爲它應該通過登錄到服務器來激活Perlbrew Perl,但它不會。所以我每次需要使用Perlbrew Perl時都必須寫source ~/perl5/perlbrew/etc/bashrc;。它似乎不是正確的方法。

也許真正的問題是我如何運行Perlbrew。也許我不明白Perlbrew打開另一個shell的概念。如果有另一個shell,一個子shell,我該如何在其中使用別名?

這裏是我的.bash_profile內容:

# .bash_profile 

# Get the aliases and functions 
if [ -f ~/.bashrc ]; then 
     . ~/.bashrc 
fi 

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin 
source ~/perl5/perlbrew/etc/bashrc 
export PATH 

alias nreload='/usr/local/nginx/sbin/nginx -s reload' 

BTW:服務器是一個遠程之一,我控制它從本地Macintosh電腦,使用終端。我讀過一些關於終端的東西,它比真正的Unix終端更像是一個可視化工具,但我並不完全理解它。

+0

沒有真正安裝它,很難確定perlbrew如何搞亂你的環境。 〜.bashrc中定義的別名應該一直存在。我會用你需要的別名在$ {PERLBREW_ROOT}/etc/bashrc中添加一行。以LDLIBRARY_PATH,PATH和其他環境變量的形式來玩,似乎是一件很難完成的任務,並且不會影響環境的其他方面。 – 2013-04-04 02:51:28

回答

0

我已經找到了辦法:別名必須在.bashrc中

我連接使用(Macintosh)的終端,並且在登錄到在線服務器我只是「激活」一個新的shell中鍵入「/斌/慶典」 。

在這個新的shell中,我有正確的Perlbrew Perl,一個所有的別名,因爲這個新的shell取自.bashrc文件中的所有內容。

讓我感到困惑的是,「一個新shell」並不像我期待的那樣是一個「新的終端窗口」,而是一個新的「進程」,這個新進程顯然使用.bashrc作爲起點。

+0

當您打開新的終端時,終端不會重新載入整個環境。 – 2015-12-28 22:30:21