Linux环境变量详解命令行参数

news2025/4/14 22:22:48

🌟目录

  • 📝1. 什么是环境变量?
  • 📝2. 查看系统的环境变量
  • 📝3. 添加环境变量
  • 📝4. 环境变量用例
  • 5. 命令行参数


好雨知时节
当春乃发生
随风潜入夜
润物细无声


📝1. 什么是环境变量?

环境变量是操作系统中用于存储系统和用户信息的动态命名值。它们可以影响程序的行为和系统的运行方式。环境变量通常包含诸如系统路径、用户目录、配置设置等信息。

例如:在我们编写C/C++程序时,在链接的时候,从来不知道我们的所链接的动静态库在哪里,但链接照样可以成功,生成可执行程序,原因就是有相关的环境变量帮助编译器进行查找。

  • 动态性:环境变量可以在程序运行时被修改,适应不同的运行环境。

  • 作用域:环境变量可以是全局的(对所有用户和进程可见)或局部的(仅对特定进程可见)。

  • 键值对形式:环境变量以键值对的形式存储,如 KEY=VALUE。

  • 系统级和用户级:环境变量可以在系统级别配置(影响所有用户)或用户级别配置(仅影响特定用户)。

  • 可访问性:程序可以通过系统调用或库函数访问环境变量,通常用于获取配置信息。

  • 优先级:同名环境变量可能存在于不同的作用域中,局部变量通常优先于全局变量。

📝2. 查看系统的环境变量

非常简单:

echo $PATH

即可查看到系统的环境变量。其中环境变量路径是以冒号为分隔符。

在这里插入图片描述

Tips: which查找路径

在这里插入图片描述


📝3. 添加环境变量

export PATH=$PATH:/home/vimer/Test # 冒号后跟需要添加的路径

这里$PATH代表环境变量里原来的内容,向其后面添加我们要添加的环境变量。

示例:在Test文件夹下,make生成mytest可执行程序后,通常的运行方法是:./mytest。当我们把当前文件目录添加到系统的环境吗变量后,我们可以直接在命令行mytest即可成功执行程序。

在这里插入图片描述

因此,把可执行程序,拷贝到系统默认路径下,就让我们可以直接访问的方式——相当于Linux下软件的安装


📝4. 环境变量用例

#include <stdio.h>

int main(int argc,char *argv[],char* envp[]){
  //指针数组
  for(int i = 0;envp[i];i++){
    printf("envp[%d]->%s\n",i,envp[i]);
  }

  return 0;
}

在这里插入图片描述


环境变量本质就是内存级的一张表, 这张表由用户在登陆系统的时候,进行给特定用户形成属于自己的环境变量表。
环境变量中的每一个,都有自己的用途:有的是进行路径查找的,有的是进行身份认证的,有的是进行动态库查找的,有的是用来确认当前路径等等;每一个环境变量都有自己的特定应用场景。


5. 命令行参数

#include <stdio.h>

int main(int argc,char *argv[]){
  //指针数组
  //存放参数
  
  //for(int i = 0;argv[i];i++){
  for(int i = 0;i<argc;i++){
    printf("argv[%d]->%s\n",i,argv[i]);
  }

  return 0;
}

char *argv[]为指针数组,-a -b -c 都为命令行参数列表选项,argc为表元素个数。

在这里插入图片描述

可以看到,o号下表永远代表着可执行程序,argc是 参数个数。


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

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

相关文章

Matlab simulink建模与仿真 第十二章(信号属性库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号属性库中的模块概览 1、信号属性操作库 注&#xff1a;数据类型转换模块在第二章中有介绍&#xff0c;本章不再赘述&#xff1b;数据类型传播实例在本章也不进行介绍。 2、信号属性检测库 二、数据类…

OPENAI的 o1非常强-可是也被网友们玩坏了

OpenAI o1的潜力 OpenAI o1作为当前人工智能领域的先锋&#xff0c;展现了强大的推理能力和文本生成水平。其在多个标准测试中表现优异&#xff0c;甚至在某些任务上超越了人类PhD水平。这让人们对其能力充满期待。根据数据&#xff0c;o1在处理复杂语句和逻辑推理解题时&…

Qt常用控件——QTextEdit

文章目录 QTextEdit核心属性和信号同步显示示例信号示例 QTextEdit核心属性和信号 QTextEdit表示多行输入框&#xff0c;是一个富文本和markdown编辑器&#xff0c;并且能在内存超出编辑框范围时自动提供滚动条。 QPlainTexEdit是纯文本&#xff0c;QTextEdit不仅表示纯文本&a…

AI界的新宠儿:L20显卡凭什么让云服务商趋之若鹜?

NVIDIA L20 GPU 随着 AI 模型的规模和复杂度不断攀升&#xff0c;对计算能力的渴求也与日俱增。对于 C 端用户的朋友们而言&#xff0c;A 系列和 H 系列的价格过于昂贵&#xff0c;而 RTX 4090 在更高的现存需求面前也无能为力。 在这个背景下&#xff0c;一款新的 GPU 悄然崛起…

SQL入门题

作者SQL入门小白&#xff0c;此栏仅是记录一些解题过程 1、题目 用户访问表users&#xff0c;记录了用户id&#xff08;usr_id&#xff09;和访问日期&#xff08;log_date&#xff09;,求出连续3天以上访问的用户id。 2、解答过程 2.1数据准备 通过navicat创建数据&#xf…

如何将一个软件添加到开始菜单以快速打开?

以QQ音乐为例&#xff1a; 1.先找到QQMusic.exe 2.右键创建快捷方式到桌面 3.经过第二步&#xff0c;桌面上就有了QQMusic的快捷打开方式&#xff0c;以后就可以通过双击这个快捷方式打开QQMusic&#xff0c;如果想从开始菜单打开&#xff0c;还需要一些工作&#xff1a;请你…

数据结构-线性表顺序单项链表双向链表循环链表

1数据结构概述 数据结构是计算机组织、存储数据的方式。是思想层面的东西&#xff0c;和具体的计算机编程语言没有关系。可以用任何计算机编程语言去实现这些思想。 1.1 数据逻辑结构 反映数据逻辑之间的逻辑关系&#xff0c;这些逻辑关系和他们咱在计算机中的存储位置无关。…

专题三_二分查找算法_算法详细总结

目录 二分查找 1.⼆分查找&#xff08;easy&#xff09; 1&#xff09;朴素二分查找&#xff0c;就是设mid(leftright)/2,xnums[mid],t就是我们要找的值 2&#xff09;二分查找就是要求保证数组有序的前提下才能进行。 3&#xff09;细节问题&#xff1a; 总结&#xff1a…

P3565 [POI2014] HOT-Hotels

~~~~~ P3565 [POI2014] HOT-Hotels ~~~~~ 总题单链接 ~~~~~ 2024.9.10&#xff1a;DP方程有问题&#xff0c;已修改&#xff0c;同时更新了长链剖分优化版本。 思路 ~~~~~ 设 g [ u ] [ i ] g[u][i] g[u][i] 表示在 u u u 的子树内&#xff0c;距离 u u u 为 i i i 的点的…

了解国产光耦合器的核心功能和应用

光耦合器或光隔离器是现代电子产品中的关键组件&#xff0c;它能够在没有电接触的情况下在系统的不同部分之间安全地传输信号。这是通过基于光的信号传输来实现的&#xff0c;它可以隔离电路&#xff0c;防止高压损坏敏感元件。近年来&#xff0c;国产光耦合器取得了重大进展&a…

孙怡带你深度学习(1)--神经网络

文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果&#xff0c;我们可以知道&#xff0c;在学习深度学…

OpenHarmony鸿蒙开发( Beta5.0)智能油烟机开发实践

样例简介 本Demo是基于Hi3516开发板&#xff0c;使用开源OpenHarmony开发的应用。本应用主要功能有&#xff1a; 可以搜索本地指定目录的图片和视频文件&#xff0c;并可进行点击播放。 可以通过wifi接收来自手机的美食图片以及菜谱视频&#xff0c;让我们对美食可以边学边做…

昨晚,OpenAI震撼发布o1大模型!我们正式迈入了下一个时代。

大半夜的&#xff0c;OpenAI抽象了整整快半年的新模型。 在没有任何预告下&#xff0c;正式登场。 正式版名称不叫草莓&#xff0c;草莓只是内部的一个代号。他们的正式名字&#xff0c;叫&#xff1a; 为什么取名叫o1&#xff0c;OpenAI是这么说的&#xff1a; For complex …

TCP核心机制

TCP基本特点&#xff1a;有连接&#xff0c;面向字节流&#xff0c;全双工&#xff0c;可靠传输(TCP最核心的机制) 核心机制一(确认应答): 在网络中&#xff0c;可能我们传输的消息会因为诸多原因导致发送到对方手中的顺序不一样&#xff0c;举个例子&#xff1a; 在这张图中…

【鸿蒙开发从0到1 支付宝界面布局实现day11】

鸿蒙开发案例-支付宝界面 一.布局思路二.页面搭建1.整体stack布局底部的tab2.主体区域的架子:头部主体界面(层叠关系,主题页面可以滚动)3.给主体内容填内容(1).完成快捷导航(2)服务导航 4.装饰图片 三.整体效果展示1.效果展示2.完整代码演示 四.总结 一.布局思路 整体stack布局…

成型的程序

加一个提示信息 加上python 常用的包 整个程序打包完 250M 安装 960MB matplot numpy pandas scapy pysearial 常用的包 (pyvisa)… … 啥都有 Python 解释器组件构建 要比 lua 容易的多 &#xff08;C/Rust 的组件库)

Vue3 父组件向子组件传值:异步数据处理的显示问题

一、问题场景 假设我们有一个父组件和一个子组件&#xff0c;父组件需要经过一些复杂的计算或者异步操作才能得到要传递给子组件的值。在数据还没有准备好的时候&#xff0c;子组件尝试获取并显示这个值&#xff0c;这就可能导致子组件没有数据可显示或者显示了一个不正确的初…

简单有趣的python小程序(涵源代码)

目录 tkinter 计算器 2.计算题练习 猜数字 烦人的程序 无法拒绝的请假条。。。 爬虫 你想看豆瓣评分前十的电影? WXpython 记事本&#xff08;可保存&#xff09;​编辑 数字逻辑 解方程 tkinter 计算器 import tkinter as tk import tkinter.messagebox as mroot…

使用ChatGPT撰写论文,一定要掌握加强理论深度的八个策略!

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。 在学术论文的写作中,加强论文的理论深度是非常重要的一个…

nacos明明配置了远程连接地址却一直连接本地的详细配置解释

大家时间都很珍贵&#xff0c;我直接把方法放这 这个是yml文件&#xff0c;我们配置yml文件的时候&#xff0c;一定要把他的服务发现地址写了 这里是针对bootstrap做出的文件&#xff0c;注意名字&#xff0c;要和我们在yml文件里面的spring名字一样 yml discovery:是发现的意…