Linux中《环境变量》详细介绍

目录

环境变量

基本概念

  • 环境变量(environment variables)**⼀般是指在操作系统中⽤来指定操作系统运⾏环境的⼀些参数。
  • 如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪⾥,但是照样可以链接成功,⽣成可执⾏程序,原因就是有相关环境变量帮助编译器进⾏查找
  • 环境变量通常具有某些特殊⽤途,还有在系统当中通常具有全局特性

命令行参数

查看环境变量方法

echo $NAME//NAME:你的环境变量名称
env//查看全部的环境便变量


为什么系统的命令不带"./",运行我们自己的代码要带"./"?

1.要运行一个变量,首先要找到它!我们自己的程序有"./",所以系统可以找到,倒是系统的命令呢?没错,就是环境变量的作用,环境变量里的PATH记录了一些指定的路径,系统默认会在指定的路径下查找,也就是说,PATH是系统中搜索指令的默认搜索路径。


如何理解环境变量?从存储的角度。

当用户登陆时,操作系统会给用户创建一个bash进程,bash进程会从操作系统的配置文件中读环境变量信息,并在bash内部创建一张环境变量表,一个指针数组的样子。

同时bash进程内部也会维护一张命令行参数表,用户输入命令后,是bash先拿到,bash先把命令行的一串字符,以空格为分隔符进行切分,把切分的内容放到一个字符数组中,利用PATH环境变量,找到对应的指令,进行执行。

环境变量是从哪里来的呢?

从系统的配置文件里来的!!!

还有什么方法可以不⽤带路径,直接就可以运行呢?

把当前路径添加到环境变量中,或者把程序移动到环境变量的搜索路径中。

常见环境变量

  • PATH : 指定命令的搜索路径。
  • HOME : 指定⽤⼾的主⼯作⽬录(即⽤⼾登陆到Linux系统中时,默认的⽬录)。
  • SHELL : 当前Shell,它的值通常是/bin/bash。

和环境变量相关的命令

export :添加环境变量
unset + 名称:取消环境变量
echo $名称:显示一个环境变量
env:显示所有的环境变量
set:显示所有的环境变量和本能环境变量

获取环境变量

子进程可以继承父进程传给子进程的环境变量。

getenv(const char* name):获取某个环境变量的内容

环境变量被子进程继承,有什么好处呢?

这样的好处就是,子进程可以根据一些环境变量的值进行一些个性化操作。

environ:全局变量

libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头⽂件中,所以在使⽤时 要⽤extern声明。

每个程序都会收到⼀张环境表,环境表是⼀个字符指针数组,每个指针指向⼀个以'\0'结尾的环境字符串。

理解环境变量的特性

  • 环境变量具有全局特性。
  • 在命令行中定义本地变量,本地变量不会被子进程继承,只能在bash内部使用,同时env也看不到本地变量,se既可以看到本地变量,也可以看到环境变量。

为什么export明明是一个子进程,竟然能够将环境变量写入到父进程中?

注意:export是内建命令(built_in command),不需要创建子进程,而是让bash自己亲自执行,bash自己调用函数或者系统调用完成。

相关推荐
IT成长日记2 分钟前
【Docker基础】Docker数据卷管理:docker volume inspect及其参数详解
运维·docker·容器·volume·inspect
ldj20205 分钟前
Jenkins 构建过程常见错误
运维·jenkins
ladymorgana16 分钟前
【Docker】如何设置 `wiredTigerCacheSizeGB` 和 `resources.limits.memory`
运维·docker·容器
代码讲故事1 小时前
多种方法实现golang中实现对http的响应内容生成图片
开发语言·chrome·http·golang·图片·快照·截图
chanalbert1 小时前
CentOS系统新手指导手册
linux·运维·centos
星宸追风2 小时前
Ubuntu更换Home目录所在硬盘的过程
linux·运维·ubuntu
制造数字化方案研究院2 小时前
59页|PPT|华为集成服务交付ISD业务变革总体方案:业务规则、流程、IT、组织及度量“四位一体”的管理体系
运维·华为
热爱生活的猴子2 小时前
Poetry 在 Linux 和 Windows 系统中的安装步骤
linux·运维·windows
myloveasuka2 小时前
[Linux]内核如何对信号进行捕捉
linux·运维·服务器
渲吧-云渲染2 小时前
云渲染时,电脑能关机吗?关键阶段操作指南
运维·服务器·电脑