Linux权限理解【Shell的理解】【linux权限的概念、管理、切换】【粘滞位理解】

目录

  • Linux权限理解
    • 1.Xshell命令以及运行原理
    • 2.linux权限的学习
      • 2.1linux权限的切换
      • 2.2linux权限的概念
      • 2.3linux权限管理
        • 2.3.1linux中文件访问者的分类
        • 2.3.2文件类型和访问权限(文件属性)
          • 2.3.2.1文件类型
          • 2.3.2.2文件权限
            • 拓展—文件的起始权限
        • 2.3.3文件权限管理
        • 2.3.4文件权限的应用
        • 2.3.5文件访问者的管理
      • 2.4目录的权限问题
      • 2.5粘滞位
        • 2.5.1添加粘滞位
    • 3.学习完要问自己的问题

Linux权限理解

在学习linux的权限之前我们先来看看我们一直使用的Xshell是如何运行的。

1.Xshell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)

(shell是外壳的统称,我的服务器(Centos 7)的linux系统的外壳是bash【shell有很多种,bash只是其中一种,还有一些linux系统用的外壳是sh】)

我的所有指令都会交给bash这个shell来处理

image-20240914194651274

shell会干两件事情:

  • 将使用者的命令翻译给核心(kernel)处理。

  • 同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

看图可以方便理解:

image-20240914191816719

其实用户也不是不能和操作系统交互,但是比较麻烦,不方便。

注意:

这里还有一个小概念,就是如果用户输入的指令/程序会让shell出问题的话,shell就会通过派生子进程的方式去执行用户的指令,shell本身不会执行用户的指令。这样子进程挂了,shell本身不会有问题。这里的详细细节以后会学习

2.linux权限的学习

linux是一个多用户操作系统,因此权限的学习非常重要

2.1linux权限的切换

Linux下有两种用户:超级用户(root)、普通用户

  • 超级用户:可以在linux系统下做任何事情,不受限制
  • 普通用户:在linux下做有限的事情

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

如何切换呢?

命令:su[用户名]

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

如果我想用普通权限,用root权限调用一个命令,但是我不切换成root身份的话,需要用sudo。

sudo就是普通用户不切换身份的同时又能以root的身份去执行sudo后面的指令。

这个时候系统会让你输入用户的密码

image-20240917153512346

这里我们会发现好像有一点问题,**普通用户以root的身份去执行指令,但是输入的是自己的密码?**这岂不是说所有普通用户都能以root身份执行指令吗?

实际上不是这样的。当我们输入完密码的时候会发现

image-20240917153732315

这里的意思就是说,Yaj这个用户是不被系统信任的,它不能借用root的身份去执行指令

实际上,如果一个用户能执行sudo的话,说明他是被系统信任的用户。这个需要用户存在于/etc/sudoers这个目录下。这个东西有点类似白名单——给受信任的用户,提供最少的执行障碍

2.2linux权限的概念

什么是权限呢?

  1. 权限是约束一个身份(人)的,这个人能干什么事情,取决于它的身份带给他的权限。
  2. 目标对象是否存在对应的属性给人去做。

其实权限简单来说就是——一件事情是否允许被谁做

这个谁就是人(身份),做就是这个事情本身是否能够做这个事情。

举个很简单的例子来说:

一个人能去学校上课,跟这个人没关系,是因为这个人是学生,并且学校能够提供上课属性给学生上课、

再举一个例子:

作为一个视频会员拥有者,我能看vip电影是因为我的会员身份,跟我人这个体是没有关系的,我说我是谁谁谁,系统不认,它只认你是否是会员。是会员,才能拥有会员的权限。

linux当中的文件权限==角色/身份+文件属性

假如我是root身份/用户,那我就会拥有root身份/用户的权限,但是某个文件的属性本身就是不可以访问的,(比如一个不是可执行的文件)那么即便我拥有root的权限,但是我还是无法访问这个文件。如下图所示

image-20240918195709176

但是一个文件的属性是——只能被root用户查看,那么root用户就可以访问这个文件,普通用户就不行。这里体现的就是权限对人(身份)的约束。

2.3linux权限管理

2.3.1linux中文件访问者的分类

linux在判断一个具体用户的权限的时候,会先将这个具体的用户分类,分类完之后根据身份去给与相对应的权限。

具体在linux中,会将用户分类成三类身份。

  • 文件和文件目录的所有者:u—User(中国平民 法律问题)

谁创建的文件和文件目录,谁就是所有者——user

拥有者只能是一个具体的用户。

  • 文件和文件目录的所有者所在的组的用户:g—Group(不多说)

user和other的概念都很好理解,这个group怎么看呢?

所属组group的存在能解决一个问题——一个文件只能给拥有者(user)查看或者给全部人(other)查看

举个例子:一个项目,有A\B两个组的人去一起开发,谁开发的好用谁的。一个A组的人想把自己的代码给组内的伙伴查看,如果没有group,它直接放开了other的权限,那么所有人都可以来看他的代码,这样就不合理了

  • 其它用户:o—Others (外国人)

除了user和group的其他人就是others。

2.3.2文件类型和访问权限(文件属性)
2.3.2.1文件类型

我们要如何查看文件的类型和权限呢?

输入ll就行了,文件名前面的一长串就是这个文件的属性

image-20240917193834880

关于这个文件属性如何看,我们可以看下面这个图。

image-20240917193622938

我们先来看文件属性第一位所表示的文件类型:

  • 文件的类型

要注意:在linux中文件后缀对于linux区分这个文件的类型完全无关。在linux中,文件后缀本质也是文件名字的一部分。但是作为用户来说,我可以通过后缀去帮助我区别文件类型.

d:文件夹

-:普通文件(源代码,库文件,可执行程序,文档压缩包等)

image-20240917195603840

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

image-20240917200014936

b:块设备文件(例如硬盘、光驱等)【这个删除了就出问题了】

p:管道文件

image-20240917200234877

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

s:套接口文件

我们也可以通过file来查看文件类型

file 文件名

image-20240918123935338

2.3.2.2文件权限

知道了文件类型之后,我们再来看文件属性第2~10位所表示的文件权限

  • 文件的基本访问权限
  1. 读®—Read对文件而言,具有读取文件内容的权限;对目录而言,具有浏览该目录信息的权限
  2. 写(w)—Write对文件而言,具有修改文件内容的权限;对目录而言,具有删除或移动目录内文件的权限
  3. 执行(x)—execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. "—"表示不具有该权限

首先我们知道文件属性的第一位是文件类型,那为什么是9位来表示文件的权限呢?

因为是每三位为一组来表示对应身份所拥有的权限。

image-20240917202726219

我们以上图file这个文件的属性为例来解析一下其第2~10位所表达的文件权限

image-20240917203601041

因此我们要描述file这个文件的属性我们应该这样说:file这个文件的类型是目录,它的拥有者是root,所属组是root,对于拥有者来说它的权限是可读可写可执行,对于所属组来说,它的权限是可读不可写可执行。对于其他人来说,它的权限是可读不可写可执行。

下图是三位权限的各种情况:

字符表示法:

image-20240917204357096

8进制数值表示法:

image-20240917204515455

拓展—文件的起始权限

我们创建一个普通文件,它创建出来的权限如下图所示:

image-20240918125434943

这里有个问题:为什么普通文件的创建出来的权限是644?

这里需要引入一个权限掩码(umask的概念)

umask

功能

查看或修改文件掩码

  • 新建文件夹默认权限=0666

  • 新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)

格式:umask 权限值

说明:将现有的存取权限去掉权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002

实例如下图所示

这里创建了一个普通文件test.txt和目录dir

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意,这里默认权限去掉权限掩码的运算过程不是减法,是mask & (~umask)

也就是**(默认权限的二进制码)&( 按位取反的权限掩码的二进制码)**

什么意思呢?

如图所示:

image-20240918200114195

这样做的目的就是:

umask:默认要去掉的权限位是1,要保留的是0

~umask:要去掉的权限位就变成0,任何数&上0都是0,从而实现去掉权限,要保留的权限位就是1,如果本来就有这个权限,那么1&1还是1,从而实现权限的保留

2.3.3文件权限管理

知道了文件属性当中是如何表达文件权限的。现在就可以学习如何管理文件权限了、

要想对文件权限进行修改,要不就是root用户,要不就是文件的所有者。

要对文件权限进行管理,需要用到指令chmod:

chmod

**功能:**设置文件的访问权限

**格式:**chmod [参数] 权限 文件名

常用选项:

R -> 递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

用chmod来管理权限的格式:

用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户

实例:

我们以下面这个文件为例子,来对其权限进行管理/修改。

image-20240917205841582

我们想把user的权限修改成不可读不可写,输入chmod u-rw test.txt

这里的这个u指的就是user的权限,-代表删除权限,u-rw就是删除user的可读可写权限。u-rw test.txt就是删除user对test.txt这个文件的可读可写权限

image-20240917210441255

把user的权限修改为可读可写可执行,输入chmod u+rwx test.txt

image-20240917210753762

这里虽然我们把拥有者的权限修改为可读可写可执行,但是并不是一定就能执行出结果。这个文件本身没有可执行内容,即便执行了也不会有结果

image-20240917211235575

如上图所示,执行了没有反应。说明这个文件本身不应该是可执行的

修改用户组和其他人的权限也是类似,把相应的u改成g和o就行了

image-20240917211921145

如果想一次性去除多个身份的相同权限也是可以做到的,在中间加个逗号就可以了。

image-20240917212038931

意思就是去除拥有者和用户组的所有权限。

一次性同时管理多个用户的不同权限也可以,如下图所示:

image-20240917212212437

也可以通过-a选项来一次性修改所有身份的权限
image-20240917212610691

当然,也可以用8进制表示法来修改文件的权限:

image-20240917204515455

例如下图:

image-20240918010307519

这里的第一个7表示的是修改拥有者的权限,7等价于u+rwx,即可读可写可执行

这里第二个7表示修改的是所属组的权限,等价于g+rwx,即可读可写可执行

第三个0表示修改其他人的权限,等价于o-rwx,即不可读不可写不可执行

image-20240918011032214

在把权限改回去

2.3.4文件权限的应用

现在我们已经能对一个文件的权限进行管理了。那不同身份下的各种权限到底有什么区别呢?使用的时候是什么样子的?我们来看下面这个例子:

这里是使用者是否拥有各种权限的例子:

这里test.txt的文件对user的权限是rw-,也就是可读可写不可执行。

因此下图我们也对文件内容进行修改和读取的时候没有问题,在执行的时候报错显示Permission denied,意思就是没有权限。

因为这个文件本身的属性不提供可执行权限给你,即便是root权限也没办法执行。

image-20240917213051573

root权限是不受约束的,我们看下图:

image-20240917214839927

即便test.txt的对拥有者的权限是不可读不可写的,但是root仍然可读可写、

这里有个例子要注意:

这里有个普通账户whb,有个普通文件test.txt,这个文件对拥有者的权限是仅可读,对用户组的权限是可读可写。

image-20240917214036491

但是我们实际操作却发现,whb这个用户在对text.txt写的时候,发生了没有权限的事情。

这里可能有个问题:明明whb也是用户组里面的,虽然你对拥有者的权限是不可写,但是whb是用户组的呀,用户组的权限是可写的,那为什么没有权限呢?

这是因为linux底层再对你的用户权限进行匹配的时候,是从左到右进行匹配的,并且是if else,如果匹配到你是拥有者,那么就匹配拥有者的权限,除非你不是拥有者,才去判断你是不是用户组。

2.3.5文件访问者的管理

chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

实例:

将f1这个文件的拥有者改成user1

# chown user1 f1 

递归修改filegroup1这个目录下的文件的拥有者,都改成user1。

# chown -R user1 filegroup1

要注意:

如果不是root权限去执行这个指令的话,将拥有者改为user1,需要经过user1的同意才可以。

chgrp

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

实例

将f1文件的所属组改为user1

# chgrp user1 f1 

递归修改filegroup1这个目录下的文件的所属组,都改成user1。

# chgrp -R user1 filegroup1

要注意:

如果不是root权限去执行这个指令的话,将所属组改为user1,也需要经过user1的同意才可以。

并且用chown也可以修改所属组,如下图所示:
image-20240918002423454

其他人ohers不存在修改的指令。因为拥有者,和所属组,都是具体的人,但是其他人指除了所有者和所属者的其他所有用户。

2.4目录的权限问题

目录的权限:

  • 可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.

  • 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.

  • 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件

面试题:

1.进入一个目录要什么权限?

需要x——可执行权限

2.为什么linux规定目录的起始权限是777?

因为任何一个目录被创建出来都需要能够被进入,也就是x权限

总结:

  1. 目录的可执行权限是表示你可否在目录下执行命令以及进入目录
  2. 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
  3. 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,无法浏览目录下的文件

2.5粘滞位

在讲述粘滞位之前,我们先要讲述一个基本事实:

Linux是一个多用户服务器,有些时候一些特定的场景下,多个用户需要在一个公共的目录下,进行临时文件的操作。

这个公共的目录是/tmp——往往这个公共目录是root用户创建的,因此对于这个公共目录来说,其他所有用户都是others

image-20240918153727596

这目录里会放置一些临时文件

image-20240918153753192

知道了这个基本事实的话,我们来看一个场景

前面我们学过目录的权限,我们知道,一个用户只要具有目录的写权限,那么就可以在目录内进行文件的创建和删除,如下图所示:

image-20240918155457535

**但是这里就有一个问题:**我们在同一个公共目录下工作,因此我肯定具有目录的写权限,但是我对其他用户创建的文件不一定会有写权限,但是我却可以直接删掉别人的文件!

换句话来讲, 就是只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。因为删除文件这个权限不是由文件的w权限决定的,是由目录的w权限决定的。

这样就不合理了。

因此linux为了解决这个问题,就引入了粘滞键这个概念。粘滞位本身是权限的一种特殊情况。

是目录的权限问题导致公共目录内部的用户可以互相删除文件,因此我们给公共目录本身去设置一个粘滞位,从而达到禁止文件被其他用户删除的情况

2.5.1添加粘滞位

粘滞位——给目录设置的一种权限

注意:要有root权限才可以执行这个指令。并且root不受粘滞位影响,不受权限约束

chmod +t /公共目录名

这里给目录添加粘滞位,实际上就是在对others的权限做一个特殊化处理,把others的权限从rwx改成了rwt、因为其他所有用户对于公共目录来说都是others。

如下图所示:

image-20240918162206595

others的权限变成了rwt就是粘滞键添加成功了。

3.学习完要问自己的问题

  1. 什么是权限?

权限就是一件事情是否允许被某个身份执行

身份决定了人是否具有执行这件事情的权限,但这个事情本身是否能被执行也属于权限的一部分

具体的还是要看上面的内容

  1. 如何操作权限?

对权限进行管理,可以通过chmod对不同的身份进行权限的增加和删除。这个过程可以用字符,也可以用八进制来表示权限。

  1. 为什么要有权限?

因为可以对用户进行分类,有了权限的区别,方便我们对系统进行安全的管理和维护

  1. 文件被创建出来的默认权限是怎么决定的?

通过默认权限和umask决定的

  1. umask是什么?起什么作用?

umask是权限掩码。权限掩码实际参与了文件权限的决定

  1. umask是怎么和起始权限一起决定默认权限的?

mask & (~umask)

具体过程看2.3.2.2的拓展

  1. 进入目录需要什么权限?

x——可执行权限

  1. 为什么要存在粘滞键?

防止在同一公共目录下工作的用户对其他用户的文件进行删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/879332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云Ubuntu系统安装宝塔,配置Java环境,运行spring boot项目

致谢 本次学习宝塔部署spring boot项目,参考如下资料 https://www.cnblogs.com/daen/p/15997872.html 系统安装宝塔 直接用的腾讯云云服务器面板上的登录,你可以换成 xshell 进入宝塔官网: https://www.bt.cn/new/download.html 我们采…

跟《经济学人》学英文:2024年09月14日这期 Volunteering has big benefits for the elderly

Volunteering has big benefits for the elderly But those Britons who would most benefit are least likely to do it 原文: THE CROSSNESS Pumping Station is not what you’d expect of a sewage works. With its spiral staircases, colourful tiling and…

Sapiens——人类视觉大模型的基础

引言 大规模预训练以及随后针对特定任务的语言建模微调取得了显著成功,已将这种方法确立为标准做法。同样, 计算机视觉方法正逐步采用大规模数据进行预训练。LAION5B、Instagram-3.5B、JFT-300M、LVD142M、Visual Genome 和 YFCC100M 等大型数据集的出现…

计算机毕业设计 健身房管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Linux--守护进程与会话

进程组 概念 进程组就是一个或多个进程的集合。 一个进程组可以包含多个进程。 下面我们通过一句简单的命令行来展示: 为什么会有进程组? 批量操作:进程组允许将多个进程组织在一起,形成一个逻辑上的整体。当需要对多个进程…

Matlab如何配置小波工具(Wavelet Toolbox)

1、发现问题 因为实验要使用小波工具函数,运行时报错如下: 查看对应文件夹发现没有小波工具(也可在控制台输入ver),检查是否有该工具,输入后回车返回如下: 2、下载工具包 没有这个工具就要去下…

【浅水模型MATLAB】尝试复刻SCI论文中的溃坝流算例

【浅水模型MATLAB】尝试复刻SCI论文中的溃坝流算例 前言问题描述控制方程及数值方法浅水方程及其数值计算方法边界条件的实现 代码框架与关键代码模拟结果 更新于2024年9月17日 前言 这篇博客算是学习浅水方程,并利用MATLAB复刻Liang (2004)1中溃坝流算例的一个记录…

Gitee丝滑版本:成功在新电脑添加新文件

git 关键步骤 1.首先在新电脑建一个文件夹,然后打开这个文件夹里面右键打开OPEN BASH GIT HERE。 2.然后输入git init,会在文件夹生成一个git.文件,接着把复制的get clone命令克隆过去就可以下载了,如果遇到403问题&#xff0c…

循环神经网络RNN+长短期记忆网络LSTM 学习记录

循环神经网络(RNN) RNN的的基础单元是一个循环单元,前部序列的信息经处理后,作为输入信息传递到后部序列 x为输入向量,y为输出向量,a为上一隐藏层的a与x通过激活函数得到的值,简言之,每一层神…

从头开始学MyBatis—02基于xml和注解分别实现的增删改查

首先介绍此次使用的数据库结构,然后引出注意事项。 通过基于xml和基于注解的方式分别实现了增删改查,还有获取参数值、返回值的不同类型对比,帮助大家一次性掌握两种代码编写能力。 目录 数据库 数据库表 实体类 对应的实体类如下&#x…

Java项目: 基于SpringBoot+mybatis+maven洗衣店订单管理系统(含源码+数据库+开题报告+任务书+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven洗衣店订单管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作…

List<Map<String, Object>>汇总统计排序

开发环境&#xff1a;jdk 1.8 需求一&#xff1a; 1、统计每个小时(升序)不同事件的产品产量 2、统计不同事件&#xff08;OK 、NG&#xff09;的总产量 public static void main(String[] args) {//数据源List<Map<String, Object>> list new ArrayList<Map…

根据 IP 地址进行 VPN 分流(详细,亲测,通用)

根据 IP 地址进行 VPN 分流&#xff08;详细&#xff0c;亲测&#xff0c;通用&#xff09; 背景 不在学校的时候需要使用实验室的服务器&#xff0c;但是实验室的服务器只能在校园网内访问&#xff0c;因此在校外就需要使用学校的 VPN&#xff0c;但是打开 VPN 以后会默认将…

js 3个事件监听器 EventListeners

起因&#xff0c; 目的: 我有2个显示器。 某视频网站&#xff0c;我想一边播放视频&#xff0c;一边搞其他。但是&#xff0c;当我把鼠标移动到浏览器外面&#xff0c;点击一下别处&#xff0c; 视频就会自动暂停. 这个叫做 事件监听&#xff01; blur, 在元素或窗口失去焦点…

JSON对接发送短信验证码怎么获取状态报告

现在很多网站的用户注册都会加一个短信验证功能&#xff0c;也就是需要用户填写手机号&#xff0c;然后点击“获取短信验证码”&#xff0c;将收到的短信验证码输入验证通过后方能进行下一步完成注册&#xff0c;现在短信验证码被广泛应用于网站用户注册&#xff0c;还被广泛应…

linux 安装histomicstk

一直安装失败&#xff0c;源码编译也未成功 最后使用这个成功了 pip install histomicstk --find-links https://girder.github.io/large_image_wheels

零基础如何学会Appium自动化测试?

前言 appium是一款移动自动化测试工具&#xff0c;经常被用于实现UI自动化测试&#xff0c;其可支持安卓和IOS两大平台&#xff0c;还支持多种编程&#xff0c;因而得到了广泛的应用。此处便是立足于安卓平台&#xff0c;借助appium工具&#xff0c;使用python语言实现简单的自…

王者荣耀改重复名(java源码)

王者荣耀改重复名 项目简介 “王者荣耀改重复名”是一个基于 Spring Boot 的应用程序&#xff0c;用于生成王者荣耀游戏中的唯一名称。通过简单的接口和前端页面&#xff0c;用户可以输入旧名称并获得一个新的、不重复的名称。 功能特点 生成新名称&#xff1a;提供一个接口…

[mysql]mysql排序和分页

#排序和分页本身是两块内容,因为都比较简单,我们就把它分到通一个内容里. #1排序: SELECT * FROM employees #我们会发现,我们没有做排序操作,但是最后出来的107条结果还是会按顺序发出,而且是每次都一样.这我们就有一个疑惑了,现在我们的数据库是根据什么来排序的,在我们没有进…

【机器学习】--- 自然语言推理(NLI)

引言 随着自然语言处理&#xff08;NLP&#xff09;的迅速发展&#xff0c;**自然语言推理&#xff08;Natural Language Inference, NLI&#xff09;**已成为一项重要的研究任务。它的目标是判断两个文本片段之间的逻辑关系。这一任务广泛应用于机器阅读理解、问答系统、对话…