新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Linux笔记】Linux环境变量

发布时间:2026/10/1 21:33:34来源:尧图网络
【Linux笔记】Linux环境变量
一、环境变量1.1 什么是环境变量环境变量是操作系统中用于存储系统或应用程序配置信息的键值对指定操作系统运行环境的参数核心功能它们为进程提供运行时的上下文信息例如当前用户、主目录路径、命令搜索路径等。注每个进程启动时都会继承父进程的环境变量。1.2 环境变量相关命令1.2.1env— 显示当前环境变量env # 列出所有环境变量KEYVALUE 格式 ​ 示例 ​ hamberVM-0-14-ubuntu:~$ env SHELL/bin/bash HISTSIZE1000 LANGUAGEen_US.utf8: PWD/home/hamber LOGNAMEhamber HOME/home/hamber LANGen_US.UTF-8 USERhamber PATH/home/hamber/.nvm/versions/node/v20.20.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin SSH_TTY/dev/pts/0 _/usr/bin/env OLDPWD/home/hamber/code ...常见的环境变量变量名含义示例值PATH可执行文件搜索路径/usr/local/bin:/usr/bin:/binHOME当前用户主目录/home/usernameUSER当前用户名usernameSHELL当前使用的 shell/bin/bashPWD当前工作目录/home/username/projectsLANG系统语言/字符集en_US.UTF-8EDITOR默认文本编辑器vimHOSTNAME主机名VM-0-14-ubuntuLD_LIBRARY_PATH动态库搜索路径/usr/local/lib1.2.2echo— 展开变量echo $HOME # 简单展开 hamberVM-0-14-ubuntu:~$ echo $HOME /home/hamber1.2.3export— 设置环境变量export MY_VARhello #临时设置环境变量 hamberVM-0-14-ubuntu:~$ export MY_VARhello hamberVM-0-14-ubuntu:~$ echo $MY_VAR hello1.2.4readonly— 设置只读环境变量export APP_MODEproduction #临时设置环境变量 readonly APP_MODE #将环境变量设置为只读 APP_MODEstaging # bash: APP_MODE: readonly variable unset APP_MODE # bash: unset: APP_MODE: cannot unset: readonly variable1.2.5unset— 删除环境变量unset MY_VAR # 删除变量 unset VAR1 VAR2 VAR3 # 同时删除多个 unset -v MY_VAR # 明确指定删除变量 示例 hamberVM-0-14-ubuntu:~$ env | grep MY_VAR MY_VARhello hamberVM-0-14-ubuntu:~$ unset MY_VAR hamberVM-0-14-ubuntu:~$ env | grep MY_VAR1.3 持久化配置根据 shell 类型和作用范围选择不同的配置文件Bash 用户大多数 Linux文件作用范围加载时机/etc/environment全系统所有用户系统启动时/etc/profile全系统所有用户登录 shell 启动~/.bash_profile当前用户登录 shell 启动~/.bashrc当前用户非登录交互式 shell/etc/profile.d/*.sh全系统推荐放自定义脚本登录时自动 source# ~/.bashrc — 非登录交互式 shell echo export MY_VAL hello ~/.bashrc #shell退出时环境变量不会消失 # 使修改立即生效 source ~/.bashrc二、main函数命令行参数2.1 main 函数的标准参数C/C 语言中main函数接收命令行参数的标准形式为int main(int argc, char *argv[])参数类型含义argcintargument count参数个数包含程序名本身argvchar *[]argument vector参数字符串数组例如执行命令./myapp -v hello foo bar时argc 4 argv[0] → ./myapp ← 程序名始终是第一个元素 argv[1] → -v ← 第1个用户参数 argv[2] → hello ← 第2个用户参数 argv[3] → foo bar ← 引号内的空格被保留为一个参数 argv[4] → NULL ← 标准保证argv[argc] NULL关键规则argc 1至少包含程序名。argv[argc]一定是NULL指针C 标准明确规定。Shell 在传参之前已完成变量替换、通配符展开和引号去除程序收到的是处理后的纯字符串。2.2 基本使用示例代码示例打印所有参数#include stdio.h int main(int argc, char *argv[]) { printf(参数个数: %d\n, argc); for (int i 0; i argc; i) { printf(argv[%d] \%s\\n, i, argv[i]); } return 0; }$ ./demo alpha beta gamma 参数个数: 4 argv[0] ./demo argv[1] alpha argv[2] beta argv[3] gamma2.3 第三种参数 ---envpint main(int argc, char *argv[], char *envp[])解析每个环境变量参数#include stdio.h int main(int argc, char *argv[], char *envp[]) { // envp 是以 NULL 结尾的字符串数组每项格式为 KEYVALUE for (int i 0; envp[i] ! NULL; i) { printf(%s\n, envp[i]); } return 0; }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

植物叶片病害检测数据集:10类别YOLO格式解析与训练实战 2026/10/1 22:38:55

植物叶片病害检测数据集:10类别YOLO格式解析与训练实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
实施工程师面试高频题与答题逻辑:SQL、项目推动、客户沟通全解析 2026/10/1 22:38:55

实施工程师面试高频题与答题逻辑:SQL、项目推动、客户沟通全解析

最近老有朋友找我聊跳槽的事,聊来聊去发现大家都卡在同一个环节:面试。尤其是做实施工程师的朋友,普遍觉得“活儿能干,但面试不会说”。其实实施面试题没有想象中那么玄乎,它不像开发岗那样死磕算法,也不像…

阅读更多 →
解决IntelliJ IDEA Maven项目“程序包不存在”报错:排查与实战指南 2026/10/1 22:38:55

解决IntelliJ IDEA Maven项目“程序包不存在”报错:排查与实战指南

“程序包xxx.xxx.xx不存在”这个报错,几乎每个用 IntelliJ IDEA 做 Maven 项目的开发者都撞到过。它出现得毫无预兆:昨天代码还好好的,今天一打包就崩,看着满屏红字完全摸不着头脑。我在做 Java Web 项目的几年里,被这…

阅读更多 →
Oracle替换工程实践:从资产盘点、SQL改造到割接踩坑全解析 2026/10/1 22:38:54

Oracle替换工程实践:从资产盘点、SQL改造到割接踩坑全解析

接手过Oracle替换工程的人都知道,真正难的从来不是"把数据倒过去",而是"让整个系统无感地搬过去"。刚接到任务时,你面对的往往是一个运行多年的Oracle库,后面挂着一堆应用、报表、定时任务、存储过程&#xf…

阅读更多 →
生成式AI如何辅助虚幻引擎5.9渲染通道:原理、实战与排错指南 2026/10/1 22:38:46

生成式AI如何辅助虚幻引擎5.9渲染通道:原理、实战与排错指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于 Rube MCP 的 Esignatures IO 自动化实践指南——来自 awesome-claude-skills 的 Composio 工作流技能解析 2026/10/1 22:38:46

基于 Rube MCP 的 Esignatures IO 自动化实践指南——来自 awesome-claude-skills 的 Composio 工作流技能解析

AI 技能AI 插件人工智能工作流自动化 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-skills 点击…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉