Linux环境变量设置

0x00 查看环境变量

查看环境变量有三个命令:

  • env:env命令是environment的缩写,用于列出所有的环境变量
  • export:单独使用export命令也可以像env列出所有的环境变量,不过export命令还有其他额外的功能
  • echo $PATHecho $PATH用于列出变量PATH的值,里面包含了已添加的目录

 

0x01 设置环境变量

1.1 将路径加入到PATH

可以直接添加到环境变量PATH中。$PATH表示变量PATH的值,包含已有的目录。

这种方法需要注意路径的顺序,如果遇到有同名的命令,那么PATH里面哪个目录先被查询,则那个目录下的命令就会被先执行,如下所示:

1
2
3
4
5
# 加到PATH末尾
export PATH=$PATH:/path/to/your/dir

# 加到PATH开头
export PATH=/path/to/your/dir:$PATH

1.2 命名一个新的环境变量

也可以直接命名一个新的环境变量,用于其它程序引用:

1
export VAR_NAME=value

0x02 作用域

2.1 作用于当前终端

打开一个终端,输入添加环境变量的语句:

1
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

终端所添加的环境变量是临时的,只适用于当前终端,关闭当前终端或在另一个终端中,添加的环境变量无效。

2.2 作用于当前用户

如果只需要添加的环境变量对当前用户有效,可以写入用户主目录下的.bashrc文件:

1
vim ~/.bashrc

添加语句:

1
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

注销或者重启可以使修改生效,如果要使添加的环境变量马上生效:

1
source ~/.bashrc

2.3 作用于所有用户

要使环境变量对所有用户有效,可以修改profile文件:

1
sudo vim /etc/profile 

添加语句:

1
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

注销或者重启可以使修改生效,如果要使添加的环境变量马上生效:

1
source /etc/profile

说明:

bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh

随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本,
而.bashrc脚本会执行/etc/bashrc脚本

至此,所有的环境变量和初始化设定都已经加载完成

bash随后调用terminfo和inputrc,完成终端属性和键盘映射的设定

发布者:常山赵子龙,转载请注明出处:https://www.qztxs.com/archives/science/technology/11683

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年6月1日 下午5:43
下一篇 2022年6月2日 上午10:48

相关推荐

  • 第三方服务挂了,如何保证服务不受影响?

    上周有个朋友问我说: 沈老师,我们有很多服务依赖第三方接口,他们的接口不稳定,从而影响我们的服务,有没有什么方法避免? 今天和大家聊一聊这个问题。   首先,可以将第三方接口,收口到一个服务内。   这样,可以避免每个调用方都依赖于第三方服务: (1)解除调用方与第三方接口的耦合; (2)当第三方的接口变动时,只有服务需要修改,而不是所有调用方均修改;   ...

    2022年5月14日
    3000
  • Spring AOP实现用户操作日志功能

    我使用Spring AOP实现了用户操作日志功能 今天答辩完了,复盘了一下系统,发现还是有一些东西值得拿出来和大家分享一下。 需求分析 系统需要对用户的操作进行记录,方便未来溯源 首先想到的就是在每个方法中,去实现记录的逻辑,但是这样做肯定是不现实的,首先工作量大,其次违背了软件工程设计原则(开闭原则) 这种需求显然是对代码进行增强,首先想到的是使用 Spr...

    2022年5月22日
    3000
  • 什么是单机 集群 热备 磁盘阵列raid

    单机部署(stand-alone):只有一个饮水机提供服务,服务只部署一份。   集群部署(cluster):有多个饮水机同时提供服务,服务冗余部署,每个冗余的服务都对外提供服务,一个服务挂掉时依然可用。   热备部署(hot-swap):只有一个桶提供服务,另一个桶stand-by,在水用完时自动热替换,服务冗余部署,只有一个主服务对外提供服务,影子服务在...

    2022年5月11日
    4200
  • 究竟为啥总在凌晨上线,如何进行无损发布

    为什么很多互联网公司升级系统,选择在晚上上线? 美名其曰,晚上上线,对用户影响最小。   为什么会对用户产生影响? 很多人认为,系统升级往往需要重启,重启的过程中,正在访问的用户会访问失败。   例如,如果升级的是web-server: 如上图,重启ip1上的tomcat时,tomcat上或许有1000个http请求正在处理,这些请求就会失败。   又例如,...

    2022年5月15日
    4200
  • 我C,一个库里Curry几百个表,这谁受得了?

    随着业务越来越复杂,数据量越来越大,并发量越来越大,数据库的性能越来越低。好不容易找运维申请了两台机器,让DBA部署了几个实例,想把一些业务库拆分出来,却发现一个库里几百个表,拆不出来,扩不了容,尴尬!   因为数据库强关联在一起,无法通过增加数据库实例扩容,就是一个耦合的典型案例。   什么样的场景会出现这类耦合? 举个栗子。   有一个公共用户数据库DB...

    2022年5月11日
    1200

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信