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

news2024/11/24 23:02:11

一,查看环境变量

在 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.coloradmin.cn/o/1523201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言中,基本数据类型介绍

C语言当中各种数据类型的大小,首先要了解有哪些数据类型。 一 字符型: 整数(字符)类型存储大小值范围char1 字节-128 到 127 或 0 到 255(2的8次方)unsigned char1 字节0 到 255()s…

面试经典-MySQL篇

一、MySQL组成 MySQL数据库的连接池:由一个线程来监听一个连接上请求以及读取请求数据,解析出来一条我们发送过去的SQL语句SQL接口:负责处理接收到的SQL语句查询解析器:让MySQL能看懂SQL语句查询优化器:选择最优的查询…

MATLAB环境下基于决策树和随机森林的心力衰竭患者生存情况预测

近年来,随着医学数据的不断积累和计算机技术的快速发展,许多机器学习技术已经被用在医学领域,并取得了不错的效果。与传统的基于医学知识经验的心衰预后评估模型相比,机器学习方法可以快速、高效地从繁杂的、海量的心衰病人数据中…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎,被嵌入到所有移动设备和大部分计算机中,并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem

Chapter 13 Techniques of Design-Oriented Analysis: The Feedback Theorem 从这一章开始讲负反馈Control系统和小信号建模. 13.2 The Feedback Theorem 首先介绍 Middlebrook’s Feedback Theorem 考虑下面负反馈系统 传输函数 Guo/ui G ( s ) u o u i G ∞ T 1 T G…

C/C++火柴棍等式

有n根(n<24)火柴棍&#xff0c;你可以拼出多少个形如“ABC"的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零&#xff0c;则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示: 依次需要用到的火柴棍数目为6 2 5 5 4 5 6 3 7 6 。 如果是初学者可能会这么写。 …

Java多线程学习(一)

多线程学习&#xff08;二&#xff09;&#xff1a;http://t.csdnimg.cn/Q8Koc 目录 1、什么是多线程 2、如何创建多线程&#xff08;多个方法&#xff09; 方法一&#xff1a;继承Thread类创建线程 方法二&#xff1a;实现Runnable接口创建线程 方法三、实现Callable接口…

JDBC编程(Mysql)

目录 1.什么是jdbc 2.使用 2.1下载mysql数据库驱动 2.2导入项目 2.3编写代码 2.3.1数据源 2.3.2和数据库服务器建立连接 2.3.3构建一个操作数据库的sql语句 2.3.4执行sql 2.3.5释放前面创建的各种资源 2.3.6运行java程序 2.4其他操作 2.4.1修改操作 2.4.2删除操作…

微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p25&vd_source9b149469177ab5fdc47515e14cf3cf74 一、javascript参考手册——splice https://www.…

Instagram代运营和自营优缺点比较 CloudNEO:您全球社交媒体代运营的综合解决方案

在社交媒体营销中&#xff0c;Instagram作为一种非常受欢迎的平台&#xff0c;已成为企业推广品牌和吸引客户的重要工具。然而&#xff0c;对于企业来说&#xff0c;是选择代运营还是自营Instagram账号呢&#xff1f;让我们来比较一下它们各自的优缺点&#xff0c;并推荐CloudN…

plt保存PDF矢量文件中嵌入可编辑字体(可illustrator编辑)

背景&#xff1a; 用默认 plt.savefig() 保存图片&#xff0c;图中文字是以瞄点保存&#xff0c;而不是以文字格式。在编辑矢量图中&#xff0c;无法调整文字大小和字体。 方法&#xff1a; import matplotlib.pyplot as plt import numpy as np# ------输出的图片为illustr…

C#,动态规划问题中基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法与源代码

1 分词 分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注、句法分析、词向量以及文本分析的质量。英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词问题。但有些情况下,没有空格,则需要好的分词算法。…

2024年嵌入式校招

春招指的是一年中的春季招聘季节&#xff0c;即每年的3月份至5月份&#xff0c;是许多公司和组织开始招聘新毕业生或经验较少的求职者的时间。春招通常是大学生或研究生即将毕业&#xff0c;进入社会工作的重要时期。在这个时期&#xff0c;许多公司会举行一系列的宣讲会、招聘…

【原创】java+swing+mysql二手车交易管理系统

前言&#xff1a; 本文主要介绍了二手车交易管理设计与实现。首先&#xff0c;通过市场需求&#xff0c;我们确定了二手车的功能&#xff0c;通常的二手车交易系统都是B/S架构&#xff0c;然而我们今天要用javaswing去开发一个C/S架构的二手车交易管理系统&#xff0c;主要功能…

llinux C语言在网络编程时使用标准IO

目录 fdopen(3)函数 使用标准IO发送数据 使用标准IO接收数据 注意 先看一个简单的TCP客户端程序&#xff1a; #include <stdio.h> #include <arpa/inet.h> #include <sys/socket.h> #include <stdlib.h> #include <string.h> #include <…

【数据结构和算法初阶(C语言)】队列实操(概念实现+oj题目栈和队列的双向实现以及循环链表难点题目详解!)

目录 1. 队列的概念及结构 2.队列结构存在的意义应用 3.队列实现的结构选择 4.队列实现 5.队列对数据的处理 5.1队列初始化 5.2队尾入数据 5.3队头出数据 5.4获取队列尾部元素 5.5获取队列头部元素 5.6获取队列中元素个数 5.7检测队列是否为空 5.8销毁队列 6.循环队列补充 7.使…

C语言之快速排序

目录 一 简介 二 代码实现 快速排序基本原理&#xff1a; C语言实现快速排序的核心函数&#xff1a; 三 时空复杂度 A.时间复杂度 B.空间复杂度 C.总结&#xff1a; 一 简介 快速排序是一种高效的、基于分治策略的比较排序算法&#xff0c;由英国计算机科学家C.A.R. H…

矩阵中移动的最大次数

文章目录 所属专栏:BFS算法 题目链接 思路如下&#xff1a; 1.首先我们需要从第一列开始遍历&#xff0c;寻找每一个都能够满足条件的位置&#xff0c;将它插入到数组里面 2.第一列遍历完了后我们先判断第一列的数是否都满足条件插入到数组里面&#xff0c;如果数组为空&#…

03.事件进阶

一、事件流 事件流是对事件执行过程的描述&#xff0c;了解事件的执行过程有助于加深对事件的理解&#xff0c;提升开发实践中对事件运用的灵活度。 如上图所示&#xff0c;任意事件被触发时总会经历两个阶段&#xff1a;【捕获阶段】和【冒泡阶段】。 简言之&#xff0c;捕获…

肝了三天,完成了AIGC工具网站大全,建议收藏再看

说是肝了三天&#xff0c;其实远远不止&#xff0c;前前后后&#xff0c;从资料搜集到最后整理成文&#xff0c;有近一个月了&#xff0c;大家看在整理不易的份上&#xff0c;给点个赞吧&#xff0c;不要光顾着收藏呀&#xff01; 国内网站 AIGC 导航 https://www.aigc.cn 网…