当前位置: 首页 > news >正文

Linux中如何添加环境变量

一. Linux中配置环境变量的的方式

1.按作用范围分类

1.仅对当前用户生效

文件/方式触发时机说明
~/.bashrc打开新交互式终端最常用,下面会介绍
~/.bash_profile用户登录时(登录 shell)SSH 登录、图形界面登录
~/.profile用户登录时通用,兼容 sh 和其他 shell
~/.bash_login用户登录时Bash 专用,优先级低于.bash_profile
~/.bash_logout用户退出登录时用于清理操作

注:通常.bash_profile中会调用.bashrc,确保两者都生效

2.对所有用户都生效(系统级)

文件说明
/etc/profile所有用户登录时加载
/etc/bash.bashrc所有用户的 Bash 交互式 shell(Debian/Ubuntu 等)
/etc/profile.d/存放自定义脚本,会被/etc/profile自动调用
/etc/environment系统级环境变量,格式严格(无$引用,纯KEY=VALUE

3.临时生效(当前会话)

命令说明
export VAR=value当前终端会话生效,关闭后失效
VAR=value command仅对单次命令生效
source ~/.bashrc重新加载配置文件,立即生效

2.使用场景建议

场景推荐方式
个人日常配置~/.bashrc
登录自动执行(如启动代理)~/.bash_profile~/.profile
系统全局配置/etc/profile.d/下新建脚本
临时测试export命令
图形应用需要的环境变量~/.profile/etc/environment

3.优先级以及加载顺序

登录 shell: /etc/profile → ~/.bash_profile(或 ~/.profile)→ ~/.bashrc 交互式非登录 shell: /etc/bash.bashrc → ~/.bashrc

不同发行版(Ubuntu、CentOS、Arch 等)的具体路径和调用关系可能略有差异。

特性登录 shell交互式非登录 shell
触发时机用户登录系统时已登录后打开新终端
典型场景SSH 远程登录、TTY 控制台登录、图形界面登录打开终端窗口、执行bash命令
加载文件/etc/profile~/.bash_profile/~/.profile/etc/bash.bashrc~/.bashrc
用途初始化用户会话环境提供交互式命令行体验

二. .bashrc文件

1.文件位置

.bashrc文件是一个隐藏的文件,英文全称是:Bash Run Commands,意为“Bash运行命令”

.bashrc文件的所在位置:位于用户的主目录下,完整路径为:

~/.bashrc # 对于普通用户来说,其位置是: /home/用户名/.bashrc # 对于超级管理员root用户来说,其路径是: /root/.bashrc

如:

rain@LAPTOP-IIB6PKR5:/$ pwd / rain@LAPTOP-IIB6PKR5:/$ ls /home/rain/.bashrc /home/rain/.bashrc
[root@master /]# pwd / [root@master /]# ls /root/.bashrc /root/.bashrc

补充说明

  • 这是一个隐藏文件(以点.开头),默认用ls看不到,需用ls -a查看

  • 每个用户都有自己的独立.bashrc,互不影响

  • 系统级模板通常位于/etc/skel/.bashrc,新建用户时会自动复制到其主目录

.bashrc是 Linux/Unix 系统中 Bash shell 的配置文件,主要作用如下:

2.核心功能

1. 个性化配置

  • 设置命令别名(alias),如alias ll='ls -alF'

  • 自定义命令提示符(PS1 变量)

  • 配置环境变量(PATH、EDITOR 等)

2. 启动时自动执行

  • 每次打开新的交互式非登录 shell时自动加载

  • 例如:打开终端窗口、在图形界面中启动终端、执行bash命令时

3. 功能增强

  • 加载自定义函数和脚本

  • 配置命令行自动补全、历史记录

  • 设置终端颜色、字体等显示效果

3.常见配置示例

# 别名 alias ..='cd ..' alias grep='grep --color=auto' # 环境变量 export PATH="$HOME/.local/bin:$PATH" export EDITOR=vim # 提示符样式 PS1='\u@\h:\w\$ ' # 启动时执行 neofetch # 显示系统信息

4.注意事项

  • 修改后需执行source ~/.bashrc或重启终端生效

  • 通常会在.bash_profile中调用.bashrc,确保登录时也能加载

  • 系统级配置在/etc/bash.bashrc(各发行版路径可能不同)

三.学习Hadoop时的情况

[root@master ~]# find / -name ".bashrc" # 使用find命令从根目录按文件名字模式查找名字为".bashrc"的文件 /etc/skel/.bashrc /root/.bashrc [root@master ~]# cat /root/.bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # 配置HADOOP_HOME环境变量,作用是让你可以在任意目录下都可以方便地使用Hadoop命令,让相关脚本知道Hadoop安装在哪 # 比如,想要启动HDFS,如果没有配置HADOOP_HOME环境变量,那就要输入/opt/hadoop-3.1.4/sbin/start-dfs.sh # 但是配置好了环境变量,$HADOOP_HOME/sbin/start-dfs.sh,就可以这样启动HDFS了 # 保存并退出后,使用source ~/.bashrc命令来让下面两行配置生效。然后就可以使用echo $HADOOP_HOME或hadooop versin来验证配置是否成功了 export HADOOP_HOME=/opt/hadoop-3.1.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin [root@master ~]# cat /etc/skel/.bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions

1. $的作用:取变量的值

echo $PATH # 输出 PATH 变量的内容 echo $HADOOP_HOME # 输出 /opt/hadoop-3.1.4

2. 那为什么要这么写呢?

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

拆解理解:

部分含义
PATH=给 PATH 变量赋值
$PATH保留原有的所有路径(如/usr/local/bin:/usr/bin:/bin
:路径分隔符(Linux 用冒号分隔多个路径)
$HADOOP_HOME/binHadoop 的命令目录(如hadoop,hdfs
$HADOOP_HOME/sbinHadoop 的管理脚本目录(如start-dfs.sh

假设原来PATH变量值是(即$PATH)

/usr/local/bin:/usr/bin:/bin

执行后变成:

/usr/local/bin:/usr/bin:/bin:/opt/hadoop-3.1.4/bin:/opt/hadoop-3.1.4/sbin

为什么不能直接写死:

错误写法问题
export PATH=/opt/hadoop-3.1.4/bin覆盖了原有 PATH,系统基本命令(如ls,cat)都找不到
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin丢失了原有路径,同样导致系统命令失效

为什么用$HADOOP_HOME而不写全路径:

# 方式一:用变量(推荐) export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 方式二:写死路径(不推荐) export PATH=$PATH:/opt/hadoop-3.1.4/bin:/opt/hadoop-3.1.4/sbin

用变量的好处

  • 易维护:Hadoop 升级或换目录时,只需改HADOOP_HOME一处

  • 可读性:一看就知道是 Hadoop 相关的路径

  • 其他配置复用:如export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

执行顺序很重要!

export HADOOP_HOME=/opt/hadoop-3.1.4 # 必须先定义 export PATH=$PATH:$HADOOP_HOME/bin:... # 才能在这里引用

如果顺序颠倒,$HADOOP_HOME为空,就会拼接出错误的路径。

3.验证环境变量添加成功的方法

echo $PATH # 查看完整路径 which hadoop # 验证系统能否找到 hadoop 命令 hadoop version # 测试命令是否可用
http://www.jsqmd.com/news/785987/

相关文章:

  • 视频直播点播/音视频点播EasyDSS构建智慧校园视频智能服务新体系
  • 基于Python的自动化求职监控系统:从爬虫到通知的完整实现
  • 2026年探秘凤凰古城:这五条小巷的深夜食堂,藏着最地道的湘西味
  • 通过TaotokenCLI工具一键配置团队开发环境中的大模型密钥
  • MindSpeed RL:昇腾强化学习解决方案
  • 质谱数据分析:机器学习模型选型、实现与可解释性实践指南
  • EARN框架:破解AI公平性度量共识难题的人本协同实践
  • 2026届毕业生推荐的六大AI科研平台实际效果
  • 泰山派3M-RK3576-系统功能-Debian12-ADB使用
  • CANN/ops-math ClipByValue算子
  • 基于纹理变换器的扫描电镜图像超分辨率重建技术研究
  • 互联网大厂 Java 求职者面试:深入探讨 Spring Boot 与微服务架构
  • 航天空间环境监测大模型系统软件平台解决方案
  • 全国青少年人工智能辅助生成数字艺术创作者大赛
  • CANN/hccl集群信息协商相关
  • 盖茨 Super HC® Plus Vextra™ 三角带:高功率密度工业传动的性能标杆
  • 开源项目新焦虑:当用户不再搜索引擎,而是直接问 AI
  • 游戏键盘革命:Hitboxer智能按键重映射与SOCD冲突终结者
  • 2026最权威的五大AI论文神器推荐榜单
  • CANN/sip贡献指南
  • 基于Spring Boot与Vue的智能信息管理系统架构设计与AI集成实践
  • 泰山派3M-RK3576-系统开发与编译-宿主机环境搭建-VMware搭建Ubuntu22
  • VNet模型在胎儿脑fMRI分割中的优势与实践
  • 免费视频转文字软件哪个最好用?2026 年免费视频转文字软件对比实测
  • 2025届必备的六大AI辅助写作网站横评
  • AI性能与可解释性权衡:从理论到工程实践的平衡之道
  • AI医学影像在COVID-19预后预测中的性能评估与临床挑战
  • 原来大家都在用这个“偷懒”神器,你的答辩PPT有救了!!
  • 水务设施风险智能分析平台:AI+大数据驱动城市供水管网主动预警
  • CANN/runtime 主机内存管理