Linux环境变量实操学习记录
这次小学期的Linux课程专门学习了环境变量相关内容全程在Xshell里跟着课件一步步敲命令实操把理论和终端运行结果对应起来也慢慢理清了环境变量到底是什么、有哪些分类以及日常该怎么使用。环境变量本质就是系统存储信息的键值对采用变量名等于值的格式bash shell会依靠这类数据保存终端会话、用户信息和系统参数不管是程序还是脚本都能快速读取里面的内容系统自带的环境变量统一使用大写字母命名我们自己创建的变量尽量用小写防止不小心覆盖系统自带变量引发命令异常像HOME、PATH、PWD都是系统默认自带的常用变量分别对应用户家目录、命令检索路径、当前所在文件夹还有RANDOM、UID这类bash独有的扩展变量能实现生成随机数字、查看用户ID这类功能。在实操过程里我弄懂了全局变量和局部变量最核心的区别全局变量在当前终端以及新开的子shell中都能正常读取使用env或者print命令就能查看全部全局环境变量如果只想单独看某一个变量需要在变量名称前面加上美元符号执行bash命令创建子shell后再打印HOME、PWD这类系统变量能看到父子shell里数值完全一致直观证明全局变量可以被子进程继承局部变量仅在创建它的当前终端生效切换到子shell后无法读取对应内容Linux没有单独只查看局部变量的指令set命令会一次性输出当前所有全局、局部、自定义变量还会自动按照字母排序课件里第一组练习题我全部完整运行依次执行env、printenv、set分别在父shell和子shell打印PWD每一步都保存了终端截图方便后续整理笔记。自定义变量的创建、导出和删除操作是本次实操重点直接用变量名等于值就能定义局部变量书写时等号两边不能加任何空格如果变量内容包含空格必须用单引号把完整字符串包裹我一开始没注意空格问题直接报错反复试错后记住了这个规范局部变量仅当前会话可用想要让子shell也能访问就要借助export命令将其导出为全局变量这里有个很关键的知识点即便在子shell中修改全局变量的值退出回到父shell后原值不会发生变化子进程内的修改只会作用于自身不会向上传递不需要的变量使用unset指令删除即可操作变量时不用添加美元符号只有打印读取的时候才需要按照第二组练习题完整操作后我把变量导出、子shell修改、退出对比、删除变量整套流程的运行结果截图保存梳理清楚每一条命令对应的效果。临时定义的变量在关闭终端后就会直接消失如果想要变量永久保存每次打开终端自动加载就需要编辑家目录下隐藏的.bashrc文件在文件末尾添加export配置语句保存后执行source命令刷新配置就能立刻生效不用重启系统PATH变量是日常使用频率最高的环境变量它内部用冒号分隔多个目录shell执行命令时会依次在这些目录里查找可执行程序手动安装的软件想要直接输入名称运行就可以通过export PATH$PATH:自定义目录临时追加路径这里必须带上原PATH变量不然会直接覆盖原有所有系统路径导致ls、cd等基础命令失效永久配置PATH的方法和普通自定义变量一致写入.bashrc文件即可实操时我对比了临时配置和永久配置两种方式记下两种方法的优缺点和适用场景。Linux登录系统时会自动读取一系列环境配置文件分为系统级别和用户级别/etc/profile是所有用户登录都会加载的系统主配置文件还有/etc/bash.bashrc、profile.d目录下的脚本共同管理系统全局环境用户专属的配置文件存放在自身家目录包含.bashrc、.profile等隐藏文件仅对当前账号生效其中.bashrc是交互式终端主要加载的文件.profile运行时会主动读取同目录下的bashrc我通过cat命令查看了各个配置文件内容用ls -a显示家目录全部隐藏文件区分清楚系统和用户配置文件的作用范围理解不同文件的加载顺序。课程最后学习了bash一维数组的使用shell仅支持一维数组用括号包裹多个元素元素之间用空格隔开数组下标从0开始使用{数组名[下标]}读取单个元素{数组名[*]}可以输出数组全部内容能够直接通过下标修改对应数值unset既可以单独删除数组里某一个元素也能直接清空整个数组删除单个元素后对应的下标位置会空缺不会自动补齐第三组数组练习题我依次完成数组创建、修改成员、删除元素、清空数组的操作把每一步输出结果记录下来完善自己的知识框架。把所有实操内容整合梳理后我按照作业要求搭建完整知识体系把环境变量概念、两类变量区分、变量增删改操作、PATH配置、系统配置文件、数组使用全部串联起来每条命令都标注对应的功能和使用注意事项搭配Xshell运行截图发布到自己的CSDN博客完整复盘本次Linux环境变量课程学到的全部内容也通过大量实操纠正了书写语法、命令拼写等多处容易出错的地方加深了对shell环境运行逻辑的理解。