【Linux】--环境变量

大家好呀,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流哦
本文由:残念ing原创CSDN首发,如需要转载请通知
个人主页:残念ing-CSDN博客,欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:[残念ing 的【Linux】系列专栏——CSDN博客]
请添加图片描述

目录

  • 1 命令行参数
    • 1.1 为什么要有?
  • 2 ***环境变量(char* env[])
    • 2.1查看环境变量
    • 2.2常见的环境变量
      • PATH:指定命令的搜索路径
      • HOME:当前用户对应的家目录(用户登录到Linux系统中时,默认的目录)
      • SHELL 当前shell,它的值通常是/bin/bash
      • PWD:保存当前进程所在的路径
  • 3 系统提供的具有“全局”属性的变量
    • 3.1 环境变量、本地变量
    • 3.2 为什么环境变量要具有全局属性呢???

学习目标:
1 命令行参数
2 环境变量(char* env[])
3 系统提供的具有“全局”属性的变量

1 命令行参数

int main(int argc,char* argv[])//argc:参数个数、argv:参数的清单
{printf("argc:%d\n",argc);for(int i=0;i<argc;i++){printf("argv[%d]:%s\n",i,argv[i]);}return 0;
}

1.1 为什么要有?

因为可以让同一个程序,可以根据命令行参数,根据选项的不同,表现出不同的功能。比如;指令中选项的实现
在这里插入图片描述

补充:
命令行启动的程序,父进程都是shell

2 **环境变量(char env[])

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数
如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。
环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性

2.1查看环境变量

int main(int argc,char* argv[],char* env[])//argc:参数个数、argv:参数的清单
{printf("argc:%d\n",argc);for(int i=0;env[i];i++){printf("env[%d]:%s\n",i,env[i]);}return 0;
}

通过**environ指针来获取,environ是指向env[]的指针

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

在这里插入图片描述

2.2常见的环境变量

PATH:指定命令的搜索路径

查看指定命令的路径
echo $PATH
PATH—路径的集合—系统可执行文件的搜索集合

添加指令路径(关闭后就没了)
PATH=$PATH:要添加的路径
要想一直都在的话,在家目录下,打开bash_profile配置文件,然后进去里面修改PATH

HOME:当前用户对应的家目录(用户登录到Linux系统中时,默认的目录)

查看环境变量HOME:echo $HOME
当我们登录的时候,系统会给一个bash进程,并且让它读取环境变量的配置文件。bash也是一个进程,命令行执行的命令都是bash的子进程,bash中的cwd就是继承bash的当前工作路径的

SHELL 当前shell,它的值通常是/bin/bash

PWD:保存当前进程所在的路径

 #include <stdio.h>#include <stdlib.h>
int main()
{printf("%s\n", getenv("PWD"));return 0;
}

$PWD:获取环境变量的方式,它保存当前进程所在的工作路径,进程可以通过它来获得自己所在的路径,比如我们新建一个文件“log.txt”,那么它的PWD就是getenv(“PWD”)/filename

补充:
USER 、LOGNAME:当前用户

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{//我可以让我的程序,识别用户身份,只让whb用户进行 访问const char *who = getenv("USER");if(strcmp(who,"whb")== 8)printf("执行程序的正常命令!\n");return 0;elseprintf("无权访问!\n");return 1;return 0;
}

HOSTNAME:云服务器对应的主机名
TERM:终端的类型
HISTSIZE:默认记录下来的指令条数
LANG:编码方式
OLDPWD:最近一次的路径

3 系统提供的具有“全局”属性的变量

3.1 环境变量、本地变量

创建本地变量:比如 直接执行 a=100
将本地变量转变为环境变量:export a=100
环境变量是可以被子进程继承下去的,而本地变量不能。也就是说环境变量可以被所有bash之后的进程全部都看到——环境变量具有“全局属性”。

3.2 为什么环境变量要具有全局属性呢???

因为:

  1. 系统的配置信息,尤其是具有“指导性”的配置信息,他是系统配置起效的一种表现
  2. 进程具有独立性,环境变量可以用来进程之间传递数据(只读数据)

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

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

相关文章

vue3中使用 HTML5 Canvas 做一个案例总结笔记

这篇文章记录了在vue3中如何使用HTML5 Canvas做一个时钟的案例, 当然主要是HTML5 Canvas, 如何需要了解更多关于vue的知识前面也已经写过好几篇了,辛苦翻一下的... 开始写代码之前我们先来了解一下关于HTML5 Canvas 的基础知识 目录 一 .基础知识 1.了解canvas 1.1 基本用法…

基于微信小程序的开放实验室预约管理系统的设计与实现,LW+源码+讲解

摘 要 使用旧方法对开放实验室预约管理系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在开放实验室预约管理系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题…

【汇编语言】更灵活的定位内存地址的方法(二)—— 从 [bx+idata] 到 [bx+si+idata]:让你灵活的访问内存

文章目录 前言1. [bxidata]1.1 更加灵活的访问内存1.2 示例1.3 问题一1.4 问题一的分析与求解 2. 用[bxidata]的方式进行数组的处理2.1 问题引入2.2 原来的解决方案2.3 新的解决方案2.3.1 改进后的程序2.3.2 还可以写成这样2.3.3 用C语言来描述看看 2.4 比较与总结 3. SI和DI3.…

[IP组播]IGMP配置实验

华为ensp拓补图 实验步骤 1.配置IP地址 AR1配置 # interface GigabitEthernet0/0/0ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet0/0/1ip address 12.1.1.1 255.255.255.0 # interface GigabitEthernet0/0/2ip address 13.1.1.1 255.255.255.0 #AR2…

Vue的局部使用

文章目录 什么是Vue?局部使用Vue快速入门 常用指令v-forv-bindv-if & v-showv-onv-model Vue生命周期 Axios案例 什么是Vue? Vue是一款构建用户界面的渐进式的JavaScript框架. 局部使用Vue 快速入门常用指令声明周期 快速入门 准备: 准备html页面,并引入Vue模块(…

DAHL:利用由跨越 29 个类别的 8,573 个问题组成的基准数据集,评估大型语言模型在生物医学领域长篇回答的事实准确性。

2024-11-14&#xff0c;由首尔国立大学创建的DAHL数据集&#xff0c;为评估大型语言模型&#xff08;LLMs&#xff09;在生物医学领域长文本生成中的幻觉问题提供了一个重要的工具&#xff0c;这对于提高模型的准确性和可靠性具有重要意义。 数据集地址&#xff1a;DAHL|生物医…

递归算法专题

题目&#xff1a; 方法一&#xff1a;不讲武德法&#xff0c;注意&#xff1a;面试不能用&#xff01;&#xff01; 代码&#xff1a; public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {//不讲伍德方法for(int x : A) C.add(x); …

验证双随机矩阵(doubly stochastic matrix) 满足C(P)=C(P^T)

验证双随机矩阵(doubly stochastic matrix) 满足C( P P P)C(P T ^T T) 双随机矩阵&#xff1a; 在数学中&#xff0c;一个双随机矩阵&#xff08;doubly stochastic matrix&#xff09;是一个满足以下条件的矩阵&#xff1a; 非负矩阵&#xff1a;矩阵中的每个元素都是非负的…

海外媒体发稿:中东地区阿拉伯邮报Arab Post新闻媒体宣发

​今天&#xff0c;我们要特别聚焦于中东地区的知名新闻媒体——阿拉伯邮报&#xff08;Arab Post&#xff09;&#xff0c;探讨其在海内外媒体宣发领域的重要性和影响力。 阿拉伯邮报作为一家备受关注的新闻媒体&#xff0c;涵盖了新闻、政治、娱乐和观点等多个领域&#xff…

Mysql-DQL语句

文章目录 DQL 语句简单查询查询表所有数据查询指定列 别名查询清除重复值查询结果参与运算 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Mysql专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月16日11点39分 DQL 语句 DQL 语句数据…

ERP软件市场展望:2025年的规模与趋势深度解析-亿发

随着数字化转型的深入&#xff0c;ERP软件市场正迎来新一轮的增长。预计到2025年&#xff0c;全球ERP软件市场规模将持续扩大&#xff0c;中国市场也将保持强劲的增长势头。 市场规模增长 根据市场研究报告&#xff0c;全球ERP软件市场在2019年已超过3,000亿美元&#xff0c;预…

推荐15个2024最新精选wordpress模板

以下是推荐的15个2024年最新精选WordPress模板&#xff0c;轻量级且SEO优化良好&#xff0c;适合需要高性能网站的用户。中文wordpress模板适合搭建企业官网使用。英文wordpress模板&#xff0c;适合B2C网站搭建&#xff0c;功能强大且兼容性好&#xff0c;是许多专业外贸网站的…

LLMs 损失函数篇

LLMs 损失函数篇 一、介绍一下 KL 散度 KL&#xff08;Kullback-Leibler&#xff09;散度衡量了两个概率分布之间的差异。公式为&#xff1a; D K L ( P ∥ Q ) ∑ P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P \| Q) \sum P(x) \log \frac{P(x)}{Q(x)} DKL​(P∥Q)∑P(x)logQ…

智慧社区管理系统提升物业服务效率与居民生活质量

内容概要 智慧社区管理系统正变得越来越重要&#xff0c;它为现代物业管理提供了全新的视角和方法。通过结合先进的技术&#xff0c;这套系统帮助物业公司优化其服务流程&#xff0c;使服务效率得到显著提升。想象一下&#xff0c;业主只需在手机上轻轻一点&#xff0c;就能完…

共享门店模式:创新零售的新篇章

​在消费升级和数字化转型的双重浪潮下&#xff0c;传统零售业正面临前所未有的挑战与机遇。其中&#xff0c;共享门店模式作为一种创新的商业模式&#xff0c;正逐渐成为实体店铺应对电商冲击、提升运营效率和市场竞争力的重要途径。本文将深入解析共享门店模式的内涵、优势、…

基于SpringBoot的旅游网站(程序+数据库+报告)

基于SpringBoot的旅游网站&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块&#xff0c;主要功能如下。 【前台】&#xff1a; - 首页&#xff1a;展示旅游网站的核心内容&#xff0c;包括推荐的旅游线路、最新的旅游资讯等。 - 旅游线路&am…

shell编程--永久环境变量和字符串显位

环境变量 echo $HOME 在终端输出后会显示家目录有个root变量 我们会提出个疑问为什么平时我们在终端输入sl 或者which等等命令会输出一些内容呢&#xff0c;这是因为这些命令都有对应的环境变量。 我们查看一下环境变量 在终端输入&#xff1a; echo $PATH 我们看一下输出…

element ui 搜索框中搜索关键字标红展示

示例如图 el-select上绑定remote-method属性 <el-select v-model"checkForm.type" filterable remote reserve-keyword :remote-method"remoteMethod" :loading"loading"><el-option v-for"item in options" :key"ite…

华为Mate 70临近上市:代理IP与抢购攻略

随着科技的飞速发展&#xff0c;智能手机已经成为我们日常生活中不可或缺的一部分。而在众多智能手机品牌中&#xff0c;华为一直以其卓越的技术和创新力引领着行业的发展。近日&#xff0c;华为Mate 70系列手机的发布会正式定档在11月26日&#xff0c;这一消息引发了众多科技爱…

《Java核心技术 卷I》用户界面中首选项API

首选项API 在桌面程序中&#xff0c;通常都会存储用户首选项&#xff0c;如用户最后处理的文件、窗口的最后位置等。 利用Properties类可以很容易的加载和保存程序的配置信息&#xff0c;但有以下缺点&#xff1a; 有些操作系统没有主目录概念&#xff0c;很难为匹配文件找到…