Shell的运行原理以及Linux中的权限问题
Shell的运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel? 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
- 将使用者的命令翻译给核心(kernel)处理。
- 同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows不是直接操作windows内核,而是通过图接口形,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结
果在通过内核运行出结果,通过shell解析给用户。
- 帮助理解:如果说你是一个闷骚且害羞的程序员,那shell就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫 它王婆,它对应我们常使用的bash。
具体图像理解
Shell的运行原理
1)创建子进程,让子进程进行命令行解释
2)子进程出现任何问题,都不影响父进程Shell
对比到Windows中当中就是,我们每运行一个程序就是创建一个子进程,例如:登录微信,qq。而这些子进程当中任何一个进程出现问题都不会影响父进程,例如,当你的qq出现卡死(程序异常)或你的qq被关掉(程序终止),但其他子程序仍然可以运行
注意:Shell只是所有外壳程序的统称,例如在centos7当中的外壳程序名叫bash
Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
如何实现用户账号之间的切换
命令:su [用户名] 或者 su - [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。
从root切换为普通用户
从普通用户切换为root
注意:
1)从普通账号切换为root账号时,指令当中你的root可以省略,因为root账号只有一个,并且su默认就是切换到root
2) 该用户也可以从一个普通用户切换为另一个普通用户,输入待切换用户的密码就可以了
3)切换用户之后,若想切回上次的用户,可通过Ctrl + D或exit实现
如何提升指令的权限
在某些情况下,我们只想提升当前指令的权限,那么没必要切换到超级用户
语法:sudo指令
功能:提升当前指令的权限
例如,我现在要以一名普通用户的身份,修改另一个普通用户的账号密码
当你输入密码之后,可能会得到以下提示
出现该提示就说明你没有被超级用户(root)添加到信用列表当中,所以该指令的权限得不到提升,一般都不会让普通用户更改普通用户的权限吧,那岂不是人人都是root,只有当你被超级用户添加到信任列表之后,你才拥有提升当前指令权限的功能
Linux权限的管理
文件访问者的分类(人)
文件和文件目录的所有者:u---User(文件拥有者)
文件和文件目录的所有者所在的组的用户:g---Group(文件所属组)
其它用户:o---Others(other)
这里注意:
1)对于某一个文件来说,拥有者,所属组和other就是由超级用户(root)和普通用户所扮演的角色
2)所有角色都要隶属于某一个组,哪怕这个组只有你一个人(这时,你可以设置你的用户名为组名)
那为什么会有这个所属组的概念?
在某个公司中,这个公司有两个小团队在同一个Linux服务器上进行者同一个项目的开发(赛马模式),而你就是A组当中的一员,你创建了一个文件,这个文件只有你(拥有者)能看到或者其他人(other)也能看到,而你希望的是你自己和你的小组成员能看到,剩下的人看不到
于是就有了所属组这个概念,你可以将你的小组成员的权限设置为所属组,而other不可见,这样就可以使团体协作更加灵活
我们可以通过指令ll来查看某一文件或文件目录的拥有者和所属组
注:除了文件拥有者和文件所属组之外都叫other
文件类型和访问权限
文件类型和访问权限(事物属性)
权限涉及某个具体的事物来说,我们还需要讨论事物本身的属性,以及是否具有可读,可读,可执行的属性
通过指令ll我们可以看到前面有一串字符,这字符串实际上就代表着该文件的类型和属性
可以看到上图有一堆信息,那么它们分别对应什么意思呢?
rwx分别代表的意思是:
r:代表该用户可以对文件读操作
w:代表该用户可以对文件进行写操作
x:代表该文件可以执行
-: 该用户没有这个位置的权限
不同的字符代表不同的文件类型:
1)d:文件夹
2)-:普通文件
3)l:软链接(类似Windows的快捷方式)
4)b:块设备文件(例如硬盘、光驱等)
5)p:管道文件
6)c:字符设备文件(例如屏幕等串口设备)
7)s:套接口文件
注:在Linux中文件类型于文件后缀无关
文件权限值的表示方法
1) 字符表示方法
ll指令打印文件权限值时的表示方法就是字符表示法
字符表示法 | 说明 |
r-- | 仅可读 |
-w- | 仅可写 |
--x | 仅可执行 |
rw- | 可读可写 |
r-w | 可读可执行 |
-wx | 可写可执行 |
rwx | 可读可写可执行 |
--- | 无权限 |
2)八进制表示法
字符表示法中的每一个字符所在位置所表示的结果只有两种可能,要么为真要么为假,因此我们可以将这三个字符换位三个二进制位,进而换为一个八进制为进行表示
权限符号(读,写,执行) | 八进制 | 二进制 |
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
文件访问权限的相关设置方法
如何改变文件的访问权限
语法:chmod 选项 权限 文件名或目录名
功能:设置文件的访问权限
常用选项:
R -> 递归修改目录文件的权限 说明:只有文件的拥有者和root才可以改变文件的权限
chmod指令权限值得格式
① 用户表示符+/-/=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:所属组
o:其它用户
a:所有用户
若要同时设置不同类用户的访问权限,则需用逗号隔开
我们还可以使用八进制的数字来设置对应的权限值
将对应的八进制转换为二进制,进而设置对应的权限值
如何改变文件的拥有者
语法:chown 选项 用户名 文件名或目录名
功能:修改文件的拥有者
常用选项:-R 递归修改目录文件的拥有者
注意:修改拥有者需要root账户,或者使用sudo给这条指令进行提权
使用chown指令同时修改文件的拥有者和所属组,将拥有者和所属组的用户名用冒号隔开即可
如何改变文件所属组
语法:chgrp [参数] 用户组名 文件名
功能:修改文件或目录的所属组
常用选项:-R 递归修改文件或目录的所属组
注意:修改所属组也需要进行权限提升或者使用root身份进行
如何修改文件的掩码
我们查看新创建的文件或者目录它们都有自己默认的权限
实际上,新建文件的默认权限为0666,新建目录的默认权限为0777。其中第一位的0与特殊权限有关,这里就不深究了,而后面三位就是权限的八进制数值表示方法,我们将其翻译为字符表示方法
但实际上你会发现,你所创建出来的文件和目录的权限值并不是我们所翻译出来的值原因就是创建目录或文件的时候还会受到umask的影响,假设默认权限是mask,则实际创建出来的文件权限是:mask&(~umask)
umask
功能: 查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用 户默认为0002。
所以我们实际创建出来的文件和目录的权限值还需要进一步换算才能得出,首先我们将掩码的后三位八进制换算为二进制,然后对其进行按位取反
将文件和目录的默认权限值分别与它进行按位与操作
通过计算最终可以得到文件和目录真正的默认权限
新建文件:rw- rw- r--
新建目录:rwx rwx rwx
因此我们也可以通过修改umask来设置文件的访问权限
目录的权限
对于文件来说,其可读可写可执行的属性我们都知道分别代表着什么对应的操作,那对于目录来说可读可写可执行又代表着什么呢?
1)可读权限:如果用户没有该目录的可读权限,则无法通过ls指令查看目录中的文件内容
2)可写权限:如果用户没有该目录的可写权限,则无法通过一系列指令在目录中创建文件或删除文件
3)可执行权限:如果用户没有该目录的可写执行权限,则无法通过cd指令进入到目录当中
那么这就会引发一个问题:
只要用户拥有某目录的可写权限,就可以删除该目录当中的文件,而不论该用户是否拥有该文件的可写权限,这显然是不合理的
为了解决这个问题Linux中引入了粘滞位
粘滞位
语法:chmod + t 目录名
功能: 该目录加上粘滞位
当一个用户将某一个粘滞位后该目录的权限值最后一位会变成字符 “t”
此时计算另一个用户有该目录的可写权限也删除无法删除该目录下的文件
当一个目录设置了粘滞位,则该目录只能由
1)超级用户删除
2)该目录的拥有者删除
3)该文件的拥有者删除
注意:虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件
相关文章:
Shell的运行原理以及Linux中的权限问题
Shell的运行原理 Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如…...
Maven在Win10上的安装教程
诸神缄默不语-个人CSDN博文目录 这个文件可以跟我要,也可以从官网下载: 第一步:解压文件 第二步:设置环境变量 在系统变量处点击新建,输入变量名MAVEN_HOME,变量值为解压路径: 在系统变…...
服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例
服务器数据恢复环境&故障: EMC Unity 400存储连接了2台硬盘柜。2台硬盘柜上一共有21块硬盘(520字节)。21块盘组建了2组RAID6:一组有11块硬盘,一组有10块硬盘。 在存储运行过程中,管理员误操作删除了 2组…...
Go语言之路————func
Go语言之路————func 前言1.最基本的方法定义2.方法中参数的传递3.方法中的返回值4.匿名方法5.闭包的概念6.defer关键词 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触Go&#…...
基于 Electron 应用的安全测试基础 — 提取和分析 .asar 文件
视频教程在我主页简介或专栏里 目录: 提取和分析 .asar 文件 4.1. .asar 文件提取工具 4.1.1. 为什么选择 NPX? 4.2. 提取过程 4.3. 提取 .asar 文件的重要性 4.3.1 关键词 4.3.2 执行关键词搜索 4.3.2.1 使用命令行工具“grep”进行关键词搜索 4.3.2…...
微软与腾讯技术交锋,TRELLIS引领3D生成领域多格式支持新方向
去年 11 月,腾讯推出 Hunyuan3D 生成模型,是业界首个同时支持文字和图像生成 3D 的开源大模型。紧接着不到一个月,微软便发布了全新框架 TRELLIS,加入 3D 资产生成领域的竞争中。TRELLIS 支持多格式输出,包括辐射场、3…...
ubuntu18.04开发环境下samba服务器的搭建
嵌入式linux的发展很快,最近准备在一个新项目上采用新一代的linux核心板,发现linux内核的版本已经更新到5.4以上甚至6.0以上;之前常用的linux内核版本是2.6.4,虽然在某些项目上还能用但是明显跟不上时代的步伐了,所以要…...
LabVIEW实现油浸式变压器自主监测与实时报告
油浸式变压器广泛应用于电力系统中,尤其是在电力传输和分配领域。为了确保变压器的安全、稳定运行,及时监测其工作状态至关重要。传统的变压器监测方法通常依赖人工巡检和定期检查,但这不能及时发现潜在的故障隐患,且效率较低。随…...
21_Spring Boot缓存注解介绍
前面我们通过使用@EnableCaching、@Cacheable注解实现了Spring Boot默认的基于注解的缓存管理,除此之外,还有更多的缓存注解以及注解属性可以配置优化缓存管理。下面我们针对Spring Boot中的缓存注解及相关属性进行详细讲解。 1.@EnableCaching注解 @EnableCaching是由Spri…...
Linux和Docker常用终端命令:保姆级图文详解
文章目录 前言1、Docker 常用命令1.1、镜像管理1.2、容器管理1.3、网络管理1.4、数据卷管理1.5、监控和性能管理 2、Linux 常用命令分类2.1、文件和目录管理2.2、用户管理2.3、系统监控和性能2.4、软件包管理2.5、网络管理 前言 亲爱的家人们,创作很不容易…...
【WRF理论第九期】输出文件:wrfout 和 wrfrst
【WRF理论第九期】输出文件:wrfout 和 wrfrst 1. wrfout 文件wrfout 文件读取(Python)2. wrfrst 文件参考在 WRF(Weather Research and Forecasting)模型中,wrfout 和 wrfrst 是两种重要的输出文件,分别代表不同类型的模拟结果和功能。 1. wrfout 文件 wrfout 文件是 …...
学习threejs,使用OrbitControls相机控制器
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.OrbitControls 相机控…...
CryptoMamba:利用状态空间模型实现精确的比特币价格预测
“CryptoMamba: Leveraging State Space Models for Accurate Bitcoin Price Prediction” 论文地址:https://arxiv.org/pdf/2501.01010 Github地址:https://github.com/MShahabSepehri/CryptoMamba 摘要 预测比特币价格由于市场的高波动性和复杂的非线…...
RocketMQ 知识速览
文章目录 一、消息队列对比二、RocketMQ 基础1. 消息模型2. 技术架构3. 消息类型4. 消费者类型5. 消费者分组和生产者分组 三、RocketMQ 高级1. 如何解决顺序消费和重复消费2. 如何实现分布式事务3. 如何解决消息堆积问题4. 如何保证高性能读写5. 刷盘机制 (topic 模…...
uniapp button 去除边框
在找去除边框的办法时试了好久 css里设置了 border: none; /* 去掉边框 */outline: none; /* 确保点击时不出现轮廓 */压根不行,按钮还是浮在页面上有明显轮廓 最后看到了大佬的文章 https://www.cnblogs.com/menxiaojin/p/13752916.html button::after{border: no…...
基于mybatis、bootstarp、的maven新人练手学生管理studentManage项目
分析:如果能注册并且登录,那每个人都是管理员,任何人都可以对数据恶意操作,这样数据极其不安全。为了数据的安全考虑, 要么创建学生注册页面,但是主页面只能显示本人信息,不能对其他人进行操作&…...
Visual Studio Community 2022(VS2022)安装方法
废话不多说直接上图: 直接上步骤: 1,首先可以下载安装一个Visual Studio安装器,叫做Visual Studio installer。这个安装文件很小,很快就安装完成了。 2,打开Visual Studio installer 小软件 3,…...
.NET 9.0 的 Blazor Web App 项目中 Hash 变换(MD5、Pbkdf2) 使用备忘
一、生成 string 对应的 MD5 码 /// <summary>/// 生成 string 对应的 MD5 码/// </summary>/// <param name"s">需要转换的字符串 string<br/>/// 如果用于远程第三方认证,s username DateTime.Now.Ticks.ToString() 线下传递…...
【Unity-Game4Automation PRO 插件】
Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具,它提供了对工业自动化领域的仿真和虚拟调试支持,特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…...
Js:正则表达式及其方法
一、正则表达式的介绍: 1、含义: 正则表达式用来定义一个规则,是Js中的一个对象。 2、作用: ① 计算机可以检查一个字符串是否符合规则 ② 将字符串中符合规则的内容进行提取 二、正则表达式的创建: 1、 通过构造…...
Webpack和Vite的区别
一、构建速度方面 webpack默认是将所有模块都统一打包成一个js文件,每次修改都会重写构建整个项目,自上而下串行执行,所以会随着项目规模的增大,导致其构建打包速度会越来越慢 vite只会对修改过的模块进行重构,构建速…...
获取当前页面的url相关信息
引言:如何通过javascript获取当前html页面的链接信息 let currentUrl window.location.href; let protocol window.location.protocol; // 协议 let host window.location.host; // 主机名和端口 let hostname window.location.hostname; // 主机名 le…...
iOS面试模版
iOS基础面试题:iOS基础知识| ProcessOn免费在线作图,在线流程图,在线思维导图 iOS高级面试题:https://juejin.cn/post/6844903752835530765 先自我介绍,看有无亮点,了解一下做过的项目类型 了解技术栈(oc、swift、sw…...
大模型相关资料、基础技术和排行榜
大模型排行榜 测试集CEval中文多个学科测试集排名MMLU大规模多任务语言理解英文排名,介绍斯坦福排行榜Math-VMath-VistaOpen LLMs LeaderboardCMMLU 大模型数据集 标题简介19个大模型常用的评估数据集和训练数据集汇总19个大模型常用的评估数据集和训练数据集汇总最…...
RDD和DataFrame两种数据结构的对比
文章目录 1. 实战概述2. RDD(弹性分布式数据集)2.1 RDD概念2.2 RDD特点2.3 实战操作 3. DataFrame(数据帧)3.1 DataFrame概念3.2 DataFrame优点3.3 实战操作 4. 实战小结 1. 实战概述 今天我们将深入探讨 Apache Spark 中的两种核…...
10.Linux 时间
文章目录 10.1 日历时间(Calendar Time)1. **日历时间的表示**2. **系统调用 gettimeofday()**3. **系统调用 time()**4. **time() 与 gettimeofday() 的关系** 总结 10.2 时间转换函数1. **ctime() 示例**2. **asctime() 示例**3. **strftime() 示例**4…...
Java最常用的几种设计模式详解及适用业务场景
Java设计模式详解及适用业务场景 在软件开发中,设计模式是解决常见问题的最佳实践。通过采用这些设计模式,我们可以提高代码的可维护性、可读性和可扩展性。本文将介绍几种常见的Java设计模式,并结合具体代码示例,探讨它们适用的…...
运行fastGPT 第二步 安装宝塔面板 用于管理安装docker和其文件
if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec 上面运行以下,安装宝塔。如果不行,系…...
深度学习电影推荐-CNN算法
文章目录 前言视频演示效果1.数据集环境配置安装教程与资源说明1.1 ML-1M 数据集概述1.1.1数据集内容1.1.2. 数据集规模1.1.3. 数据特点1.1.4. 文件格式1.1.5. 应用场景 2.模型架构3.推荐实现3.1 用户数据3.2 电影数据3.3 评分数据3.4 数据预处理3.5实现数据预处理3.6 加载数据…...
CSS3的aria-hidden学习
前言 aria-hidden 属性可用于隐藏非交互内容,使其在无障碍 API 中不可见。即当aria-hidden"true" 添加到一个元素会将该元素及其所有子元素从无障碍树中移除,这可以通过隐藏来改善辅助技术用户的体验: 纯装饰性内容,如…...
如何在前端给视频进行去除绿幕并替换背景?-----Vue3!!
最近在做这个这项目奇店桶装水小程序V1.3.9安装包骑手端V2.0.1小程序前端 最近,我在进行前端开发时,遇到了一个难题“如何给前端的视频进行去除绿幕并替换背景”。这是一个“数字人项目”所需,我一直在冥思苦想。终于有了一个解决方法…...
【Linux】进程间通信IPC
目录 进程间通信 IPC 1. 进程间通信方式 2. 无名管道 2.1 特点 2.2 函数接口 2.3 注意事项 3. 有名管道 3.1 特点 3.2 函数接口 3.3 注意事项 3.4 有名管道和无名管道的区别 4. 信号 4.1概念 4.2信号的响应方式 4.3 信号种类 4.4 函数接口 4.4.1 信号发送和挂…...
go语言实现UTF8与GB2312内码转换
使用Go语言做个UTF-8转GB2312的代码,输入utf-8编码的文本,输出转换后的国标编码的hex内码 package mainimport ("fmt""os""strings""golang.org/x/text/encoding/simplifiedchinese""golang.org/x/text/transform&quo…...
【WPS】【WORDWORD】【JavaScript】实现微软WORD自动更正的效果
1.效果展示 2.核心代码展示 function readTableData(filePath) {let tableData {};let doc Application.Documents.Open(filePath); // 打开文档let table doc.Tables(1); // 获取第一个表格// 遍历表格,存储编号和描述的映射for (let i 1; i < table.Rows.…...
Excel数据叠加生成新DataFrame:操作指南与案例
目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据(可选) 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步的分析和处…...
springBoot项目使用Elasticsearch教程
目录 一、引言(一)使用背景(二)版本库区别 二、引入依赖(一)springboot集成的es依赖(建议)(二)es提供的客户端库 三、配置(以yaml文件为例&#x…...
摄像头模块在狩猎相机中的应用
摄像头模块是狩猎相机的核心组件,在狩猎相机中发挥着关键作用,以下是其主要应用: 图像与视频拍摄 高清成像:高像素的摄像头模块可确保狩猎相机拍摄出清晰的图像和视频,能够捕捉到动物的毛发纹理、行为细节及周围环境的…...
栈溢出原理
文章目录 前言一、基本示例二、分析栈1. 先不考虑gets函数的栈情况2. 分析gets函数的栈区情况 三、利用栈1. 构造字符串2. 利用漏洞 前言 栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。…...
38.【3】CTFHUB web sql 报错注入
进入靶场 按照提示输入1 显示查询正确 既然是报错注入,先判断整形还是字符型注入 先输入1 and 11 再输入1 and 12 都显示查询正确,可知此为字符串型注入,不是数字型注入 然后就不会了 求助AI和其他wp 由以上2张搜索结果知updatexml是适用…...
SSE部署后无法连接问题解决
1. 问题现象 通过域名访问 https://api-uat.sfxs.com/sse/subscribe?tokenBearer%20eyJUxMiJ9.eyJhY2NvdW50IjoiYWRtaWZ0NvZGUiOiIwMDEiLCJyb2xidXNlcm5hbWUiOiLotoXnuqfnrqHnkIblkZgifQ.tlz9N61Y4 一直无法正常连接 2. 问题解决 nginx.conf进行配置 server {location /ss…...
sparkRDD教程之基本命令
作者:nchu可乐百香果 指导者:nchu-YoungDragon 1.前期准备 (1)从迅雷网盘上面下载这个项目,并且把scala,maven和java环境配置好 网盘链接: 分享文件:SparkRDD.zip 链接…...
【JavaScript】比较运算符的运用、定义函数、if(){}...esle{} 语句
比较运算符 !><> < 自定义函数: function 函数名(){ } 判断语句: if(判断){ }else if(判断){ 。。。。。。 }else{ } 代码示例: <!DOCTYPE html> <html> <head><meta charset&quo…...
ShardingSphere—SQL 路由与执行解析原理
在分布式数据库中,SQL 路由、解析及执行是核心机制,用于高效处理 SQL 请求并将其分发到合适的数据节点。在 ShardingSphere 中,这一过程分为三个主要阶段:SQL 路由、SQL 解析 和 SQL 执行,通过灵活的策略和优化机制实现…...
机器学习——什么是代价函数?
1.代价函数的定义 首先,提到代价函数是估计值和实际值的差,这应该是指预测值和真实值之间的差异,用来衡量模型的好坏。 在一元线性模型中,模型是直线,有两个参数,可能是斜率和截距。 通过调整这两个参数,让代价函数最小,这应该是说我们要找到最佳的斜率和截距,使得预测…...
k8s集群换IP
k8s集群搭建及节点加入时需要确定IP,但安装完成后设备移动到新环境可能出现网段更换或者IP被占用的情况,导致无法ping通节点或者无法打开原IP的服务。 解决方法为保持原有IP不更换,给网卡再加一个IP 这边使用两个ubuntu虚拟机模拟服务器和w…...
RPC 源码解析~Apache Dubbo
解析 RPC(远程过程调用)的源码可以帮助你深入理解其工作原理和实现细节。为了更好地进行源码解析,我们选择一个流行的 RPC 框架——Apache Dubbo 作为示例。Dubbo 是一个高性能、轻量级的开源 Java RPC 框架,广泛应用于企业级应用…...
【认识油管头部频道】ep5 “5-Minute Crafts”——DIY 和生活技巧
5-Minute Crafts 是一个非常受欢迎的 DIY 和生活技巧频道,它的火爆有多方面的原因: 1. 简单实用的内容 视频主要以解决日常生活中遇到的小问题为主,提供简单易学的技巧,吸引了想快速获取实用知识的观众。 2. 短视频形式 每个视…...
vue3 uniapp封装一个瀑布流组件
新增组件m-waterfall 这样就可以在页面直接使用 不用在引入了 <template><view class"m-waterfall"><view id"m-left-column" class"m-column"><slot name"left" :leftList"leftList"></slot&…...
基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩
丰富的经验、成熟的技术,打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势,为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能,还创新性地引入了缘分匹…...
山石防火墙命令行配置示例
现网1台山石SG6000防火墙,配置都可以通过GUI实现。 但有一些配置在命令行下配置效率更高,比如在1个已有策略中添加1个host或端口。 下面的双引号可以不加 1 创建服务 1.1 单个端口 service "tcp-901"tcp dst-port 901 1.2 端口范围 servi…...