我不太熟悉 nix 服务器上这种级别的管理,但是我无法在登录时获取 bashrc 或 bash_profile 源。
有关服务器的详细信息:
- Centos 6.0 - 基本 GUI 安装
- Virtualmin 服务器管理器
我通过 Windows PC 上的 ssh 和 putty 以我在 Virtualmin 模块中创建的用户身份登录。.bash_profile 中包含以下内容:
PATH=$PATH:$HOME/bin
export PATH
我在该用户的主目录中创建了一个 bin 目录,并将我的应用程序放在其中,但是注销并登录后没有任何变化。当我发现它在 bash 配置文件中不起作用时,我也尝试在 bashrc 文件中添加相同的两行。
到目前为止,我可以通过输入 source .bash_profile 来解决这个问题,但这很繁琐。我以为我可以通过制作 bash shell 脚本来节省一些时间,但遗憾的是我不能简单地输入 ./script.sh,我必须输入 source ~/script.sh 才能使其在当前 shell 下生效。
我如何加载这些脚本?是不是因为 virtualmin 禁用了用户配置文件?是不是因为通过 ssh 登录会阻止它们加载?是不是因为使用 gui 安装 Centos 6 会禁用终端中的配置文件加载,无论它们是否通过 ssh 进行隧道传输?
感谢您的帮助。
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
export PATH
答案1
这里有很多问题,但提供的信息并不多。不过,以下是一些尝试:
我要检查的第一件事是查看登录时 PATH 是否已设置。要检查这一点,请登录终端并输入echo $PATH
。如果您添加的内容在那里,那么很好,继续下一个问题。如果它们不在那里,那么我会验证您是否确实使用 运行 bash echo $SHELL
。如果是,您能否检查 ~/.bashrc 或 ~/.bash_profile 中是否设置了任何内容?我会找一些无害的东西并进行更改,然后注销并重新登录以查看它是否生效(或者只添加类似 的内容FOO="bar";export FOO
,然后在使用 登录后进行测试echo $FOO
)。如果您的 .bashrc 和 .bash_profile 没有运行,我会检查 .profile 是否正在运行,然后还要检查 /etc/profile 和 /etc/rc/bash.bashrc 是否存在并正确调用用户的配置文件。
如果您发现事情确实进入了 .bash_profile,那么我会检查以确保您的脚本及其所在的目录具有适当的权限、可执行,并且该目录实际上位于您的路径中(也许在您设置路径变量后,还有其他东西在设置它并覆盖您的更改?)。
如果这些都不起作用,那么请在此处发布以下内容,也许我们能够看到更多:
env
echo $SHELL
echo $PATH
cat ~/.bashrc
cat ~/.profile
cat ~/bash_profile
cat /etc/profile
cat /etc/bash.bashrc