首页
学习
活动
专区
圈层
工具
发布

【Linux系统编程】(十五)揭秘 Linux 环境变量:从底层原理到实战操作,一篇吃透命令行参数与全局变量!

比如:在终端中设置MY_ENV=hello并导出为环境变量后,终端中运行的bash、python、gcc等进程,都能获取到MY_ENV的值。...2.3 SHELL:当前的 “命令行解释器” SHELL变量定义了当前使用的命令行解释器,Linux 系统中默认的 shell 是/bin/bash(Bash shell),其他常见 shell 包括...environ[i]}是 bash 的间接引用语法,用于获取environ[ 5.3 通过getenv命令:系统调用级获取 bash 中可以通过awk调用系统函数getenv,直接获取指定环境变量的值...6.1 实验 1:未导出的本地变量不能被继承 # 1. 父进程设置本地变量(不export) LOCAL_VAR="只能在当前终端使用" # 2..../child.sh 运行结果: 父进程LOCAL_VAR: 只能在当前终端使用 子进程LOCAL_VAR: 未获取到 结论:未导出的本地变量仅当前进程有效,不能被子进程继承

51310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    兄弟!你真的懂 Skill 吗?

    自动注入环境变量:$WORK_DIR、$OUTPUT_DIR、$SKILLS_DIR 4. bash -lc "python3 scripts/xxx.py" 在隔离目录中执行 5....这也是为什么框架用 shell_quote() 做命令安全处理——_utils.py 里的这个函数会转义特殊字符,防止命令注入。这是沙箱安全的第一道防线,容器隔离是第二道。...## 前端美学指南 - 选择美观独特的字体,避免 Arial/Inter... - 使用 CSS 变量保持一致性... - **永远不要** 使用通用 AI 生成的美学... 3.3 执行流程 用户...LLM 怎么使用 GIFBuilder、validate_gif 这些函数。...模式二中 LLM 是"调用者",模式三中 LLM 是"开发者"——它不只是按说明书操作,而是理解了库的 API 后,自己设计算法、组合函数、生成新代码。

    54610

    【linux命令讲解大全】198.Shell命令解析:export和exportfs的用途和参数解释

    对没有导出属性的函数/变量执行删除导出属性操作。 在 -- 后使用选项。 Q&A Q:对变量或函数设置导出属性有什么用?...A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。 Q:如果我编写的脚本修改了已有的环境变量的值,那么执行它会在当前终端生效吗?会影响之前以及之后打开的终端吗?...之前的不会影响,之后的除非是修改了 ~/.bashrc 这种启动终端时加载的脚本。 Q:我脚本文件中调用 ~/.bashrc 中定义的函数和变量。...为什么在新打开的终端中通过 sh 方式调用该脚本或直接运行这个当前用户有执行权限的脚本却不能使用这些函数和变量? A:请在 ~/.bashrc 文件中增加 export 它们的语句。...Q:数组和关联数组也可以设置导出属性吗? A:是可以的(如果你的bash支持它们),不过有些问题。 Q:为什么我在查看变量或函数导出属性的时候显示的开头是 declare?

    93310

    【linux命令讲解大全】065.深入了解export命令:设置导出属性与环境变量管理

    对没有导出属性的函数/变量执行删除导出属性操作。 在 -- 后使用选项。 Q&A Q:对变量或函数设置导出属性有什么用?...A:它们会成为环境变量,可以在脚本中访问它们,尤其是脚本中调用的子进程需要时。(参考链接4) Q:如果我编写的脚本修改了已有的环境变量的值,那么执行它会在当前终端生效吗?...之前的不会影响,之后的除非是修改了 ~/.bashrc 这种启动终端时加载的脚本。(参考链接1) Q:我脚本文件中调用 ~/.bashrc 中定义的函数和变量。...为什么在新打开的终端中通过 sh 方式调用该脚本或直接运行这个当前用户有执行权限的脚本却不能使用这些函数和变量? A:请在 ~/.bashrc 文件中增加 export 它们的语句。...Q:为什么我在查看变量或函数导出属性的时候显示的开头是 declare? A:因为 declare 也能够设置变量或函数的导出属性,详见 declare 命令。

    69110

    从0开发大模型之实现Agent(Bash 到 SKILL)

    代码逻辑极薄 你几乎看不到复杂状态机、计划器、子任务调度器——这些都交给模型的「思考 + 工具调用策略」来涌现。 3.3 为什么这样设计? 1....: 我将帮您统计当前目录下的代码行数和功能,并分析每个文件的执行流程,然后输出到HTML文件中。...让我逐一读取这些文件的内容进行分析。... 2026-01-18 20:59:49,203 - INFO - 我将继续分析每个文件的执行流程、函数和类。让我逐一读取这些文件的内容进行分析。...让我逐一读取并分析每个文件的执行流程、函数和类。... 2026-01-18 21:00:01,990 - INFO - 我将继续分析其他文件的内容。让我逐一读取并分析每个文件的执行流程、函数和类。...让我逐一读取并分析每个文件的执行流程、函数和类。... 2026-01-18 21:00:09,168 - INFO - 我将继续分析其他文件的内容。让我逐一读取并分析每个文件的执行流程、函数和类。

    64710

    技术分享 | 某二手交易平台数据安全实践(建议对照自检)

    内容大纲 数据导出工单功能的价值 数据导出工单功能 1.0 到 2.0 的改造 数据分类分级判定功能 文末有奖留言 2为什么需要数据导出工单?...Python 的 sqlparse 模块是 SQL 的解析库,但是在使用过程中遇到了很多问题,下面列举一些我遇到的问题: 连接查询:使用连接查询的场景,包含不限于 inner join、left join...子查询问题:不管是 SELECT 后面使用子查询,还是 FROM 后面使用子查询,还是 WHERE 后面使用子查询,都会对获取表名列表结果产生影响,可能无法获取预期内的表名列表。...函数问题:SELECT 后面使用了函数,如常见的聚合函数,字符串处理的函数等都会对获取字段列表结果产生影响,甚至大部分情况下都是结果未达到预期。...希望该功能在设计和实施中,可以牵引业务人员在使用数据导出功能的同时,符合安全管控规范,有效提升数据防泄漏能力。 改造后,数据导出工单数量在同周期内下降了 57% 且工单撤回率提升 25%。

    48110

    Shell编程基础01

    什么是shell脚本 命令、变量和流程控制语句等有机的结合起来,shell脚本擅长处理纯文本类型的数据,而linux中,几乎所有的配置文件,日志,都是纯文本类型文件。...shell 的变量 什么是变量 变量可以分为两类:环境变量(全局变量)和普通变量(局部变量) 环境变量也可称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程shell中使用,环境变量又可分为自定义环境变量和...Bash内置的环境变量 普通变量也可称为局部变量,只能在创建他们的Shell函数或Shell脚本中使用。...或 export -p 为 shell 变量设定导出属性。 标记每个 NAME 名称为自动导出到后续命令执行的环境。如果提供了 VALUE 则导出前将 VALUE 作为赋值。...变量可以在自身的Shell及子Shell中使用。 常用export来定义环境变量。 执行env默认可以显示所有的环境变量名称及对应的值。 输出时用“$变量名”,取消时用“unset变量名”。

    76510

    shell 教程,这次我要步步详解,学会了以后能早点下班

    Shell 变量的作用域可以分为三种: 有的变量只能在函数内部使用,这叫做局部变量(local variable); 有的变量可以在当前 Shell 进程中使用,这叫做全局变量(global variable...全局变量只在当前 Shell 进程中有效,对其它 Shell 进程和子进程都无效。如果使用export命令将全局变量导出,那么它就在所有的子进程中也有效了,这称为“环境变量”。...通过 export 导出的环境变量只对当前 Shell 进程以及所有的子进程有效,如果最顶层的父进程被关闭了,那么环境变量也就随之消失了,其它的进程也就无法使用了,所以说环境变量也是临时的。...因为我还没上那些专业的工具呢。后头会上。 shell 条件测试 常用的测试命令有以下三中方式,其中使用最多的是第二种。...shell 函数 #其标准写法为: function 函数名() { #的书写函数的方法(带括号) 指令…… return n } #简化写法1: function 函数名{ #不推荐使用此方法

    4.7K20

    环境变量简介

    那问题来了,我们怎么知道这个程序在哪,然后再去main函数里面对应的执行相应命令行参数对应的功能呢? 根据所学的,我们可以明白命令行是bash控制的,那么也就是bash去找。...去哪找:就是环境变量PATH的应用了。 这样就和我们的环境变量联系在一起了。 那么PATH是怎样操作: 下面可能会有个疑问: 为什么此时要加入..../才能运行, 因为此时生成的a.out可执行文件在当前目录,而没有在PATH中,不告诉它就会默认到这里面找,会找不到,因此这样写如果非要让a.out成立可以把当前路径加在PATH后面:也就是PATH=$...vim中修改的操作,这样它不会消失只有vim中删掉并且unset掉才会真正消失) 3.1.4 unset: 用来取消导出到或者写入到env中的环境变量; 用法:unset + name 这是我们用export...这就是一个本地变量;也就是只有通过bash进行命令行操作才可以执行,也就是说如果bash后的子进程是用不了的。 下面也可以放入环境变量表中。

    31500

    Linux环境变量【终】

    ✈️main函数参数   在main函数中其实还存在一个参数:char *env[],和 argv类似,也是一个指针数组,不同的是 env的每一个指针指向的是每一行的环境变量!   ...我们都知道,程序的默认父进程都是bash,那么程序就是bash的子进程,而子进程的 环境变量表其实就是从父进程bash那里继承的。   ...我们来看一个有趣的现象:   export 我们刚刚学过,是导出自定义环境变量的命令,可以下面这个 HEHE 为什么不使用export也能定义出来?它也是环境变变量吗?而且还能被echo识别?...其实,这个变量叫做 本地变量,至于为什么本地变量不能被getenv获取,这是因为 本地变量不是环境变量,本地变量只在bash有效,子进程不会继承本地变量。...#使bash_profile内的环境变量生效   当然我这台机器的Linux系统bash_profile文件并未生效,可能是登录时bash并未读取.bash_profile文件,所以不能生效,但是大部分人应该是没问题的

    31910

    shell 加密传输 | Linux后门系列

    没有搞懂因为什么,所以暂时放弃用管道符来加密nc了 【 openssl 】 ubuntu 16.04 默认自带 openssl ,我们可以使用 openssl 来加密我们的流量,我只是了解 https...工作流程,如何打包,如何传输,但是对于内部使用的算法怎么算的不是很理解,所以今天特意买了两本书看一看,过一段时间就会到了,不过不影响 openssl 加密我们的流量 这次的加密在某一些层面违背了我之前的原则...上面的都是看了网上文章总结出的方法,不过我隐隐约约觉得哪里不对劲,我为什么要在目标主机上生成公私钥再传输到攻击机上???...成功反弹shell,肯定是最近熬夜多了,脑子不灵光了 【 python3 】 除了 openssl 工具来进行加密连接,我还有其他的招,没错就是 python3 , 既然 python3 可以使用 -c...报错原因是 str没有decode这个方法,很明显,是因为 Python 3 中str 对象没有decode方法了,所以我们变型,结合之前我们的 python3 反弹shell的 payload python3

    2.2K10

    性能工具之Taurus入门(安装篇)

    前言 相信大家对这个工具都很陌生,国内能搜索到的资料很少,那么为什么突然想起来推荐这个工具呢?...第一,我觉得它很好用;第二,为后面介绍的服务端性能自动化框架铺成 Taurus简介 Taurus是 BlazeMeter 的核心组件,其是一个开源自动化框架,用于运行各种开源负载测试工具和功能测试工具,...或 JSON 来描述性能测试,这就是我们想要的 test as code 测试方案定义和设计 测试场景参数化和执行 测试场景结果分析 将上述所有流程集成到持续交付流程中 以上所有的自动化 它可以根据我们选择的性能测试类型自动下载对应的工具...能够支持直接解析原生脚本,如 JMeter JMX文件 能够将多个测试脚本或 DSL驱动的测试合并场景 支持实时报告(不推荐 BlazeMeter 收费 Dashboard) 多种测试输出格式,包括但不限于.../9.0.1.tar.gz tar -zvxf 9.0.1.tar.gz cd pip-9.0.1 # 使用 Python 3 安装 python3 setup.py install # 创建链接

    2.7K20

    【Linux系统】探索命令行参数与环境变量的本质

    也欢迎关注我的blog主页: 落羽的落羽 一、命令行参数 学了C语言和C++,来思考一个问题: main函数能不能带参数?...数组的元素,是在命令行执行程序时读取的子串! 命令行参数,可以用来实现一个程序读取不同选项而实现不同的子功能!.../test 这就是PATH的作用,当你输入一个命令而不指定目录时,系统会遍历 PATH 中配置的目录,查找与命令名匹配的可执行文件,找到后立即执行;若遍历完所有目录都没找到,就会报错!...命令行参数、环境变量,也是数据,默认是在bash内部,内存中的。bash启动的子进程,也能看到父进程bash的代码和数据。...如果只写XXX="abc",这种称之为本地变量,这种变量无法被子进程继承,不具有全局属性,只能在bash内访问。 本篇完,感谢阅读

    18510

    从函数到包的Python代码层次

    # 调用sum函数 total = sum( 10, 20 ) print ("函数外 : ", total) 类 为什么还要写类,函数它不香么?...这个问题有点大,我只能简单解释一下,那就是因为,类是包括了函数的,如果有一天你发现函数不够用了,那么可以用类试试,哈哈哈。 类是面向对象编程中的概念,把对象中共性的东西抽离出来而成。...类中的函数叫做方法,除了方法还有属性(也就是变量),我写个不严谨的公式:类 = 属性 + 方法,例如: class People: #定义属性 name = '' age = 0...模块 模块中可以包含模块级代码、函数和类。模块与模块之间是不能直接调用的,必须使用import关键字来导入。...最后,为了知识共享和传递,我把入门的7篇文章都导出成pdf上传了,可以在公众号后台回复“入门”下载哦。 ?

    92820

    Anaconda完全入门指南 原

    在使用过之后我才逐渐发现其实anaconda等环境管理工具究竟在做啥, 以及为什么我们需要他们来管理我们的python环境 首先我们需要先去了解Anaconda诞生的目的.再去了解Anaconda的使用方法...解释器 解释器根据python的版本大概分为2和3. python2和3之间无法互相兼容, 也就是说用python2语法写出来的脚本不一定能在python3的解释器中运行....包集合 包集合中包含了自带的包和第三方包, 第三方包我们一般通过pip或者easy_install来下载, 当一个python环境中不包含这个包, 那么引用了这个包的程序不能在该python环境中运行....python3在语法上是不兼容的, 那我的机器上应该装python2还是python3呢, 可能一开始选一个学习就好了, 但是如果你要开发的程序必须使用python2而不能使用python3,那这时候你就不得不再下载一个...包管理 如果我在本地只有一个python环境那我所有程序用到的各种包都只能放到同一个环境中, 导致环境混乱, 另外当我将写好的程序放到另一电脑上运行时又会遇到缺少相关包, 需要自己手动一个个下载的情况,

    1.2K20

    QClaw 技能开发完整教程

    通过技能,你可以:给 AI 提供特定领域的专业知识封装一套工作流程或工具链让 AI 在特定场景下自动调用你的脚本举个例子:pdf 技能 → 让 AI 知道如何处理 PDF 文件xlsx 技能 → 让 AI...frontmatter 字段说明 字段必需说明name✅技能唯一标识符,只能包含小写字母、数字、连字符description✅触发条件描述,AI 用它匹配用户意图allowed-tools❌允许使用的工具列表...,不写则使用默认配置4.3 实战案例 展开...当用户要求为小说绘制人物关系图、生成人物关系网络图、制作小说人物图谱时使用此技能。支持悬停查看人物详情、搜索、缩放拖拽。可处理 GBK/UTF-8 编码的中文 txt 文件。...运行以下命令: ```bash python3 scripts/extract_graph.py {input_file} {output_file}

    43440

    【玩转腾讯云】api命令行工具的前世今生:qcloudcli、tccli

    :$ complete | grep qcloudclicomplete -C '/usr/bin/qcloud_completer' qcloudcli4)使用自动补全功能在 qcloudcli 中使用...~/.bash_profile 中并执行source ~/.bash_profile$ vim ~/.bash_profile添加如下内容,按ESC键后输入:wq保存退出complete -C '/usr...为了保证每次启动自动补全命令均有效,需要将自动补全的命令写入配置文件 ~/.bash_profile 中并执行source ~/.bash_profile$ vim ~/.bash_profile添加如下内容...ap-guangzhou /ap-shanghai/ap-chongqing/ap-chengdu/……output有3种可选:table text json不指定--profile name的话就是默认的配置...,我喜欢默认配置tccli configure set secretId $secretId secretKey $secretKey region $region output $output实际执行中

    2.9K41

    使用Unix工具解析JSON

    你可以编写一个在Bash 4或zsh中工作的脚本,其中之一在大多数macOS、Linux和BSD系统上都是可用的,但编写一个适用于这种多语言脚本的shebang行将非常困难。...实现一个良好的JSON解析器并不是一两行代码,甚至不是一个简短的五行片段就能完成的。 为什么不使用awk、sed或grep?...因此,使用awk/sed/grep的这些快速而简易的解决方案很可能较为脆弱,如果输入格式的某些方面发生变化,比如压缩空白字符、在JSON对象中增加额外的嵌套层级,或者字符串内的转义引号,这些方案就可能会失效...一个足够健壮、能处理所有JSON输入而不崩溃的解决方案也会相对较大且复杂,因此与添加对jq或Python的额外依赖相比,区别并不会太大。...我曾经不得不处理由于shell脚本中不良输入解析而导致大量客户数据被删除的情况,所以我从不推荐可能在这种方式上脆弱的快速和粗鲁的方法。我强烈推荐只使用经过测试的现有JSON解析器。

    1.5K10
    领券