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

Linux:shell运行原理+权限

1.shell的运行原理

如果我们打开了命令终端或者是xshell进行远程登录服务器,就会看到命令行,如下图所示:

这个命令行本身也是系统中一个运行起来的程序,它用来接收用户的输入,帮用户来执行指令,将运行结果展示给用户。我们将以命令行来表示的软件统称之为shell外壳程序,俗称命令行解释器。在UbuntuLinux中所用的命令行解释器叫bash,它是系统中可执行的程序,如下图所示:


不同操作系统的命令行解释器的名称可能不同,如shell、bash、sh等。它们只是名字不同,但是工作是一样的。

shell外壳所在的位置,如下图所示:


shell外壳存在的意义:

操作系统出于本身的易用程度和安全角度来考虑,一般是不允许用户来直接进行访问它自己。如果没有shell外壳,用户在使用操作系统前需要先了解操作系统的原理,这个操作系统就无法被使用,直接劝退一大半用户(就如同要让开车的人需要在开车前了解发动机、变速箱等原理),所以shell外壳存在的意义就是让用户将需求表达给shell外壳程序,shell外壳转交到操作系统,操作系统将执行结果给shell外壳,shell外壳再转给用户。(简单来说就是用户能力不足的原因不能直接访问操作系统


shell外壳的工作原理:

将用户的命令翻译给操作系统来处理,同时将操作系统的处理结果翻译给用户shell外壳在将用户的命令翻译给操作系统之前会对用户的命令进行审核,如果用户的命令非法,shell外壳将会进行拦截,不做翻译给操作系统,所以shell外壳在一定程度上保护了操作系统。


shell外壳的工作模式:

shell外壳本质也是一个执行起来的程序,在系统启动期间一直存在。当shell在执行用户的指令时,如果该指令有风险(比如用户所写的程序,或者是系统自带的有风险的指令),shell外壳会通过创建子进程的方式,让子进程去执行有风险的指令。如果用户的指令有风险导致shell外壳所创建的子进程崩溃,也不会影响到shell外壳自身(如果用户的指令没有风险,shell外壳会自己执行)


用户在登录的时候,操作系统会给新登录的用户新启动一个shell,也就是说每一个用户都有一个对应的shell。

对于操作系统的定义上有多种,在广义上来说:内核+外壳,在狭义上来说:内核。


2.1Linux用户

1.Linux用户基本概念

Linux的用户分为两种:root(超级用户),普通用户。

root:可以在Linux系统下做任何事情,不受限制。

普通用户:受管控的状态,会被限制。

在Linux系统中,root用户只有一个,而普遍用户可以有多个。root账号一般都是内置的,在购买云服务器或者是安装虚拟机时就会要求用户将root账号的密码提前设置了。

2.Linux用户身份切换

1.普通用户切换为root

指令:su

在命令行输入su按下回车后,显示器上会要求提示输入密码,在输入root账号的密码后即可将普通用户的身份切换成root(注意:输入密码的时候不会回显)。


2.root切换为普通用户

指令:su 所要切换的用户名(该用户必须已被创建)

root切换为普通用户时,不需要输入普通用户的密码,直接切换为普通用户。


3.普通用户切换为普遍用户

指令:su 所要切换的用户名(该用户必须已被创建)

在命令行输入指令后按下回车后,显示器上会要求提示输入密码,需要输入对方的密码后身份就会被切换(注意:输入密码的时候不会回显)。

总结:1.普通用户切换为root,需要输入root的密码。2.root切换成普通用户,不需要密码。3.普通用户变成另一个普通用户,需要对方的密码。

3.普通用户进行提权

在Linux中普通用户可以不用将身份切换为root情况下进行权限的的提升。所需要使用的指令是sudo。

指令:sudo

语法:sudo 历史上我们学到的指令

sudo指令介绍:在指令前面输入sudo后就可以以root的身份执行该指令,第一次使用sudo后需要输入密码(当前普通用户的密码,并非root账号的密码),再之后的一段时间内再使用sudo后就不需要再次输入密码。

不是所有的普通用户都能使用sudo来进行提权,如果以普通用户的身份进行sudo可能会出现以下报错,如图所示:

在Linux系统中在。/etc/目录下有一个sudoers的配置文件,该文件是用户信息列表的配置文件,如果一个普通用户的用户名在该配置文件中才允许这个普通用户执行sudo。这个配置文件本身是属于root的文件,普通用户是无法将自己添加到该配置文件中,只有使用root的身份才能够去添加。所以,能够使用sudo的普通用户,是经过root允许的。

如果不会使用vim、nano等文本编辑器工具,是不建议去改配置文件的,如果改错了并且不知道错在哪可能会导致重装系统


3.Linux权限

Linux权限主要集中在文件权限属性上,文件权限属性分别有3种:1.r(该文件可读),2.w(该文件可写),3.x(该文件可被执行)。这3种权限属性限制的角色分别是拥有者、所属组、other(其他人)。  


粘滞位(t):给共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对权限目录进行特殊限定,该目录里面的文件只有root或者是文件的拥有者才有权利进行删除,其他人一概不允许。

使用ls -l或者是ll指令可以查看文件的详细属性包括权限信息,如下图所示:

被绿色框所圈出来的部分是文件类型,被黑色框所圈出来的部分是文件权限属性,被红色框所圈出来的部分是文件的拥有者,被黄色框所圈出来的部分是所属组。如果一个用户既不是文件的拥有者,也不在所属组里面,那么该用户就是other。在Linux中,是可以添加组的,但是现在已经很少用了,所以不需要讲。

1.文件权限属性

使用ls -l或者是ll指令可以查看文件的详细属性包括权限信息,如下图所示:

在上图该文件详细属性信息中,文件权限属性由9个字符组成,在这9个字符中每3个分为一组,共3组。第一组是拥有者的权限,第二组是所属组的权限,第三组是other的权限,如下图所示:

不管是拥有者、所属组还是other,rwx这3个字符的位置都是固定的,有对应权限,那么就有对应的字符,要是其中某个字符为-,那么就没有对应的权限。例如:在上图test文件中,拥有者权限和所属组权限都是rwx,那么拥有者和所属组的用户可以对该文件进行读、写、执行操作。other权限为r-x,那么other用户只能对该文件进行读,不能写,可执行的操作。

2.文件权限的修改

Linux文件权限限制的角色分别是:user(拥有者)、group(所属组)、other,这三种,可以直接简写为u、g、o如果要修改文件的权限,必须是该文件的拥有者。修改文件的权限的方法有两种,所使用的指令是chmod。

指令:chmod

chmod指令介绍:修改文件的权限。

chmod修改文件权限的第一种方法:

语法:chmod ugoa+-rwx FILENAME,其中a是all的简写,具体使用方法,例如:

将上图中file.txt文件user(拥有者)权限修改成只能读,指令的写法为:chmod u-w file.txt。

也可以同时修改多个角色的权限,如下图所示:

如果要给所有的角色同时+-权限的方法,如下图所示:

chmod修改文件权限的第二种方法:

不管是拥有者、所属组还是other,rwx的位置都是固定的,有对应的权限就有对应的字符,没有对应的权限就是-。我们可以理解为如果有对应的权限为1,没有对应的权限为0,以二进制的方式来表示,如下图的文件:

拥有者的权限为rwx,用二进制来表示就是111,所属组和other的权限为r-x,用二进制来表示就是101。3位二进制可以转成八进制来表示,拥有者的权限是111,用八进制来表示就是7,所属组和other的权限是101,用八进制来表示就是5。我们可以使用chmod使用八进制来对文件的权限属性做修改,例如:

将上图中的file.txt文件权限修改为:拥有者r-x(用八进制来表示为5),所属组r--(用八进制来表示为4),other rwx(用八进制来表示为7),指令的写法为:chmod 547 file.txt。最终效果如下图所示:

Linux基础知识权限限制的是普通用户,在root账号下形同虚设

Linux基础知识:并不是将一个文件添加了x(可执行)权限就能运行该文件,一个程序能不能运行取决于两点:1.必须要有x(可执行)权限,2.必须是一个可执行文件。

Linux基础知识:如果一个用户要进入某个目录,用户必须得有该目录的x权限,如果要查看该目录里面的类容,需要r权限,如果要在该目录里创建/删除子目录或者文件需要w权限。

3.修改文件的拥有者所属组

在Linux中是可以修改文件的拥有者和所属组。普通用户是无法修改文件的拥有者和所属组的,即便该用户是文件的拥有者,只有root才能修改,普通用户需要提权,使用的指令分别是chown,chgrp。

指令:chown

语法:sudo chown username filename

chown指令介绍:修改文件的拥有者。

指令:chgrp

语法:sudo chown groupname filename

chgrp指令介绍:修改文件的所属组。

4.文件类型

在Windows操作系统系统中,区分文件的类型的方式是通过后缀来区分的,linux中在使用指令ls -l查看文件时,第一个字符表示的是文件的类型,如下图示:

Linux系统不通过文件的后缀来区分文件类型,但是我们依旧推荐使用后缀,因为系统之上的指令,工具,编辑器它们可能是需要后缀来区分文件类型,也可以让人一眼看出它是什么类型的文件。总结:虽然Linux系统不通过后缀来区分文件类型,但是不代表Linux不用后缀

Linux文件类型:

d:文件夹

-:普通文件(文本,源代码,图片,视频,库,可执行等)

b(block):块设备文件(例如硬盘、光驱等)

c(char):字符设备文件(例如屏幕等串口设备)

l:链接文件(类似Windows的快捷方式)

s:套接口文件

p:管道文件

在上面众多文件类型里面,我们最常见只有以d和-开头的文件

在Linux中文本,源代码,图片,视频,库,可执行等都是以-开头,如果想查看文件具体是属于具体哪一种类型的文件可以使用file指令。

指令:file

语法:file filename

file指令介绍查看文件是属于具体是属于哪一种类型的文件。

5.权限掩码

在Linux中,我们创建的文件的默认权限是666,因为文件不是一个目录或者是可执行程序,它并不需要x权限,目录的默认权限是777,但实际上我们创建的文件或者目录实际上的权限并不是上面的默认权限,因为在创建的文件或者目录的时候会受到umask(权限掩码)的影响。

umask定制一个目录/文件被创建时的默认权限

如果要查看系统中默认的权限掩码所使用的指令是umask

指令:umask

umask指令介绍:查看默认的权限掩码

普通用户的默认权限掩码是0002(root的默认权限0022),前面的0我们将它理解为八进制,后面的002这三个数是八进制,转化为二进制为000 000 010。文件或者是目录的最终权限 = 默认权限 & (~umask)

如果要修改权限掩码所用到的指令还是umask。

指令:umask

语法:umask 所要修改的值(八进制)

umask指令介绍:修改权限掩码。

相关文章:

Linux:shell运行原理+权限

1.shell的运行原理 如果我们打开了命令终端或者是xshell进行远程登录服务器,就会看到命令行,如下图所示: 这个命令行本身也是系统中一个运行起来的程序,它用来接收用户的输入,帮用户来执行指令,将运行结果展…...

英伟达Llama-3.1-Nemotron-Ultra-253B-v1语言模型论文快读:FFN Fusion

FFN Fusion: Rethinking Sequential Computation in Large Language Models 代表模型:Llama-3.1-Nemotron-Ultra-253B-v1 1. 摘要 本文介绍了一种名为 FFN Fusion 的架构优化技术,旨在通过识别和利用自然并行化机会来减少大型语言模型(LLM…...

什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好?

什么是A2A协议?什么是MCP协议?A2A和MCP协议哪个更好? 摘要 在人工智能领域,A2A协议(Agent-to-Agent协议)和MCP协议(Model Context Protocol)是两个重要的标准,它们分别…...

剑指Offer(数据结构与算法面试题精讲)C++版——day12

剑指Offer(数据结构与算法面试题精讲)C版——day12 题目一:小行星碰撞题目二:每日温度题目三:直方图最大矩形面积附录:源码gitee仓库 题目一:小行星碰撞 由题意可知,这里我们可使用栈…...

Leetcode131:分割回文串——回溯算法

Leetcode131:分割回文串——回溯算法 给一个字符串aab, 如何分割,使得子串 都是回文串,返回所有的分割方案。 答:1、aa,b。 2、a,a, b. 重点,想想树怎么画的。 发现:所有…...

Nginx常用工具

Nginx常用工具 Nginx常用工具vscode配置Nginx插件在线生成Nginx配置文件Nginx可视化配置工具 Nginx常用工具 编写Nginx配置时,使用VSCodeNginx插件,能实现自动补全格式化配置. vscode配置Nginx插件 Nginx代码高亮插件: nginx-formatter Nginx代码格式化插件&#…...

算法——回溯

学习目标: 掌握算法入门知识 学习内容: 回溯的定义例题详细步骤讲解(求子集、求全排列) 1. 回溯的定义 回溯法是一种通过 试探性搜索 来求解问题的算法思想。一个复杂问题的解决方案是由若干个小的决策步骤组成的决策序列&…...

【图片识别改名工具】如何识别图片中文字内容,并根据文字对图片批量重命名批量改名,基于WPF和腾讯OCR的完整实现

​​办公场景​​ ​​批量处理图片文件​​:用户有一批图片文件,图片中包含文字信息(如编号、日期、名称等),需要根据图片中的文字内容对图片进行重命名。​​自动化办公​​:在办公场景中,用户需要将图片文件按内容分类或归档,手动重命名效率低下,自动化工具可以大幅…...

C语言超详细指针知识(一)

通过前面一段学习C语言的学习,我们了解了数组,函数,操作符等相关知识,今天我们将要进行指针学习,这是C语言中较难的一个部分,我将带你由浅入深慢慢学习。 1.内存与地址 在正式学习指针前,我们首…...

【实战手册】8000w数据迁移实践:MySQL到MongoDB的完整解决方案

🔥 本文将带你深入解析大规模数据迁移的实践方案,从架构设计到代码实现,手把手教你解决数据迁移过程中的各种挑战。 📚博主其他匠心之作,强推专栏: 小游戏开发【博主强推 匠心之作 拿来即用无门槛】文章目录 一、场景引入1. 问题背景2. 场景分析为什么需要消息队列?为…...

本地部署DeepSeek-R1,搭建本地知识库

本地部署DeepSeek-R1,搭建本地知识库 本章节内容是参照哔哩哔哩上的【一拳S7】作者分享的视频教程(【喂饭教程】20分钟教会你本地部署DeepSeek-R1,并搭建自己的知识库!小白也能轻松上手!!)搭建的。 概述:本…...

多链协议和跨链桥

文章目录 多链协议和跨链桥一、核心功能与分类二、主流协议技术对比三、关键技术机制四、典型应用场景五、核心风险与挑战 多链协议和跨链桥 一、核心功能与分类 多链协议与跨链桥旨在解决区块链生态的孤岛效应,实现资产与数据的跨链互通。 主要分为两类&#xf…...

2025.4.9 华为机考 第1题-补丁版本升级

目录 题目内容样例1样例2思考思路算法思路实现代码(封装Class中) 题目内容 样例1 样例2 思考思路 题目让我们找出所有迭代次数最多的补丁版本,并且按字典序排列输出。迭代次数指的是从该版本到根节点的路径长度,而根节点的迭代次…...

Qt平台+三维建模+动画演示+工业风展示

三维建模不止于形,界面定制不止于皮,实时交互不止于快。 我们专注程序界面定制,尤其擅长: 🔧 Qt平台 精准开发 🧊 三维建模 动画演示 工业风展示 ⚡ 实时交互系统 支持多线程响应、动态数据绑定 &#x1…...

通付盾风控智能体(RiskAgent): 神烦狗(DOGE)

在数字化业务高速发展的今天,风控系统已成为企业抵御黑产、欺诈、保障交易安全的核心防线。然而传统风控面临人力依赖高与策略滞后性等挑战,数据分析师需每日从海量数据中手动提炼风险特征、设计防护规则,耗时费力;新策略从发现到…...

Anaconda环境管理及 pycharm、jupyter notebook 的配置

为什么要Anaconda环境管理,因为不同的项目可能使用的环境是不一样的,比如说有一个项目要用到pytorch0.4,另一个要用到pytorch1.0,我们不可能在一个环境中既装pytorch0.4,又装pytorch1.0,因此我们在用pytorc…...

DevOps与功能安全:Perforce ALM通过ISO 26262合规认证,简化安全关键系统开发流程

本文来源perforce.com,由Perforce中国授权合作伙伴、DevSecOps解决方案提供商-龙智翻译整理。 近日,Perforce ALM(原Helix ALM)通过了国际权威认证机构 TV SD的ISO 26262功能安全流程认证!该认证涵盖Perforce ALM解决方…...

OpenCV 伪彩色处理

伪彩色处理是将灰度图像通过颜色映射转换为彩色图像的技术,常用于增强可视化效果或突出显示特定灰度范围。OpenCV 提供了多种方法实现伪彩色处理。 1. 使用 applyColorMap 函数 OpenCV 提供了 cv::applyColorMap() 函数,支持多种预定义的色彩映射&…...

【物联网】PWM控制蜂鸣器

文章目录 一、PWM介绍1.PWM的频率2.PWM的周期 二、PWM工作原理分析三、I.MX6ull PWM介绍1.时钟信号2.工作原理3.FIFO 四、PWM重点寄存器介绍1.PWM Control Register (PWMx_PWMCR)2.PWM Counter Register (PWMx_PWMCNR)3.PWM Period Register (PWMx_PWMPR)4.PWM Sample Register…...

centos-stream-9上安装nvidia驱动和cuda-toolkit

这里写目录标题 驱动安装1. 更新系统2. NVIDIA GPU安装检查系统是否安装了 NVIDIA GPU2.1 首先,使用以下命令更新 DNF 软件包存储库缓存:2.2 安装编译 NVIDIA 内核模块所需的依赖项和构建工具2.3 在 CentOS Stream 9 上添加官方 NVIDIA CUDA 软件包存储库…...

嵌入式---烧录器

一、核心定义与本质功能 烧录器(Programmer)是一种将用户编写的程序代码(如.hex/.bin文件)写入单片机内部存储器(Flash/EEPROM/ROM)的专用工具,核心功能包括: 程序烧写&#xff1a…...

centos-LLM-生物信息-BioGPT-使用1

参考: GitHub - microsoft/BioGPT https://github.com/microsoft/BioGPT BioGPT:用于生物医学文本生成和挖掘的生成式预训练转换器 |生物信息学简报 |牛津学术 — BioGPT: generative pre-trained transformer for biomedical text generation and mini…...

Golang|协程

文章目录 go func 和 WaitGroup协程 v.s. 线程GMP 并发模型 go func 和 WaitGroup 在 Go 语言中,协程(goroutine)之间并没有严格的父子关系。一个协程中可以启动其他协程,即使启动它的协程已经结束,所启动的新协程仍会…...

免费下载地图切片数据以及通过CesiumEarth在Windows和安卓本地浏览

免费下载地图切片数据 本文概述​ 互联网存在许多免费的地图资源,但是这些资源都需要在互联网环境下使用,如果使用场景是在离线或本地设备上,没有在线调用地图的途径,这时如果没有自己制作地图的能力,只能提前下载地…...

Enovia许可使用限制

在数字化时代,企业的研发与创新活动越来越依赖于先进的软件工具。Enovia,作为一款功能强大的产品生命周期管理(PLM)解决方案,为众多行业的企业提供了从概念到生产的全方位支持。然而,为了确保软件的合规性与…...

“米其林.网址”中文域名仲裁案:知名企业如何保护网络知产权益?

中文域名与商标协同保护经典案例解析 近期&#xff0c;国际知名的轮胎制造商米其林公司&#xff08;Compagnie Gnrale des tablissements Michelin&#xff09;通过仲裁程序成功夺回了被抢注的中文域名<米其林.网址>。这一案件再次引发了公众对企业网络知识产权保护和域名…...

TCP专题

一、TCP连接建立 1、TCP的四元组 TCP属于面向连接——在发送数据之前&#xff0c;需要先建立一条点到点的连接。 TCP的四元组&#xff1a;源IP地址、目标IP地址、源端口、目标端口。可以唯一的区分和标识一条TCP的连接。 2、TCP报文结构 序列号&#xff1a;TCP是基于”字节…...

力扣热题100刷题day63|49.字母异位词分组

一、哈希表相关理论 代码随想录刷题day15|&#xff08;哈希表篇&#xff09;242.有效的字母异位词、383.赎金信-CSDN博客 二、思路 首先&#xff0c;创建一个map集合&#xff0c;遍历字符串数组&#xff0c;对数组中每一个字符串&#xff08;单词&#xff09;比如"abc&…...

BERT - 今日头条新闻分类任务实战

1. 自定义模型组件 MultiHeadAttention 类 实现了多头自注意力机制。 通过将输入分割成多个“头”&#xff0c;从不同角度学习输入数据的特征。 注意力分数计算后应用了缩放点积注意力&#xff0c;并支持掩码操作。 class MultiHeadAttention(nn.Module):def __init__(se…...

leetcode-419.棋盘上的战舰

leetcode-419.棋盘上的战舰 文章目录 leetcode-419.棋盘上的战舰一.题目描述二.第一次代码提交三.第二次代码提交 一.题目描述 二.第一次代码提交 class Solution { public:int countBattleships(vector<vector<char>>& board) {int m board.size(); //列数i…...

Python爬虫第11节-解析库Beautiful Soup的使用上篇

目录 前言 一、Beautiful Soup 简介 1.1 Beautiful Soup概述 1.2 准备工作 1.3 解析器 二、基本使用 三、节点选择器的使用 3.1 选择元素 3.2 提取信息 3.2.1 获取名称 3.2.2 获取属性 3.2.3 获取内容 3.3 嵌套选择 3.4 关联选择 3.4.1 子节点和子孙节点 3.4.2…...

host模式容器compose建立记录

需要一个host模式的容器&#xff0c;用来跑gpu程序。同时最好使用ssh来直接远程连接。 以前是直接建立容器然后手动安装ssh的。但是最近突然又不行了&#xff0c;不知道为什么。我知道原因是容器的systmctl不能使用。但是为什么以前能用呢&#xff1f; 一、安装结构 总之换成…...

LeetCode算法题(Go语言实现)_39

题目 给定一个二叉树的根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 一、代码实现 type TreeNode struct {Val intLeft *TreeNodeRight *TreeNode }func rightSideView(root *TreeNode) []int {i…...

算法训练之动态规划(五)——简单多状态问题

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...

深度学习-156-RAG技术之在ubuntu中的安装部署RAGFlow和简单应用

文章目录 1 ubuntu中安装RAGFlow1.1 RAGFlow简介1.2 安装部署1.2.1 硬件要求1.2.2 修改max_map_count1.2.3 下载仓库代码1.2.4 自动拉取镜像1.2.5 查看端口占用(如果提示的话)1.2.6 启动与关闭RAGFlow2 访问应用2.1 添加模型2.2 创建知识库2.2.1 输入名称点击确定2.2.2 填写相关…...

自学Matlab-Simscape(初级)- 2.1 Simscape Multibody 模块之关节(运动副)

Matlab-Simscape自学系列文章目录 1.了解Simscape Multibody Link模块 2.掌握Simscape Multibody 模块 3.掌握Simscape Electrical模块 4.掌握Simscape Driveline 模块 5.了解Simscape Fluids模块 6.了解Simscape Battery模块 7.掌握Simscape Mechanical Interfaces 模块 8.掌…...

再次重拾jmeter之踩坑

1.添加“csv数据文件设置”&#xff0c;运行时提示 java.lang.IllegalArgumentException: Filename must not be null or empty检查多次后才发现因为我运行的是整个线程组&#xff0c;所以对应http请求下不能包括空的csv文件 2. 填写ip时不能加/&#xff0c;要在路径里加&…...

第六周作业

好的&#xff0c;这是移除外层代码块&#xff0c;并保留内部 Markdown 格式的作业内容&#xff1a; SQL 注入作业 1、联合注入实现“库名-表名-字段名-数据”的注入过程 &#xff08;1&#xff09;前端注入 尝试使用 database() 这个函数进行库名爆破 1 union select 1,data…...

学科发展视域下教师数字素养提升的多维路径研究

学科发展视域下教师数字素养提升的多维路径研究 —— 基于技术融合与教学创新的双重逻辑 一、引言&#xff1a;数字时代的学科教育转型 1.1 研究背景与意义 在当今时代&#xff0c;人工智能与教育数字化战略正以迅猛之势重塑着教育的格局&#xff0c;成为推动学科教学范式深…...

QEMU学习之路(6)— RISC-V 启动Linux

QEMU学习之路&#xff08;6&#xff09;— RISC-V 启动Linux 一、前言 参考&#xff1a;QEMU 启动方式分析&#xff08;1&#xff09;&#xff1a;QEMU 及 RISC-V 启动流程简介 QEMU 启动方式分析&#xff08;2&#xff09;: QEMU virt 平台下通过 OpenSBI U-Boot 引导 RISC…...

人工智能图像识别Spark Core3

Spark Core3 Spark-Core编程&#xff08;三&#xff09; 1.key-value类型&#xff1a; 23) sortByKey 函数签名 def sortByKey(ascending: Boolean true, numPartitions: Int self.partitions.length): RDD[(K, V)] 函数说明 在一个(K,V)的 RDD 上调用&#xff0c;K 必…...

STM32 模块化开发指南 · 第 5 篇 STM32 项目中断处理机制最佳实践:ISR、回调与事件通知

本文是《STM32 模块化开发实战指南》第 5 篇,聚焦于 STM32 裸机开发中最核心也最容易被忽视的部分——中断服务机制。我们将介绍如何正确、高效地设计中断处理函数(ISR),实现数据与事件从中断上下文传递到主逻辑的通道,并构建一个清晰、可维护、非阻塞的事件通知机制。 一…...

Vue报错解决方案

1.ResizeObserver loop completed with undelivered notifications. 解决方案&#xff1a; 在App.vue文件中添加以下代码&#xff1a; <script > const callLimit (callback, delay) > {let timer null;return function () {let context this;let args arguments;…...

vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值

项目场景&#xff1a; <el-table-column label"税率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …...

STM32 模块化开发指南 · 第 4 篇 用状态机管理 BLE 应用逻辑:分层解耦的实践方式

本文是《STM32 模块化开发实战指南》第 4 篇,聚焦于 BLE 模块中的状态管理问题。我们将介绍如何通过有限状态机(Finite State Machine, FSM)架构,实现 BLE 广播、扫描、连接等行为的解耦与可控,并配合事件队列驱动完成主从共存、低功耗友好、状态清晰的 BLE 应用。 一、为…...

计算机网络-传输层基础概念

传输层基础概念 1. 传输层基础概念1.1 传输层的定义与作用1.2 传输层在网络模型中的位置OSI七层模型中的传输层TCP/IP四层模型中的传输层传输层的数据单元传输层的地址机制 1.3 传输层与其他层的关系与网络层的关系与应用层的关系数据流转过程 1.4 传输层的主要功能1.4.1 复用与…...

使用Mybatis时在XML中SQL高亮显示的方法

如图所示&#xff0c;上方的SQL代码很像是一个字符串&#xff0c;那么如何把上方的SQL改成和下方一样的SQL,使得IDEA可以识别SQL方言呢&#xff1f; 1.选中SQL中的一部分代码&#xff0c;此时左侧会出现一个黄色的灯泡图案&#xff0c;点击2.选择这个注入语言或者引用...

Dify+DeepSeek能做出什么来?快速构建可扩展的 AI 应用

将 Dify&#xff08;开源 LLM 应用开发平台&#xff09;与 DeepSeek&#xff08;深度求索公司的高性能大模型&#xff0c;如 DeepSeek-R1 或 DeepSeek-Lite&#xff09;结合使用&#xff0c;可以充分发挥两者的优势&#xff0c;快速构建高效、灵活且可扩展的 AI 应用。以下是具…...

Python 类型转换详解

文章目录 Python 类型转换详解基本类型转换函数1. 转换为整数 (int())2. 转换为浮点数 (float())3. 转换为字符串 (str())4. 转换为布尔值 (bool()) 容器类型转换1. 转换为列表 (list())2. 转换为元组 (tuple())3. 转换为集合 (set())4. 转换为字典 (dict()) 特殊类型转换1. AS…...

针对deepseek的核心论文写作提示词模板(适用于SCI论文、CCF会议论文、北大核心论文、南大核心论文)

以下是一个适用于撰写核心论文的提示词模板,涵盖论文结构、关键内容和注意事项,帮助你高效组织思路和内容: 核心论文写作提示词模板(5000字) 1. 标题(Title) 提示词:简洁、明确、关键词、研究领域、创新点示例: “基于XX方法的XX问题研究”“XX现象对XX的影响:以XX为…...