Linux安装和入门

news2024/11/25 14:33:08

文章目录

  • 1、课程介绍
  • 2、为什么需要Linux
  • 3、Linux简介
    • 3.1、什么事Linux
    • 3.2、Linux优点
    • 3.3、常见的Linux系统
    • 3.4、小结
  • 4、虚拟机安装
    • 4.1、引入
    • 4.2、常见的虚拟机软件
    • 4.3、安装vmware
    • 4.4、vmware常用操作
      • 4.4.1、全局配置虚拟机(Linux系统)存储位置
      • 4.4.2、虚拟机操作
  • 5、CentOS安装
    • 5.1、CentOS是什么
    • 5.2、配置虚拟裸机
    • 5.3、CentOS7系统安装过程
    • 5.4、安装完成后配置
      • 5.4.1、备份系统
      • 5.4.2、网络介绍
  • 6、命令执行方式
    • 6.1、引入
    • 6.2、本地终端
      • 6.2.1、打开本地终端
      • 6.2.2、简单使用
    • 6.3、远程访问Linux
      • 6.3.1、引入
      • 6.3.2、SSH服务端的验证
      • 6.3.3、SSH客户端的安装
      • 6.3.4、CentOS防火墙操作
  • 7、Linux命令
    • 7.1、常用命令
    • 7.2、文件相关命令
      • 7.2.1、文件系统
      • 7.2.2、目录相关命令
      • 7.2.3、文件相关命令
      • 7.2.4、查看端口
        • 1、查看端口占用情况:
        • 2、杀死端口所占用的进程
  • 8、CentOS中软件安装
    • 8.1、解压源码包文件安装
    • 8.2、RPM安装
    • 8.3、yum在线安装
    • 8.4、安装JDK
  • 9、安装MySQL
    • 9.1、MySQL卸载
    • 9.2、安装MySQL
    • 9.3、MySQL编码集设置
    • 9.4、增加MySQL远程登录权限
    • 9.5、关闭防火墙
  • 10、安装Tomcat
    • 10.1、准备安装包
    • 10.2、开启服务和关闭服务:
    • 10.3、解压
    • 10.4、部署
  • 11、部署项目
  • 12、资源下载地址
  • 13、总结

1、课程介绍

  1. Linux简介(了解)
  2. 虚拟机软件(掌握)
  3. CentOS安装(掌握)
  4. Linux常用命令命令(掌握)
  5. Linux中安装常用软件(掌握)

2、为什么需要Linux

  1. 程序开发完成之后需要部署到服务器,这样用户才能通过服务器访问到我们的程序
  2. 而在当今主流的三大系统(windows、linux、macOS)中,linux常被当成硬件服务器来使用
  3. Linux无需消耗其他资源维护大量UI界面,所以性能好很多,windows需要消耗资源维护UI界面
  4. Linux系统比windows系统更加稳定和安全

3、Linux简介

3.1、什么事Linux

和windows操作系统类似,Linux是一套性能稳定多用户网络操作系统

3.2、Linux优点

  1. 源代码开放:任何人都可以获取到Linux源代码探索学习
  2. 稳定性和高效性:你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,甚至一两年不重启,因为它继承了Unix卓越的稳定性和高效性
  3. 可靠的安全性、稳定性能:其安全性相比其他系统也要安全很多,基本不需要安装杀毒软件
  4. 多用户多任务:Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰。当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统
  5. 对硬件配置要求低:最低128M内存就可以运行

3.3、常见的Linux系统

1、rpm系(使用Red Hat(红帽子)的软件库管理系统):

(1) Redhat 红帽,收费,技术支持强大,资料完善,系统稳定安全;

(2) Fedora 被红帽赞助,适合个人使用,免费;

(3) Centos 被红帽收购,免费,系统稳定安全,很多公司在用;

2、dpkg系 (package manager for Debian):

(1) Debian 很多公司在用,基于ubuntu(乌班图);

(2) Ubuntu 基于debian的发行版,比较最受欢迎的免费操作系统,界面强大。比较适合个人用户;

(3) Pear os 基于Ubuntu,仿macos;

3、国产linux系统:

(1) 红旗Linux,真正的国产linux系统,2014年公司解散后被收购

3.4、小结

  1. Linux是一个操作系统,有很多发行版本;
  2. 服务器:centos、redhat、Ubuntu等;

4、虚拟机安装

4.1、引入

  • Linux需要在一台电脑上进行安装,获得一台电脑的方式有很多,比如网上或者实体店购买
  • 当然现在有了更加便宜的解决方案,那就是借助虚拟机软件,使用虚拟机软件可以模拟出计算机,从而可以在上面安装任何的操作系统,大大节约了成本

4.2、常见的虚拟机软件

  1. vmware:虚拟机软件中的NO.1,特点:模拟完善、有商业授权、收费软件(序列号),内存大
  2. virtualbox:原来的sun公司,现属于Oracle,免费开源,更新及时,体积小,内存优化,兼容性不是特别好
  3. virtual PC 微软的免费产品:仅支持windows系统(微软官方说只支持windows,其实别的系统也可以安装)现已停止更新
  4. Hyper:微软最新的虚拟机软件;

4.3、安装vmware

image-20220928161245255

双击【VMware-workstation-full-10.0.0-1295980.exe】文件,安装即可:

image-20211025092455429

image-20211025092506244

image-20211025092542284

选择自定义:

image-20211025092644812

注意,这里的安装目录不要选择C盘,选择其他空间大点点盘,路径不要带中文,然后下一步:

image-20211025092850028

这里的共享虚拟机存储路径需要选择一个非C盘,非中文目录的路径。下面的端口是443,如果你本地安装了SVN的话,那可能会冲突,那就修改成其他端口即可。

然后下一步:

image-20211025093029860

image-20211025093231540

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q8rVMLLH-1673165466128)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607789.png)]

image-20211025093302387

image-20211025093315435

等待几分钟之后,就会弹出下面界面需要你输入密钥了:

image-20211025093439636

打开课件里面的【密钥.txt】文件,拷贝密钥出来粘贴进去即可:

image-20211025093526156

点击【输入】即可:

image-20211025094002741

安装成功后桌面出现下面图标:

image-20211025094436054

那么怎么验证我们安装成功呢?

打开本地网络链接:

image-20211025094214638

如果出现两个VMware的网络的话,那就是安装成功了,没有这个的话,到时候是无法和虚拟机中的系统进行通信的。

可能出现的问题:安装完成后不能看到屏幕,即红蜘蛛控屏出现问题;

分析原因:红蜘蛛客户端使用了vmware的虚拟网卡作为网卡了,而该网卡的Ip和教师机不在同一网段;

解决方法:

  1. 重新启动红蜘蛛客户端
  2. 先把VMware的两个虚拟网卡禁用,再启动红蜘蛛客户端

4.4、vmware常用操作

4.4.1、全局配置虚拟机(Linux系统)存储位置

1、vmware是一个虚拟机软件,在Vmware上可以新建不同的虚拟机,而虚拟机是作为宿主机的一个文件而存在的,默认Vmware是安装在C盘,而虚拟机又安装在vmware目录下面的,也就是说虚拟机是在系统盘(C盘),如果宿主机重新安装系统,会导致C盘被格式化,就会让已经安装好的虚拟机被格式化了。所以需要修改虚拟机存储位置,来规避这个问题;

2、修改虚拟机的默认位置(也可以在安装时修改):编辑 -> 首选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLAapZbk-1673165466133)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607798.png)]

4.4.2、虚拟机操作

1、创建虚拟机

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTx106hO-1673165466134)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607799.png)]

2、导入导出:可以把已经安装好的虚拟机导出,以后需要时再导入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wAhEnaFt-1673165466134)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607800.png)]

3、备份还原

image-20211025101305888

注意:初学者配置快照非常重要,如果Linux中软件安装失败了,可以恢复到指定的快照版本再来一次,否则删除不干净需要重新安装Linux,非常麻烦;

5、CentOS安装

5.1、CentOS是什么

  1. CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版(红帽子)之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件;
  2. CentOS就是一个红帽系列的开源免费的可以用做服务器的Linux系统;
  3. 此系统需要在wmware(虚拟机软件)中先新建一个虚拟机,然后再虚拟机中安装CentOS

5.2、配置虚拟裸机

打开我们的虚拟机:

image-20211025094505559

我们开始新建虚拟机:

image-20211025094638097

image-20211025094650867

选择自定义即可:

image-20211025094705440

这一步不用改什么,直接下一步:

image-20211025095704543

选择稍候安装操作系统

image-20211025095815479

这里选择Linux和CentOS 64位,因为给大家准备的镜像文件是CentOS 64位的

image-20211025100115625

这里给虚拟机取个名字,容纳后指定一个位置即可:

image-20211025100140560

image-20211025100329465

这里我为虚拟机分配了4个G的内存,根据你电脑实际内存去分配

image-20211025100339851

默认下一步即可:

image-20211025100351331

image-20211025100401744

image-20211025100410170

image-20211025100428182

这里选择单个文件,磁盘大小我分配了20G,根据实际情况分配即可(必须大于9G):

image-20211025100505222

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mTFzvO8F-1673165466140)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607817.png)]

此处,点击【自定义硬件】,将不需要的全部移除,像打印机、声卡、USB等去掉:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1sfUkubl-1673165466141)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607818.png)]

然后点击关闭

最后虚拟机新建完的效果如下:

image-20211025100731504

5.3、CentOS7系统安装过程

image-20211025101616128

image-20211025101703380

选择第一个即可

image-20211025101741770

安装需要等待一会,如果静止不动了点话,按回车即可,鼠标移不出来的了的话,按Alt+Ctrl即可将鼠标移出来

等一会之后就会出现如下界面:

image-20211025101853383

这里我们选择中文即可:

image-20211025101950319

点击继续:

image-20211025102023520

软件选择:默认是最小安装的,这里可以选择带有桌面的选择这种模式,选择图示:

image-20211025102707058

安装位置,选择如下:

image-20211025102803180

KDUMP选择如下:不用勾

image-20211025102838745

点击【网络和主机名】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m5fc0MUT-1673165466144)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607829.png)]

点击完成

image-20211025103406251

到此就全部设置完毕了,点击【开始安装】

image-20211025103514835

点击【ROOT密码】,然后设置超级管理员密码即可:

image-20211025103447948

我这里设置的是123456,自己设置的记住就可以了:

image-20211025103655541

等一段时间安装完成之后就是如下界面:

image-20211025104610049

点击【重启】即可

image-20211025104640162

选择第一个,等会后出现下面界面:

image-20211025104701452

点击第一项,需要勾选统一许可:

image-20211025104750799

然后点击【完成配置】,等会后出现下面界面:

image-20211025104839476

直接点击【前进】

image-20211025104905659

继续点击【前进】

image-20211025104951011

点击【前进】

image-20211025105004549

不管,直接点击【前进】

image-20211025105025739

不选择,直接点击【跳过】

image-20211025105058436

这里可以输入你的名字,然后点击【前进】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmt0pOqK-1673165466150)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607844.png)]

我这里设置的是:itsource123456,然后点击【前进】

image-20211025105248532

设置完毕:

image-20211025105314153

5.4、安装完成后配置

5.4.1、备份系统

image-20211025105404687

5.4.2、网络介绍

我们这里介绍vmware给我们提供的3中模式,它们分别是:

  1. Nat网络地址转换模式
  2. Bridged Adapter 桥接模式
  3. Host-only Adapter 主机模式

1、Nat网络地址转换模式

(1) 只能单向访问,虚拟机可以通过网络访问到宿主机,宿主机无法通过网络访问到虚拟机;

(2) 如果linux上的ip地址是自动获取的,是可以通过宿主机访问虚拟机的,但是要保证linux的ip地址网段和宿主机的虚拟网卡的网段一致;

(3) 只要宿主机可以联网,那么虚拟机就可以联网,因为net方式联网是依靠宿主机的ip;

(4) Net方式的ip地址是由虚拟网卡分配的;

2、Bridged Adapter 桥接模式

(1) 可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问

(2) 桥接模式的ip地址是由路由器分配的;如果宿主机能联网,虚拟机不一定能联网,如果宿主机不能联网,虚拟机也可以联网;

3、Host-only Adapter 主机模式

Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯

image-20211025104421842

通过上图,我们可以发现,如果要使得虚拟机能联网,我们可以将主机网卡共享给VMware Network Adapter VMnet1网卡,从而达到虚拟机联网的目的

注:宿主机,就是提供给虚拟机环境的主机。这里指的就是我们的windows系统主机;

6、命令执行方式

6.1、引入

  1. Linux最开始是没有图形界面的,都是通过命令操作。后面为了方便操作一些版本的操作系统把常用的操作封装图形操作,这样我们可以使用图形界面操作Linux
  2. 但并且不是所有的功能都有图形界面的,有的操作必须得命令完成。并且一般服务器都是不安装图形界面
  3. Linux操作命令分两种:本地终端执行和远程终端执行

6.2、本地终端

类似于windows下面的cmd:

6.2.1、打开本地终端

注意:此种方式要求你必须在Linux电脑旁边

image-20211025111310226

出现如下界面:

image-20211025111437834

6.2.2、简单使用

  1. 查看IP:Linux(ifconfig)、 windows(ipconfig)
  2. 结束当前执行命令:ctrl + C
  3. 清屏:clear
  4. 查看命令的使用方法:help

注:如果Linux处理休眠状态:按下回车键和ESC键或者EXIT重新登录

6.3、远程访问Linux

6.3.1、引入

  1. 虽然可以通过本地终端,访问linux,但是有的时候服务器不在咱们身边。需要远程连接并操作。
  2. 要想远程访问Linux,需要通过SSH(英文全称Secure Shell,是一种安全的协议),也是用于远程登入的。既然是远处登入工具,那么就需要有一台主机作为客户端,另一台主机作为服务器端。且在客户端上面必须要有能够远处登入的软件工具才行;

即:服务端有ssh的支持,客户端需要有连接linux的客户端软件;

6.3.2、SSH服务端的验证

image-20211025111647950

  • 客户端远程访问服务端必须通过SSH服务(安全协议)才行
  • CentOS中默认安装了SSH服务,可以通过以下指令验证:(在本地终端执行)
ps -ef|grep ssh

image-20211025111719077

注意进程号为1268的进程,就是ssh服务正在运行

思考:如要在windows中连接linux,使用什么软件呢?

6.3.3、SSH客户端的安装

  1. 常见的SSH客户端软件有SecureCRT、Xshell、Putty、finalshell等,一般用于Windows客户端计算机
  2. 课件为大家都准备了,大家用哪个用的习惯就可以使用哪个,作用都是一样的

6.3.4、CentOS防火墙操作

  • 远程访问linux时,需要关闭防火墙,否则访问linux上的tomcat,mysql等服务可能会失败;
  • 查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
  • 执行关闭命令(立即关闭 - 立即生效): systemctl stop firewalld.service
  • 再次执行查看防火墙命令:systemctl status firewalld.service
  • 执行开机禁用防火墙自启命令(永久关闭 - 重启生效): systemctl disable firewalld.service
  • 开启防火墙:systemctl start firewalld.service

7、Linux命令

7.1、常用命令

1、查看当前所在目录(用处:拷贝目录到一些配置文件):pwd

2、切换目录(需要到特定的目录执行命令):cd 目录名

3、文件名和目录名称补全:Tab

4、查看目录文件信息:

(1) ls //列出文件信息

(2) ls -l //以详细信息方式列出文件信息

(3) ls –a //列出所有文件和文件夹,包含隐藏文件

(4) ls -al //以详细信息方式列出所有文件信息,包含隐藏文件

(5) ls 目录名 //查看该目录的文件信息

(6) ll //等于ls -l

5、查看当前用户:

(1) whoami //查看当前操作用户

(2) who am i //查看当前登录用户(有可能是有多个的)的信息

6、查找命令:

(1) 最强大的搜索命令:find 查找各种文件的命令

(2) 在文件资料中查找文件:locate

(3) 搜索命令所在的目录及别名信息:which

(4) 搜索命令所在的目录及帮助文档路径:whereis

7、切换用户:

(5) su 用户名:切换用户

(6) su root:普通用户切到root用户,需要输入密码;

(7) su itsource:切换到itsource的用户

(8) exit //注销当前用户,返回前一用户

7.2、文件相关命令

在学习文件相关命令之前,我们先来看一Linux的文件系统

7.2.1、文件系统

  1. Linux有个基本思想:一切都是文件。就是系统中的所有都可以归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。而这些文件是以一定的结构组织的
  2. Linux系统的目录结构是一个以/(根目录)为根节点的树形结构

image-20211025112951297

  1. 系统目录介绍

/bin 存放二进制可执行文件(命令),所有用户都可以使用

/sbin 存放二进制可执行文件,只有root用户可以使用

/boot 系统启动需要的核心文件

/dev 设备文件

/home 用户的主目录,每一个非root用户都会在home有一个为用户名的文件夹

/lib 系统共享动态链接库

/mnt 挂载目录,通常挂载到该目录下

/etc 存放系统配置文件目录

/etc/passswd 用户信息文件

/etc/group 用户组信息文件

/var 用来存放常态性变动的文件,经常发生变化的文件。比如缓存、登录文件,mysql数据库文件等

/tmp 临时目录,用来存放临时文件

/proc 虚拟目录,是内存的映射,可以访问到内存中的系统信息

/sys 和proc类似,存放和内核相关的信息和数据

/root root用户的主目录

/usr 存放应用程序和文件(类似于windows的system32、program files目录)

​ /usr/local/src 所有应用程序包都放这儿

​ /usr/local/ 所有的应用程序都安装在这个目录。

​ /usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充

注:

/usr:系统级的目录,可以理解为C:/Windows/,/usr/lib理解为C:/Windows/System32

/usr/local:用户级的程序目录,可以理解为C:/Program Files/,用户自己编译的软件默认会安装到这个目录下;

/opt:用户级的程序目录,可以理解为D:/Program Files/,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可

  • 一般跟系统有关的程序或软件或需要进行配置的程序安装到/usr/local中(jdk,tomcat等),安装包可以放在/usr/local/src中;
  • 一般第三方与系统不是很挂钩的软件放在/opt中,安装包也可以放在这里;

7.2.2、目录相关命令

1、相对路径和绝对路径:

(1) 绝对路径:以/(根目录)开头的路径(例如:/home、/etc/passwd)

(2) 相对路径:以./开头的路径,很多时候./可以省略(指相对于当前路径):

① ./ 表示当前目录(可以省略)./usr/loccal/=usr/local

② …/ 表示上一级目录

注:路径的最后一个斜杠可以省略

2、创建目录:

(1) mkdir 目录名 //创建一个目录

(2) mkdir -p 目录1/目录2/目录3 //递归创建目录

3、删除目录:rm -rf 路径 //可以删除文件和目录 -r(递归) -f(暴力)

4、移动目录/修改文件名:mv dir1 dir2 如果dir2不存在,将dir1目录名修改为dir2(重命名),否则将dir1目录移动到dir2中;

5、复制目录:

(1) cp -rf dir1 dir2 //将dir1复制一份到dir2目录(包含目录内容一起复制)

(2) cp -rf dir1/* dir2 //直接复制内容(非常重要)

6、打包和解压:

(1) tar -czvf tom.tar.gz tom – 打包

(2) tar -xzvf tom.tar.gz -C /usr/local – 解包

(3) 参数:

-c 创建一个新的tar文件 -t 参看压缩文件内容

-v 显示运行过程信息 -j 调用bzip2压缩命令执行压缩

-f 指定文件名称 -C 指定需要解压到的目录

-z 调用gzip压缩命令执行压缩

-x 解开tar文件

7.2.3、文件相关命令

1、创建文件:touch 文件路径 //创建一个空白文件

2、查看文件内容:cat //将文件内容直接显示出来

3、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename //打开filename文件

:w //保存文件

:w vpser.net //保存至vpser.net文件

:q //退出编辑器,如果文件已修改请使用下面的命令 ,q(quit)

:q! //退出编辑器,且不保存

:wq //退出编辑器,且保存文件

注意:按i(insert)进入编辑,按Ctrl + C 退出编辑,退出编辑输入:wq退出编辑器

小结:

我们学习了一些常用命令和文件相关命令,其实Linux还有有很多命令,不用死记硬背。会使用一些常用的就ok,用到时查看命令文档或网上搜索即可

注意:在linux中Ctrl+s表示锁住屏幕,按住Ctrl+q解除锁定;

7.2.4、查看端口

1、查看端口占用情况:

lsof -i:端口号

注意:slof -i 需要 root 用户的权限来执行

案例:

image-20220923130821919

image-20220923130844721

更多 lsof 的命令如下:

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

还可以使用下面方式查看端口使用情况:

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况:

netstat -tunlp | grep 端口号
  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名

案例:

image-20220923131040744

更多命令:

netstat -ntlp   //查看当前所有tcp端口
netstat -ntulp | grep 80   //查看所有80端口使用情况
netstat -ntulp | grep 3306   //查看所有3306端口使用情况

2、杀死端口所占用的进程

上面查询到端口占用情况之后,一般需要杀死这个程序或者进程的话,用下面命令

kill -9 PID

彻底杀死进程PID

8、CentOS中软件安装

8.1、解压源码包文件安装

特点:

  • 这种安装方式解压即安装,有的软件需要配置下环境变量(例如JDK的安装需要配置环境变量)
  • 卸载时只需要将解压包删除即可

命令:tar -zxvf 压缩包名(后缀为.tar.gz)

例如:将jdk的tar.gz包解压到指定文件夹:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-00mu3NbG-1673165466155)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607857.png)]

8.2、RPM安装

特点:

  • 这种安装方式,软件包会自动配置jdk的环境变量,不用手动配置。也是最方便快捷的一种方式

命令:

rpm -qa 软件名称 :查询软件是否被安装

rpm -ivh 软件包路径 需要安装的包文件 : rpm –ivh xxx.rpm

rpm -e --nodeps 需要卸载的软件包 : 卸载软件(–nodeps 忽略依赖关系并继续操作)

rpm -qa | grep 查询名称 :利用管道模糊查询软件安装情况:

例如: rpm -qa | grep java 检测系统自带的jdk安装包

参数说明:rpm [选项] [参数]

-a:查询所有软件包

-e:删除指定的软件包

-f<文件>:查询拥有指定文件的套件;

-h或–hash:显示进度信息 ,以#显示进度

-i:显示包的详细信息

-i<软件包>或–install<软件包>:安装指定的软件包

-l:显示包的文件列表

-p:查询指定的RPM包

-q:使用询问模式

-U<软件包>或–upgrade<软件包>:升级指定的程序包

-v:显示指令执行详细过程

-vv:详细显示指令执行过程,便于排错

例子:

先检查是否安装JDK:

rpm -qa | grep java

image-20211025133644585

这里默认就有一些,我们先将这些删除掉:

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
npm:管理套件
-e:删除
--nodeps:不验证套件的相关关联性,就是强制删除

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3dJ5MnZC-1673165466156)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607859.png)]

报错,说我权限不够,那么可以用下面命令切换用户:

su root
然后输入root密码,我这里是123456

再执行下面命令删除:

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
rpm -e --nodeps tzdata-java-2019c-1.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.242.b08-1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.251-2.6.21.1.el7.x86_64
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.251-2.6.21.1.el7.x86_64

然后再输入:rpm -qa | grep java,查看下是否还存在Java相关软件

image-20211025134424608

已经清除干净了,现在我们可以安装我们自己下载到JDK了

先到官网上下载JDK,需要下载的格式不是.exe的,而是.rpm的

网址:https://www.oracle.com/java/technologies/downloads/#java8

image-20211025134918065

然后将文件上传到Linux的opt目录中:

image-20211025140700008

然后通过以下命令安装:

rpm -ivh jdk-8u311-linux-x64.rpm

image-20211025140747396

安装完成后,看下JDK是否安装成功,输入下面命令

java

image-20211025140843225

说明已经安装成功了

8.3、yum在线安装

特点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题;

缺点:安装过程中,rpm包依赖性太强

yum命令:

1、查询:

(1) yum list --查询所有可用软件包列表

(2) yum search 关键字 --搜索服务器上所有和关键字相关的包

2、安装:

(1) yum -y install 包名 (-y 自动回答yes)

(2) yum安装只写包名即可! eg:yum -y install gcc --c语言编译器

3、升级/卸载

(1) 升级:yum -y update 包名

① update:升级;

② -y:自动回答yes;

(2) 卸载:yum -y remove 包名

① remove:卸载;

② -y:自动回答yes;

8.4、安装JDK

首先下载Linux环境下JDK的安装包,网址:https://www.oracle.com/java/technologies/downloads/#java8

image-20221122173649058

我给大家准备好了,地址如下:

链接:https://pan.baidu.com/s/1iCqdBFTyibdwmT7g6sK52w

提取码:w0h4

然后将【jdk-8u341-linux-x64.tar.gz】包上传到【/opt】目录下

然后在opt目录下使用下面命令解压即可:

tar -xvf jdk-8u341-linux-x64.tar.gz

如下,已解压成功:

image-20221122174252123

然后配置环境变量,方法如下:

编辑文件:

vim /etc/profile

再按字母【i】进入编辑模式,然后将下面配置全部拷贝进去,放到文件最后:

export JAVA_HOME=/opt/jdk1.8.0_341
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后按【Esc】后再输入【:wq】,表示保存并退出

然后运行下面命令重新加载一下配置:

source /etc/profile

至此,JDK就安装成功了,下面我们来测试下看安装成功没有

依次输入下面命令:

java -version
javac -version

image-20221122174527333

OK,测试成功了,JDK环境就安装好了

9、安装MySQL

上面我们已经安装了JDK了,现在我们开始安装MySQL,我们这里是以RPM方式安装MySQL

9.1、MySQL卸载

先查看当前mysql的安装情况

rpm -qa|grep -i mysql
-q就是 --query ,-a就是--all
|grep mysql就是查含有mysql的包名(grep正则表达式)

image-20211025144655753

可以看到,目前是没有安装mysql的

如果有的话,可以使用下面命令删除:

rpm -e --noscripts 包名 --nodeps

卸载MySQL:

yum remove mysql mysql-server mysql-libs mysql-common

查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

find / -name mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lvy8yRiS-1673165466160)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607869.png)]

如果需要删除mysql的目录,则使用下面命令:

rm -rf 目录

image-20211025145052457

确认全部删除了

9.2、安装MySQL

我这里安装的版本是5.7.40

首先进入opt目录,执行下面命令进行下载:

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

然后执行下面命令进行安装:

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

必须进入到 /etc/yum.repos.d/目录后再执行安装

cd /etc/yum.repos.d/
yum install mysql-server --nogpgcheck      //nogpgcheck表示不校验key

下面就表示安装成功了

image-20221122181101301

运行下面命令进行启动:

systemctl start mysqld

设置开机自动启动:

systemctl enable mysqld

其他命令:

# 关闭开机启动
systemctl stop mysqld
# 关闭MySQL
systemctl stop mysqld
# 重启MySQL
systemctl restart mysqld

运行下面命令查看MySQL运行状态:

systemctl status mysqld

如下:

image-20221122181200900

那么如何设置root账户的登录密码呢?

可按照下面步骤修改root账户密码:

1、进入MySQL数据配置文件进行修改

vi /etc/my.cnf

再按字母【i】进入编辑模式,然后将下面这一行拷贝进去,放到最后一行,含义是免密码登录

skip-grant-tables

然后按【Esc】后再输入【:wq】,表示保存并退出

然后重启:

systemctl restart mysqld.service

2、直接免密登录

mysql -uroot -p

此时提示要你输入密码,什么都不用输入,直接回车就可以进入数据库了

3、设置密码

你可以使用以下命令来重置root账户的密码:(我这里设置的是AaBa123456,设置最好不要设置的太简单)

5.7以上版本运行:
update user set password= password("123456")where user='root';

5.7以下版本运行:
update user set authentication_string= password("123456")where user='root';

4、删除免密设置

按照刚才的步骤,进入【my.cnf】文件中,将【skip-grant-tables】代码删除,并保存退出,再重启MySQL服务器即可,这样以后就可以使用123456这个密码进行登录了

9.3、MySQL编码集设置

安装完的MySQL的默认字符集为 latin1 ,那么如果此时创建表和数据库,或者导入外部带中文的数据,mysql是不支持的。为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件。查看默认字符集

show variables like 'character_set%';

执行上面语句如果报下面错:

image-20221122184332982

就执行下面语句:

SET PASSWORD = PASSWORD('123456');

如果报错:Your password does not satisfy the current policy requirements

那就是密码等级设置的太低了,需要执行下面语句:(需要先登录MySQL,然后执行:use mysql)

//设置密码的验证强度等级(目前我设置等级为低)
set global validate_password_policy=LOW;

还可以设置密码长度:

set global validate_password_length=6;

image-20211025145916818

修改字符集,修改 /etc/my.cnf文件(输入exit或Ctrl + C退出mysql命令窗口):

vi /etc/my.cnf(没有就自己创建一个,vi会自动创建)

image-20211025151456532

执行这个命令后,发现里面没有设置编码的地方,那我们就把下面的配置添加进去,到第三行即可:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8

先按【i】进入编辑模式,然后将上面配置添加进去,如下:

image-20211025151704812

然后按【Esc】再按【:wq】,表示保存退出,修改完配置,需要重启一下mysql服务,命令如下:

systemctl restart mysqld

重启完之后可以再使用如下命令进入到mysql检查下

mysql -uroot -p123456
-u跟用户名
-p跟密码

输入下面命令检查下:

show variables like 'character_set%';

image-20211025152120668

此时我们发现,编码都已经改成utf8了

9.4、增加MySQL远程登录权限

上面步骤做完,可以实现本地登录,但如果使用navicat登录的话,会报下面错误:

image-20211025152304116

为了解决这个问题,允许远程访问,需要本地登陆MySQL后执行如下命令

进入MySQL,授权远程连接

grant all privileges on *.* to root@'%' identified by '123456';
这句话的意思是:任意用户使用root用户使用123456密码访问,可以设置成mysql的密码

image-20211025152354188

然后再刷新授权

flush privileges;

image-20211025152418733

然后再使用navicat连接Linux中的mysql,就可以连成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CvXCBSEV-1673165466164)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607881.png)]

9.5、关闭防火墙

如上增加远程登录权限后,还是报如下错误的话,就是你的虚拟机上的防火墙没有关

image-20220928155510260

关闭防火墙相关命令:

查看防火墙状态: systemctl status firewalld.service(绿的running表示防火墙开启)
执行关闭命令(立即关闭,立即生效,临时关闭,Linux重启后又会打开): systemctl stop firewalld.service
执行开机禁用防火墙自启命令(永久关闭 - 重启生效,Linux重启后也是关闭状态): systemctl disable firewalld.service
开启防火墙:systemctl start firewalld.service

10、安装Tomcat

安装步骤如下:

10.1、准备安装包

将安装包【apache-tomcat-8.5.15.tar.gz】解压解压到/usr/local目录中

tar -zxvf /opt/apache-tomcat-8.5.15.tar.gz -C /usr/local/

image-20211025152936536

10.2、开启服务和关闭服务:

cd /usr/local/apache-tomcat-8.5.15/bin
./startup.sh
./shutdown.sh

image-20211025153120103

10.3、解压

解压文件中目录结构如下:

  1. bin目录:tomcat启动命令(./startup.sh)、tomcat服务关闭命令(./shutdown.sh )
  2. webapps目录:工程目录,war包放在这里,在启动tomcat时会自动解压成文件夹

10.4、部署

  1. 通过Eclipse或者IDEA将我们的web项目打成war包
  2. 使用xftp或其他工具将安装包war包上传至linux系统(一般直接放到tomcat的webapps目录中)
  3. 启动tomcat
  4. 浏览器测试,访问:http://127.0.0.1:8080

11、部署项目

将SpringBoot项目打包,注意pom.xml中需要加入打包插件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>LinuxSpringBootDemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--导入springboot相关的jar包-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

    <dependencies>
        <!--web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.5.RELEASE</version>
            </plugin>
        </plugins>
        <!--打包生成jar包的名字-->
        <finalName>boot</finalName>
    </build>

</project>

我这里生成一个boot.jar,然后上传到opt目录中,如下:

image-20221122192136206

我这个项目非常简单只有一个启动类和一个application.yml,启动类代码:

package cn.itsource;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * <p>启动类</p>
 *
 * @author 波波老师(微信 : javabobo0513)
 */
@SpringBootApplication
@RestController
public class App {

    @GetMapping("/test")
    public String test(){
        System.out.println("恭喜你,SpringBoot项目运行成功啦.......");
        return "恭喜你,SpringBoot项目运行成功啦.......";
    }

    public static void main(String[] args){
        SpringApplication.run(App.class);
    }
}

yml内容:

server:
  port: 8001

然后进入opt目录中:cd /opt,然后使用下面命令启动项目:

java -jar boot.jar

然后我们通过浏览器访问:http://120.26.60.94:8001/test,可以返回数据:恭喜你,SpringBoot项目运行成功啦…

页面每刷新一次,控制台就会打印一次日志:恭喜你,SpringBoot项目运行成功啦…,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCo7lca2-1673165466166)(https://gitee.com/xiaochen1106/MyImages/raw/master/java/202301081607886.png)]

此时项目虽然启动了,但是当前页面就无法输入其他命令了,此时如果想在后台运行项目的话,可以使用下面命令:

java -jar boot.jar &

此时需要关闭项目的话,需要杀死进程,先通过下面命令查询我们8001占用的进程ID:

netstat -tunlp | grep 8001

然后再杀死进程:

kill -9 20294

如下:

image-20221122192813915

12、资源下载地址

CentOS7下载地址:

链接:https://pan.baidu.com/s/1fSxiUYucG7xWvyN70dGdZg?pwd=1069
提取码:1069

其他相关工具下载地址:

链接:https://pan.baidu.com/s/1zhJiM5QZNlD4ym4iJGtBqQ
提取码:7777

13、总结

  1. 在自己本机能独立安装虚拟机并成功运行CentOS
  2. 能用相关工具连接Linux系统,并上传软件进行安装
  3. 能在Linux系统中部署前后端项目

如果本文对你有帮助的话,记得点个赞哦

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中的消息框对话框tkinter.messagebox

介绍&#xff1a;使用&#xff1a;选择消息框的模式:提示消息框:【返回”ok”】消息警告框【返回”ok”】&#xff1a;错误消息框【返回”ok”】&#xff1a;对话框&#xff1a;询问确认对话框【返回值&#xff1a;yes/no】确认/取消对话框【返回值&#xff1a;True/False】是/…

【Java集合】Set接口及系列子类HashSet等

文章目录Set接口> Set 接口和常用方法> Set接口实现类 - HashSetHashSet 底层机制&#xff08;HashMap&#xff09;> Set接口实现类 - LinkedHashSetSet接口 Set 接口介绍&#xff1a; 无序&#xff08;添加和取出的顺序不一致&#xff09;&#xff0c;没有索引&…

交叉开发环境搭建

ubuntu网络环境搭建 配置网络环境有很多种方法&#xff0c;可以用命令行也可以用图形化界面。ip可以是静态的也可以是动态的。当然要是用SSH访问的话要配置成静态的&#xff0c;但是用校园网的话&#xff0c;又要是动态的&#xff0c;这里就不详细说了。 我们配置ubuntu是为了能…

Java学习路线图(2023版,视频已更新)

PS&#xff1a;注意收藏&#xff0c;此套路线图会不定期更新!点这里跳转&#xff1a;2023年Java程序员学习路线图入门&#xff1a; Java SE基础 → Java Web(含数据库H5jsvue)中级&#xff1a; Maven → Git → SSM框架 → MybatisPlus → Spring Boot→ 《传智健康》项目实战 …

北大硕士LeetCode算法专题课-基础算法查找

算法专题系列&#xff1a; 北大硕士LeetCode算法专题课---算法复杂度介绍_骨灰级收藏家的博客-CSDN博客 北大硕士LeetCode算法专题课-基础算法之排序_骨灰级收藏家的博客-CSDN博客 查找算法 查找算法也可以叫搜索算法。 查找算法就是从一个有序数列中找出一个特定的数&am…

66.物体检测算法:区域卷积神经网络(R-CNN)系列

1. R-CNN ps&#xff1a;在计算机视觉中&#xff0c;深度学习之前&#xff0c;分类器用的是SVM 2. 兴趣区域&#xff08;RoI&#xff09;池化层 目的是为了让每个锚框都可以变成一个自己想要的形状。 3. Fast RCNN 具体步骤如下&#xff1a; 对整张图片用CNN抽特征&#xff…

IT服务管理(ITSM)是什么?ITSM工具哪个好用

什么是IT服务管理&#xff08;ITSM&#xff09; IT 服务管理 (ITSM) 包含一组策略和实践&#xff0c;这些策略和实践可用于为最终用户实施、交付和管理 IT 服务&#xff0c;以满足最终用户的既定需求和企业的既定目标。 在此定义中&#xff0c;最终用户可以包含员工、客户或业…

一网打尽链表的经典OJ题!链表必考笔试题第一弹

目录 0.前言 1. 移除链表元素 2. 反转链表 2.1 方法一(遍历反转链接关系) 2.2 方法二(节点头插构造新链表) 3.链表的中间节点 4. 链表中倒数第k个节点 5. 总结 0.前言 本文所有代码都已传入gitee&#xff0c;可自取 3链表OJ题p1 onlookerzy123456qwq/data_structu…

使用Electron创建桌面程序,从创建到打包

在桌面程序中&#xff0c;使用C#语言可以创建winform和WPF程序&#xff0c;他们2个在Windows中都非常的优秀&#xff0c;还有就是使用QT开发桌面&#xff0c;可以跨平台开发&#xff0c;这三种都是比较“正规”的&#xff0c;而Electron是使用框架开发桌面程序的&#xff0c;还…

JDBC核心技术_第9章:Apache-DBUtils实现CRUD操作

目录9.1 Apache-DBUtils简介9.2 主要API的使用9.2.1 DbUtils9.2.2 QueryRunner类9.2.3 ResultSetHandler接口及实现类9.1 Apache-DBUtils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库&#xff0c;它是对JDBC的简单封装&#xff0c;学习成本极低&#xff0…

硬件设备上也能安全运行小程序

当前&#xff0c;在百度、支付宝、今日头条等各大巨头都把持小程序技术尚未开放的情况下&#xff0c;市面上可商用的小程序技术选择面非常狭窄。与此同时&#xff0c;企业仍希望实现 “一次开发&#xff0c;多端运行”&#xff0c;从而真正达到降本增效。今天为大家分享一下&am…

【c++复习梳理】--基础入门语法

目录 1.函数重载 1.1 函数重载概念 1.2C支持函数重载的原理--名字修饰(name Mangling) 2.引用 2.1 引用概念 2.2 引用特性 2.3 常引用 2.4 使用场景 2.4.1 做参数 2.4.2 做返回值 2.5 传值、传引用效率比较 2.5.1 传值、传引用效率比较--做参数返回 2.5.2 值和引用…

Linux--进程地址空间在线程方面的补充--页表的操作模式 0109

上一篇有关地址空间的博客 (入门自用)--Linux--程序地址空间--程序的创建--0907-0913_Gosolo&#xff01;的博客-CSDN博客 很久之前写的&#xff0c;最近会完善。 1. 进程地址空间在线程方面的补充 线程由于资源都是从主进程直接拿来的&#xff0c;所以他们的pcb结构体中的地址…

如何让 Shell 提示符更酷炫

使用远程终端时&#xff0c;默认的命令行提示符格式已经能满足大部分用户需求了&#xff0c;但有时我们希望提示符看起来更直观、优雅、酷炫、美观&#xff0c;可以从中直接得到我们想要的信息&#xff0c;而且清晰分明。本文就详细讲解一下如何让 Shell 提示符更酷炫&#xff…

13_9、Java的IO流之NIO.2中Path、Paths、Files类的使用

一、引入1、Java NIO (New IO&#xff0c;Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API&#xff0c;可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的&#xff0c;但是使用的方式完全不同&#xff0c;NIO支持面向缓冲区的(IO是面向流的)、基于通道的…

cinder对接nfs后端存储

1.部署配置流程 1.安装nfs服务端 可以新增一个节点&#xff0c;或直接使用计算节点&#xff0c;因为存储节点上已经有lvm了这里直接使用计算节点来安装 yum install nfs-utils -y2.修改配置 vi /etc/exports # 要共享的目录 允许的网络1(操做权限) 允许的网络2(操做权限) …

Mybatis源码分析(八)MapperMethod的Select分析

目录一 Select1.1 参数的对应解析convertArgsToSqlCommandParam1.2 ID获取对应的MappedStatement1.3 MappedStatement交给执行器执行1.4 根据参数获取BoundSql1.5 SqlNode节点的解析1.5.1 MixedSqlNode1.5.2 IfSqlNode1.5.3 StaticTextSqlNode1.5.4 TextSqlNode1.6 执行器执行查…

Delete `␍`eslint(prettier/prettier) 错误的解决方案

Delete ‘␍’ eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码&#xff0c;在执行pre-commit时&#xff0c;出现如下错误&#xff1a; Delete ␍eslint(prettier/prettier)下面是几种个人尝试过的解决方案&#xff1a; 解决方案 一、Crtl…

【自学Python】Python bytes转string

Python bytes转string Python string转bytes教程 在 Python 中&#xff0c;bytes 类型和 字符串 的所有操作、使用和内置方法也都基本一致。因此&#xff0c;我们也可以实现将 bytes 类型转换成 string 类型。 Python bytes转string方法 Python bytes 转 string 方法主要有…

effective c++读书笔记4

设计class犹如设计type新type的对象应该如何被创建和销毁&#xff1f;&#xff1a;这会影响到你的class的构造函数和析构函数以及内存分配函数和释放函数的设计。对象的初始化和对象的赋值有什么样的区别&#xff1f;这答案决定你的构造函数和赋值操作符的行为&#xff0c;以及…