linux – $BASH_ENV通常设置在哪里?
我有两个
Linux服务器应该配置相同,但是对于需要在?/ .bashrc中指定的路径的命令,其中一个命令的ssh命令失败.例如,我可以通过交互方式和通过ssh使用像pwd这样的命令,但是如果我尝试运行位于应用程序bin文件夹中的程序,它只能在其中一个服务器的交互式shell中运行.
两台服务器上的/ etc / profile和/ etc / environment文件是相同的,但是在正常工作的服务器上将$BASH_ENV设置为?/ .bashrc.我想在无效的服务器上设置$BASH_ENV,但我更喜欢将它设置在与工作服务器中设置的位置相同的位置. Linux在非交互式登录时运行的位置有哪些,例如来自另一台计算机的ssh命令? 编辑: 编辑2: 解决方法
BASH_ENV仅通过环境或初始化期间获取的其他脚本进行设置.对于非交互式shell,如果该shell也是登录shell,它将仅尝试获取其他文件. (在这种情况下,它会读取?/ .bash_profile,?/ .bash_login和?/ .profile ……但如果它这样做,你就不会遇到问题)
首先要看的是调用子shell的环境. >将传递导出的BASH_ENV变量.请记住,这可能会隐藏在源文件中. 如果在您登录后设置但是无法确定在哪里,则可能需要查看构建登录环境的内容. >所有通过登录shell获取的常用文件.男人bash为详尽的清单. >?/ .ssh / environment(在更改为主目录之前;仅当在sshd_config中启用了PermitUserEnvironment时) 注意:sshd还将在用户的授权密钥文件中扫描环境=值行(如果启用了PermitUserEnvironment),但是在该页面中,该步骤不符合上述顺序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |