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

深入理解 Linux 权限管理:从 Shell 到文件权限

🌼🌼 在 Linux 系统中,权限是保障系统安全与稳定的核心之一。每个操作都可能涉及权限的管理和控制,特别是当你开始以不同用户的身份进行操作时。本文将通过生动的比喻与详细的技术解析,带你一起深入理解 Linux 权限系统的运作原理。

📖 什么是 Shell?

Shell 是 Linux 操作系统中的一个中间层,类似于一个桥梁,连接了用户与操作系统的内核(kernel)。我们平时通过命令行输入的指令,都是通过 Shell 来传递给内核执行的。你可以把它想象成一个助手,它帮你传达命令并把执行结果反馈回来。

Shell 比喻:小明和王婆的故事

假设我们有以下人物:

  • 小明:用户,想要完成一些操作。

  • 王婆:Shell,作为一个中介,负责传递小明的需求。

  • 小美:操作系统,最终接收命令并执行。

  • 小王:权限限制,可能会阻止命令的执行。

  • 村长:超级用户(root),可以直接进行任何操作。

场景一:命令执行成功

小明让王婆去做媒,王婆派出实习生去找到小美,小美同意了,任务完成。这里,小明的操作没有受到任何权限限制。

场景二:命令执行失败

小明让王婆去做媒,但小美已经和小王在一起了。王婆知道此事不能成,因此拒绝了命令并反馈“Permission Denied”(权限拒绝)。在 Linux 中,这种情况类似于普通用户没有足够权限去操作系统中的文件或资源。

场景三:超级用户的特权

小明非常喜欢小美,他求助于村长(root)。村长派王婆去做媒,这次王婆不受限制,能够顺利完成任务。这里的超级用户(root)可以无视所有权限限制,执行任何操作。 

📃 Shell 的作用

Shell 作为操作系统与用户之间的中介,承担了以下几项重要任务:

  1. 命令传递:Shell 将用户输入的命令传递给内核,并返回执行结果。

  2. 创建子进程:Shell 在执行命令时会创建子进程,确保操作不直接影响主进程。

  3. 权限管理:Shell 基于用户的权限,决定是否可以执行某个命令。

通过 Shell,Linux 系统能够根据用户的不同权限,决定是否执行某些操作。

Linux下有两种用户:

超级用户(root)普通用户。

超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令:su [用户名]

功能:切换用户。例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令

 

用户分类:User, Group 和 Others

在 Linux 中,文件和目录的权限是针对不同用户角色设定的。主要有三种用户分类:

  • User(u):文件的拥有者。通常,文件的创建者是该文件的拥有者。

  • Group(g):文件所属的用户组。用户可以通过将文件与特定组关联,给组内成员设置权限。

  • Others(o):除了文件拥有者和所属组外的所有用户。

每个用户角色可以被分配不同的权限(读、写、执行),通过这种权限组合来控制文件和目录的访问。以下是常见的权限组合表示:

  • rwxr-xr--:表示文件拥有者具有读、写、执行权限;组用户具有读、执行权限;其他用户只有读权限。

文件权限

在 Linux 系统中,文件权限决定了用户对文件的访问权限,包括读取文件内容、修改文件内容和执行文件。文件权限主要有三种:读权限(r)、写权限(w)和执行权限(x)。

1. 文件权限的三种类型
  • 读权限(r)

    • 作用:允许用户查看文件内容。

    • 适用:当文件具有读权限时,用户可以使用 catless 等命令查看文件内容。

  • 写权限(w)

    • 作用:允许用户修改文件内容。

    • 适用:当文件具有写权限时,用户可以编辑文件、添加内容或删除内容。

  • 执行权限(x)

    • 作用:允许用户执行文件(如脚本或程序)。

    • 适用:当文件具有执行权限时,用户可以通过命令行运行该文件(如执行 .sh 脚本或二进制文件)。

2. 文件的权限表示

文件的权限使用 rwx 表示,其中:

  • r(read)表示读权限。

  • w(write)表示写权限。

  • x(execute)表示执行权限。

例如,文件权限 rwxr-xr-- 表示:

  • 文件拥有者(User)具有读、写、执行权限(rwx)。

  • 所属组(Group)具有读、执行权限(r-x)。

  • 其他用户(Others)具有读权限(r--)。


目录权限

目录的权限控制与文件略有不同。目录权限决定了用户能否访问目录以及在目录中执行哪些操作。

1. 目录权限的三种类型
  • 读权限(r)

    • 作用:允许用户列出目录中的文件。

    • 适用:当目录具有读权限时,用户可以使用 ls 命令查看目录中的文件名。

  • 写权限(w)

    • 作用:允许用户在目录中创建、删除和重命名文件。

    • 适用:当目录具有写权限时,用户可以在该目录内添加或删除文件,修改目录中文件的名称。

  • 执行权限(x)

    • 作用:允许用户进入目录,进行文件查找和访问。

    • 适用:当目录具有执行权限时,用户可以使用 cd 命令进入该目录并访问该目录中的文件。如果没有执行权限,用户即使知道目录中的文件名,也无法访问该文件。

    • 没有读权限不能使用ls系列列出目录的文件,没有写权限不能在目录中创建,删除文件,没有执行权限就不能进入目录。

2. 目录权限与文件权限的差异
  • 对于文件,执行权限 使文件可以被运行或执行;

  • 对于目录,执行权限 使用户能够进入目录并访问目录中的文件,没有执行权限 时,用户不能进入该目录。

例如:

  • 如果一个目录的权限是 r--rw-,并且没有执行权限,则用户无法进入该目录,即使知道目录中的文件名;

  • 如果一个目录的权限是 --x,即便没有读权限,用户仍然可以进入目录,并通过文件的完整路径访问其中的文件,但无法列出目录中的文件名。

权限掩码(umask)简介

权限掩码(umask)是一个用于控制新创建的文件或目录的默认权限的工具。它通过掩蔽(屏蔽)掉默认的权限值,来决定文件或目录在创建时所能获得的权限。

什么是权限掩码(umask)

umask用户文件创建权限的屏蔽值,其作用是限制或关闭某些权限位。umask 并不是直接赋予文件或目录某种权限,而是通过对默认权限进行屏蔽来减少一些权限。

每个文件或目录在创建时,都会先有一组默认的权限(通常文件是 666,目录是 777),然后根据当前设置的掩码值(umask)来决定实际的权限。掩码值(前取反)通过 按位与运算(AND)与默认权限相结合,从而决定最终的权限。

默认权限和掩码
  1. 文件默认权限666(即 rw-rw-rw-),表示创建文件时,所有用户角色都有 权限,但没有 执行 权限。

  2. 目录默认权限777(即 rwxrwxrwx),表示创建目录时,所有用户角色都有 执行 权限。

掩码(umask)值

umask 值是一个 三位八进制数,每一位数字代表不同角色的权限屏蔽情况。它控制着默认权限中哪些权限被禁止。

  • 第一个数字:文件拥有者的权限

  • 第二个数字:文件所属组的权限

  • 第三个数字:其他用户的权限

掩码值的每一位可以是 07 之间的数字,对应以下权限屏蔽情况:

  • 0:不屏蔽任何权限

  • 1:屏蔽 执行 权限

  • 2:屏蔽 权限

  • 3:屏蔽 执行 权限

  • 4:屏蔽 权限

  • 5:屏蔽 执行 权限

  • 6:屏蔽 权限

  • 7:屏蔽 执行 权限

如何计算掩码

掩码是对默认权限进行 "屏蔽" 的值。默认权限为 666(文件)和 777(目录)。掩码通过 "取反" 和 "按位与运算" 来决定实际的权限。

举个例子:

  • 掩码值:022(一般的默认掩码值)

    • (默认文件权限:666(即 rw-rw-rw-

    • 默认目录权限:777(即 rwxrwxrwx

    掩码取反:

    • 掩码 022 取反为 755

    按位与运算计算文件权限:

    默认文件权限(666): rw-rw-rw- 掩码取反(755): rwxr-xr-x 计算结果:rw-r--r--

    结果是文件权限为 rw-r--r--(644即文件拥有者有读写权限,所属组和其他用户只有读权限)。

    按位与运算计算目录权限:

    默认目录权限(777): rwxrwxrwx 掩码取反(755): rwxr-xr-x 计算结果:rwxr-xr-x

    结果是目录权限为 rwxr-xr-x(755,一般目录的初始权限(即目录拥有者有完整权限,所属组和其他用户有读和执行权限,但没有写权限)。

查看和设置掩码
  • 查看当前掩码: 你可以使用命令 umask 来查看当前的掩码值。它会返回一个三位八进制数,例如 022

    umask

  • 修改掩码值: 使用 umask 命令加上新的掩码值来修改它。修改后的掩码会在当前会话中生效。如果要永久修改掩码,需要将它添加到用户的 shell 配置文件(如 .bashrc.bash_profile)中。

    umask 027

    这将屏蔽掉目录和文件的 "其他用户" 组的写权限。

权限掩码的示例
  1. 掩码 022

    • 默认权限(文件):666 -> rw-rw-rw-

    • 默认权限(目录):777 -> rwxrwxrwx

    结果:

    • 文件权限:rw-r--r--

    • 目录权限:rwxr-xr-x

  2. 掩码 077

    • 默认权限(文件):666 -> rw-rw-rw-

    • 默认权限(目录):777 -> rwxrwxrwx

    结果:

    • 文件权限:rw-rw----

    • 目录权限:rwxrwx--x

  3. 掩码 002

    • 默认权限(文件):666 -> rw-rw-rw-

    • 默认权限(目录):777 -> rwxrwxrwx

    结果:

    • 文件权限:rw-rw-r--

    • 目录权限:rwxrwxr-x

改变权限的三种指令 chmod,chown,chgrp

在 Unix 和类 Unix 系统中,chmodchgrpchown是用于管理文件和目录权限及所有权的重要命令,下面为你详细介绍这些命令以及 “所有组”“所有人” 在权限管理中的概念。

权限基本概念

在文件系统里,每个文件和目录都具备三种基本权限:读(r)、写(w)和执行(x),这些权限分别对应着不同的用户类型:

  • 所有者(u:文件或目录的创建者。
  • 所属组(g:和文件或目录关联的用户组。
  • 其他人(o:既不是所有者,也不属于所属组的用户。
  • 所有人(a:涵盖了所有者、所属组和其他人。

命令详解

1. chmod - 更改文件或目录的权限

chmod命令可用于修改文件或目录的权限。它有两种使用方式:符号模式和数字模式。

符号模式

  • 语法:chmod [用户类型][+|-|=][权限] 文件或目录
  • 示例:
    • 给文件所有者添加执行权限:chmod u+x example.txt
    • 从所属组移除写权限:chmod g-w example.txt
    • 给所有人添加读权限:chmod a+r example.txt

数字模式

  • 每个权限都有对应的数字:读(r)= 4,写(w)= 2,执行(x)= 1,无权限 = 0。
  • 语法:chmod [三位数字] 文件或目录
  • 示例:
    • 给所有者赋予读、写、执行权限(7),所属组赋予读、执行权限(5),其他人赋予读权限(4):chmod 754 example.txt
2. chgrp - 更改文件或目录的所属组

chgrp命令用于更改文件或目录的所属组。

  • 语法:chgrp [选项] 新组名 文件或目录
  • 常用选项:
    • -R:递归地更改指定目录及其所有子目录和文件的所属组。
  • 示例:
    • example.txt的所属组更改为newgroupchgrp newgroup example.txt
    • 递归地将my_directory目录及其内容的所属组更改为newgroupchgrp -R newgroup my_directory
3. chown - 更改文件或目录的所有者和所属组

chown命令用于更改文件或目录的所有者,也可以同时更改所属组。

  • 语法:chown [选项] [新所有者][:新所属组] 文件或目录
  • 常用选项:
    • -R:递归地更改指定目录及其所有子目录和文件的所有者和所属组。
  • 示例:
    • example.txt的所有者更改为newuserchown newuser example.txt
    • example.txt的所有者更改为newuser,所属组更改为newgroupchown newuser:newgroup example.txt
权限要求
  • chmod:通常所有者或超级用户(root)可以更改文件或目录的权限。
  • chgrp:超级用户(root)可以将任何文件或目录的所属组更改为系统中的任何组;普通用户只能将自己拥有的文件或目录的所属组更改为自己所属的组。
  • chown:一般只有超级用户(root)才能更改文件或目录的所有者和所属组。
查看权限

你可以使用ls -l命令查看文件和目录的权限和所有权信息,示例输出如下:

-rw-r--r-- 1 user group 123 Apr 16 10:00 example.txt
  • 第一个字符表示文件类型(-表示普通文件,d表示目录等)。
  • 接下来的 9 个字符分为三组,分别表示所有者、所属组和其他人的权限。
  • 之后依次是链接数、所有者、所属组、文件大小、最后修改时间和文件名。
粘滞位的常见用途

粘滞位通常用于公共目录,特别是临时目录,最典型的例子就是 /tmp 目录。/tmp 目录通常是所有用户都可以访问的,用来存放临时文件。如果没有粘滞位的保护,任何有写权限的用户都可以删除其他用户的临时文件,这会导致系统不稳定或文件丢失。而粘滞位确保了用户只能删除自己创建的文件,而不能删除其他人的文件。

📃使用方式

很简单,创建一个共享目录后,借助超级用户的身份,通过 chmod +t [目录] 的方式,为这个共享目录添加粘滞位就行了,粘滞位添加成功后,该共享目录的Other 可执行权限变为 t

如何设置粘滞位

你可以使用 chmod 命令来设置或取消粘滞位。设置粘滞位的命令格式如下:

chmod +t <目录名>

例如,如果你想在 /tmp 目录上设置粘滞位,可以运行:

chmod +t /tmp

如何检查粘滞位

可以通过 ls -ld 命令来查看某个目录是否设置了粘滞位。例如:

ls -ld /tmp

如果该目录设置了粘滞位,你会看到目录权限中有一个 t 字符(而不是 x)出现在执行权限的位置,比如:

drwxrwxrwt 10 root root 4096 Apr 16 10:00 /tmp

上面输出中的 t 就表示 /tmp 目录已设置了粘滞位。

粘滞位的注意事项

  • 粘滞位仅对目录有效,不会影响普通文件。

  • 粘滞位并不是普通的“写”权限,它是对目录中文件删除权限的限制。

  • 粘滞位的设置通常不会影响到超级用户(root)的操作,root 用户始终有权限删除或修改任何文件。

相关文章:

深入理解 Linux 权限管理:从 Shell 到文件权限

&#x1f33c;&#x1f33c; 在 Linux 系统中&#xff0c;权限是保障系统安全与稳定的核心之一。每个操作都可能涉及权限的管理和控制&#xff0c;特别是当你开始以不同用户的身份进行操作时。本文将通过生动的比喻与详细的技术解析&#xff0c;带你一起深入理解 Linux 权限系统…...

.net core 项目快速接入Coze智能体-开箱即用-全局说明

目录 一、Coze智能体的核心价值 二、开箱即用-效果如下 三 流程与交互设计 为什么要分析意图&#xff0c;而不是全部交由AI处理。 四 接入前的准备工作 五&#xff1a;代码实现----字节Coze 签署 JWT和获取Token .net core 项目快速接入Coze智能体-开箱即用 .net core快…...

React 开放封闭原则详解,构建可扩展的应用

开放封闭原则 React 采用了一些面向对象编程的原则和概念&#xff0c;其中之一就是开放封闭原则&#xff08;Open-Closed Principle&#xff0c;OCP&#xff09;&#xff0c;它是面向对象编程的一个基本原则。本文将详细解释开放封闭原则的概念和在 React 中的应用&#xff0c;…...

【并行分布计算】Hadoop完全分布搭建

Hadoop完全分布搭建 1.为了使机器都处于同一个局域网中&#xff0c;先要修改机器的ip地址分配方式为固定ip&#xff0c;并为其固定分配一个ip地址。 [rootlocalhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 问题&#xff1a;修改ip地址后&#xff0c;网络无法正常…...

Three.js + React 实战系列 : 从零搭建 3D 个人主页

可能你对tailiwindcss毫不了解&#xff0c;别紧张&#xff0c;记住我们只是在学习&#xff0c;学习的是作者的思想和技巧&#xff0c;并不是某一行代码。 在之前的几篇文章中&#xff0c;我们已经熟悉了 Three.js 的基本用法&#xff0c;并通过 react-three-fiber 快速构建了一…...

四月十六日华为发布会

智能家居及穿戴类 华为智能门锁 2 系列发布&#xff1a;2025 年 4 月 16 日&#xff0c;华为智能门锁 2 系列正式发布。该系列引入 AI 掌静脉识别技术和 AI 3D 人脸识别 3.0&#xff0c;具备高安全性&#xff1b;采用超清智能大猫眼&#xff0c;可视范围达 161&#xff1b;通过…...

23种设计模式-创建型模式之工厂方法模式(Java版本)

Java 工厂方法模式&#xff08;Factory Method Pattern&#xff09;详解 &#x1f31f; 什么是工厂方法模式&#xff1f; 工厂方法模式是一种创建型设计模式&#xff0c;定义一个创建对象的接口&#xff0c;让子类决定实例化哪一个类。 它让类的实例化推迟到子类进行&#xf…...

基于FreeBSD的Unix系统搭建Nginx+PHP5运行环境

服务器操作系统版本&#xff1a;FreeBSD-10.1-i386 Nginx安装配置 1.以ports形式安装 #进入nginx目录 cd /usr/ports/www/nginx #执行编译安装 make install 2.编辑配置文件 #进入etc目录 cd /etc #编辑配置文件 ee rc.conf #进入编辑模式 i #参照如下设置 nginx_enable”YES…...

医院处方外流对接外部药房系统(合规python代码版)

系统概述 本系统旨在帮助医院实现与外部零售药店的安全、合规对接,满足2025年医保局和卫健委关于处方流转的最新规定。系统采用Python开发,基于RESTful API实现医院HIS系统与外部药房之间的处方信息传输、医保支付验证和处方状态跟踪等功能。 系统架构 #mermaid-svg-zKU5Wj…...

第十七届“华中杯”B 题校园共享单车的调度与维护问题分析

问题1&#xff1a;估算共享单车总量及不同停车点位在不同时间点的数量分布 首先&#xff0c;我们需要对附件1的数据进行汇总&#xff0c;以估算出校园内的共享单车总量。由于数据是按不同时间和停车点位统计的&#xff0c;我们可以通过对所有时间和点位的单车数量进行求和&…...

线程池的封装(c/c++)

前言&#xff1a;本文将要封装的线程池相关接口是基于之前一篇文章中的实现&#xff08;文章链接&#xff1a;Linux多线程编程的艺术&#xff1a;封装线程、锁、条件变量和信号量的工程实践-CSDN博客&#xff09;。不过无需担心&#xff0c;即使您没有阅读过前文&#xff0c;只…...

「数据可视化 D3系列」入门第六章:比例尺的使用

比例尺的使用 一、比例尺是什么&#xff1f;典型示例&#xff1a; 二、常用比例尺类型1. 线性比例尺 (scaleLinear)2. 序数比例尺 (scaleOrdinal)3. 其他常用比例尺类型&#xff1a; 三、实际应用主要改进点说明 四、比例尺的高级用法1. 颜色比例尺2. 时间比例尺3. 分段比例尺 …...

巧用ChatGPT生成适合小白的Python练习题,助力编程入门

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;AI 【前言】 在Python学习的道路上&#xff0c;练习题是帮助小白快速掌握编程知识和技能的重要工具。然而&#xff0c;…...

iOS15描述文件在哪下载?iOS15测试版描述文件下载与升级教程

iOS 15正式发布&#xff1a;全面升级体验与开发者工具推荐 今天凌晨&#xff0c;备受关注的WWDC21开发者大会上如期召开&#xff0c;果粉期待已久的新一代iOS 15操作系统正式发布。iOS 15系统带来了全新FaceTime与通知界面&#xff0c;并对照片、天气、钱包、地图等应用进行了…...

Java面试(2025)—— Spring

什么是Spring? 结构化回答&#xff08;总分总模式&#xff09; ① 一句话定义 “Spring 是一个开源的 Java 企业级应用框架&#xff0c;核心目标是简化企业应用的开发&#xff0c;通过控制反转&#xff08;IoC&#xff09;、依赖注入&#xff08;DI&#xff09;和面向切面编…...

【C++ Qt】Hello World、初始信号槽、理解对象树 ~~~(通俗易懂 图文并茂)

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章是Qt的第二篇&#xff0c;带你认识Qt中几个简单的控件如何实现&#xff0c;以及通过信号槽的方式实现一定的用户和程序的联动&#xff0c;还有许多…...

2025.04.16【GroupedandStackedbarplot】生信数据可视化技法

Negative values This blogpost shows what happens when the dataset includes negative values. Most basic streamchart The most basic streamchart you can build with R and the streamgraph package. 文章目录 Negative valuesMost basic streamchart 2025.04.16【Gro…...

java 设计模式之代理模式

简介 代理模式&#xff1a;使用代理类来增强目标类的功能。在代码结构上&#xff0c;代理对象持有目标对象&#xff0c;通过代理对象访问目标对象&#xff0c;这样可以在不改变目标对象的前提下增加额外的功能&#xff0c;如权限校验、缓存等 代理模式内部的角色&#xff1a;…...

Spring Boot实战:基于策略模式+代理模式手写幂等性注解组件

一、为什么需要幂等性&#xff1f; 核心定义&#xff1a;在分布式系统中&#xff0c;一个操作无论执行一次还是多次&#xff0c;最终结果都保持一致。 典型场景&#xff1a; 用户重复点击提交按钮网络抖动导致的请求重试消息队列的重复消费支付系统的回调通知 不处理幂等的风…...

【.net core】【watercloud】数据库连接报错问题

错误信息&#xff1a; 中文提示 : 连接数据库过程中发生错误&#xff0c;检查服务器是否正常连接字符串是否正确&#xff0c;错误信息&#xff1a;Cannot Open when State is Connecting.DbType"MySql";ConfigId"0". English Message : Connection open …...

69. x 的平方根

目录 一、问题描述 二、解题思路 三、代码 四、复杂度分析 一、问题描述 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数…...

计算机网络基础概论

计算机网络基础概论 目录 一、网络基本概念 1.1. 网络 1.2 互联网 1.3 ip地址 1.3.1 作用 1.3.2 分类 1.4 MAC地址 1.4.1 MAC地址与 IP 地址的关系 1.5 网络协议 二、网络分层模型 2.1 物理层 2.2 数据链路层 2.3 网络层 2.4 传输层 2.5 会话层 2.6 表示层 2.7…...

京东3D空间视频生成技术探索与应用

1. 背景 近年来&#xff0c;随着社交媒体、流媒体平台以及XR设备的快速发展&#xff0c;沉浸式3D空间视频的需求迅猛增长&#xff0c;尤其是在短视频、直播和电影领域&#xff0c;正在重新定义观众的观看体验。2023年&#xff0c;苹果公司发布的空间视频技术为这一趋势注入了新…...

吉利矩阵(DFS)

所有元素为非负整数&#xff0c;且各行各列的元素和都等于 7 的 33 方阵称为 “吉利矩阵”&#xff0c;因为这样的矩阵一共有 666 种。 本题就请你统计一下&#xff0c;各行各列的元素和都等于 5 的 33 方阵一共有多少种&#xff1f; 思路&#xff1a;统计方法数&#xff0c;…...

突破反爬限制的智能数据采集实战 —— 面向中小企业的高效信息监控方案

在当前数据驱动的商业环境中&#xff0c;如何高效、稳定地获取网络数据&#xff0c;已成为众多中小企业进行市场洞察、竞品监测与品牌舆情管理的关键能力。本文将分享一个基于先进API技术构建的社交媒体热点监控系统&#xff0c;聚焦实际应用场景&#xff0c;展示如何在合规前提…...

从0到1:让AI赋能计算机的全流程实践指南

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;AI 【前言】 在数字化浪潮席卷全球的今天&#xff0c;AI&#xff08;人工智能&#xff09;早已不是科幻电影中的虚构概…...

IntelliJ IDEA 2025.1 发布 ,默认 K2 模式 | Android Studio 也将跟进

2025.1 版本已经发布&#xff0c;在此之前我们就聊过该版本的 《Terminal 又发布全新重构版本》&#xff0c;而现在 2025.1 中的 K2 模式也成为了默认选项。 可以预见&#xff0c;这个版本可能会包含不少大坑&#xff0c;为下个 Android Studio 祈祷。 首先有一点可以确定&…...

MCP、A2A、Function Calling:AI架构设计的三驾马车

随着AI浪潮的到来&#xff0c;各种技术和概念也层出不穷&#xff0c;作为技术人应该第一时间掌握其核心概念与原理&#xff0c;以便于在工作和交流中傻傻分不清楚&#xff0c;本文主要就最近大家提及比较多的MCP、A2A和Function Call做下普及与区分 在当今快速发展的AI领域&a…...

NO.96十六届蓝桥杯备战|图论基础-多源最短路|Floyd|Clear And Present Danger|灾后重建|无向图的最小环问题(C++)

多源最短路&#xff1a;即图中每对顶点间的最短路径 floyd算法本质是动态规划&#xff0c;⽤来求任意两个结点之间的最短路&#xff0c;也称插点法。通过不断在两点之间加⼊新的点&#xff0c;来更新最短路。 适⽤于任何图&#xff0c;不管有向⽆向&#xff0c;边权正负&…...

OpenHarmony - 小型系统内核(LiteOS-A)(六)

OpenHarmony - 小型系统内核&#xff08;LiteOS-A&#xff09;&#xff08;六&#xff09; 七、文件系统 支持的文件系统 FAT 基本概念 FAT文件系统是File Allocation Table&#xff08;文件配置表&#xff09;的简称&#xff0c;主要包括DBR区、FAT区、DATA区三个区域。其…...

“星睿O6” AI PC开发套件评测 - Windows on Arm 安装指南和性能测评

引言 Radxa联合此芯科技和安谋科技推出全新的"星睿O6"迷你 ITX 主板。该系统搭载了 CIX P1&#xff08;CD8180&#xff09;12 核 Armv9 处理器&#xff0c;拥有高达30T算力的NPU和高性能的GPU&#xff0c;最高配备64GB LPDDR内存&#xff0c;并提供了如 5GbE、HDMI …...

JS实现RSA加密

目录 目标 环境 实现RSA加解密 计算RSA加密允许的最大字节长度 目标 使用JS实现RSA加密解密。计算RSA加密允许的最大字节长度。 环境 node-rsa 实现RSA加解密 const NodeRSA require(node-rsa);function getKey() {const keyLength512// 创建 RSA 密钥对const key new …...

Seata方案详细

Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是阿里开源的分布式事务解决方案&#xff0c;支持多种事务模式&#xff0c;提供一站式的事务管理能力。以下是其核心原理、模式及实践的详细解析&#xff1a; 一、Seata核心架构与角色 Se…...

深入了解v-model的原理:v-model拆分为value属性和input事件,表单类组件的封装并用v-model简化代码

文章目录 1.v-model的原理1.1.验证:在input文本输入框中不使用v-model实现双向数据绑定1.2.验证:v-model在下拉菜单中的拆分 2.表单类组件的封装2.1.原理或步骤2.2.示例:表单类组件封装之下拉菜单select的封装 3.使用v-model简化代码完整代码 4.拓展示例:完成input文本输入框的…...

设计模式每日硬核训练 Day 14:组合模式(Composite Pattern)完整讲解与实战应用

&#x1f504; 回顾 Day 13&#xff1a;桥接模式小结 在 Day 13 中&#xff0c;我们学习了桥接模式&#xff08;Bridge Pattern&#xff09;&#xff1a; 用于将“抽象”与“实现”分离&#xff0c;适用于双维度变化场景&#xff08;如图形类型 渲染方式&#xff09;。它强调…...

RMSIN论文阅读

自适应旋转卷积 (ARC)是否可以换成可变形卷积 研究背景 指向性遥感图像分割&#xff08;RRSIS&#xff09;&#xff1a;旨在根据文本描述实现遥感图像中目标对象的像素级定位 像素级定位&#xff1a;像素级定位指的是在图像中对目标对象的每个像素进行准确的定位和标记。这意味…...

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…...

华为OD机试真题——最小的调整次数/特异性双端队列(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

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

华为OD机试真题——统计匹配的二元组个数(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

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

4.16学习总结

完成134. 加油站 - 力扣&#xff08;LeetCode&#xff09;算法题 学习了filewriter的相关方法&#xff0c;了解了字符流的底层原理...

java面试篇 4.9

目录 mybatis&#xff1a; 1、mybatis的执行流程 2、mybatis是否支持延迟加载&#xff1f; 当我们需要去开启全局的懒加载时&#xff1a; 3、mybatis的一级和二级缓存 微服务 1、springcloud五大组件有哪些 2、服务注册和发现是什么意思&#xff1f;springcloud如何实现…...

子函数嵌套的意义——以“颜色排序”为例(Python)

多一层缩进精减参数传递&#xff0c;参数少平铺书代码写更佳。 笔记模板由python脚本于2025-04-16 11:52:53创建&#xff0c;本篇笔记适合喜欢子函数嵌套结构代码形式的coder翻阅。 【学习的细节是欢悦的历程】 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅…...

Python深度学习实现验证码识别全攻略

放在前面 Python深度学习实现验证码识别全攻略 Python深度学习实现验证码识别全攻略 在网络安全领域&#xff0c;验证码作为人机区分的关键防线&#xff0c;广泛应用于登录、注册等场景。随着技术演进&#xff0c;验证码样式愈发复杂&#xff0c;传统识别手段力不从心&#…...

【Linux】su、su-、sudo、sudo -i、sudo su - 命令有什么区别?分别适用什么场景?

目录 su su- sudo sudo -i sudo su - /etc/sudoers su 该命令将启动非登录shell&#xff0c;即虽然以该用户身份启动shell&#xff0c;但使用的是原始用户的环境设置。普通用户账户运行 su 命令切换到另一用户账户&#xff0c;需提供要切换的账户的密码。root用户&…...

算法-同余原理

在计算n个数相加或者相乘再取余时&#xff0c;中间结果可能会溢出导致结果错误&#xff0c;这时可以使用同余原理 一、同余原理 ①加法同余 &#xff08;a[1] a[2] ... a[n]&#xff09;% m > (a[1] % m a[2] % m ... a[n] % m) % m ② 乘法同余 &#xff08;…...

深入理解卷积神经网络(CNN):从原理到实践

引言 卷积神经网络(Convolutional Neural Networks, CNN)是深度学习领域最具影响力的架构之一&#xff0c;尤其在计算机视觉任务中表现出色。自2012年AlexNet在ImageNet竞赛中一战成名以来&#xff0c;CNN不断演进&#xff0c;推动着图像识别、医疗影像分析、自动驾驶等领域的快…...

深度学习常见模块实现001

文章目录 1.学习目的2.常见模块使用与实现2.1 ResNet18实现2.2 SeNet模块2.3 CBAM模块 1.学习目的 深度学习在图像处理这块&#xff0c;很多模块已经成型&#xff0c;并没有很多新的东西&#xff0c;更多的是不同的模块堆叠&#xff0c;所以需要我们不断总结&#xff0c;动手实…...

Python实现贪吃蛇三

上篇文章Python实现贪吃蛇一&#xff0c;实现了一个贪吃蛇的基础版本。后面第二篇文章Python实现贪吃蛇二修改了一些不足&#xff0c;但最近发现还有两点需要优化&#xff1a; 1、生成食物的时候有概率和记分牌重合 2、游戏缺少暂停功能 先看生成食物的时候有概率和记分牌重合的…...

windows server C# IIS部署

1、添加IIS功能 windows server 2012、windows server 2016、windows server 2019 说明&#xff1a;自带的是.net 4.5 不需要安装.net 3.5 尽量使用 windows server 2019、2016高版本&#xff0c;低版本会出现需要打补丁的问题 2、打开IIS 3、打开iis应用池 .net 4.5 4、添…...

LLM小白自学笔记:1.两种指令微调

一、LoRA 简单来说&#xff0c;LoRA不直接调整个大模型的全部参数&#xff08;那样太费资源&#xff09;&#xff0c;而是在模型的某些层&#xff08;通常是注意力层&#xff09;加个“旁路”——两个小的矩阵&#xff08;低秩矩阵&#xff09;。训练时只更新这俩小矩阵&#x…...