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

linux下环境变量的使用

文章目录

  • 环境变量
      • 一、环境变量的定义与特点
      • 二、环境变量的分类
      • 三、常用的环境变量
      • 四 环境变量相关指令
      • 五 c语言获取环境变量接口
      • 六 通过代码如何获取环境变量

环境变量

  • 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数

一、环境变量的定义与特点

  1. 定义:环境变量是操作系统中指定运行环境的一些参数,通常由系统或用户定义,用于控制程序的行为或提供程序运行所需的信息。

  2. 特点

    • 全局性:环境变量在Shell及其子进程中都有效(除非被显式地限制)。
    • 继承性:子进程会继承父进程的环境变量(但也可以修改或添加新的环境变量)。
    • 可读性:可以通过特定的命令(如echo)来查看环境变量的值。

二、环境变量的分类

  1. 按作用范围分类

    • 系统环境变量:对所有用户都有效,通常在系统启动时由系统初始化脚本(如/etc/profile/etc/environment)设置。
    • 用户环境变量:只对特定用户有效,通常在用户的配置文件(如~/.bashrc~/.bash_profile)中设置。
  2. 按生命周期分类

    • 永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,使环境变量永久生效。
    • 临时环境变量:在Shell中临时定义,退出Shell后失效。可以使用export命令将本地变量导出为环境变量,但这样导出的变量在Shell退出后仍然会失效,除非在登录脚本文件中进行配置。

三、常用的环境变量

以下是一些常用的Linux环境变量及其作用:

  1. PATH:指定系统查找可执行文件的目录。当在终端输入命令时,系统会检索在PATH变量中指定的目录中的可执行文件。
  2. HOME:定义用户的主目录路径,常被应用程序用来确定用户的默认工作目录。
  3. USER:包含当前用户名。
  4. LANG:决定系统默认使用的语言环境,影响字符编码、日期格式、货币符号等相关设置。
  5. PWD:存储当前工作目录的路径。
  6. SHELL:指定当前用户的默认Shell解释器。
  7. TERM:定义当前终端类型,用于控制终端显示的设置。
  8. DISPLAY:指定当前X服务器的显示设备。
  9. EDITOR:定义当前用户默认使用的文本编辑器。
  10. LD_LIBRARY_PATH:指定动态链接器在运行时查找共享库的路径。

四 环境变量相关指令

环境变量的追加如PATH

PATH=$PATH:/home/shiyue

打印环境变量

echo $PATH

查看全部环境变量

env

  1. echo: 显示某个环境变量值
  2. export: 设置一个新的环境变量
  3. env: 显示所有环境变量
  4. unset: 清除环境变量
  5. set: 显示本地定义的shell变量和环境变量

五 c语言获取环境变量接口

q

char* getenv(const char* name)

c语言打印命令行参数 环境变量以NULL指针结尾

在这里插入图片描述

int main(int argc, char* argv[])
{
    //两张核心向量表(1. 命令行参数表 2. 环境变量表)
	for (int i = 0;argv[i]; ++i)
    {
        printf("argv[%d]->%s\n", i, argv[i]);
    }
	return 0;
}

六 通过代码如何获取环境变量

命令行第三个参数

#include <stdio.h>
int main(int argc, char *argv[], char *env[])
{
	int i = 0;
	for(; env[i]; i++)	{
		printf("%s\n", env[i]);
	}
		return 0;
}

通过第三方变量environ获取

#include <stdio.h>
int main(int argc, char *argv[])
{
	extern char **environ;
	int i = 0;
	for(; environ[i]; i++){
		printf("%s\n", environ[i]);
		}
	return 0;
}

我们所运行的进程大都是子进程, bash本身在启动时,会从操作系统的配置文件读取环境变量的相关信息,子进程会继承父进程的环境变量

环境变量在栈区之上先是命令行参数,后是环境变量, 从低地址到高地址,排布,命令行参数和环境变量最后一位都为null


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

相关文章:

  • 基于Java Springboot时间管理微信小程序
  • NLP 相关知识的构成
  • MR30分布式 IO 模块助力印刷设备,开启收益新篇
  • python脚本:Word文档批量转PDF格式
  • el-input输入校验,只允许输入数字或者带一个小数点的数字。
  • Linux环境部署RocketMQ单节点以及双主双从集群环境
  • 算法笔记:力扣146.LRU缓存
  • ubuntu无线网络共享到有线
  • 在 Windows Server 2022 Datacenter 上配置 MySQL 8.0 的主从复制
  • vscode切换anaconda虚拟环境解释器不成功
  • 无人机的计算机仿真模拟控制
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(六):JMeter中实现参数化的几种方式
  • 利用Python爬虫获取淘宝关键词接口的深入解析
  • LeetCode78:子集
  • unity与android拓展
  • 量化交易系统开发-实时行情自动化交易-8.8.同花顺 SuperMind 平台
  • 【Oracle11g SQL详解】子查询的分类与嵌套查询实例
  • Typora设置自动上传图片到图床
  • Linux查看系统基本信息
  • 推荐文章:FLUI Framework——打造流畅的微软界面体验