跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 防关联工具 > 【Linux】环境变量常见指令操作&基本实验(入门必看!)

【Linux】环境变量常见指令操作&基本实验(入门必看!)

时间:2024-04-18 08:20:45 来源:网络cs 作者:胡椒 栏目:防关联工具 阅读:

标签: 实验  基本  入门  操作  指令  环境  变量 

前言

大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

YY的《C++》专栏YY的《C++11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》专栏YY的《小小知识点》专栏YY的《单片机期末速过》专栏YY的《C++期末速过》专栏YY的《单片机》专栏YY的《STM32》专栏YY的《数据库》专栏YY的《数据库原理》专栏

目录

一.环境变量基本概念(博主简练概括)【本地变量vs环境变量】【Linux命令分类&内键命令可读本地变量】 二.常见环境变量介绍三.环境变量的组织方式:环境表(main函数的第三个参数)四.环境变量相关的【基本操作指令】(以PATH举例)1.指令总览2.env:获取环境变量3.environ(全局指针):获取环境变量4.echo $PATH5.PATH=xxxxxxxxx (覆盖) / PATH= $PATH:xxxxxxxxx(追加) (操作对象:指定环境变量)6.export(导出到环境变量表中)(重点) 五.环境变量实验1.环境变量PATH实验:让我们写的程序和系统自带指令一样执行2.环境变量HOME实验:用户识别原理3.环境变量实验:让我们修改的环境变量在每次登陆时都存在(更改配置文件)(重点)

一.环境变量基本概念(博主简练概括)

系统中会存在大量的环境变量,每一个变量都有它的 特殊用途 ,用来完成 特定的系统功能 环境变量被所有子进程继承,通常可以被其下的 所有进程读到 ,所以称 “系统环境变量通常具有全局属性”

【本地变量vs环境变量】

本地变量只在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 PATHecho $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解释器会从 配置文件中 自动读取形成自己的 环境变量表信息

本文链接:https://www.kjpai.cn/news/2024-04-18/159922.html,文章来源:网络cs,作者:胡椒,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论