Linux中PATH、LIBRARY_PATH、LD_LIBRARY_PATH的作用

1、PATH

PATH是存储可执行文件搜索路径的系统环境变量,它包含了一组由冒号 : 分隔的目录列表。当运行一个命令时,操作系统会在这些目录中查找相应的可执行文件,并在找到后执行它。

例如,在命令行中执行ls命令时,就会依次在PATH变量列出的目录中查找ls命令,如果找到则执行,否则会提示找不到该命令。可以通过以下方式修改PATH环境变量:

bash 复制代码
export PATH=$PATH:/exe_path/bin

永久修改:

bash 复制代码
# 修改 ~/.bashrc 或 /etc/profile 
export PATH=$PATH:/exe_path/bin

# 生效
source ~/.bashrc
或者
source /etc/profile

此命令将把/exe_path/bin目录添加到系统的PATH变量中。

2、LIBRARY_PATH

LIBRARY_PATH是存储编译器查找库文件搜索路径的系统环境变量。当编译源代码时,编译器会在这些目录中查找指定的库文件,以便将其链接到可执行文件中。可以通过以下方式修改 LIBRARY_PATH 环境变量:

bash 复制代码
export LIBRARY_PATH=$LIBRARY_PATH:/compile_lib_path/lib

永久修改:

bash 复制代码
# 修改 ~/.bashrc或系统级别的/etc/profile
export LIBRARY_PATH=/compile_lib_path/lib:$LIBRARY_PATH 
# 生效
source ~/.bashrc
或者
source /etc/profile

此命令将在系统的LIBRARY_PATH变量中追加 /compile_lib_path/lib 目录,以后编译程序时,编译器将会在 /compile_lib_path/lib 目录中进行库文件的搜索。

3、LD_LIBRARY_PATH

LD_LIBRARY_PATH是存储运行时共享库文件搜索路径的系统环境变量。当在运行可执行程序时,动态链接器 (ld.so) 会在这些目录中查找相应的共享库文件。一旦找到了这些库文件,就会将它们加载到程序中。可以通过以下方式修改LD_LIBRARY_PATH环境变量:

bash 复制代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

永久修改:

bash 复制代码
修改 ~/.bashrc 或者 ~/.bash_profile文件
export LD_LIBRARY_PATH=/ld_path/bin:$path
# 同步
source ~/.bashrc
或者 
source ~/.bash_profile

此命令将在系统的LD_LIBRARY_PATH变量中追加 /ld_path/bin 目录,以后运行程序时,动态链接器将会在 /ld_path/bin 目录中进行共享库的搜索。

相关推荐
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧9 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery9 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
qetfw10 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
逆风的蚂蚁11 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
沫璃染墨15 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
AI_Lab0117 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器
by2099917 小时前
Linux GDB 调试与 CGDB 使用
linux·运维·服务器·经验分享
星恒随风17 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
feng_you_ying_li20 小时前
linux之网络层
linux·运维·网络