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,就怎么读取文件
- 登录shell
这一种就是直接点开桌面里面的terminal去打开shell
cat /etc/profile
,我们可以看一下这个文件,这个文件就是启动的时候最主要的文件
能看到里面有个这东西,有两个文件/etc/bahs.bahsrc /etc/profile.d
说明:在不同的linux发行版中文件的类型都是不一样的
如果想配置环境的话就先使用一下这个语法,看看这文件在哪呢
有些路径一定要熟悉
打开这个文件就能看见这些文件
怎么主包看着有点眼熟呢?
只需要知道怎么去修改就行
所以怎么修改呢?
对于用户来说不要碰系统里面的变量
只需要找到home下面的.bashrc
文件就可以,推荐在用户目录下面去执行
但是问题来了,这是一种新的语法啊,主包怎么知道是怎么改的?
如果想编辑这些东西的话就得使用vim,只有修改这些文件的话才能修改真正的全局变量
每一个发行版的启动文件都是不一样的,需要针对性的去找,然后去修改
这个文件里面也可以修改命令的别名 - 非登录就打开shell
- 运行脚本非交互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开发中,设计模式是构建可维护、可扩展和高性能应用的关键。随着应用复杂性的增加,掌握高级设计模式不仅是技术上的挑战,更是打造优雅架构的艺术。对于有经验的开发者而言…...

【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生态赋能࿰…...

软考 系统架构设计师系列知识点之杂项集萃(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的情况下,或是对部分视频流需要单独推送的需求,也可…...