在我的Debian服务器中,所有用户都运行sh,但root运行bash; 当我启动ssh连接时,我使用没有root权限的个人帐户登录; 我已经安装了rvm并且我想以root身份使用它,因为从我的个人用户使用它,它无法安装所有内容,因为用户没有权限写入需要的地方;所以每次我需要输入
source /usr/local/rvm/bin/rvm
能够使用rvm之前;为了避免每次都输入source命令,我知道我可以把命令放在/ etc / profile文件中; bash有类似的东西吗?
我试图将“echo aaa”添加到/ etc / profile,看看会发生什么; 当我作为我的个人用户登录时,我得到“aaa”输出;但是当我输入su并以root身份登录时,没有任何反应...我认为当我使用“su”命令并以root身份登录时,/ etc / profile不会被读取
在rvm安装ruby版本之后也是如此:我设置了默认的ruby版本(以root用户身份)然后ruby命令可用于我的个人用户(但是如果我再次执行“su”并尝试键入“ruby” -v“作为root,我得到”命令未找到“
另一件事:用我的个人用户登录后,rvm命令可用;输入“su”后,不再;如果我将源命令添加到/ etc / profile,一旦用个人用户登录,我可以看到rvm的屏幕输出(某种文档);使用source命令作为root
后也会发生同样的情况答案 0 :(得分:2)
bash
- 作为sh
的扩展 - 也会读取/etc/profile
。
bash
具体替代方案包括用于登录shell的~/.bash_profile
,以及用于非登录shell的~/.bashrc
。
答案 1 :(得分:0)
/etc/bash.bashrc是bash的全局配置,虽然/ etc / profile通常也是由bash提供的。
您可能需要使用' sudo'运行命令。为了实际以root身份运行它。我相信任何shell的shell配置脚本都将作为启动shell的用户运行。如果您愿意,也可以在“' sh”中运行二进制文件。 shell也是:
sudo /bin/sh -c /usr/local/rvm/bin/rvm
以下是一些更多信息,以防万一:https://wiki.debian.org/sudo