linux 环境变量系统:html
系统级别:/etc/profile、/etc/bashrc/ 、/etc/environmentmysql
用户级别:~/.profile、~/.bashrc、 ~/.bash_profile 或 ~/.bash_loginlinux
http://www.javashuo.com/article/p-mphdnvbs-eh.htmlsql
LIBRARY_PATH和LD_LIBRARY_PATH的区别:shell
http://www.javashuo.com/article/p-wwwyxcro-ea.htmlubuntu
简介:缓存
PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉每每会让咱们添加和减小这个变量自己的某些路径,实际上这是不正确的。正确的作法是咱们要去修改赋予这个变量数值的那些配置文件,加一条路径或者减一条。说到底变量只关乎显示,不关乎其用于显示的内容。bash
首先你能够在命令行输入:echo $PATH 看看你能看到什么,那是一些 bash 路径,函数
以下的意思就是往 PATH 里面新增一个/opt/bin的路径,若是不加:$PATH的话,就表示直接把PATH赋值为/opt/bin啦,这样你其余的老路径就丢失了;spa
export PATH="/opt/bin:$PATH"
意思是:你如今配置的path在你须要的/opt/bin的目录下,还要再加上原来系统自带的path环境变量,这样写的目的是为了系统能正常启动,并且终端命令可以正常运行,若是丢掉就会命令无效等等;
如何插入环境变量:
$PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译连接。
编辑PATH 声明,其格式为:
PATH=$PATH:<PATH1>:<PATH2>:<PATH3>:------:<PATHN>
你能够本身加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登录时生效,若是想马上生效,则可执行下面的语句:$source .bash_profile
添加环境变量:
注意:
若是export 临时添加环境变量,在脚本中执行的时候,只在该脚本内环境变量有效;
若是是想在该登陆帐户内有效,则须要,用source 执行该脚本;
一、临时变量的添加:退出登陆后失效;
export PATH=$PATH:/XXX //新的环境变量 加在原有的PATH 后面;
或者
export PATH=/XXX:$PATH //新的环境变量 加在原有的PATH 前面;
以下所示:注,不能缺失 冒号 :
www@ubuntu:~$ echo $TEST_PATH www@ubuntu:~$ export TEST_PATH=$TEST_PATH:/home/www/1245 www@ubuntu:~$ echo $TEST_PATH :/home/www/1245 www@ubuntu:~$ export TEST_PATH=$TEST_PATH:/home/www/124 www@ubuntu:~$ echo $TEST_PATH :/home/www/1245:/home/www/124 www@ubuntu:~$ export TEST_PATH=/home/www/123:$TEST_PATH www@ubuntu:~$ echo $TEST_PATH /home/www/123::/home/www/1245:/home/www/124 www@ubuntu:~$ export TEST_PATH=/home/www/123TEST_PATH //忘加 $,直接等于 www@ubuntu:~$ echo $TEST_PATH /home/www/123TEST_PATH
二、PATH: 可执行程序的查找路径
查看当前环境变量: echo $PATH
设置以下:
方法一: export PATH=$PATH:/XXX 可是登出后就失效
上述方法的PATH 在终端关闭后就会消失。因此仍是建议经过编辑/etc/profile来改PATH,也能够改自家目录下的.bashrc(即:~/.bashrc)。
方法二:修改 ~/.bashrc 或 ~/.bash_profile 或系统级别的 /etc/profile
三、LD_LIBRARY_PATH: 动态库的查找路径
查看当前环境变量: echo $LD_LIBRARY_PATH
设置以下:
方法一: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX 可是登出后就失效
方法二: 修改 ~/.bashrc 或 ~/.bash_profile 或系统级别的 /etc/profile
方法三:这个没有修改 LD_LIBRARY_PATH 可是效果是同样的实现动态库的查找;设置稍微麻烦,好处是比较不受用户的限制。
ldconfig 命令的用途:
一、在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态连接库(格式lib*.so*),进而建立出动态装入程序(ld.so)所需的链接和缓存文件。缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态连接库名字列表
二、为了让动态连接库为系统所共享,需运行动态连接库的管理命令ldconfig,此执行程序存放在/sbin目录下。ldconfig一般在系统启动时运行,而当用户安装了一个新的动态连接库,修改了ld.so.conf时,就须要手工运行这个命令。
三、linux下的共享库机制采用了相似于高速缓存的机制,将库信息保存在/etc/ld.so.cache里边。程序链接的时候首先从这个文件里边查找,而后再到ld.so.conf的路径里边去详细找
ldd 命令的用途:
做用:用来查看程序运行所需的共享库,经常使用来解决程序因缺乏某个库文件而不能运行的一些问题。
语法:ldd(选项)(参数)
选项:
参数:
文件:指定可执行程序或者文库。