目录
1 PATH
可执行程序的查找路径
1.1 环境变量分类
在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。
系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量
用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量
1.1.1对所有用户生效的永久性变量(系统级)
/etc/profile
在系统启动后第一个用户登录时运行,并从/etc/profile.d目录的配置文件中搜集shell的设置,使用该文件配置的环境变量将应用于登录到系统的每一个用户。
使生效
source /etc/profile
/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc
在 bash shell 打开时运行,修改该文件配置的环境变量将会影响所有用户使用的bash shell。
注意:这里的bash shell有不同的类别,不同的类别所使用的环境变量配置文件也有所不同。一般情况下,非登录shell不会执行任何profile文件,非交互shell模式不会执行任何bashrc文件。
/etc/environment
在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。
1.1.2 用户级
~/.profile(推荐首选)
当用户登录时执行,每个用户都可以使用该文件来配置专属于自己使用的shell信息。
~/.bashrc
当用户登录时以及每次打开新的shell时该文件都将被读取,不推荐在这里配置用户专用的环境变量,因为每开一个shell,该文件都会被读取一次,效率肯定受影响。
~/.bash_profile 或 ~./bash_login
1.2 环境变量执行顺序
一般情况下,Linux加载环境变量配置文件的执行顺序为:
==> /etc/profile
==> ~/.bash_profile | ~/.bash_login | ~/.profile
==> ~/.bashrc
==> /etc/bashrc
==> ~/.bash_logout
1.3 查看当前环境变量:
echo $PATH
1.4 修改:
修改/.bashrc或/.bash_profile或系统级别的/etc/profile
sudo vim ~/.bashrc
sudo vim /etc/profile
增加:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:$PYTHONPATH
生效
2. source .bashrc
(Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
2 LD_LIBRARY_PATH
动态库的查找路径
方法一: export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是登出后就失效
方法二: 修改 ~/ .bashrc或~/.bash_profile或系统级别的/etc/profile
1. 在其中添加例如
export PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH
2. source .bashrc
方法三:这个没有修改LD_LIBRARY_PATH但是效果是一样的实现动态库的查找
-
/etc/ld.so.conf下面加一行/usr/local/mysql/lib
-
保存过后ldconfig一下
ldconfig 命令的用途:
在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.)
方法三设置稍微麻烦,好处是比较不受用户的限制。
ref
https://www.cnblogs.com/aaronLinux/p/5837702.html
https://blog.csdn.net/pengjunlee/article/details/81585726