1

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

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

现在,使用 Perlbrew,我在 .bash_profile 和 .bashrc 中进行了尝试,但没有成功。我可以即时创建别名,但我不能让它们永久可用。

我按照 Perlbrew 安装提示复制source ~/perl5/perlbrew/etc/bashrc了 .bashrc 文件中的行。我认为它应该通过登录到服务器来激活 Perlbrew Perl,但事实并非如此。所以source ~/perl5/perlbrew/etc/bashrc;每次我需要使用 Perlbrew Perl 时我都必须写。这似乎不是正确的方法。

也许真正的问题是我如何运行 Perlbrew。也许我不明白 Perlbrew 打开另一个 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'

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

4

1 回答 1

1

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

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

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

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

于 2013-05-06T16:16:59.503 回答