linux 环境变量系统:
系统级别:/etc/profile、/etc/bashrc/ 、/etc/environment
用户级别:~/.profile、~/.bashrc、 ~/.bash_profile 或 ~/.bash_login
LIBRARY_PATH和LD_LIBRARY_PATH的区别:
简介:
PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际上这是不正确的。正确的做法是我们要去修改赋予这个变量数值的那些配置文件,加一条路径或者减一条。说到底变量只关乎显示,不关乎其用于显示的内容。
首先你可以在命令行输入:$PATH 看看你能看到什么,那是一些 bash 路径,意思就是往 PATH 里面新增一个/opt/bin的路径,如果不加:$PATH的话,就表示直接把PATH赋值为/opt/bin啦,这样你其他的老路径就丢失了
PATH="/opt/bin:$PATH"
意思是:你现在配置的path在你需要的/opt/bin的目录下,还要再加上原来系统自带的path环境变量,这样写的目的是为了系统能正常启动,而且终端命令能够正常运行,如果丢掉就会命令无效等等;
如何插入环境变量:
&PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译链接。
编辑PATH 声明,其格式为:
PATH=$PATH:<PATH1>:<PATH2>:<PATH3>:------:<PATHN>
你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash_profile
添加环境变量:
1、临时变量的添加:退出登录后失效;
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
2、PATH: 可执行程序的查找路径
查看当前环境变量: echo $PATH
设置如下:
方法一: export PATH=$PATH:/XXX 但是登出后就失效
上述方法的PATH 在终端关闭后就会消失。所以还是建议通过编辑/etc/profile来改PATH,也可以改自家目录下的.bashrc(即:~/.bashrc)。
方法二:修改 ~/.bashrc 或 ~/.bash_profile 或系统级别的 /etc/profile
- 1. 在其中添加例如export PATH=/opt/ActivePython-2.7/bin:$PATH
- 2. source .bashrc (Source命令也称为“点命令”,也就是一个点符号(.)。
- source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
3、LD_LIBRARY_PATH: 动态库的查找路径
查看当前环境变量: echo $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 (Source命令也称为“点命令”,也就是一个点符号(.)。
- source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)
方法三:这个没有修改 LD_LIBRARY_PATH 但是效果是一样的实现动态库的查找;设置稍微麻烦,好处是比较不受用户的限制。
- 1. /etc/ld.so.conf 下面加一行 /usr/local/mysql/lib
- 2. 保存过后 ldconfig 一下
ldconfig 命令的用途:
1、在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表
2、为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库,修改了ld.so.conf时,就需要手工运行这个命令。
3、linux下的共享库机制采用了类似于高速缓存的机制,将库信息保存在/etc/ld.so.cache里边。程序连接的时候首先从这个文件里边查找,然后再到ld.so.conf的路径里边去详细找
ldd 命令的用途:
作用:用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。
语法:ldd(选项)(参数)
选项:
- --version:打印指令版本号;
- -v:详细信息模式,打印所有相关信息;
- -u:打印未使用的直接依赖;
- -d:执行重定位和报告任何丢失的对象;
- -r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
- --help:显示帮助信息。
参数:
文件:指定可执行程序或者文库。