linux-----环境变量

 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

常见的环境变量:

PWD:记录当前工作目录

PATH : 指定命令的搜索路径
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
SHELL : 当前Shell,它的值通常是/bin/bash。
查看环境变量:echo $NAME //NAME:你的环境变量名称

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

获取环境变量:函数getenv()

设置环境变量:putenv()
 


提示:以下是本篇文章正文内容,下面案例可供参考

一.main函数的参数

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int arge,char* arg[])
{
 printf("%d",arge);
 for(int j=0;j<arge;j++)
 {
     printf("arg[%d]=%s\n",j,arg[j]);
 }

我们在linux命令下输入命令编译运行结果如下:

这里我们从键盘上输入的指令,会被bash维护,形成一张表每个元素是一个字符串以空格分开,以NULL作为结尾 。形参arge是元素的个数,char* arg[]指向是一个数组指针,数组存储的是字符串。

我们可以用它来用在同个程序中,通过指令选项执行不同的功能。

以下实现简单的计算器:

2.什么是环境变量

1.Linux中的环境变量有很多,它们之间是独立的,不同场景下有不同的用处。可以通过指令env查看当前机器的所有环境变量。操作系统会开辟内存存储用户名,当前的工作目录,家目录等一些信息,在你登入linux的时候,它就已经被加载好了。例如 PATH, PWD ,HOME,USER

如下(示例)

2.1我们可以用系统的环境变量干什么。

1.用PATH来说:’linux中每个命令能被执行,因为在PATH中记录了它们的路径,命令也是代码,要执行运行必须要知道它在哪。我们在运行我们自己写的编译好的可执行文件,要带上./可执行文件或者绝对路径

要让我们程序之间运行,而不带路径,那么就要把当前文件的工作目录路径添加到PATH中

1.直接将路径拷贝到PATH的其中一个路径下。不过并不建议因为会污染变量,当然污染之后重启Linux也是会恢复的‘

2.指令:PATH=文件的工作目录路径:$PATH。

这样我们就可以像指令一样直接执行了,而不用指明路径(./mybin)

3.环境变量的导入和普通变量

3.1.自己创造环境变量:

export +变量名+赋值。通过env查看

3.2 普通变量

普通变量不是环境变量,不可以被子进程继承,它是bash的内部的

4.环境变量的获取

3.通过系统调用函数getenv()查找特定的环境变量。这里的数组指针env也是bash维护的,指向的数组中是当前机器的环境变量。

1.系统调用接口

getenv()

#include<stdlib.h>
#include<stdio.h>
int main(int arg,char*arge[],char* env[])
{

 char* username=getenv("PATH");
 printf("%s",username);
 return 0;
 }

PATH: 

2.通过第三方变量environ获取

5.环境变量的特点

1.全局性:父进程的环境变量会被子进程继承。

6.bash读取环境变量

文件

环境变量是可以被继承的,我们登入虚拟机,bash进程会读取系统和用户的环境变量,其中用户的环境变量在隐藏文件。比如.bashrc


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

毫米波雷达深度学习方法和技术-概述

深度学习方法和技术—在毫米波雷达解决方案的进展 前言 雷达已经从复杂的高端军事技术演变为相对简单的低端解决方案&#xff0c;渗透到工业、汽车和消费市场领域。这种快速发展是由硅的进步和使用深度学习算法来利用传感器数据的全部潜力所驱动的。雷达传感器的使用已经增长了…

Visual Studio 下的Qt工程无法打开 “xxx.ui“ 文件和LNK1104 无法打开文件“Qt5Cored.lib”错误

一、问题&#xff1a; VS下Qt环境准备好后&#xff0c;创建了Qt工程然后点击 Form Files 下的 “xxx.ui” 文件&#xff0c;在弹出 Qt 设计师 界面后闪退并显示如下错误&#xff1a; 二、解决 1、工具栏处依次点击&#xff1a;扩展 一> Qt VS Tools 一> options 弹出选…

windows2008修改远程桌面端口,如何果断修改远程桌面端口,确保系统安全无忧!

在数字化时代的浪潮中&#xff0c;Windows 2008系统以其卓越的稳定性和可靠性&#xff0c;赢得了众多企业和个人的青睐。然而&#xff0c;随着网络安全问题的日益严峻&#xff0c;如何确保远程桌面连接的安全&#xff0c;成为了摆在我们面前的一道难题。今天&#xff0c;我将为…

【HMGD】STM32/GD32 I2C DMA 主从通信

STM32 I2C配置 主机配置 主机只要配置速度就行 从机配置 从机配置相同速度&#xff0c;可以设置第二地址 因为我的板子上面已经有了上拉电阻&#xff0c;所以可以直接通信 STM32 I2C DMA 定长主从通信代码示例 int state 0; static uint8_t I2C_recvBuf[10] {0}; stat…

Python图像处理:从基础到高级的全方位指南

目录 第一部分&#xff1a;Python图像处理基础 1.1 图像处理概念 1.2 Python图像处理常用库 1.3 实战案例&#xff1a;图像显示与保存 1.4 注意事项 第二部分&#xff1a;Python图像处理高级技巧 2.1 图像变换 2.2 图像增强 2.3 图像复原 第三部分&#xff1a;Python…

注意力机制,代码简析

2017年Google在论文《Attention is All You Need》中提出了Transformer模型&#xff0c;并成功应用到NLP领域。该模型完全基于自注意力机制Attention mechanism实现&#xff0c;弥补了传统的RNN模型的不足。宏观层面&#xff0c;Transformer可以看成是一个黑箱操作的序列到序列…

SpringCloud Alibaba的相关组件的简介及其使用

Spring Cloud Alibaba是阿里巴巴为开发者提供的一套微服务解决方案&#xff0c;它基于Spring Cloud项目&#xff0c;提供了一系列功能强大的组件&#xff0c;包括服务注册与发现、配置中心、熔断与限流、消息队列等。 本文将对Spring Cloud Alibaba的相关组件进行简介&#xff…

Unity3D读取Excel表格写入Excel表格

系列文章目录 unity工具 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、读取Excel表格&#x1f449;二、写入Excel表格&#x1f449;三、Fileinfo和Directoryinfo的操作&#x1f449;四、壁纸分享&#x1f449;总结 &#x1f449;前言 有时候难免会遇到读取文件写…

【实验内容-1】自定义异常类的应用

目录 【任务介绍】 【任务目标】 【任务分析】见具体任务介绍 【任务实现】 【实验结果&#xff08;包括输入数据和输出结果&#xff09;】 【任务介绍】 1.写一个抽象类&#xff1a;账户类(Account) 包含属性: id:账户号码 name:账户姓名 balance:账户余额 deposit…

基于Matlab实现声纹识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 声纹识别&#xff0c;也称为说话人识别&#xff0c;是一种通过声音判别说话人身份的生物识别技…

线段(线性dp)

题目链接&#xff1a;[TJOI2007] 线段 - 洛谷 思路&#xff1a; f[i][0]表示走完第i行且停在第i行的左端点最少用的步数 f[i][1]同理&#xff0c;停在右端点的最少步数。 那么转移就很简单了&#xff0c;走完当前行且停到左端点&#xff0c;那么一定是从右端点过来的&#x…

“腾讯云 AI 代码助手”体验

一、“腾讯云 AI 代码助手”体验 1、注册账号并进行实名认证 2、进入开发环境 3、体验javascript简单函数 代码如下&#xff1a; //请写一个两个日期计算的函数 function dateDiff(date1, date2) {return date2.getTime() - date1.getTime(); } var date1 new Date("2…

Elastic Cloud Serverless 定价和打包

作者&#xff1a;来自 Elastic Clint Scott 借助 Elastic Cloud Serverless&#xff0c;我们通过针对安全性、可观察性和 Elasticsearch 的新解决方案特定定价和打包来简化并提供更高的灵活性。 Elastic Cloud 定价的演变 Elastic Cloud 长期以来一直是使用 Elastic Stack 的最…

# 分布式链路追踪_skywalking_学习(1)

分布式链路追踪_skywalking_学习&#xff08;1&#xff09; 一、APM 系统概述 1、什么是 APM 系统&#xff1f; APM &#xff1a;全称 Application Performance Management 即应用性能管理系统。是对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。…

【leetcode】排序算法总结

第 11 章 排序 - Hello 算法动画图解、一键运行的数据结构与算法教程https://www.hello-algo.com/chapter_sorting/ 堆排序 #include <iostream> #include <vector>using namespace std;/* 堆的长度为 len &#xff0c;从节点 i 开始&#xff0c;从顶至底堆化 *…

【vue部署】Apache部署vue项目

Apache部署vue项目 Apache 下载安装(windows)1. 下载2. 安装3. 启动服务 vue 部署配置1. 基础配置2. 解决页面刷新问题 Apache 下载安装(windows) 1. 下载 Apache 2.4.59 下载地址&#xff1a;httpd-2.4.59-240404-win64-VS17.zip Visual C Redistributable for Visual Studi…

Python解析网页-XPath

目录 1、什么是XPath 2、安装配置 3、XPath常用规则 4、快速入门 5、浏览器XPath工具 1.什么是XPath XPath&#xff08;XML Path Language&#xff09;是一种用于在XML文档中定位和选择节点的语言。 它是W3C&#xff08;World Wide Web Consortium&#xff09;定义的一种标…

Springboot+Element_分页+显示+搜索+完整版

目录 显示效果 新建项目时选择的依赖 文件的目录结构 一、准备工作 1、配置文件 2、pom增加PageHelper 3、在idea中建立数据库连接&#xff0c; 4、新建peom表&#xff08;如已建好&#xff0c;则忽略本条&#xff09; 二、新建前端页面index.html&#xff08;未连后端…

Redis --学习笔记

Redis简介 一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件 特点&#xff1a; 基于内存存储&#xff0c;读写性能高 适合存储热点数据&#xff08;热点商品、资讯、新闻&#xff09; 企业应用广泛 Redis默认端口号为6379 Redis是用…

Web安全:企业如何抵御常见的网络攻击?

近年来随着人类社会向数字世界的加速发展&#xff0c;勒索软件攻击事件在全球范围内呈现快速上升的态势&#xff0c;几乎所有国家的政府、金融、教育、医疗、制造、交通、能源等行业均受到影响&#xff0c;可以说有互联网的地方就可能发生勒索软件攻击事件。 Web安全是一个大课…