环境变量--永久 & 暂时

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
相关推荐
用户805533698036 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297916 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao4 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3105 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode5 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
A小辣椒7 天前
TShark:Wireshark CLI 功能
linux
A小辣椒7 天前
TShark:基础知识
linux