环境变量(全)

概念

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

三个常见环境变量

PATH : 指定命令的搜索路径
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)

PWD:环境变量存储当前工作目录的路径

PATH

众所周知,命令的本质就是一个个可执行程序

那么都是可执行程序,为什么我们自己的可执行程序运行时需要加“./”呢?

因为运行可执行程序时系统会自动在PATH环境变量里面进行路径搜索

自己的可执行程序:

系统的命令:

如果我们想要自己的可执行程序执行起来也不需要“./”改怎么做?

很简单,只要让环境变量里有我们可执行程序的路径或者把我们的可执行程序放在PATH原有的路径下即可

查看PATH的默认路径:

把我们的命令的路径追加到PATH环境变量中并运行:

路径恢复(直接将原有路径赋值给PATH):

当然,如果直接赋值一个空串,大部分命令就是用不了了

不过不用担心,重启xshell就行

但是有几个命令却依然可以使用

例:echo,export

Linux的命令分类:
1.常规命令,shell fork让子进程成执行的
2.内建命令,shell命令行的一个函数,当然可以直接读取shell内部定义的本地变量喽!

默认更改环境变量,仅限于本次登录,重新登录,环境变量自动恢复(像网吧的机子)

如果我们把对应的可执行程序拷贝到PATH包含的路径下也可以实现---这个行为也可以称为---程序安装(简易版)相对的把对应可执行程序从PATH的路径下删除---这个行为可以称为---程序卸载

which寻找路径也是通过PATH去寻找的

HOME

会根据用户名来初始化家目录:

此时我是一个普通用户:

此时我是root用户:

cd $HOME直接返回家目录

PWD

环境变量存储当前工作目录的路径

pwd命令就是读取PWD的值然后打印出来

本地/环境变量

本地变量

命令行直接定义 左侧名称=右侧内容

本地变量只在bash进程内部有效,不会被子进程继承下去


环境变量

通过继承父进程bash的环境变量

具有全局性通过让所有的子进程继承的方式,实现自身的全局性!

系统环境变量通常具有全局属性,会被所有的子进程继承

查看/获取环境变量

查看
1.env

2.set

set查看包含环境变量的其他本地变量,env只能查看环境变量

获取
1.getenv

2.main传参

main函数的三个参数

3.environ

环境变量的组织方式

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

设置环境变量

我们直接更改的是bash进程内部的环境变量信息!
每一次重新登陆,都会给我们形成新的bas解释器并且新的bash解释器自动从 读取形成自己的环境变量表信息

父进程的环境变量信息又从哪里来??
环境变量信息是以脚本配置文件的形式存在的!

每一次登陆的时候,你的bash进程都会读取vim .bash_profile
配置文件中的内容,为我们bash进程形成一张环境变量表信息!

shell的本地变量

export导出环境变量(只导出在父进程bash的上下文中,只导出在内存中,并不在配置中,重启shell就会消失)

unset取消环境变量

在配置文件中配置环境变量并导出(重启shell并不会消失)

相关推荐

  1. linux设置环境变量

    2024-05-12 21:54:09       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-12 21:54:09       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-12 21:54:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-12 21:54:09       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-12 21:54:09       20 阅读

热门阅读

  1. QSharedPointer的使用

    2024-05-12 21:54:09       12 阅读
  2. 2024.5.12 Pandas 基础语法day02

    2024-05-12 21:54:09       10 阅读
  3. Dockerfile中的CMD和ENTRYPOINT

    2024-05-12 21:54:09       10 阅读
  4. 给数据库贴标签

    2024-05-12 21:54:09       9 阅读
  5. docker————容器的管理

    2024-05-12 21:54:09       8 阅读
  6. Spring AOP和IOC

    2024-05-12 21:54:09       9 阅读
  7. 5月8日爬楼梯+使用最小花费爬楼梯

    2024-05-12 21:54:09       11 阅读
  8. 从零学算法6

    2024-05-12 21:54:09       9 阅读
  9. 去除夸克-百度云右键菜单上传

    2024-05-12 21:54:09       11 阅读
  10. 八股Day2 多线程

    2024-05-12 21:54:09       10 阅读
  11. python中多态的概念及简单样例

    2024-05-12 21:54:09       11 阅读