
一.环境变量基本概念(博主简要概述) 系统中存在大量环境变量,每个变量都有其特定用途,用于实现特定的系统功能。环境变量被所有子进程继承,通常可以被所有进程读取,因此称为“系统环境变量通常具有全局属性”。【本地变量与环境变量的区别】本地变量仅在bash进程内部有效,不会被子进程继承。环境变量通过被所有子进程继承的方式,实现其全局性!【Linux命令分类&内建命令可读取本地变量】常规命令:由shell fork出的子进程执行。内建命令:shell命令行的一个函数,可以直接读取shell内部定义的本地变量。例如,我们清空PATH环境变量,echo仍然能运行,因为echo是内建命令。

二.常见环境变量介绍 PATH : 指定命令的搜索路径。 HOME : 指定用户的主工作目录(即用户登陆到Linux系统时,默认的目录)。 SHELL : 当前Shell,其值通常是/bin/bash。
三.环境变量的组织方式:环境表(main函数的第三个参数) 我们登录系统时,系统会为shell创建一张环境变量表。

main函数其实有第三个参数char* env[],即环境变量表的指针数组。我们使用自动化构建工具makefile构建如下程序,执行程序,打印出结果,正是所有的环境变量(与env指令打印出来的一致)。
int main(int argc, char* argv[], char* env[]){
int i = 0;
for (; env[i]; i++){
printf("env[%d]: %s\n", i, env[i]);
}
}四.环境变量相关的【基本操作指令】(以PATH举例)
1.指令总览
echo $NAME //NAME:你的环境变量名称 : 显示某个环境变量值。
export : 设置一个新的环境变量。
env : 显示所有环境变量。
unset : 清除环境变量。
set : 显示本地定义的shell变量和环境变量。
2.env:获取环境变量 env :直接查看环境变量。
env

3.environ(全局指针):获取环境变量 environ是一个二级指针,libc中定义的全局变量,environ指向环境变量表。environ没有包含在任何头文件中,因此在使用时需要用extern声明。

int main(int argc, char* argv[]){
extern char** environ;
int i = 0;
for (; environ[i]; i++){
printf("%s \n", environ[i]);
}
return 0;
}4.echo $PATH echo PATH :直接打印环境变量PATH名字。 echo $PATH :打印PATH的位置。
echo PATH echo $PATH

5.PATH=xxxxxxxxx (覆盖) / PATH=$PATH:xxxxxxxxx(追加) (操作对象:指定环境变量) 如下图所示,用' '覆盖了原来的PATH,echo的结果是空。

注意事项:覆盖修改的只是内存中的环境变量,重新登录xshell它会自动恢复(每一次重新登陆,都会给我们形成新的bash解释器,并且新的bash解释器会从配置文件自动读取新建自己的环境变量表信息)。
6.export(导出到环境变量表中)(重点) 具体实验在四章节。 export :直接改变bash/shell环境变量本身,添加到当前进程上下文的环境变量表中,重新登录xshell会恢复。
注意事项:修改的只是内存中的环境变量,重新登录xshell它会自动恢复(每一次重新登陆,都会给我们形成新的bash解释器,并且新的bash解释器会从配置文件自动读取新建自己的环境变量表信息)。
export 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.环境变量实验:让我们修改的环境变量在每次登陆时都存在(更改配置文件)(重点)
export :直接改变bash/shell环境变量本身。我们知道,命令行解释器启动的进程都是shell/bash的子进程,子进程的命令行参数和环境变量都是父进程bash给我们传递的!内存中的环境变量,重新登录xshell它会自动恢复。这是因为:每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从父进程bash的配置文件自动读取新建自己的环境变量表信息(隐藏)。配置文件名称.bash_profile。

用vim进入配置文件.bash_profile。
vim ~/.bash_profile
注:把多个命令写到一个文件中,这就是shell脚本;启动shell时,会从上到下挨个执行命令,进行配置。

每一次重新登陆,都会给我们形成新的bash解释器并且新的bash解释器会从配置文件中自动读取形成自己的环境变量表信息。
以上就是【Linux】环境变量常见指令操作&基本实验(入门必看!)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号