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

Linux环境ENV的概念

一、基本概念

环境变量的含义:程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的。

按变量的周期划为永久变量和临时性变量2种:

  • 永久变量:通过修改配置文件,配置之后变量永久生效。
  • 临时性变量:使用命令如export等命令设置,设置之后马上生效。当关闭shell的时候失效(这种主要用于测试比较多)。
      
    按照影响范围分为用户变量和系统变量2种:
  • 用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用;
  • 系统变量(全局变量):影响范围是整个系统;

二、查看环境变量

env命令 在Shell下,用env命令查看当前用户全部的环境变量。

env

export命令 export命令显示当前系统定义的所有环境变量

export

env|grep 环境变量名可以筛选包含的环境变量。
例如查看环境变量名中包含PATH的环境变量。
env|grep PATH

env|grep 环境变量名
env|grep PATH

echo命令

echo 环 境 变 量 名 : 查 看 特 定 的 环 境 变 量 的 值 。 注 意 , 符 号 环境变量名:查看特定的环境变量的值。注意,符号环境变量名:查看特定的环境变量的值。注意,符号不能缺少,这是语法规定。
例如:输出当前的PATH环境变量的值

echo $PATH

三、设置环境变量

用户环境变量

用户环境变量只对当前用户生效,设置用户环境变量也有多种方法。在用户的主目录,有几个特别的文件,用ls是看不见的(可以用ll)。

  • .bash_profile(推荐首选)
    当用户登录时执行,每个用户都可以使用该文件来配置专属于自己的环境变量。
  • .bashrc
    当用户登录时以及每次打开新的Shell时该文件都将被读取,不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
  • .bash_logout
    当每次退出系统(退出bash shell)时执行该文件。
  • .bash_history
    保存了当前用户使用过的历史命令。

配置临时环境变量export命令

export PATH使用export命令直接修改PATH的值,配置gcc进入环境变量的方法:export PATH=/home/zhou/gcc/bin:$PATH
#或者把PATH放在前面
export PATH=$PATH:/home/zhou/gcc/bin

注意事项:
  生效时间:立即生效
  生效期限:当前终端有效,窗口关闭后无效
  生效范围:仅对当前用户有效
  配置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置

配置用户环境变量.bashrc文件

通过修改用户目录下的~/.bashrc文件进行配置:

vim ~/.bashrc
# 在最后一行加上
export PATH=$PATH:/home/zhou/gcc/bin

注意事项:
  生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
  生效期限:永久有效
  生效范围:仅对当前用户有效
  如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

配置用户环境变量.bash_profile文件

和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可:

vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/home/zhou/gcc/bin

注意事项:
  生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
  生效期限:永久有效
  生效范围:仅对当前用户有效
  如果没有/.bash_profile文件,则可以编辑/.profile文件或者新建一个

配置系统环境变量/etc/profile文件

vim /etc/profile

该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似:

# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profilevim /etc/profile# 在最后一行加上
export PATH=$PATH:/home/zhou/gcc/bin
http://www.lryc.cn/news/34526.html

相关文章:

  • AcWing数据结构 - 数据结构在算法比赛中的应用(下)
  • 基于嵌入式libxml2的ARM64平台的移植(aarch64)
  • 8. 字符串转换整数 (atoi)
  • [Tomcat]解决IDEA中的Tomcat中文乱码问题
  • python之dataclasses
  • 【MapGIS精品教程】007:MapGIS投影变换案例教程
  • list数据根据属性字段去重
  • java教程(2023-3-8)
  • node 配置 vue npm配置
  • 特斯拉、小鹏开路,城市NOA距好用还有几年?
  • Vue 3第九章:WatchEffect高级侦听器
  • c++基础——函数
  • DPDK系列之七DPDK中的虚拟化支持
  • 设计模式~桥接模式(bridge)-14
  • Java项目3 电子邮件
  • 设计模式~访问者模式(Visitor)-15
  • 实战小项目之视频监控(1-1)
  • DEJA_VU3D - Cesium功能集 之 103-直角箭头(标绘+编辑)
  • Vue 对象扩展运算符(…)
  • 又是活动 没啥好说的 送代码
  • ARP报文内容详细分析
  • js一键保存当前页面所有图片
  • 【Spring AOP】如何统一“拦截器校验、数据格式返回、异常返回”处理?
  • 规划数据指标体系方法(下)——新海盗模型
  • UML学习备忘录
  • Vue3手写分页在分页的基础上用到Pagination 分页组件
  • 冥想第七百二十四天
  • Jenkins+Docker自动化部署项目
  • TX2配置RealSense D455相机SDK和ros驱动
  • Sentinel架构篇 - 来源访问控制