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

Linux 基础-查看和设置环境变量

一,查看环境变量

在 Linux中,环境变量是一个很重要的概念。环境变量可以由系统、用户、Shell 以及其他程序来设定,其是保存在变量 PATH 中。环境变量是一个可以被赋值的字符串,赋值范围包括数字、文本、文件名、设备以及其他类型的数据。

值得一提的是,Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。

1,使用 echo 命令查看单个环境变量,例如:echo $PATH;使用 env 查看当前系统定义的所有环境变量;使用 set 查看所有本地定义的环境变量。查看 PATH 环境的实例如下:

使用 unset 删除指定的环境变量set 也可以设置某个环境变量的值。清除环境变量的值用 unset 命令。如果未指定值,则该变量值将被设为 NULL。示例如下:

$ export TEST="Test..."  # 增加一个环境变量 TEST
$ env|grep TEST  # 此命令有输入,证明环境变量 TEST 已经存在了
TEST=Test...
unset  TEST  # 删除环境变量 TEST
$ env|grep TEST  # 此命令没有输出,证明环境变量 TEST 已经删除

2,C 程序调用环境变量函数

  • getenv(): 返回一个环境变量。
  • setenv():设置一个环境变量。
  • unsetenv(): 清除一个环境变量。

二,环境变量类型

1,按照变量的生存周期划分,Linux 变量可分为两类:

  • 永久的:需要修改配置文件,变量永久生效。
  • 临时的:使用 export 命令声明即可,变量在关闭 shell 时失效。

2,按作用的范围分,在 Linux 中的变量,可以分为环境变量和本地变量:

  • 环境变量:相当于全局变量,存在于所有的 Shell 中,具有继承性;
  • 本地变量:相当于局部变量只存在当前 Shell 中,本地变量包含环境变量,非环境变量不具有继承性。

环境变量名称都是大写,常用的环境变量意义如下所示。

  • PATH:决定了 shell 将到哪些目录中寻找命令或程序
  • HOME:当前用户主目录
  • HISTSIZE:历史记录数
  • LOGNAME:当前用户的登录名
  • HOSTNAME:指主机的名称
  • SHELL:当前用户 Shell 类型
  • LANGUGE:语言相关的环境变量,多语言可以修改此环境变量
  • MAIL:当前用户的邮件存放目录
  • PS1:基本提示符,对于 root 用户是 #,对于普通用户是 $

三,设置环境变量

设置环境有多种用途,比如配置交叉编译工具链的时候一般需要指定编译工具的路径,此时就需要设置环境变量。

Linux设置环境变量有三种方法:

1,所有用户永久添加环境变量: vi /etc/profile,在 /etc/profile 文件中添加变量。

  • vi /etc/profile # 通过这种方式,在关闭 xshell后,添加的环境变量不生效
  • 文件末尾添加:export PATH="/usr/local/cuda/lib64:$PATH"
  • source /etc/profile # 激活后,环境变量才可永久生效

2,当前用户永久添加环境变量: vi ~/.bashrc,在用户目录下的 ~/.bashrc 文件中添加变量。

  • vim ~/.bashrc,编辑 .bashrc 文件,比如添加: export PATH="/usr/local/cuda/lib64:$PATH"
  • source ~/.bashrc

在 .bashrc 文件中添加环境变量的方式,在关闭 xshell 后,添加的环境变量仍然生效。

3,临时添加环境变量 PATH: 可通过 export 命令,如运行命令 export PATH=/usr/local/cuda/lib64:$PATH,将 /usr/local/cuda/lib64 目录临时添加到环境变量中。查看是否已经设置好,可用命令 export 查看。

前面两种方法可以通过 echo $PATH 命令查看终端打印结果是否有添加的路径,来确认已经设置好环境变量。

四,参考资料

https://juejin.cn/post/7176214315400167485


http://www.kler.cn/a/271554.html

相关文章:

  • Hive:复杂数据类型之Map函数
  • 机器学习2 (笔记)(朴素贝叶斯,集成学习,KNN和matlab运用)
  • SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求
  • 【NEXT】网络编程——上传文件(不限于jpg/png/pdf/txt/doc等),或请求参数值是file类型时,调用在线服务接口
  • Java---入门基础篇(上)
  • Day29(补)-【AI思考】-精准突围策略——从“时间贫困“到“效率自由“的逆袭方案
  • 微服务技术栈之rabbitMQ高级(二)
  • 自媒体人的超级宝典
  • 项目经验-查询现网调用情况的实践
  • unity内存优化之AB包篇(微信小游戏)
  • Python之Web开发中级教程----搭建虚拟环境
  • VsCode免密登录
  • 【四 (5)数据可视化之 Pyecharts常用图表及代码实现 】
  • 计算机网络----计算机网络的基础
  • LeetCode 7 / 100
  • Selenium库原代码WebDriver及WebElement方法属性总结
  • 【RS422】基于未来科技FT4232HL芯片的多波特率串口通信收发实现
  • 【经验总结】ubuntu 20.04 git 上传本地文件给 github,并解决出现的问题
  • 私人信函常用语,柯桥西班牙语培训
  • Redis和Mysql的数据一致性问题
  • zookeeper快速入门一:zookeeper安装与启动
  • 计算机网络——物理层(编码与调制)
  • 【区间合并专题】【蓝桥杯备考训练】:挤牛奶、区间合并、校门外的树、管道【已更新完成】
  • HashMap和HashTable的区别
  • 车载GNSS —— 支撑城市NOA落地的关键技术
  • FDM3D打印系列——水补土和喷漆