运行Perlbrew时的Bash别名

运行Perlbrew时的Bash别名,bash,shell,perlbrew,Bash,Shell,Perlbrew,我正在一台全新的服务器(CentOs 6)中使用Perlbrew 在我以前没有Perlbrew的系统(RedHat 4)中,我曾经在bash shell中使用一些别名,比如alias nreload='/usr/local/nginx/sbin/nginx-s reload',例如,只需将该行放入.bash_配置文件中即可重新启动nginx 现在,对于Perlbrew,我在.bash_profile和.bashrc中进行了尝试,但没有成功。我可以动态生成别名,但不能永久使用它们 我遵循Perlb

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

在我以前没有Perlbrew的系统(RedHat 4)中,我曾经在bash shell中使用一些别名,比如
alias nreload='/usr/local/nginx/sbin/nginx-s reload'
,例如,只需将该行放入.bash_配置文件中即可重新启动nginx

现在,对于Perlbrew,我在.bash_profile和.bashrc中进行了尝试,但没有成功。我可以动态生成别名,但不能永久使用它们

我遵循Perlbrew安装技巧,在.bashrc文件中复制了行
source~/perl5/Perlbrew/etc/bashrc
。我认为它应该通过登录服务器来激活Perlbrew Perl,但它没有。所以我必须编写
source~/perl5/perlbrew/etc/bashrc
也许真正的问题是我如何经营佩尔布雷。也许我不理解波尔布雷打开另一个外壳的概念。如果存在另一个shell,即子shell,如何在其中使用别名

以下是我的.bash_配置文件的内容:

# .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'

顺便说一句:服务器是远程的,我使用终端从本地的Macintosh控制它。我读过一些关于终端与其说是一个真正的Unix终端,不如说是一个可视化工具的文章,但我并不完全理解它。

我发现了一个方法:别名必须在.bashrc中

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

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


让我困惑的是,“一个新的shell”并不是我所期望的“一个新的终端窗口”,而是一个新的“进程”,而这个新进程显然使用.bashrc作为起点。

我发现了一个方法:别名必须在.bashrc中

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

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


让我困惑的是,“一个新的shell”并不是我所期望的“一个新的终端窗口”,而是一个新的“进程”,而这个新进程显然使用.bashrc作为起点。

如果不实际安装它,很难确定perlbrew是如何破坏您的环境的。在~.bashrc中定义的别名肯定会保留。我将使用您需要的别名向${PERLBREW_ROOT}/etc/bashrc添加一行。像prelbrew一样使用LD_LIBRARY_PATH、PATH和其他环境变量是一件很难做到完美且不影响环境其他方面的事情。如果不实际安装它,很难确定perlbrew是如何破坏您的环境的。在~.bashrc中定义的别名肯定会保留。我将使用您需要的别名向${PERLBREW_ROOT}/etc/bashrc添加一行。像prelbrew一样使用LD_LIBRARY_PATH、PATH和其他环境变量是一件很难做到完美的事情,并且不会影响环境的其他方面。当您打开新终端时,终端不会重新加载整个环境。当您打开新终端时,终端不会重新加载整个环境。