linux环境变量详解 Linux环境变量能定义什么
一.环境变量基本概念(博主简要概述)系统中存在大量特定环境变量,每个变量都有其用途,用于实现特定的系统功能。环境变量被所有子进程继承,通常可以被所有进程读取,因此称为“系统环境变量通” 【本地变量与环境变量区别的】本地变量仅在bash内部进程有效,不会被子进程继承。环境变量通过被所有子进程继承的方式,实现其全局性!【Linux命令分类&内建命令可读取本地变量】常规命令:由shell fork出的子进程执行。内建命令:shell命令行的一个函数,可以直接读取shell内部定义的本地变量。例如,我们清空PATH环境变量,echo仍然能运行,因为echo是内建命令。
二.常见环境变量介绍PATH:指定命令的搜索路径。HOME:指定用户的工作主目录(用户即登陆到Linux系统时,默认的目录)。SHELL: 当前Shell,其值通常是/bin/bash。
三.环境变量的组织方式:环境表(main函数的第三个参数)我们登录系统时,系统会为shell创建一张环境变量表。
main函数其实有第三个char* env
3.environ(全局指针):获取环境变量environ是一个顶级指针,libc中定义的全局变量,environ指向环境变量表。因此environ没有包含在任何头文件中,在使用时需要用extern声明。
int main(int argc, char* argv
5.PATH=xxxxxxxxx (覆盖) / PATH=$PATH:xxxxxxxxx(追加) (操作对象:指定环境变量)如下图所示,用''覆盖了原来的PATH,echo的结果是空。
注意事项:覆盖的只是修改内存中的环境变量,重新登录xshell它会自动恢复(每次重新登陆,都会给我们生成新的bash解释器,并且新的bash解释器会从配置文件自动读取新建自己的环境变量表信息)。
6.export(导出到环境变量表中)(重点)具体实验在第四节。导出:直接改变bash/shell环境变量本身,添加到当前进程内部的环境变量表中,重新登录xshell会恢复。
注意事项:修改的只是内存中的环境变量,重新登录xshell就会自动恢复(每次重新登陆,都会给我们形成新的bash解释器,并且新的bash解释器会从配置文件自动读取新建自己的环境变量表信息)。 xx=12345登录后复制
五.环境变量实验1.环境变量PATH实验:让我们写的程序和系统自带的指令一样执行。系统会在环境变量里进行路径搜索,系统会提供系统默认自带的程序的路径(PATH环境变量)。当我们执行操作时,系统会直接去环境变量PATH中搜索我们对应的执行程序。环境变量的本质:程序安装。指令也是程序,我们写的也是程序,为什么我们要带./?回答:因为我们写的程序的路径没有保存到PATH环境变量中,系统无法沿着路径找到并执行程序。
我们通过 PATH=$PATH:xxxxxxxxx(追加),把mytouch的路径添加到环境变量中,可以看到我们让我们的程序和系统自带指令一样执行。
2.环境变量HOME实验:用户识别原理输入用户名&密码认证形成许多环境变量(PATH,HOME,SHELL等)。根据用户名,会初始化环境变量HOME(家目录:HOME=/root,HOME=/home/XXX)。执行 cd $HOME,进入家目录/根目录。
3.环境变量实验:让修改我们的环境变量在每次登陆时都存在(更改配置文件)(重点)导出:直接改变bash/shell环境变量本身。我们知道,命令行解释器启动的进程都是shell/bash的子进程,子进程的命令行参数和环境变量都是父进程bash给我们提交的!内存中的环境变量,重新登录xshell就会自动恢复。这是因为每次重新登陆,都会给我们形成新的bash解释器,并且新的bash解释器会从父进程bash配置文件自动读取新建自己的环境变量表信息(隐藏隐藏文件名称.bash_profile)。
用vim进入配置文件.bash_profile。vim ~/.bash_profile登录后复制
注:把多个命令写到一个文件中,这就是shell脚本;启动shell时,会从上到下挨个执行命令,进行配置。
每次重新登陆,都会给我们形成新的bash解释器,并且新的bash解释器会从配置文件中自动读取形成自己的环境指标表信息。
以上就是【Linux】文章环境变量常见指令操作&基本实验(必看!)的详细内容,更多请关注乐哥常识网其他相关!