环境变量--永久 & 暂时

Linux 环境变量配置信息

查看环境变量

  • export 查看系统所有环境变量
  • echo $PATH 查看 PATH 环境变量值

环境变量的命名规则为:变量名=变量值 多个变量值之间使用 : 分隔

添加环境变量

环境变量分类

按照作用域分类

环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。

  • 用户级别环境变量定义文件:~/.bashrc、~/.profile(部分系统为:~/.bash_profile)
  • 系统级别环境变量定义文件:/etc/bashrc、/etc/profile(部分系统为:/etc/bash_profile)、/etc/environment

另外在用户环境变量中,系统会首先读取~/.bash_profile(或者~/.profile)文件,如果没有该文件则读取~/.bash_login,根据这些文件中内容再去读取~/.bashrc。

按照生命周期分类

inux环境变量可以分为两类:

  • 永久的 需要用户修改相关的配置文件,变量永久生效。
  • 临时的 用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。

使用 export 添加临时环境变量

仿照上文提到的环境变量命名规则,使用命令
export PATH=/home/username/python/bin:$PATH

注意:

  1. 使用 export 变量值可以使用双引号也可以不使用
  2. 记得添加以前的 PATH 值,在前在后均可以
  3. 该声明是临时生效,在当前终端下声明环境变量,关闭Shell终端失效。

修改配置文件添加永久临时变量

vi ~/.bashrc
bash 复制代码
vim ~/.bashrc 

# 在最后一行加上 
export PATH=$PATH:/home/username/username/bin

# 立即生效
source ~/.bashrc
  • 对当前用户生效
  • 永久有效
vi ~/.bash_profile
bash 复制代码
vim ~/.bash_bashrc 

# 在最后一行加上 
export PATH=$PATH:/home/username/username/bin

# 立即生效
source ~/.bash_bashrc
  • 对当前用户生效
  • 永久有效
vi /etc/bashrc
bash 复制代码
vim /etc/bashrc 

# 在最后一行加上 
export PATH=$PATH:/home/username/username/bin

# 立即生效
source /etc/bashrc
  • 对所有用户生效
  • 永久有效
vi /etc/profile
bash 复制代码
vim /etc/profile 

# 在最后一行加上 
export PATH=$PATH:/home/username/username/bin

# 立即生效
source /etc/profile
  • 对所有用户生效
  • 永久有效

Linux 环境变量加载原理

.bashrc文件和.bash_profile文件的区别

  • ~/.bash_profile 是交互式、login 方式进入 bash 运行的
  • ~/.bashrc 是交互式 non-login 方式进入 bash

运行的通常二者设置大致相同,所以通常前者会调用后者。所以一般优先把变量设置在.bashrc里面。比如在crontab里面执行一个命令,.bashrc设置的环境变量会生效,而.bash_profile不会。

简单的说,.bash_profile只在会话开始时被读取一次,而.bashrc则每次打开新的终端时,都会被读取。

环境变量加载顺序

系统环境变量 --> 用户环境变量

Linux加载环境变量的顺序如下:

  1. /etc/environment
  2. /etc/profile
  3. /etc/bash.bashrc
  4. ~/.profile
  5. ~/.bashrc
相关推荐
夜听莺儿鸣7 小时前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wuminyu8 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
科力锐品牌君9 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
zhangrelay9 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
流浪00110 小时前
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待
linux·操作系统·线程·pthread库
Lancker10 小时前
chnroute-linux — 中国大陆 IP 段每日自动更新 + 「仅允许国内访问」落地
linux·运维·tcp/ip
高山有多高10 小时前
【Linux笔记】Linux进程与守护进程
linux
大侠归来11 小时前
Ubuntu 搭建 APUE 环境:从源码编译到第一个示例跑通
linux·运维·ubuntu
shdkfbbv12 小时前
【无标题】
linux·运维·服务器
周洲083013 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32