如何为每个人环境变量在我的linux系统?(How to set environment varia

2019-09-02 03:46发布

我能有一定的设置,是很普遍的我的所有用户?

Answer 1:

以及/etc/profile ,其其他人所说的,一些Linux系统现在使用目录/etc/profile.d/ ; 任何.sh文件在那里将由采购/etc/profile 。 这是稍微整洁,让您的自定义环境的东西,在这些文件中,而不是只是编辑/etc/profile



Answer 2:

男子8 pam_env

男子5 pam_env.conf

如果所有登录服务使用PAM ,所有登录服务具有session required pam_env.so在各自/etc/pam.d/*的配置文件,然后所有登录会话将在指定设置一些环境变量pam_env的配置文件。

在最现代的Linux发行版,这是所有有默认-只需添加您所需的全局环境变量/etc/security/pam_env.conf

此作品无论用户的外壳,太图形登录作品(如果XDM / KDM / GDM /入口/ ...设置这样)。



Answer 3:

如果您的LinuxOS有这个文件:

/etc/environment

你可以用它来为所有用户永久设置环境变量。

:摘自http://www.sysadmit.com/2016/04/linux-variables-de-entorno-permanentes.html



Answer 4:

令人惊讶的是,Unix和Linux实际上没有一个地方来设置全局环境变量。 你能做的最好是安排任何特定的外壳有一个特定的网站初始化。

如果你把它在/etc/profile ,这会照顾事情最符合POSIX标准的shell用户。 这对于非关键的目的可能是“足够好”。

但是,任何一个有cshtcsh外壳将不会看到它,我不相信csh具有全局初始化文件。



Answer 5:

从bash的手册页一些有趣的摘录:

当bash被调用以交互登录壳,或作为非交互式壳与--login选项,它首先读取并从文件中执行命令/etc/profile ,该文件是否存在。 读取文件之后,它将查找~/.bash_profile~/.bash_login ,和~/.profile ,以该顺序,并且读取和执行从存在并且可读的第一个命令。 该--noprofile当shell启动抑制这种行为可以使用选项。
...
当一个交互的shell但不是登录shell启动时,bash读取并执行命令/etc/bash.bashrc~/.bashrc ,如果这些文件存在。 这可以通过抑制--norc选项。 该--rcfile文件选项将强制bash读取和文件,而不是执行命令/etc/bash.bashrc~/.bashrc

所以看看/etc/profile/etc/bash.bashrc ,这些文件是全局设置正确的地方。 把这样的事情在他们设立environement变量:

export MY_VAR=xxx


Answer 6:

使用PAM是execellent。

# modify the display PAM
$ cat /etc/security/pam_env.conf 
# BEFORE: $ export DISPLAY=:0.0 && python /var/tmp/myproject/click.py &
# AFTER : $ python $abc/click.py &
DISPLAY  DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
abc   DEFAULT=/var/tmp/myproject


Answer 7:

Linux内核下运行的每个进程都接收到它从其父继承自己的,独特的环境。 在这种情况下,父将或者一个壳本身(产卵一个子壳),或“登录”程序(一个典型的系统上)。

由于每个进程的环境得到保护,没有办法‘注入’的环境变量对每个正在运行的进程,因此,即使你修改默认的shell .RC / profile文件,也不会生效,直到每个进程退出并重新加载它的启动设置。

看在/ etc /修改默认的启动变量针对任何特定的外壳。 只要知道在他们的个人设置,用户可以(而且经常)更改。

UNIX是设计成服从用户在一定限度内。

:Bash是不是你的系统中唯一的外壳。 仔细注意一下/ bin / sh的符号链接实际指向。 在许多系统上,这实际上可能是破折号是(默认情况下,没有特殊调用)POSIXLY正确。 因此,你应该注意同时修改默认设置,或与/ bin / sh的启动不会继承全局默认脚本。 同样,注意避免语法,编辑了这两者,又名只有bash的理解avoiding bashisms



Answer 8:

  1. 使用wget下载JDK
  2. 找到使用$的Java JAVA地方实际存储即/ usr / lib中/ JVM / JAVA-8的OpenJDK-AMD64 //斌/ java的 java的路径它会告诉你
  3. 复制上述路径即/ usr / lib中/ JVM / JAVA -8-的openjdk-AMD64 /
  4. 现在,使用纳米编辑器即纳米打开.bashrc中 的.bashrc
  5. 利用出口cammand添加路径.bashrc文件即JAVA_HOME和保存文件,即出口JAVA_HOME = / usr / lib目录/ JVM / JAVA-8的OpenJDK,AMD64 / 导出PATH = $ JAVA_HOME /斌:$ PATH
  6. 运行$源的〜/ .bashrc
  7. $回声$ PATH

你的路径设置



文章来源: How to set environment variable for everyone under my linux system?
标签: linux unix bash