码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 环境变量与命令行参数


    文章目录

    • 环境变量与命令行参数
      • 一、环境变量
        • 1、查看环境变量的命令
        • 2、Linux下常见的环境变量
          • I. PATH
          • II. HOME
          • III. PWD
          • IV. LANG
          • V. SHELL
          • VI. HISTSIZE
        • 3、查看环境变量的函数
        • 4、本地变量
          • 本地变量相关命令
      • 二、命令行参数
        • 命令行参数的作用

    环境变量与命令行参数

    一、环境变量

    用来配置操作系统运行环境的参数

    1、查看环境变量的命令

    1. env命令:用来查看当前用户的所有环境变量;
    2. echo $环境变量名:直接查看指定环境变量的值。

    2、Linux下常见的环境变量

    I. PATH

    img

    用来保存可执行程序的默认搜索目录。其中的冒号:是用来分隔多个搜索路径的。

    Linux下的大部分shell命令,以及用户写的程序,本质都叫做可执行程序,而shell命令直接输入就可以执行,比如ll、ps,而用户写的程序需要./xxx来执行,根本原因在于:用户程序的存储路径并不在PATH中!

    解决方法有三种:

    1. 通过cp指令将用户程序拷贝到任一默认搜索路径下。

    2. 通过PATH=$PATH:xxx将程序所在的xxx路径添加到默认搜索路径中。

    3. 通过修改配置文件添加路径(永久生效)。

    注:第二种修改环境变量的方式是一种临时修改,在用户退出后就会恢复成配置文件中的路径;

    II. HOME

    img

    用来保存当前用户的主工作目录,对应cd ~。

    III. PWD

    用来保存当前所在目录。

    IV. LANG

    用来保存当前操作系统使用的字符集。

    V. SHELL

    img

    用来保存当前用户使用的是哪一种shell。

    通过cat /etc/shells可以查看当前操作系统支持哪些shell。

    img

    VI. HISTSIZE

    img

    用来记录操作系统保存历史命令的数目。

    3、查看环境变量的函数

    char *getenv(const char *name)

    name:环境变量名

    img

    4、本地变量

    Linux下除了环境变量,还有本地变量的概念。

    所谓本地变量,就是在shell命令行下直接定义的变量,比如:

    img

    注意:本地变量一般使用大写,且定义时不能使用空格,否则就会被当成待执行的命令。

    本地变量相关命令

    1、set:查看所有的本地变量(包含环境变量);

    2、unset 变量名:删除本地变量;

    3、export 本地变量:将本地变量导出成环境变量。或者直接使用export定义环境变量,比如:export VAL=123。

    二、命令行参数

    即命令行中给定的参数,本质上就是进程运行时传递给main函数的三个参数。

    int main(int argc, char* argv[], char* env[])

    • argc:argv中有效字符串的个数。

    • argv:在命令行启动该程序时传递了哪些参数(字符串形式存储),默认第一个字符串是执行的命令,然后是跟在命令后的参数(相当于Linux指令的选项),最后一个指针是NULL。

    img

    • env:环境变量,如果忽略,则进程获得的环境变量与env命令获取到的环境变量相同。

    命令行参数的作用

    有了命令行参数,程序就可以根据不同的参数设计出不同的业务逻辑(本质上Linux中的指令选项就是这个实现原理,如ls -a)。

  • 相关阅读:
    ovirt4.5-engine 安装
    postman token 请求头添加
    图的若干定义及表示
    【漏洞复现】蓝凌EIS智慧协同平台 api.aspx接口处存在任意文件上传漏洞
    【JAVA数据结构】Stack栈的深度剖析
    RabbitMQ消息的链路跟踪
    辅助生成:低延迟文本生成的新方向
    华为机试 - 勾股数元组
    一秒出图?SDXL-Turbo实时AI绘画整合包下载
    Win11的22H2依然没有WSA(Windows Subsystem for Android)?
  • 原文地址:https://blog.csdn.net/Wyf_Fj/article/details/126242457
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号