运行Perlbrew时使用Bash别名

时间:2013-04-03 20:05:51

标签: bash shell perlbrew

我在一台全新的服务器(CentOs 6)中使用Perlbrew。

在我之前的系统(RedHat 4)中,我曾经在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终端更像是一个可视化工具,但我并不完全理解它。

1 个答案:

答案 0 :(得分:1)

我找到了方法:别名必须在.bashrc

我使用(Macintosh)终端连接,当登录到在线服务器时,我只需“激活”一个键入“/ bin / bash”的新shell。

在这个新的shell中,我有正确的Perlbrew Perl,一个所有的别名,因为这个新的shell从.bashrc文件中获取所有内容。

令我感到困惑的是,“新shell”并不像我期望的那样真正是“新的终端窗口”,而是一个新的“进程”,而这个新进程显然使用.bashrc作为起点。