- 环境变量添加方法
- 方法一:用户主目录下的.profile或.bashrc文件(推荐)
登录到你的用户(非root),在终端输入:
sudo vim ~/.profile
或者 sudo vim ~/.bashrc
翻到该文件最后,,按i进入编辑模式,在此文件末尾加入PATH的设置如下:
export PATH=”$PATH:yourpath1:yourpath2...”
按下esc键推出编辑模式,输入:wq!保存退出文件,注销再登录,变量生效。
图 1 ~/.profile文件
图 2 ~/bashrc文件
~/.profile文件解析:用户家目录底下的私有环境变量设定。每个用户都可以使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。
~/.bashrc文件解析:用户家目录底下的私有环境变量设定。该文件包含专用于本用户shell的bash信息,当登录和每次打开新的shell时,该文件会被读取。(效率可能有细微影响)
注意:该方式添加的变量只对当前用户有效。
- 方法二:系统目录下的profile文件或bash.bashrc(谨慎)
在系统的etc目录下,有一个profile文件,编辑该文件:
$sudo vim /etc/profile
或者$sudo vim /etc/bash.bashrc
翻到该文件最后,,按i进入编辑模式,在此文件末尾加入PATH的设置如下:
exportPATH=”$PATH:yourpath1:yourpath2...”
按下esc键推出编辑模式,输入:wq!保存退出文件重启系统,变量生效。
图 3 /etc/profile文件
图 4 /etc/bash.bashrc文件
/etc/profile文件解析:全局环境变量设定,对所有用户shell有效
/etc/bash.bashrc文件解析:全局环境变量设定,对所有用户shell有效
注意:该方式添加的变量对所有的用户都有效。
- 方法三:系统目录下的environment文件(谨慎)
在系统的etc目录下,有一个environment文件,编辑该文件:
$sudo vim /etc/environment
找到以下的PATH变量:
PATH="<......>"
按i进入编辑模式,修改该PATH变量,在其中加入自己的path,例如:
PATH="<......>:yourpath1:yourpath2…",修改后按esc退出编辑模式,输入:wq!保存退出。该文件也是重启生效,影响所有用户。
图 5 /etc/environment文件
注意:这里不是添加export PATH=…。各个path之间用冒号分割。
- 方法四:直接在终端下输入(推荐)
$sudo export PATH="$PATH:yourpath1:yourpath2…"
图 6 临时环境变量添加
注意:这种方式变量立即生效,且只对当前终端生效,如图6,我另开一个终端就看不到添加的”/test”了。用户注销或系统重启后设置变成无效,适合临时变量的设置。
总结:方法二和三的修改需要谨慎,尤其是通过root用户修改,如果修改错误,将可能导致一些严重的系统错误。因此推荐使用第一种方法和第四种方法。另外Linux的开发最好不要在root下进行(除非你对Linux已经非常熟悉了!!),以免因为操作不当导致系统严重错误。
- 系统环境变量相关配置文件:
1./etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2./etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3.~/.profile:在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
4./etc/bash.bashrc:为每一个运行bashshell的用户执行此文件.当bashshell被打开时,该文件被读取.
5.~/.bashrc:该文件包含专用于你的bashshell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
- LD_LIBRARY_PATH配置:
LD_LIBRARY_PATH环境变量是用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。移植程序时经常碰到需要使用一些特定的动态库,而这些编译好的动态库放在我们自己建立的目录里,这时可以将这些目录设置到LD_LIBRARY_PATH中。当执行函数动态链接.so时,如果此文件不在缺省目录下”/lib””/usr/lib”,就需要指定环境变量LD_LIBRARY_PATH
一般来说,系统的LD_LIBRARY_PATH都是未设置的,echo出来也是空值,该环境变量是使用者额外添加的。
图 7 LD_LIBRARY_PATH
- 用户主目录下的.profile或.bashrc文件(推荐)
用户家目录下的.profile文件,直接添加后还需要编辑/etc/X11/Xsession.options文件,将use-ssh-agent更改为no-use-ssh-agent保存重启,这样设置后才能生效。
图 8 /etc/X11/Xsession.option文件和~/.profile文件
用户家目录下.bashrc文件,直接添加后保存重启即可查看到:
图 9 ~/.bashrc
- 系统目录下的profile文件或bash.bashrc(谨慎)
通过修改系统/etc/profile文件设置LD_LIBRARY_PATH时,也是需要修改/etc/X11/Xsession.option文件,把use-ssh-agent修改为no-use-ssh-agent后重启才能生效,否则不生效。
图 10 /etc/X11/Xsession.option文件和/etc/profile文件
通过系统/etc/bash.bash.rc文件设置LD_LIBRARY_PATH时,只修改该文件,保存后重启即可生效。
图 11 /etc/bash.bashrc
- 系统目录下的environment文件(谨慎)
通过修改系统目录下的environment文件设置LD_LIBRARY_PATH环境变量,同样需要修改/etc/X11/Xsession.option文件,把use-ssh-agent修改为no-use-ssh-agent后重启才能生效,否则不生效。
图 12 /etc/X11/Xsession.option文件和/etc/environment文件
- 直接在终端下输入(推荐)
通过设置临时变量的方法,设置LD_LIBRARY_PATH,只对当前终端生效,但用其他终端就不生效,关掉当前终端就不生效了。该方法影响域较小,不会对系统文件做更改,建议通过此方法设置环境变量,可以把需要设置的环境变量做成脚本,在使用前执行一下这个脚本即可。
图 13 终端直接输入