linux基础知识之环境变量
Linux下的变量
1. Linux的变量种类
按变量的生存周期来划分,Linux变量可以分为两类:
- 永久的:需要修改配置文件,变量永久生效。
- 临时的:使用export命令声明即可,变量在关闭shell时失效。
2. 设置变量的三种方法
- 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
操作: 用vi在文件/etc/profile文件中增加变量,该变量将会对linux下所有用户有效,并且是“永久的”。
举例: 编辑/etc/profile文件,添加CLASSPATH和LD_LIBRARY_PATH变量
vi /etc/profile(打开文件)
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX
注:修改文件后要想马上生效还要运行 #source /etc/profile不然只能在下次重进此用户时生效。
2. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
操作: 用vi在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
举例: 编辑ashan用户目录(/home/ashan)下的.bash_profile,添加如下内容:
#vi /home/ashan/.bash_profile(打开文件)
export CLASSPATH = ./JAVA_HOME/lib;JAVA_HOME/jre/lib
注:修改文件后要想马上生效还需要运行 #source /home/ashan/.bash_profile,不然只能在下次重进此用户时生效。
3. 直接运行export命令定义变量 【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的。
tip:修改LD_LIBRARY_PATH的方法
这个没有修改LD_LIBRARY_PATH,但效果是一样的实现动态库的查找,这个设置比较麻烦,但比较不受用户的限制。ld.so.conf里面配置之后,添加的路径为最优先路径
- /etc/ld.so.conf下面加入一行/usr/local/mysql/lib
- 保存后执行ldconfig生效
注:ldconfig命令的用途:主要是在默认搜索目录(/lib和/usr/lib)以及动态配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前面介绍,lib. ),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表*
3. 环境变量的查看
- 使用echo命令查看单个环境变量,例如:echo $PATH
- 使用env查看所有环境变量,例如:env
- 使用set查看所有本地定义的环境变量。
4. 环境变量的删除(unset)
set可以设置某个环境变量的值,清楚环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。
示例:
export TEST = "Test..." #增加一个环境变量TEST
env | grep TEST #此命令有输入,证明环境变量TEST已经存在了。(输出TEST=Test...)
unset TEST # 删除环境变量TEST,如果吃命令没有输出,证明环境变量TEST已经删除。
常用的环境变量
- PATH:决定了shell将到哪些目录中寻找目录或程序
- LD_LIBRARY_PATH:动态库的查找路径
- HOME:当前用户主目录
- HISTSIZE:历史记录数
- LOGNAME:当前用户的登录名
- HOSTNAME:指主机名称
- SHELL:当前用户Shell类型
- LANGUGE:语言相关的环境变量,多语言可以修改此环境变量
- MAIL:当前用户的邮件存放目录
- PS1:基本提示符,对于root用户是#,对于普通用户是$