当前位置: 首页 > article >正文

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

相关文章:

linux 1.0.5

环境变量到底是什么 也就是windows上面的环境变量 就是这个东东,用户变量和系统变量,那这些到底是啥呢? 主包只是用过,配置来配置去的,就是不知道是啥意思 windows上面的环境变量 windows的ls命令是dir 输入calc可有…...

强化学习的前世今生(五)— SAC算法

书接前四篇 强化学习的前世今生(一) 强化学习的前世今生(二) 强化学习的前世今生(三)— PPO算法 强化学习的前世今生(四)— DDPG算法 本文为大家介绍SAC算法 7 SAC 7.1 最大熵强化…...

SQL进阶之旅 Day 8:窗口函数实用技巧

【SQL进阶之旅 Day 8】窗口函数实用技巧 在现代数据库开发中,处理复杂的业务逻辑和大规模数据时,仅仅依靠传统的GROUP BY和JOIN操作已经无法满足需求。**窗口函数(Window Function)**作为SQL标准的一部分,为开发者提供…...

生成对抗网络(GAN)基础原理深度解析:从直观理解到形式化表达

摘要 本文详细解析 生成对抗网络(GAN) 的 核心原理,从通俗类比入手,结合印假钞与警察博弈的案例阐述生成器 与 判别器 的对抗机制;通过模型结构示意图,解析 噪声采样、样本生成 及判别流程;基于…...

ubuntu 安装redis-6.2.9 源码安装和相关配置详解

目录 1 查看redis 软件列表 2 操作系统信息 3 redis软件下载并编译安装 4 redis 配置文件 5 启动redis 6 redis登录测试 7 设置redis开机启动 8 redis 配置详解 1 查看redis 软件列表 https://download.redis.io/releases/ 2 操作系统信息 rootu24-redis-120:~# cat /…...

c++之数组

目录 C数组基础概念 数组常见操作 二维数组定义与初始化 二维数组遍历方法 二维数组与函数 C数组基础概念 数组是C中用于存储相同类型元素的连续内存结构。通过索引访问元素,索引从0开始。数组大小必须在编译时确定,属于静态数据结构。 #include &…...

torch.distributed.launch 、 torchrun 和 torch.distributed.run 无法与 nohup 兼容

问题现象: 使用nohup 启动torch的分布式训练后, 由于ssh断开与服务器的连接, 导致训练过程出错: WARNING:torch.distributed.elastic.agent.server.api:Received 1 death signal, shutting down workers WARNING:torch.distribu…...

[SC]C++ 中 struct vs. class 的唯一区别

SystemC中 struct vs. class 的唯一区别 一、背景: 在 SystemC 示例里你会常看到这样的写法:SC_MODULE(Top) {// … ports, signals, 进程注册 … };而如果你展开宏 SC_MODULE(Top),它本质上就是:struct Top : sc_core::sc_module {// public:// Top(sc_core::sc_module_…...

React从基础入门到高级实战:React 高级主题 - React设计模式:提升代码架构的艺术

React设计模式:提升代码架构的艺术 引言 在React开发中,设计模式是构建可维护、可扩展和高性能应用的关键。随着应用复杂性的增加,掌握高级设计模式不仅是技术上的挑战,更是打造优雅架构的艺术。对于有经验的开发者而言&#xf…...

【GitHub开源AI精选】WhisperX:70倍实时语音转录、革命性词级时间戳与多说话人分离技术

系列篇章💥 No.文章1【GitHub开源AI精选】LLM 驱动的影视解说工具:Narrato AI 一站式高效创作实践2【GitHub开源AI精选】德国比勒费尔德大学TryOffDiff——高保真服装重建的虚拟试穿技术新突破3【GitHub开源AI精选】哈工大(深圳)…...

【leetcode】459.重复的子字符串

文章目录 题目题解枚举 题目 459.重复的子字符串 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入…...

华为OD机试真题——文件目录大小(2025 A卷:100分)Java/python/JavaScript/C++/C语言/GO六种语言最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《文件目录大小》: 目录 题…...

【Java】mybatis-plus乐观锁与Spring重试机制

上一篇【Java】mybatis-plus乐观锁-基本使用 讲到了mybatis-plus的基本使用,简单的使用Version和一个基础配置类即可实现乐观锁。 但是mybatis-plus本身并没有自带重试机制。 即当我们带上版本号去更新数据,但是由于另一个线程已经将版本号修改了&#x…...

Linux 与 Windows:哪个操作系统适合你?

Linux vs Windows:系统选择的关键考量 在数字化转型浪潮中,操作系统作为底层基础设施的重要性日益凸显。Linux与Windows作为主流选择,其差异不仅体现在技术架构上,更深刻影响着开发效率、运维成本与安全性。本文将从​​7个核心维度​​展开对比分析,并提供典型应用场景建…...

C#委托的概念与使用方法

一、委托的基本概念 委托是一种引用类型,它允许将方法作为参数进行传递。简单来说,委托就像是对方法的引用,可以通过委托来调用对应的方法。 委托具有类型安全性,它会检查方法的签名是否与委托的签名匹配,这有助于避免…...

消费者行为变革下开源AI智能名片与链动2+1模式S2B2C商城小程序的协同创新路径

摘要:在信息爆炸与消费理性化趋势下,消费者从被动接受转向主动筛选,企业营销模式面临重构挑战。本文提出开源AI智能名片与链动21模式S2B2C商城小程序的协同创新框架,通过AI驱动的精准触达、链动裂变机制与S2B2C生态赋能&#xff0…...

软考 系统架构设计师系列知识点之杂项集萃(78)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(77) 第139题 以下关于软件测试工具的叙述,错误的是()。 A. 静态测试工具可用于对软件需求、结构设计、详细设计和代码进行评审、走查和审查 B. 静…...

解决MyBatis参数绑定中参数名不一致导致的错误问题

前言 作为一名Java开发者,我在实际项目中曾多次遇到MyBatis参数绑定的问题。其中最常见的一种情况是:在Mapper接口中定义的参数名与XML映射文件中的占位符名称不一致,导致运行时抛出Parameter xxx not found类异常。这类问题看似简单&#x…...

如何解决MySQL Workbench中的错误Error Code: 1175

错误描述: 在MySQL Workbench8.0中练习SQL语句时,执行一条update语句,总是提示如下错误: Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY columnTo disab…...

Docker 镜像(或 Docker 容器)中查找文件命令

在 Docker 镜像(或 Docker 容器)中运行如下两个命令时: cd / find . -name generate.py它们的含义如下,我们来一行一行详细拆解,并结合例子讲解: ✅ 第一行:cd / ✅ 含义 cd 是“change dire…...

MySQL进阶篇(存储引擎、索引、视图、SQL性能优化、存储过程、触发器、锁)

MySQL进阶篇 存储引擎篇MySQL体系结构存储引擎简介常用存储引擎简介存储引擎的选择 索引篇索引简介索引结构(1)BTree索引(2)hash索引 索引分类索引语法SQL性能分析指标(1)SQL执行频率(2)慢查询日志(3)profile详情(4)explain或desc执行计划 索引使用引起索引的失效行为SQL提示覆…...

python批量解析提取word内容到excel

# 基于Python实现Word文档内容批量提取与Excel自动化存储 ## 引言 在日常办公场景中,常需要从大量Word文档中提取结构化数据并整理到Excel表格中。传统手动操作效率低下,本文介绍如何通过Python实现自动化批处理,使用python-docx和openpyxl…...

BugKu Web渗透之game1

启动场景,打开网页如下: 是一个游戏。 步骤一: 右键查看源代码也没有发现异常。 步骤二: 点击开始游戏来看看。 结果他是这种搭高楼的游戏。我玩了一下子,玩到350分就game over。 之后就显示游戏结束,如…...

使用Composer创建公共类库

概述 如果多个项目中存在使用相同类库、模块的情况,此时可以考虑将类库或者模块单独抽取出来,形成独立类库,通过composer 来进行依赖管理,这样可以更方便维护,大大提升开发效率。 优势 可以对特定模块进行统一维护和…...

Axure设计案例——科技感渐变柱状图

想让你的数据展示瞬间脱颖而出,成为众人瞩目的焦点吗?快来看看这个 Axure 设计的科技感渐变柱状图案例!科技感设计风格以炫酷的渐变色彩打破传统柱状图的单调,营造出一种令人惊叹的视觉盛宴。每一个柱状体都仿佛蕴含着无限能量&am…...

LeetCode 热题 100 394. 字符串解码

LeetCode 热题 100 | 394. 字符串解码 大家好!今天我们来探讨一道非常有趣的算法题目——LeetCode 394. 字符串解码。这道题考察了我们对栈这种数据结构的理解和应用能力,同时也涉及到了字符串的处理技巧。接下来,我将详细地为大家解析这道题…...

互联网大厂智能体平台体验笔记字节扣子罗盘、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台

互联网大厂 字节扣子、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台 体验 开始动手 了解 智能体,发现已经落后时代太远 光头部互联网大厂对开 公开的平台就已经这么多,可以学习和了解,相关的信息 整理了对应的平台地址…...

深入解析ReactJS中JSX的底层工作原理

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...

亡羊补牢与持续改进 - SRE 的安全日志、审计与事件响应

亡羊补牢与持续改进 - SRE 的安全日志、审计与事件响应 如果说我们之前讨论的安全措施(如 IAM、网络策略、密钥管理、漏洞补丁)是为我们的“数字城堡”修筑坚固的城墙、设置精密的门锁、定期检查和修补潜在的裂缝,那么安全日志就像是遍布城堡内外的监控摄像头和出入登记簿,…...

NodeMediaEdge任务管理

NodeMediaEdge任务管理 简介 NodeMediaEdge是一款部署在监控摄像机网络前端中,拉取Onvif或者rtsp/rtmp/http视频流并使用rtmp/kmp推送到公网流媒体服务器的工具。 在未使用NodeMediaServer的情况下,或是对部分视频流需要单独推送的需求,也可…...