欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > linux 1.0.5

linux 1.0.5

2025/6/6 19:37:50 来源:https://blog.csdn.net/2401_86190323/article/details/148343346  浏览:    关键词:linux 1.0.5
环境变量到底是什么

也就是windows上面的环境变量
在这里插入图片描述
就是这个东东,用户变量系统变量,那这些到底是啥呢?
主包只是用过,配置来配置去的,就是不知道是啥意思
windows上面的环境变量
windows的ls命令是dir
在这里插入图片描述
输入calc可有直接调出计算器的界面
在这里插入图片描述
在win7的时候都是win + R才能调出cmd
这个时候开始思考:为什么执行一个程序的时候,直接输入关键词就能调出来这个文件
那是不是得知道这个程序在哪?
在这里插入图片描述
在这个目录下面
在这里插入图片描述
可以通过命令行直接调出软件的原因就是他在这里
在这里插入图片描述
在这里插入图片描述
这条命令和在system32这个文件夹下面直接打开这个.exe文件的效果是一样的
那么问题来了,为什么这个notepad明明在system32下面,但是当前的命令行是在C:\User\Admin下面,为什么可以调用这个软件
然后为什么在别的地方,哪怕我在E盘也可以调用这个函数,这是为什么呢?
这就相当于告诉系统:不管你在哪?只要我输入notepad,你就给我到system32这里去打开这个软件
在这里插入图片描述
进入环境变量,发现很多路径已经写好了
在E盘输入notepad时候,就会先到环境变量里面找一下
就相当于提前进行了预约,我先到这找一下
这个预约是提前写到内存里的,相当于开机之前就写进来了
这意味着每个文件夹下面所有的文件都已经被写入了
意思就是文件夹下面的所有东西在任何地方都可以被访问
所以在使用java的时候要配置环境变量
在任何地方都可以访问环境变量中的内容,这就是环境变量的作用
这些东西不要删,删了之后就没法访问了,相当于把这个东西从全球通里面除名了,hhhhh
不光是path文件,TEMP是要定义出来,才能使用这个路径
还有很多很多

全局变量和局部变量

那这用户变量和系统变量有啥区别呢?
一个电脑是可以有很多用户的
我把当前的用户啪唧一注销,这个路径就没了,别人就没法使用你的用户变量了
linux中也有这个概念,分别是全局变量和局部变量
不管在哪里,都可以使用cd ls这两个命令,这就相当于提前写好了,环境变量
printenv就是打印当前的环境变量
在这里插入图片描述
出现了这样的画面
这里的东西,和前文编辑环境变量差不多
不同发行版的全局变量有可能是不一样的
单独显示某个变量
printenv + 想了解的变量
在这里插入图片描述
HOME是很重要的变量
真的要去使用的时候该怎么做
echo $变量名字
在这里插入图片描述
这意味着在整个系统上,使用$HOME,就等于/home/yyy,相当于起了一个别名,这个名称就代替了这个路径,就会自动进行替换
以后如果想要指定某些路径的话就可以使用这个$路径名字
如果PAth这个地方出错了,那你就完蛋了,这个地方一错,那就全都错了,cmd你也用不了了
在这里插入图片描述
就会出现类似于这样的效果
等于把这个路径直接代替掉了
局部变量的话只能在这一个shell里面去定义,关掉之后就没法使用
实际情况上肯定是全局使用的多,局部变量用的确实不多
输入set就会显示当前shell的局部变量
在这里插入图片描述
显示一堆什么乱七八糟的看不懂

用户和局部变量的设定

局部变量大多数指的是用户变量
怎么去使用用户的局部变量
echo $fuck,这个意思是输出fuck这个变量的值
可以这么玩
fuck="QNMB",然后echo $fuck
在这里插入图片描述
但是这些都只在一个终端里面,如果建一个新的终端这个变量就没了
这种局部的变量只能在自己的范围里,即使是说在当前终端创建一个子shell也不能使用
同样的在子shell中创建之后,退出到父shell也不能使
值得提醒的一点,自己定义的用户变量名千万不要使用大写,你自己定义的变量一定是全小写,也是用下划线隔开,这是业界规范,也是企业里强制要求的,如果你定义的用户变量是大写的,那就糟糕了,别人以为是全局变量然后一使用,我靠?! undefined?
只有全局变量才使用全大写,而且是下划线命名法

定义全局变量

自己定义全局变量的时候也应该小写
只有系统级的变量才可以使用大写
export fuck="QNMB"
这样就相当于定义了全局的变量
在这里插入图片描述
在创建一个子线程之后会发现,诶好像还是能用诶!
但是这个只限制在shell里面,包括他的子shell
在这里插入图片描述
可以看到如果在子shell中创建,回到父shell还是使用不了,主包推测这就像一种继承的关系
如何删除呢?
unset + 变量名
在这里插入图片描述
这样就把这个删掉了
现在来像这样一种情况父shell中的变量,在子shell中删除,会产生什么样的效果
在父shell中依然可用,在子shell中删掉一个变量的话,只对子shell产生影响,但是对父shell没有任何影响,确实有点像继承的感觉

默认的环境变量

系统中会配置很多好环境
只需要搜索Bash shell bourn或者看shell 变量菜鸟教程
不知道的都多搜索一下,看见不认识的就搜索一下

配置系统的环境变量

在windows中只需要添加全局变量,然后所用的终端都能来访问他
很多东西都是需要终端才能来使用
在这里插入图片描述
PATH里面保存了好几个路径,上图中每个冒号隔开都是一个路径
想在终端去使用的话,就得放到PATH里面
因为在终端里面命令的话,只能访问PATH下面的路径
如何在PATH中添加路径
PATH=$PATH:/home/yyy/Project/
注意这里有冒号,没有冒号你就完蛋了,就全完了
在这里插入图片描述
这样的话只需要把软件都安装到这里里面,然后直接安装就可以,因为环境变量已经包括这个路径了,就不用去配环境了
但是这有一个坏处,只要一退出这个终端就没了
那该如何永久地保存我们的变量呢?

永久配置?

怎么一次性修改,让他下次开关机还有
在设置之前要提前了解一些东西
linux中的cd ls这些命令都是系统自己默认设定好的
想要保存自己的变量
linux启动的时候需要读取启动文件
开机的时候会默认执行环境变量、
那这是怎么划分的呢?
怎么登录shell,就怎么读取文件

  1. 登录shell
    这一种就是直接点开桌面里面的terminal去打开shell
    cat /etc/profile,我们可以看一下这个文件,这个文件就是启动的时候最主要的文件在这里插入图片描述
    能看到里面有个这东西,有两个文件/etc/bahs.bahsrc /etc/profile.d
    说明:在不同的linux发行版中文件的类型都是不一样的
    如果想配置环境的话就先使用一下这个语法,看看这文件在哪呢
    有些路径一定要熟悉
    在这里插入图片描述
    打开这个文件就能看见这些文件
    怎么主包看着有点眼熟呢?
    只需要知道怎么去修改就行
    所以怎么修改呢?
    对于用户来说不要碰系统里面的变量
    只需要找到home下面的.bashrc文件就可以,推荐在用户目录下面去执行
    但是问题来了,这是一种新的语法啊,主包怎么知道是怎么改的?
    如果想编辑这些东西的话就得使用vim,只有修改这些文件的话才能修改真正的全局变量
    每一个发行版的启动文件都是不一样的,需要针对性的去找,然后去修改
    这个文件里面也可以修改命令的别名
  2. 非登录就打开shell
  3. 运行脚本非交互shell

所以下面的这两个条件呢?
日后主包遇到的话再续吧
就要找到保存这些变量的文件
修改的话需要编辑器,日后再说咯



micro_frank

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com