(转)在Linux里设置用户环境变量的方法
背景:在linux下,root用户安装完jdk后,非root用户不能使用java环境变量。
问题排查:
通过在root和非root用户下分别执行echo $PATH 可以观察环境变量的异同。然后将需要的环境变量加入到非root用户中
1 介绍
在 linux 里设置环境变量的方法 ( export PATH )
如果使用源码包安装的软件,在安装完成后一般情况下要设置该软件命令执行的路径,那就是 PATH 变量。如何来设置 PAHT变量呢?我们又三种方法实现
例如:压力测试工具sysbench的命令目录为:/usr/local/sysbench/bin,想要将sysbench工具加入到系统环境变量里,使在root用户下,可以直接执行sysbench命令。
1.1直接使用 export 命令
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# export PATH=$PATH:/usr/local/sysbench/bin
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin
注意: 直接使用 export 设置的变量都是临时变量,也就是说退出当前的 shell ,为该变量定义的值便不会生效了。如何能让我们定义的变量永久生效呢?那就看我们的第二种定义的方式
ps:临时的变量 不推荐
1.2 修改 /etc/profile
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# vi /etc/profile
export PATH=$PATH:/usr/local/sysbench/bin # 在配置文件中加入此行配置
需要注意的是:修改完这个文件必须要使用 以下命令在不用重启系统的情况下使修改的内容生效
# source /etc/profile
或者是:
# . /etc/profile
# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sysbench/bin
# 配置已经生效
注意:修改 /etc/profile下虽然可以使环境变量永久生效,但在系统重启时,可能不再读取/etc/profile文件中的内容,需要在执行 "source /etc/profile"之后才能使环境变量生效;
为了避免重启后环境变量不生效的问题,也可以在/etc/profile.d/目录下简历一个path.sh的文件,将export命令写入其中,这样每次系统重启时,都会自动读取文件内容,使环境变量生效。
1.3修改 .bashrc 文件是在当前用户 shell 下生效
# vi /root/.bashrc 在里面加入:
export PATH=$PATH:/usr/local/mysql/bin
修改这个文件之后同样也需要使用 source 或者是 . 使配置文件生效。
再来使用 echo $PATH看下变量是否生效
# echo $PATH
以上是将一个工具命令加入到root用户下的环境变量中,对于非root用户,一般采用第二种方法,在进行 su - 命令切换时,自动读取 ~/bash_profile文件中的环境变量内容,就可以直接使用相关工具的命令了。
最新文章
- Android学习——uses-sdk标签详解
- javascript学习面向对象(二)
- ACM 分数加减法
- E: dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题。
- Atitit.并发编程原理与概论 attilax总结
- sql server 2008 基础知识
- Apache的HBase与cdh的sqoop集成(不建议不同版本之间的集成)
- Activiti从当前任务任意回退至已审批任务
- 常用JDBC连接字符串
- 后缀自动机(SAM)
- MFC逆向-消息响应函数的定位
- VantPy自动化测试框架
- 5分钟了解MySQL5.7的undo log在线收缩新特性
- 浏览器中页面的visibility状态及变化监听
- Java:配置环境(Mac)——Eclipse;修改JDK版本后,Eclipse打不开
- hive独立配置mysql
- go 使用 c接口
- 驰骋工作流引擎JFlow与activiti的对比之2种结构化模式
- jar安装
- Linux 串口、usb转串口驱动分析(2-2) 【转】