Linux 命令行参数与环境变量:基础用法与底层原理
前言
在 Linux 开发中,命令行参数和环境变量是两个核心基础:命令行参数让程序能接收外部输入,实现灵活配置;环境变量则定义了系统运行环境,影响程序的查找路径、权限等关键行为。无论是编写脚本、开发应用,还是日常运维,掌握这两者的用法都是必备技能。
一、命令行参数:让程序接收外部输入
命令行参数是程序运行时通过终端传入的参数,比如 ls -l /home 中,-l 和 /home 都是 ls 命令的命令行参数。它让程序无需修改代码,就能根据外部输入调整行为。
命令行参数的基本结构: C 语言程序中,命令行参数通过 main 函数的参数接收,标准结构如下:
#include <stdio.h>
// argc:参数个数(包含程序名本身)
// argv:字符串数组,存储具体参数(argv[0] 是程序名)
int main(int argc, char* argv[]) {
printf("程序名:%s\n", argv[0]);
printf("参数总数:%d\n", argc);
// 遍历所有参数
for (int i = 1; i < argc; i++) {
printf("参数%d:%s\n", i, argv[i]);
}
return 0;
}
argc=4:包含程序名./myproc,实际传入的参数是 3 个;argv[0]固定为程序名,argv[1]~argv[argc-1]是用户传入的参数。
二、环境变量:定义系统运行环境
环境变量是 Linux 系统中用来指定运行环境的参数,具有全局特性,能被子进程继承。它决定了命令查找路径、用户主目录、默认编辑器等关键行为。
2.1 常见环境变量及含义
| 环境变量 | 核心作用 | 示例值 |
|---|---|---|
PATH | 指定命令的搜索路径,多个路径用 : 分隔 | /usr/bin:/bin:/usr/local/bin |


