Linux常用命令--(一)环境变量篇
1. ldd命令
ldd用来打印或者查看程序运行所需的共享库(访问共享对象依赖关系),常用来解决程序因缺少某个库文件而不能运行的一些问题。
常用命令如下:
- 查看ls命令所需的动态库:
$ which ls
- 查看libstdc++.so.6动态库依赖的包的详细信息,缺少依赖包时后面会显示 not found:
$ whereis libstdc++.so.6
2. 设置环境变量
2.1 Linux中PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH
PATH
PATH 是存储可执行文件搜索路径
的系统环境变量,它包含了一组由冒号 “:” 分隔的目录列表。当运行一个命令时,操作系统会在这些目录中查找相应的可执行文件,并在找到后执行它。例如,在命令行中执行 ls 命令时,就会依次在 PATH 变量列出的目录中查找 ls 命令,如果找到则执行,否则会提示找不到该命令。可以通过以下方式修改 PATH 环境变量:
- 临时修改,退出后则不再生效:
export PATH=$PATH:/exe_path/bin
- 永久修改:
# 修改 ~/.bashrc 或 /etc/profile
export PATH=$PATH:/exe_path/bin
# 或者修改 /etc/environment
PATH=$PATH:/exe_path/bin
# 生效
source ~/.bashrc
或者
source /etc/profile
或者
source /etc/environment
此命令将把 /exe_path/bin 目录添加到系统的 PATH 变量中。
LIBRARY_PATH
LIBRARY_PATH 是存储编译器查找库文件搜索路径
的系统环境变量。当编译源代码时,编译器会在这些目录中查找指定的库文件,以便将其链接到可执行文件中。可以通过以下方式修改 LIBRARY_PATH 环境变量:
- 临时修改:
export LIBRARY_PATH=$LIBRARY_PATH:/compile_lib_path/lib
- 永久修改:
# 修改 ~/.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 目录中进行库文件的搜索。
LD_LIBRARY_PATH
LD_LIBRARY_PATH 是存储运行时共享库文件搜索路径
的系统环境变量。当在运行可执行程序时,动态链接器 (ld.so) 会在这些目录中查找相应的共享库文件。一旦找到了这些库文件,就会将它们加载到程序中。可以通过以下方式修改 LD_LIBRARY_PATH 环境变量:
- 临时修改:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
- 永久修改:
修改 ~/.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 目录中进行共享库的搜索。
2.2 LD_LIBRARY_PATH与LIBRARY_PATH区别
LIBRARY_PATH
环境变量用于在程序编译期间
查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。
LD_LIBRARY_PATH
环境变量用于在程序加载运行期间
查找动态链接库时指定除了系统默认路径之外的其他路径,注意,LD_LIBRARY_PATH中指定的路径会在系统默认路径之前进行查找。
2.3 注意事项
需要注意的是,如果在环境变量中设置了多个路径,操作系统会按照指定的顺序
依次搜索动态链接库。因此,应该将最常用的路径放在最前面,以提高程序的运行效率。
2.4 查看当前使用的环境变量
可以使用如下命令,查看当前环境信息:
export
2.5 按指定顺序设置路径
待补充
3. 设置服务器字符集
3.1 什么是字符集
字符集(Character Set),也被称为编码(Encoding),是用于表示文本的一组字符和它们在计算机中的表示方式。
不同的字符集包含的字符、表示方式以及支持的语言不同,因此在不同的字符集中使用同样的字符通常会得到不同的结果。在Linux系统中,默认的字符集是UTF-8,它是Unicode字符集的一种实现方式。
3.2 查看当前字符集
echo $LANG
3.3 修改当前字符集
常用字符集:
GB2312
GBK
UTF-16
UTF-32
UTF-8(常用)
3.3.1 临时修改字符集
LANG=zh_CN.UTF-8
3.3.2 持久化保存字符编码
- 修改配置文件:/etc/locale.conf
- 通过命令的方式修改字符集编码
localectl set-locale LANG=zh_CN.utf8