Linux环境变量

常见变量表格

变量名 含义/相关命令
PATH 执行程序必须先找到他,环境变量帮助系统找到目标二进制文件
PATH是系统搜索指令的默认路径
env
查看系统中所有的环境变量
名字=内容
echo $[变量名]
通过环境变量名获得变量内容
PATH=$PATH:[路径]
将路径添加至环境变量
程序运行,bash会形成环境变量表,bash拿到命令后构建命令行参数表,
用名字通过PATH索引对应的程序路径,执行程序
HOME 默认家目录路径
SHELL shell的路径
USER 登录用户
在使用 su 的时候USER和LOGNAME变量不会更新,只是身份具有root权限
使用 su - 的时候会更新环境变量
HISTSIZE 记录最新历史命令的个数
OLDPWD 上一次的pwd路径,使用 cd - 进行切换
export [变量名]=[变量值] 创建一个环境变量
unset [变量名] 取消环境变量

代码操作

获取环境变量方法:

  1. 通过main参数列表
    main函数的参数最多有三个 (int argc,char *argv[],char *env)
    env由父进程提供,结尾是null
    !!! 可执行程序的入口函数不是main函数,在linux中是_start函数,windows中是_crtStart
    _start会先扫描main的参数列表,针对参数个数执行不同的动作
    环境变量是由父进程提供的,可以被继承,因此环境变量在系统中通常有全局特性

  2. getenv(“指定变量名”) stdlib.h

    ​ char*变量接收返回值,直接获取指定变量名的值

  3. 全局变量 char **environ[];


其他内容

bash会存储两套变量:1.环境变量 2.本地变量
环境变量具有全局性

内建命令:不通过创建子进程,而是由bash自己执行,例如export
因此通过**export**可以让子进程创建变量交给父进程

通过.sh脚本文件,用bash指令执行可以批量化执行shell命令,以 #!/bin/bash 为首行