shell-环境变量以及环境变量的配置文件

本文介绍了Shell环境变量的定义,强调环境变量在不同shell中的作用范围,并详细讲解了如何设置和删除环境变量。重点讨论了PATH系统环境变量及其设置方法。此外,文章还探讨了环境变量配置文件,包括/etc/profile、~/.bash_profile、~/.bashrc等,以及source命令的作用。最后,提供了在不同配置文件中设置环境变量的实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境变量定义

用户自定义变量只在当前的shell中生效,而环境变量会在当前shell和这个shell的所有子shell当中生效
如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效

设置环境变量

export 变量名=变量值 #申明变量
env #查询变量
unset 变量名 #删除变量

系统常见环境变量

PATH:系统查找命令的路径

echo $PATH
/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

PATH变量叠加
PATH=“$PATH”:/root/sh

环境变量配置文件

使用export定义的环境变量,只能在你当前shell或子shell中使用,如果注销或重启系统,环境变量就会销毁,将环境变量写入相应的配置文件就会永久生效

source命令

修改环境变量配置文件后需要退出然后再登陆,配置文件才能生效
可以直接使用source命令,让配置文件直接生效
source 配置文件
. 配置文件
.是source的缩写

环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH,HISTSIZE,PS1,HOSTNAME等默认环境变量

配置文件主要有:
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
其中etc下的几个文件,针对所有用户生效,家目录下只对当前用户生效

设置环境变量

这几个配置文件的执行顺序可能如下
在这里插入图片描述
具体执行哪个文件可以根据etc/profile的代码查看,后面的文件如果定义了相同的环境变量,会被覆盖

设置系统环境变量

系统环境变量对所有用户生效
(1)在/etc/profile中设置
用户登陆时会执行etc/profile中的代码,但是Linux不推荐在etc/profile中设置环境变量
在profile中使用export设置环境变量,再使用source执行后,使用env命令可以看到该变量
在这里插入图片描述

(2)在etc/profile.d文件夹下增加环境变量脚本文件,这是Linux 推荐的方法
在该文件夹下增加一个.sh文件,定义自己的环境变量

ubuntu@VM-4-17-ubuntu:/etc$ cd profile.d/
ubuntu@VM-4-17-ubuntu:/etc/profile.d$ ls
01-locale-fix.sh  bash_completion.sh  cedilla-portuguese.sh  gawk.csh  gawk.sh  ljs.sh  Z97-byobu.sh
ubuntu@VM-4-17-ubuntu:/etc/profile.d$ cat ljs.sh 
export ljs="ljs"

(3) 在etc/bashrc中设置环境变量
Linux也不推荐这种方法设置环境变量

用户环境变量

用户环境变量只针对当前用户生效
(1).bash_profile(推荐首选),有的系统也可能是.profile这个文件
当用户登陆时执行,每个用户都可以使用该文件来配置属于自己的环境变量
(2).bashrc
当用户登陆时以及每次打开shell时该文件都会被执行,不推荐在这里面配置环境变量
(3).bash_logout
当每次退出系统时(退出bash shell)时执行该文件

练习
  1. 在/etc/profile中设置一个环境变量myenv:export myenv=myenv
    在这里插入图片描述

  2. 让环境变量生效
    source /etc/profile

  3. 在其他文件中引用这个环境变量
    echo myenv=$myenv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值