Linux 用户、用户组 useradd、groupadd等详解

🐇明明跟你说过:个人主页

🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》 🏅

🔖行路有良友,便是天堂🔖

目录

一、前言

1、Linux的起源与发展

2、Linux在现代计算机领域的重要性 

二、用户管理 

1、Linux用户类型

2、用户ID

3、用户的创建(useradd)

4、用户的删除(userdel)

5、用户密码管理

passwd命令的使用

密码的复杂性要求与安全性 

6、用户信息的查看

三、用户组管理

1、用户组的概念与作用

2、用户组的创建(groupadd)

3、用户组的删除(groupdel)

四、用户与用户组的关联

1、用户和用户组之间的关系

2、修改用户所属组(usermod)

3、用户组信息的查看(groups) 

4、用户组信息的查看(/etc/group) 


一、前言

1、Linux的起源与发展


1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。

Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

2、Linux在现代计算机领域的重要性 


Linux在现代计算机领域的重要性不言而喻,它已经成为各行各业中广泛应用的操作系统之一。

首先,Linux以其高度的稳定性、安全性和灵活性受到广泛认可。这使得它成为服务器领域的首选操作系统,许多大型企业都选择Linux作为他们的服务器操作系统。此外,Linux系统也在开发环境、科学计算、嵌入式系统以及虚拟化等方面有着广泛的应用。

其次,Linux是一种开源的操作系统,这意味着任何人都可以查看、使用和修改它的源代码。这种开放性不仅降低了软件成本,而且吸引了全球众多开发者为其贡献代码和功能,从而推动了软件的创新速度和质量提升。通过共同努力,Linux的源代码得到了不断的优化和完善,进一步提高了其稳定性和可靠性。

再者,Linux在云计算领域也发挥着关键作用。凭借其出色的稳定性和安全性,以及良好的可扩展性,Linux能够支持大规模的云基础设施和服务。许多云服务提供商都选择Linux作为他们的基础架构,以满足日益增长的计算需求。

二、用户管理 

Linux用户是Linux系统中的一个重要概念,指的是在Linux系统中登录和使用系统的个体。每个用户都拥有自己的用户名和密码,以及特定的权限和角色,这决定了他们在系统中的操作范围和能力。

1、Linux用户类型

  1. 普通用户:也被称为非特权用户或标准用户。这类用户在系统中拥有有限的权限,只能对自己的主目录和文件进行操作,不能对系统文件进行修改。普通用户主要用于日常工作和文件操作,无法执行系统级命令或访问受限制的资源。
  2. 超级用户(root用户):在Linux系统中,root用户拥有最高的权限,可以执行任何命令和操作任何文件。root用户相当于Windows系统中的Administrator用户,具有管理系统的全部权限。然而,由于root用户的权限过大,一旦操作失误可能导致系统崩溃或数据丢失,因此通常建议仅在必要时使用root用户,并尽量避免在root用户下执行日常任务。
  3. 系统用户:系统用户是为了满足系统的某种特定功能而创建的用户,例如运行某个服务或进程。这类用户通常没有登录系统的权限,主要用于后台任务的执行。

 在Linux系统中,用户的管理是通过用户账户和组账户来实现的。每个用户账户都关联到一个或多个组账户,而组账户则用于控制对文件和目录的访问权限。通过这种方式,Linux系统实现了对用户权限的精细控制和管理。 

  

2、用户ID

在Linux系统中,用户的ID(User ID,简称UID)是用于唯一标识不同用户的数字。不同类型的用户通常会有不同的UID范围或约定。

1. 超级用户(root用户):

  • UID通常是0。这是Linux系统中权限最高的用户,拥有对系统的完全控制。

2. 系统用户:

  • UID通常在1-999之间,具体范围可能因不同的Linux发行版而异。这些用户通常用于运行系统服务或进程,没有登录系统的权限。

3. 普通用户:

  • UID通常在1000及以上。这个范围内的UID通常是由系统管理员为普通用户创建的,用户具有有限的权限,只能对自己的文件和目录进行操作。

   

3、用户的创建(useradd)

useradd是Linux系统中用于创建新用户账户的命令。它通常需要超级用户(root)权限来执行,因为创建用户账户涉及到系统级别的更改。使用useradd命令时,可以指定各种选项来定制新用户的设置。

语法格式:

useradd [选项] 用户名

参数:

  • -c <备注>:为新用户账户添加备注信息,这些信息通常会保存在/etc/passwd文件的备注栏位中。
  • -d <登入目录>:指定新用户的主目录,即用户登录时默认的起始目录。
  • -e <有效期限>:设置用户账户的有效期限,过期后账户可能会被禁用。
  • -f <缓冲天数>:指定在密码过期后,账户被禁用之前的缓冲天数。
  • -g <群组>:指定用户所属的主组(初始登录组)。
  • -G <群组>:指定用户所属的附加组,即除了主组之外的其他组。
  • -m:创建用户账户时,自动创建用户的主目录。
  • -M:创建用户账户时,不自动创建用户的主目录。
  • -s <shell>:指定用户登录后使用的shell程序。
  • -u <uid>:为新用户指定一个特定的用户ID(UID)。

示例:创建一个名为newuser的新用户,并自动创建其主目录

[root@lmt ~]# useradd -m newuser

执行这个命令后,系统会在/etc/passwd文件中添加新用户的信息,并根据-m选项创建用户的主目录(通常位于/home/newuser)。

   

4、用户的删除(userdel)

在Linux系统中,userdel命令用于删除用户账户。这个命令可以帮助管理员在系统中移除不再需要的用户账户。

语法格式:

userdel [选项] 用户名

当执行userdel命令时,用户账户将被标记为已删除。但默认情况下,用户的主目录和相关的文件并不会被自动删除。

参数:

  • -r:这个选项会同时删除用户账户及其相关的所有文件,比如用户的主目录和邮件池。使用此选项时,务必小心,因为它会删除用户的所有文件和目录。如果用户的目录下有重要文件,在删除前请确保已经备份。
  • -f:强制删除用户账户,即使用户当前已登录。

示例:删除用户账户但不删除其家目录及文件

[root@lmt ~]# userdel newuser

5、用户密码管理

passwd命令的使用

passwd命令在Linux系统中用于设置或更改用户的密码。

语法格式:

passwd 用户名

这条命令会提示输入并确认新密码,以设置指定用户的密码。如果以普通用户的身份运行此命令,则只能更改自己的密码。如果以root用户身份运行,则可以更改任何用户的密码。

参数:

  • -d:删除用户密码。这个选项会删除指定用户的密码,使其账户变得不可用。只有root用户才能使用这个选项。
  • -l:锁定用户账户。这个选项会锁定指定用户的账户,使其无法登录。锁定后,即使密码正确也无法登录。只有root用户才能使用这个选项。
  • -u:解锁用户账户。这个选项会解锁之前被锁定的用户账户,使其可以重新登录。只有root用户才能使用这个选项。
  • -e:强制用户在下次登录时更改密码。这个选项可以设置用户的密码为过期状态,使其在下次登录时必须更改密码。
  • -k:保留非过期身份验证令牌。这个选项与身份验证令牌相关,用于在密码过期后保留某些认证信息。
  • -f:强制执行操作。这个选项在某些情况下可以强制执行密码更改或其他操作。

示例:修改刚刚创建的用户的密码

  

密码的复杂性要求与安全性 

密码的复杂性要求和安全性是密切相关的。密码的复杂性主要涉及到密码的组成元素和结构,而安全性则是指密码在防止未经授权访问方面的有效性。

复杂性要求密码由多个字符组成,包括数字、字母(大写和小写)、符号等,并且长度较长。这种密码不易被猜测或破解,因为它包含了多种类型的字符,并且长度越长,破解的难度就越大。复杂性要求有助于提高密码的强度和安全性。

密码的安全性还与其使用频率和变换周期有关。为了保障账户的安全,用户应该定期更改密码,避免使用相同的密码或者过于简单的密码。这可以防止黑客利用已知的密码或模式进行攻击。

6、用户信息的查看

使用/etc/passwd文件:
/etc/passwd是一个文本文件,其中包含了登录Linux系统所必需的每个用户的信息。你可以使用任何文本编辑器或命令行工具(如cat、more、less)来查看这个文件。这个文件保存了用户的有用信息,如用户名、密码(通常是以加密形式存在)、用户ID、群组ID、用户ID信息、用户的家目录和默认的Shell。

示例: 

[root@lmt ~]# cat /etc/passwd

   

上面的输出结果包含了系统上所有用户的基本信息。每一行代表一个用户账户,各个字段之间使用冒号 : 分隔。

每行的字段解释如下:

  • 用户名:例如 root、bin、daemon 等。这是用户登录系统时所使用的名称。
  • 密码占位符:通常是一个 x,表示加密的密码实际存储在 /etc/shadow 文件中,而不是 /etc/passwd 文件中。
  • 用户ID (UID):一个唯一的数值,用来标识系统中的每个用户。例如,root 用户的 UID 是 0,通常保留给系统管理员。
  • 组ID (GID):一个唯一的数值,用来标识用户的主组。用户的默认组ID,通常与某些系统文件和目录的权限关联。
  • 用户全名或描述:描述用户的字段,可以是全名、房间号、电话号码或其他任何描述性文本。
  • 家目录:用户登录后的默认工作目录。例如,root 用户的家目录是 /root。
  • 默认shell:用户登录后使用的命令解释器。例如,/bin/bash 是最常用的 shell。

三、用户组管理

1、用户组的概念与作用

概念:

在Linux中,用户组是具有相同特性用户的逻辑集合,也是系统对同一类对象进行统一管理的一种手段。用户组可以将同一类用户封装成一个更大的整体,这种组织方式有利于按照用户特性进行管理和操作。用户组在Linux系统中分为初始组和附加组,一个用户只能有一个初始组,但可以有多个附加组。

作用:

  • 管理文件和目录的权限:用户组可以用来设定文件和目录的访问权限,使得具有相同权限需求的用户可以被归入同一个用户组,从而简化权限管理过程。
  • 共享和管理系统资源:用户组提供了一种机制,使得多个用户可以共享某些系统资源或执行某些特定的任务。例如,允许多个用户访问某一个文件时,可以将所有需要访问该文件的用户放入一个用户组里,并给这个用户组授权,这样组中所有用户也就拥有了相同的权限。
  • 简化用户和权限的管理:通过将一组用户归为同一个用户组,管理员可以更加便捷地进行用户和权限的管理,而无需对每个用户单独设置权限。

   

2、用户组的创建(groupadd)

在Linux系统中,用户组的创建可以通过groupadd命令来完成。groupadd命令用于创建一个新的用户组。

具体操作步骤如下:

使用root账号登录Linux系统。因为创建用户组通常需要系统超级用户(root)的权限。

输入groupadd命令,并紧跟上想要创建的用户组的名称。例如,要创建一个名为newgroup的用户组,可以输入以下命令:

[root@lmt ~]# groupadd newgroup

创建用户组时,系统会根据需要自动分配一个唯一的GID给用户组。如果需要指定特定的GID,可以使用groupadd命令的-g选项,后面跟上想要的GID值。例如:

[root@lmt ~]# groupadd -g 1005 newgroup

   

3、用户组的删除(groupdel)

在Linux系统中,删除用户组可以通过groupdel命令来完成。groupdel命令用于删除一个已存在的用户组。

删除用户组的详细步骤:

1. 检查用户组信息:在删除用户组之前,首先确保该用户组确实存在。可以使用grep命令来检查/etc/group文件,确认用户组的信息。例如,如果要删除名为examplegroup的用户组,可以运行以下命令:

grep 'examplegroup' /etc/group

如果该命令返回有关examplegroup的信息,表示该用户组存在。

2. 删除用户组:使用groupdel命令删除用户组。确保有足够的权限(通常需要root权限)来执行此操作。以删除examplegroup用户组为例:

groupdel examplegroup

这将删除用户组并将其从系统中移除。

3. 验证操作:再次运行grep命令来验证用户组是否已成功删除:

grep 'examplegroup' /etc/group

如果用户组已成功删除,该命令将不返回任何关于examplegroup的信息。

四、用户与用户组的关联

1、用户和用户组之间的关系

在Linux系统中,用户与用户组之间存在着紧密的关联。每个用户都可以属于一个或多个用户组,这种关联关系决定了用户对于文件和目录的访问权限。

具体来说,一个用户可以存在于一个或多个用户组中。如果一个用户存在于多个用户组中,那么该用户将具有这些组的共同权限。同时,多个用户也可以存在于同一个用户组中,这些用户将具有与该组相同的权限。这种一对多、多对一以及多对多的关系,使得用户和用户组之间的关联变得非常灵活和强大。

用户组的创建和删除对于管理用户权限和系统资源至关重要。通过创建用户组,管理员可以将具有相同权限需求的用户归类到一起,从而简化权限管理过程。而删除用户组则需要在确保该组的所有成员都已经被转移到其他组中,并且不会影响到系统的正常运行。

2、修改用户所属组(usermod)

在Linux系统中,修改用户所属组可以通过usermod命令来完成。usermod命令用于修改用户的各种属性,包括所属的用户组。

使用usermod命令修改用户所属组的详细步骤:

1. 检查当前用户组:首先,使用groups命令或查看/etc/passwd文件来确认用户的当前所属组。例如,要查看用户username的所属组,可以执行:

groups username

或者查看/etc/passwd文件中该用户的记录。

2. 使用usermod命令修改所属组:使用usermod命令的-g选项来修改用户的主组(primary group)。例如,要将用户username的主组更改为newgroup,可以执行:

usermod -g newgroup username

在这里,newgroup是想要设置的新用户组的名称,而username则是想要修改其所属组的用户的名称。执行这个命令后,用户username的主组就会被更改为newgroup。

3. 验证更改:再次使用groups命令或查看/etc/passwd文件来验证用户的所属组是否已成功更改。
如果想将用户添加到一个附加组(secondary group),而不是更改其主组,可以使用-aG选项。例如:

usermod -aG additionalgroup username

这会将用户username添加到additionalgroup这个附加组中,而不会更改其主组。

3、用户组信息的查看(groups) 

在Linux系统中,可以使用多种方法来查看用户组的信息,其中groups命令是一个常用的工具,用于查看当前用户所属的用户组。


当执行groups命令时(不带任何参数),它会显示当前登录用户所属的所有用户组。这些用户组包括该用户的主组(primary group)以及任何附加组(secondary groups)。

groups username

输出可能是:

user1 : user1 secondarygroup1 secondarygroup2

user1是当前登录用户的用户名,user1是主组,而secondarygroup1和secondarygroup2是附加组。

4、用户组信息的查看(/etc/group) 


除了使用groups命令,还可以直接查看/etc/group文件来获取系统上所有用户组的列表。这个文件包含了系统上每个用户组的信息,每行对应一个用户组。

cat /etc/group

输出将包括每个用户组的名称、密码字段(通常为x表示密码存储在/etc/gshadow中)、GID(组ID)以及组成员列表(如果有的话)。

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!  

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FMEA引领智能家居安全革新,打造无忧智能生活新纪元!

在智能家居日益普及的今天&#xff0c;如何确保家居安全成为消费者关注的焦点。本文将探讨如何通过FMEA&#xff08;故障模式与影响分析&#xff09;这一强大的质量管理工具&#xff0c;为智能家居赋能&#xff0c;打造安全无忧的智能生活新体验。 一、FMEA在智能家居领域的应用…

Python快速入门系列-7(Python Web开发与框架介绍)

第七章:Python Web开发与框架介绍 7.1 Flask与Django简介7.1.1 Flask框架Flask的特点Flask的安装一个简单的Flask应用示例7.1.2 Django框架Django的特点Django的安装一个简单的Django应用示例7.2 前后端交互与数据传输7.2.1 前后端交互7.2.2 数据传输格式7.2.3 示例:使用Flas…

Cisco Modeling Labs (CML) 2.7 - 网络仿真工具

Cisco Modeling Labs (CML) 2.7 - 网络仿真工具 思科建模实验室 (CML) 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-modeling-labs-2/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 Cisco Modeling Labs 是我们用于网络仿真的首要平台。凭借易…

2024免费Mac苹果解压压缩包软件BetterZip5

在2024年&#xff0c;对于Mac电脑用户来说&#xff0c;如果你想要无需解压就能快速查看压缩文档的内容&#xff0c;BetterZip是一个极佳的选择。这款软件不仅支持多种格式的压缩和解压&#xff0c;如zip、rar、7z、tar等&#xff0c;还具备丰富的功能和设置&#xff0c;包括预览…

【深度学习】深度学习md笔记总结第3篇:TensorFlow介绍,学习目标【附代码文档】

深度学习笔记完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;深度学习课程&#xff0c;深度学习介绍要求,目标,学习目标,1.1.1 区别,学习目标,学习目标。TensorFlow介绍&#xff0c;2.4 张量学习目标,2.4.1 张量(Tensor),2.4.2 创建张量的指令,2.4.3 张量…

【考研经验贴】24考研860软件工程佛系上岸经验分享【丰富简历、初复试攻略、导师志愿、资料汇总】

&#x1f60a;你好&#xff0c;我是小航&#xff0c;一个正在变秃、变强的文艺倾年。 &#x1f514;本文讲解24考研860软件工程佛系上岸经验分享【丰富简历、初复试攻略、导师志愿、资料汇总】&#xff0c;期待与你一同探索、学习、进步&#xff0c;一起卷起来叭&#xff01; 目…

JS-11A/11时间继电器 板前接线 JOSEF约瑟

系列型号&#xff1a; JS-11A/11集成电路时间继电器&#xff1b;JS-11A/12集成电路时间继电器&#xff1b; JS-11A/13集成电路时间继电器&#xff1b;JS-11A/136集成电路时间继电器&#xff1b; JS-11A/137集成电路时间继电器&#xff1b;JS-11A/22集成电路时间继电器&#…

LangChain Demo | Agent X ReAct X wikipedia 询问《三体》的主要内容

背景 LangChain学习中&#xff0c;尝试改了一下哈里森和吴恩达课程当中的问题&#xff0c;看看gpt-3.5-turbo在集成了ReAct和wikipedia后&#xff0c;如何回答《三体》的主要内容是什么这个问题&#xff0c;当然&#xff0c;主要是为了回答这问题时LangChain内部发生了什么。所…

单例模式以及线程安全问题

单例模式的概念 单例模式是指的是整个系统生命周期内&#xff0c;保证一个类只能产生一个实例对象 保证类的唯一性 。 通过一些编码上的技巧&#xff0c;使编译器可以自动发现咱们的代码中是否有多个实例&#xff0c;并且在尝试创建多个实例的时候&#xff0c;直接编译出错。 …

不讲概念,讲实操,mysql 分表模糊查询、分页查询 及 merge 表的使用

1.Mysql merge合并表的要求 1.合并的分表必须是 MyISAM 引擎&#xff0c;MyISAN引擎是不支持事务的。2.Merge表只保证合表后数据唯一性&#xff0c;合表前的数据可能会存在重复。3.表的结构必须一致&#xff0c;包括索引、字段类型、引擎和字符集。4.删除 tb_member1 分表正确…

阿里云可观测 2024 年 3 月产品动态

本月可观测热文回顾 文章一览&#xff1a; 全新架构&#xff01;日志服务 SLS 自研免登录方案发布 AIOps 智能运维&#xff1a;有没有比专家经验更优雅的错/慢调用分析工具&#xff1f; 一文看懂如何做好 SQL 质量监控 使用 SPL 高效实现 Flink SLS Connector 下推 功能快…

游戏APP如何提高广告变现收益的同时,保证用户留存率?

APP广告变现对接第三方聚合广告平台主要通过SDK文档对接&#xff0c;一些媒体APP不具备专业运营广告变现的对接能力和资源沉淀&#xff0c;导致APP被封控&#xff0c;设置列入黑名单&#xff0c;借助第三方聚合广告平台进行商业化变现是最佳选择。#APP广告变现# 接入第三方平台…

IDEA配置本地Maven(解决依赖下载缓慢)

1.下载Maven Maven下载页 根据需要选择下载其中一个&#xff0c;我选了zip格式的 将下载好的apache-maven-3.9.5解压到你想要的目录下 2.配置系统环境 设置系统环境变量 MAVEN_HOME 为安装路径的bin目录 变量名&#xff1a;MAVEN_HOME 变量值&#xff1a;写你的 apache-m…

【C++】引用与指针

​​ &#x1f331;博客主页&#xff1a;青竹雾色间. &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ✨人生如寄&#xff0c;多忧何为 ✨ 目录标题 前言一.引用&#xff08;Reference&#xff09;二.指针&#xff08;Pointer&#xff09;三. 比较与总结 前…

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ

代码随想录算法训练营第四十四天 |卡码网52. 携带研究材料 、518. 零钱兑换 II、377. 组合总和 Ⅳ 卡码网52. 携带研究材料题目解法 518. 零钱兑换 II题目解法 377. 组合总和 Ⅳ题目解法 感悟 卡码网52. 携带研究材料 题目 解法 题解链接 1. #include <iostream> #inc…

Redis中的复制功能(四)

复制的实现 步骤2:建立套接字连接 在SLAVEOF命令执行之后&#xff0c;从服务器将根据命令所设置的IP地址和端口&#xff0c;创建连向主服务器的套接字连接&#xff0c;如图所示。如果从服务器创建的套接字能成功连接(connect)到主服务器&#xff0c;那么从服务器将为这个套接…

Jmeter各组件超详细介绍

1、JMeter和Loadrunner的区别&#xff1f; 2、JMeter如何开发脚本的&#xff1f;强化脚本的技术&#xff1f; 代理服务器录制脚本&#xff0c;Fiddler录制脚本&#xff0c;Badboy录制脚本&#xff0c;根据API&#xff0c;手写脚本&#xff0c;根据抓包&#xff0c;手写脚本。 …

前视声呐目标识别定位(三)-部署至机器人

前视声呐目标识别定位&#xff08;一&#xff09;-基础知识 前视声呐目标识别定位&#xff08;二&#xff09;-目标识别定位模块 前视声呐目标识别定位&#xff08;三&#xff09;-部署至机器人 前视声呐目标识别定位&#xff08;四&#xff09;-代码解析之启动识别模块 …

二、GitLab相关操作

GitLab相关操作 一、组、用户、项目管理1.创建组2.创建项目3.创建用户并分配组3.1 创建用户3.2 设置密码3.3 给用户分配组 二、拉取/推送代码1.配置ssh(第一次需要)1.1 创建一个空文件夹1.2 配置本地仓账号和邮箱1.3 生成ssh公钥密钥1.4 gitlab配置公钥 2.拉取代码3.推送代码3.…

JAVA JVM内存模型和GC分配和回收

Java 的JVM简介 JVM是&#xff08;Java Virtual Machine&#xff09;Java虚拟机的缩写。 JVM是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 ​ 在Java程序运行时&#xff0c;所有的.class类需要加载到JVM中才能执行代码逻辑。不…