use*_*349 290 environment-variables
我的变量是
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
如何永久保存这些变量?
Kiw*_*iwy 315
您可以将它添加到该文件.profile或您的登录 shell 配置文件(位于您的主目录中)。
要“永久”更改环境变量,您至少需要考虑以下情况:
/etc/profile, ~/.bash_profile, ~/.bash_login,~/.profile~/.bashrc$BASH_ENV$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
$EDITOR ~/.zprofile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
$EDITOR ~/.profile
#add lines at the bottom of the file:
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
$EDITOR ~/.profile
#add lines at the bottom of the file:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
export LD_LIBRARY_PATH ORACLE_HOME
Run Code Online (Sandbox Code Playgroud)
$EDITOR ~/.login
#add lines at the bottom of the file:
setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
setenv ORACLE_HOME /usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
如果你想让它对所有用户永久有效,你可以在 下编辑相应的文件/etc/,即/etc/profile对于类似 Bourne 的 shell、/etc/csh.login对于 (t)csh/etc/zsh/zprofile和/etc/zsh/zshrc对于 zsh。
另一种选择是使用/etc/environment,它在 Linux 系统上由 PAM 模块读取,pam_env并且只支持简单的赋值,不支持 shell 风格的扩展。(请参阅Debian 的指南。)
这些文件可能已经包含一些分配,因此请遵循您在文件中看到的语法。
确保重新启动 shell 并重新登录用户,以应用更改。
如果您需要添加系统范围的环境变量,现在有/etc/profile.d一个包含 sh 脚本的文件夹来初始化变量。
您可以将带有所有导出变量的 sh 脚本放在此处。
请注意,这不应用作在 Debian 上向 env 添加变量的标准方法。
Gra*_*eme 87
对所有用户/shell 执行 if,取决于您可以使用的发行版/etc/environment或/etc/profile。/etc/profile.d如果存在,则创建一个新文件可能更可取,因为它不太可能与打包系统所做的更新发生冲突。
在 中/etc/environment,变量通常用 设置name=value,例如:
ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
在 中/etc/profile,您必须使用,export因为这是一个脚本,例如:
export ORACLE_HOME=/usr/lib/oracle/11.2/client64
Run Code Online (Sandbox Code Playgroud)
下的文件/etc/profile.d也是如此,也可能存在命名限制,文件必须满足这些限制才能工作。在 Debian 上,该文件必须具有扩展名.sh(尽管由于它是来源的,因此不需要 bang 行或可执行权限)。检查您的发行版文档或查看/etc/profile脚本以了解这些文件是如何加载的。
另请注意,LD_LIBRARY_PATH永久设置可能存在问题,包括存在安全风险。作为替代方案,我建议找到某种方法LD_LIBRARY_PATH在运行前为每个需要它的程序添加到命令行的开头。例如:
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog
Run Code Online (Sandbox Code Playgroud)
一种方法是使用包装脚本来运行程序。你可以这样把同一个名字作为你的程序,并把它/usr/local/bin或任何地方出现前,你在程序的位置PATH。这是一个示例脚本(不要忘记chmod +x脚本):
#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"
Run Code Online (Sandbox Code Playgroud)