1. 背景
只要在ubuntu下面做事情,免不了和 ~/.bashrc 与 /etc/profile打交道。
这两个文件主要维护环境变量,其中:
(1) ~/.bashrc
等同于 window 下的高级系统设置->环境变量->xxx的用户变量
(xxx为用户名),保存的是当前用户的环境变量,只对当前用户起作用;
(2) /etc/profile
等同于windows下的高级系统设置->环境变量->系统变量
,保存的是系统环境变量,对所有用户都起作用。
那这个环境变量有什么用?
一句话概括就是:一个路径只要写到了环境变量里,那么这个文件夹下面的库(.a, .so)和可执行程序就可以在整个系统搜索到了。
比方说我们经常在Ubuntu系统中安装Anaconda(目的是使用Anaconda对应的python),通常默认的安装路径为~/anaconda3,但是这个路径并不在环境变量里,如果我们想使用Anaconda的python,只能在终端通过输入指令~/anaconda3/bin/python
打开,而不是在终端直接输入python
,因为这将打开系统自带的python。
再举个例子就是我们用安装了nvidia gpu的ubuntu服务器训练深度学习算法,通常第一步是安装cuda驱动和sdk,但sdk的默认安装路径/usr/local/cuda 并不在系统目录,所以即使安装成功,但如果不把这个路径加入到用户环境变量/系统环境变量,还是不可以用。
2. 用法
把路径加入到环境变量分三步:
(1)打开环境变量文件
gedit ~/.bashrc # 打开用户环境变量
# 或者
sudo gedit /etc/profile # 打开系统环境变量
# 如果是远程,把gedit换成vim
(2)在环境变量文件中,把路径加入对应的环境变量
在这里要多说一句,我们主要用到两个环境变量:PATH
和LD_LIBRARY_PATH
,其中PATH
保存可执行程序文件的路径;LD_LIBRARY_PATH
保存库文件的路径。对应的写法分别如下:
可执行程序文件的路径:
export PATH=/usr/local/cuda/bin:$PATH
export PATH=/home/xxx/anaconda3/bin:$PATH
export
表示输出的意思,其实就是用新的变量更新原有变量。
库文件的路径:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
(3)使更新后的环境变量生效
source ~/.bashrc
# 或
source /etc/profile
执行到这里,新的环境变量就真正开始生效了。
网友评论