Linux02(项目部署,手动和自动部署,JDK版本问题,安装软件,安装软件,安装JDK,Tomcat,MySQL,Irzsz)

目录

一、安装软件

1. 安装准备工作

1 Linux里的软件安装方式

2 上传软件到Linux

3 拍照虚拟机快照

2. 安装JDK

1 卸载自带jdk

2 解压JDK

3 配置环境变量

4 测试JDK

3. 安装Tomcat

1 解压Tomcat

2 修改防火墙设置

3 测试Tomcat

启动Tomcat

访问Tomcat

查看Tomcat日志

4 关闭Tomcat

4. 安装MySQL

1 卸载自带MySQL

2 解压安装MySQL

3 初始配置MySQL

4 测试MySQL

5. 安装lrzsz【了解】

1 安装lrzsz

2 使用lrzsz

二、部署项目

1. 准备SpringBoot项目

2. 部署项目到Linux里

1 方式一:手动部署【推荐】

2 方式二:基于Shell自动部署【拓展了解】

1 把项目推送到gitee仓库

2 在Linux里安装git 并克隆项目

3 在Linux里安装maven

4 运行Shell脚本实现自动部署

3 给CentOS设置静态ip

三、补充JDK版本问题


一、安装软件

1. 安装准备工作

1 Linux里的软件安装方式

在CentOS系列的Linux操作系统中,安装软件主要有以下四种方式:

2 上传软件到Linux

我们先统一把软件上传到Linux内的/root/softwares文件夹下

  1. 创建文件夹:mkdir /root/softwares

  2. 切换到softwares文件夹内:cd /root/softwares

  3. 在FinalShell里打开文件管理窗口

     4.把软件包拖拽到/root/softwares文件夹里

3 拍照虚拟机快照

为了防止安装软件时出错导致的各种问题,我们可以使用VMWare提供的快照功能。

快照,类似于游戏的存档,一旦程序出错,就可以使用快照进行恢复。

  • 拍摄快照

如果后续安装软件过程中出错了,就可以使用快照直接恢复环境:

2. 安装JDK

1 卸载自带jdk

某些Linux版本可能会自带OpenJDK,如果有的话,我们需要先卸载掉,然后再安装我们自己的JDK

  1. 查询已安装的JDK:rpm -qa|grep "jdk"

    如果查询到了,会把软件名称给我们列出来;一行一个软件名称

  2. 查询到几个,就卸载几个。如果一个都没有查询到,就不用执行下一步了

  3. 卸载已安装的JDK:rpm -e --nodeps 软件名称

    其中软件名称,是刚刚查询结果中的软件名称。

    每执行一次卸载命令,就卸载一个软件;要卸载几个,就执几次

2 解压JDK

把我们刚刚上传的jdk解压出来

#切换到softwares文件夹里
cd /root/softwares
#解压jdk程序包
tar -xvf jdk-8u181-linux-x64.tar.gz -C /usr/local/

3 配置环境变量

  1. 用 vim 打开 /etc/profile 配置文件: vi /etc/profile

  2. 在vim的普通模式下,按大写的G会直接跳到文件的最后一行

  3. 在vim的普通模式下,按小写的o,会在下一行开始输入

  4. 粘贴以下内容

#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_181
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

  1. Esc键回到普通模式,按:wq回车,保存并退出vim

  2. 执行命令:source /etc/profile,让环境变量立即生效

4 测试JDK

安装JDK完成之后,需要测试一下是否安装成功。执行以下命令,如果都能够看到版本号,说明jdk是正常的:

  • java -version

  • javac -version

3. 安装Tomcat

1 解压Tomcat

#切换到softwares文件夹里
cd /root/softwares/
#把Tomcat解压到/usr/local/文件夹里
tar -xvf apache-tomcat-8.5.32.tar.gz -C /usr/local/

2 修改防火墙设置

Linux的防火墙默认是启动状态,并且默认不开放8080端口,这会导致其它电脑不能访问Linux里的服务器。

所以需要开放8080端口,有以下两种方案,任选一种就行:

#方案一:直接关掉防火墙,Linux不再拦截任何端口。操作简单,但有安全隐患,所以生产环境不建议使用这种
#    关闭防火墙
systemctl stop firewalld
#    防火墙不再开机启动
systemctl disable firewalld

#方案二:不关闭防火墙,但是开放8080端口。开放一个端口就要配置一次。麻烦但更安全,所以生产环境建议使用这种
#    开启防火墙服务
systemctl start firewalld
#    开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
#    重载防火墙
firewall-cmd --reload

3 测试Tomcat

启动Tomcat

#切换到Tomcat的bin目录里
cd /usr/local/apache-tomcat-8.5.32/bin/
#启动Tomcat
sh startup.sh

访问Tomcat

在物理机的浏览器上,打开地址 http://虚拟机ip:8080,如果能看到以下界面,说明Tomcat启动成功了

查看Tomcat日志

如果Tomcat里部署了项目,项目运行中出现了异常,就需要查看日志文件了。那么如何查看Tomcat的日志呢?

Tomcat的运行日志,会保存到其安装目录下的logs文件夹里,日志文件名称是catalog.out,所以查看日志的命令:

#分页查看日志文件内容。 如果日志文件内容特别多,而你仅仅想看最新的日志,这种方式就不方便了
less /usr/local/apache-tomcat-8.5.32/logs/catalina.out
 
#查看日志文件尾部50行内容(行数可以修改)
tail -n 50 /usr/local/apache-tomcat-8.5.32/logs/catalina.out

4 关闭Tomcat

在Linux里,以下两种方式都可以关闭Tomcat

方式一:运行关闭脚本

#切换到Tomcat的bin目录里
cd /usr/local/apache-tomcat-8.5.32/bin
#运行关闭脚本
sh shutdown.sh
       

方式二:杀掉Tomcat进程

#找到tomcat进程号。如下图所示,进程号是94273
ps -ef | grep tomcat
#杀掉对应进程
kill -9 94273

4. 安装MySQL

1 卸载自带MySQL

某些Linux改造版会自带Linux软件,我们需要先把它们卸载掉

  • 查找软件

要卸载哪些软件,需要先知道软件的名称。我们通过以下命令,查找已安装的软件名称

rpm -qa | grep "mysql"
rpm -qa | grep "mariadb"

如下图所示,没有找到mysql软件,但是找到了 mariadb,需要把它卸载掉

  • 卸载软件

执行卸载命令,其中软件名称要复制粘贴,不要手写,容易写错:

rpm -e --nodeps 软件名

2 解压安装MySQL

  • 解压MySQL程序包

#创建文件夹,用于放解压后的MySQL程序包
mkdir /usr/local/mysql
#切换到softwares文件夹里
cd /root/softwares/
#把MySQL解压到mysql文件夹里
tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql/

安装MySQL

#切换到mysql文件夹里(MySQL的安装包在这里)
cd /usr/local/mysql/
#在线安装net-tools。联网自动安装
yum install net-tools perl -y
#按照以下顺序,依次安装软件。注意:不要调整以下命令的执行顺序,否则可能会安装失败
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

3 初始配置MySQL

修改MySQL配置文件

MySQL的配置文件中,有两项需要修改:

  1. 字符集

    MySQL默认使用的是latin1字符集,即iso-8859-1,这种字符集不支持中文。所以我们需要修改字符集

  2. ssl安全协议

    CentOS新版本中升级了ssl,会导致其它电脑连接CentOS里MySQL时,因ssl安全协议版本不匹配导致连接失败

执行以下命令(只要执行一次即可,不要重复执行),即可解决上述两个问题:

#修改字符集:在 `/etc/my.cnf`文件的最后追加配置项 `character-set-server=utf8mb4`
echo "character-set-server=utf8mb4">>/etc/my.cnf
#禁用MySQL的ssl安全验证
echo "skip-ssl">>/etc/my.cnf

启动MySQL服务,并设置开机自启

MySQL的服务还没有启动,需要启动后才可以使用MySQL。

而MySQL服务默认不是开机自启的,这意味着 每次启动Linux,都需要手动启动MySQL服务才可以使用MySql。所以我们设置MySQL服务为开机自启

#启动MySQL服务
systemctl start mysqld
#设置MySQL服务为开机自启
systemctl enable mysqld

修改MySQL初始密码

  • 查看MySQL初始密码

MySQL在安装过程中,给root帐号生成了一个初始密码在/var/log/mysqld.log文件中,MySQL要求我们第一交登录MySQL后必须修改密码。

我们先执行以下命令,查看初始密码

cat /var/log/mysqld.log | grep password

修改MySQL的root密码

mysql>后边,依次输入以下SQL语句并执行

#设置密码长度允许4位
set global validate_password_length=4;
#设置允许使用弱口令
set global validate_password_policy=LOW;
#设置当前用户(root)的密码为root
set password = password('root');
#设置root帐号允许远程登录,且远程登录密码也是root
grant all on *.* to 'root'@'%' identified by 'root';
#刷新权限
flush privileges;
#退出MySQL命令行界面
exit;

修改防火墙设置

MySQL使用3306端口,默认也会被Linux的防火墙拦截。所以我们仍然有两种选择可以开启3306端口,任选一种即可:

#方案一:直接关掉防火墙,Linux不再拦截任何端口。操作简单,但有安全隐患,所以生产环境不建议使用这种
#    关闭防火墙
systemctl start firewalld
#    防火墙不再开机启动
systemctl disable firewalld

#方案二:不关闭防火墙,但是开放8080端口。开放一个端口就要配置一次。麻烦但更安全,所以生产环境建议使用这种
#    开启防火墙服务
systemctl start firewalld
#    开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#    重载防火墙
firewall-cmd --reload

4 测试MySQL

在物理机上,使用任意MySQL客户端(navicat,SQLyog,dbeaver,datagrip)连接Linux里的MySQL测试一下。如果能连接,说明MySQL已经安装完成

5. 安装lrzsz【了解】

lrzsz 是用于在Linux系统中文件上传下载的软件。当我们使用远程工具连接上Linux之后,借助lrzsz工具,可以在自己的电脑和Linux之间进行文件传输。

大家可能会存在疑问,我们用finalShell图形化界面就可以很方便的完成上传下载,为什么还要使用这个软件来完成上传下载呢?

实际上是因为,Linux的远程连接工具有很多,finalShell只是其中的一种,还有某些远程连接工具并没有上传下载的功能,这个时候就需要依赖于lrzsz这个软件了。

1 安装lrzsz

执行命令: yum install lrzsz.x86_64 -y

2 使用lrzsz

lrzsz主要包含了两个命令:

  • rz:用于让Linux系统接收(receive)一个文件(即:我们要把一个本机上的文件 上传到 Linux)

    执行命令rz,会弹出一个窗口,选择一个文件会上传到Linux的当前文件夹里

sz:用于让Linux系统发送(send)一个文件(即:我们要把Linux上的一个文件 发送到 本机)

如果命令sz 文件路径,会把文件传输到物理机里

二、部署项目

1. 准备SpringBoot项目

为了演示项目部署,我们准备一个简单的SpringBoot项目,只要有最简单的功能,用于演示项目部署的过程即可。

可以使用资料里的《示例项目/day02-demo》,项目已经打包成jar:

2. 部署项目到Linux里

1 方式一:手动部署【推荐】

使用FinalShell或WindTerm(使用rz命令也行),把bootapp.jar上传到Linux内的 /root/app文件夹里

  • 先在Linux里创建文件夹:mkdir /root/app

  • 然后把bootapp.jar上传到Linux的/root/app文件夹里

在CentOS里直接使用命令启动bootapp.jar即可

#切换到bootapp.jar所在的文件夹
cd /root/app
#启动bootapp.jar。如果关闭了客户端终端窗口,服务就结束了
java -jar bootapp.jar

nohup java -jar bootapp.jar &

打开浏览器,输入地址:http://192.168.200.135:8080/hello。如果能够看到如下响应结果,就说明项目已经部署成功了

2 方式二:基于Shell自动部署【拓展了解】

刚刚我们是手动把项目部署到Linux中,整个部署过程的每一步,都需要由自己操作实现。一旦项目的环境复杂一点,就会导致项目部署过程非常繁琐,且容易出错。

我们可以使用Shell脚本,实现自动化部署,把整个部署过程规范下来,后续如果需要部署项目,只要运行一个脚本,就能实现一键部署。

我们这里实现自动部署的流程如下:

  1. 在本机上开发项目,编写项目代码。然后把代码推送push到git共享仓库,比如Gitee

  2. 在Linux服务器里(使用Shell脚本自动实现)

    • 使用git从gitee中克隆拉取代码

    • 使用maven编译并打包项目代码

    • 使用命令,启动项目

1 把项目推送到gitee仓库

1)创建gitee仓库

目前gitee允许直接创建开源仓库,所以我们直接选择“开源”仓库即可

2 在Linux里安装git 并克隆项目

#安装git软件。注意:需要联网
yum install git -y
#验证git是否安装成功。执行以下命令,如果能够查到git的版本号,就说明git安装成功了
git version

#切换到~/app
cd ~/app
#克隆项目代码
git clone https://gitee.com/liuyp100/bootapp.git
#验证有没有克隆到项目代码。查看当前目录下,有没有名称为bootapp的文件夹,如果有,说明克隆成功了
ls

3 在Linux里安装maven
  1. 把maven软件上传到Linux的~/softwares文件夹里

  2. 把本地仓库《repo》上传到Linux的/usr/local文件夹里

3. 然后解压maven,并配置环境变量

#切换到softwares文件夹里,因为maven软件上传到了这里
cd ~/softwares
#解压maven
tar -xvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
#配置maven环境变量(下面2行命令,只要执行一次即可,不要重复执行)
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.5.4'>>/etc/profile
echo 'export PATH=$MAVEN_HOME/bin:$PATH'>>/etc/profile
source /etc/profile
#验证maven是否配置成功。执行以下命令,如果能看到maven版本号,说明配置成功
mvn -v

4. 设置maven本地仓库和阿里云仓库镜像

#切换到maven配置文件所在的文件夹
cd /usr/local/apache-maven-3.5.4/conf
#使用vi打开配置文件,然后按下图配置本地仓库:在settings标签里增加localRepository标签,配置本地仓库路径
vi settings.xml

本地仓库配置如下图:<localRepository>/usr/local/repo</localRepository>

阿里云仓库镜像配置如下:

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

4 运行Shell脚本实现自动部署

Shell脚本,是Linux系统里的脚本,类似于Windows系统里的cmd(或bat)脚本。我们这里使用Shell脚本可以实现项目的自动化部署。

但Shell脚本不是我们学习的重点,所以不用自己编写,直接使用资料里提供好的脚本文件《bootStart.sh》即可

操作步骤如下:

  1. 把bootStart.sh文件上传到~/app目录下

  2. 运行shell脚本

#切换到当前用户的家目录
cd ~/app
#修改脚本的权限
chmod 777 bootStart.sh
#运行Shell脚本
sh bootStart.sh

   3. 打开浏览器,输入地址 http://192.168.200.135:8080/hello,如果页面上能看到hello,就表示项目部署成功了

3 给CentOS设置静态ip

我们目前的虚拟机里安装的CentOS,使用的都是动态ip:由虚拟机根据dhcp协议动态获取ip地址。这意味着CentOS虚拟机的ip地址,是有可能变化的,它会导致我们访问项目的地址也不得不随之变化。

为了更方便的访问项目,我们可以把虚拟机CentOS设置为静态ip

  1. 先查询一下虚拟机CentOS的ip地址

     2. 打开网卡配置文件,执行命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33

在vi里,修改网卡配置:

  3. 重启网络服务,执行命令:systemctl restart network

如果不重启网络服务,刚刚修改的网卡配置就不会立即生效

因为CentOS里已经安装了比较多的软件,为了避免ip变化对其它软件的影响,可以reboot重启一下

三、补充JDK版本问题

不同JDK版本,有不同的语法。新版本通常会增加一些新的语法或类,也会清除一些过时的类和语法

高版本JDK编译出来的Class,不能在低版本JRE环境里运行。比如

  • 有一个demo.war,使用JDK11编译然后打包的

  • 然后把这个war包部署到Linux里。而Linux安装的JDK是1.8,出现问题:

    demo.war不能正常运行

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

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

相关文章

git 小记

一、 github新建仓库 git clone 。。。。。。。。。。。 &#xff08;增删查补&#xff0c;修改&#xff09; git add . git commit -m "修改” git push (git push main) 二、branch 分支 branch并不难理解&#xff0c;你只要想像将代码拷贝到不同目录…

MongoDB的CURD(增删改查操作)

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 ✈️如果喜欢这篇文章的话 &#x1f64f;大大们可以动动发财的小手&#x1f449;&#…

刷代码随想录有感(34):前k个高频元素

本题代码涉及到了多个陌生概念&#xff0c;题干如下&#xff1a; 代码; class Solution { public:class mycomparison{//自定义规则&#xff0c;使优先队列可以自动排序public:bool operator()(pair<int, int> & lhs, pair<int, int> & rhs){return lhs.s…

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

如何保障UDP传输中数据文件不丢失?

UDP协议因其低时延和高速传输的特性&#xff0c;在实时应用和大量数据传输领域中发挥着不可或缺的作用。但是&#xff0c;由于UDP是一种无连接的通讯协议&#xff0c;它并不确保数据包的顺序、完整性和可靠性。 为了解决UDP传输中数据一致性的问题&#xff0c;技术专家们进行了…

【Linux系统编程】第四弹---基本指令(二)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、echo指令 2、cat指令 3、more指令 4、less指令 4、head指令 5、tail指令 6、时间相关的指令 7、cal指令 8、find指…

Wix在国内受限?为何不使用中国版WIX自助建站,wix的国产替代工具

wix是一款知名的在线网站建站工具&#xff0c;能让用户在其网络上网站编辑器中拖放工具创建HTML5网站。用户可在他们的网站编辑器中加入额外的功能&#xff0c;例如社交网络按钮、电子商务功能、联系表格、电子报及社群论坛等。 但wix在国内不能用&#xff0c;或打开速度很慢&a…

npm命令卡在reify:eslint: timing reifyNode:node_modules/webpack Completed in 475ms不动

1.现象 执行npm install命令时&#xff0c;没有报错&#xff0c;卡在reify:eslint: timing reifyNode:node_modules/webpack Completed in 475ms不动 2.解决办法 &#xff08;1&#xff09;更换淘宝镜像源 原淘宝 npm 域名http://npm.taobao.org 和 http://registry.npm.ta…

git clone自动安装最新版本,如何选择安装自己想要的其他版本,最简单解决方法

比如本人最新在安装 git clone https://github.com/synthetik-technologies/blastfoam.git 本人想要其中的3.0版本&#xff0c;但是上面git clone默认是使用最新版本6.2.0 这时候可以先执行 git clone https://github.com/synthetik-technologies/blastfoam.git 然后由…

【C++】力扣OJ题:构建杨辉三角

Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题&#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建&#xff0c;如果用C语言动态构建二维数组是比较麻烦的&#xff0c;而用C中STL的vector<vector<int>>,就可以立马构建出来&#xff0c;这也…

React-Redux(一)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-Redux&#xff08;一&#xff09; 目录 1、简介 2、三大原则&#xff08;重点&#xf…

ECharts数据大屏展示效果

ECharts数据大屏展示效果 前言1、效果预览1.2、视频效果 2、使用框架3、如何处理屏幕自适应效果4、ECharts模块、dataV大屏插件 编写与布局5、往期回顾总结&#xff1a; 前言 数据大屏需整体效果好看&#xff0c;界面缩放自适应大小&#xff0c;全屏展示铺满整个屏幕并自适应&a…

HTML段落标签、换行标签、文本格式化标签与水平线标签

目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中&#xff0c;要把文字有条理地显示出来&#xff0c;就需要将这些文字分段显示。在 HTML 标签中&#xff0c;<p>标签用于定义段落…

Golang面试题四(GMP)

目录 1.Goroutine 定义 2.GMP 指的是什么 3.GMP模型的简介 全局队列&#xff08;Global Queue&#xff09; P的本地队列 P列表 M列表 4.有关P和M的个数问题 P的数量问题 M的数量问题 P和M何时会被创建 5.调度器P的设计策略 复⽤线程 work stealing机制 hand off…

算法 第41天 动态规划3

343 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 # 动态规划 def integerBreak(n:int)->int:dp[0]*(n1)dp[2]1 #从下标为2开始 &#xff0…

本地生活服务平台都有哪些,靠谱吗?

随着本地生活服务的发展潜力和盈利方式被不断挖掘&#xff0c;越来越多的人开始发现其中所蕴含着的巨大商机&#xff0c;大家所熟悉的抖音、小红书和支付宝等平台也纷纷上线了本地生活板块&#xff0c;再次印证了其前景的广阔。在此背景下&#xff0c;普通人想要趁势入局分一杯…

定制k8s域名解析------CoreDns配置实验

定制k8s域名解析------CoreDns配置实验 1. 需求 k8s集群内通过CoreDns互相解析service名. 同时pana.cn域为外部dns解析,需要通过指定dns服务器进行解析 再有3个服务器,需要使用A记录进行解析 2. K8s外DNS服务器 查看解析文件 tail -3 /var/named/pana.cn.zone 解析内容 ww…

免费申请泛域名证书

通配符证书是一种比较特殊的SSL/TLS 证书&#xff0c;可用于保护多个域名&#xff08;含主域名&#xff09;&#xff0c;由域名字段中的通配符 (*) 指示。这种证书主要用于具有很多子域的组织。通配符证书对主域及其所有次级子域有效。 对于免费通配符证书而言&#xff0c;目前…

IAR 使用笔记(IAR BIN大小为0异常解决)

烧写 由于芯片的内部SPI FLASH的0级BOOT 程序起到到开启JTAG SW 仿真功能&#xff0c;一旦内部SPI FLASH存储的BL0启动代码被损坏&#xff0c;芯片的JTAG 将不能被连接。所以对BL0的烧写需要谨慎&#xff0c;烧写BL0过程保证芯片不断电。 如果烧写了多备份的启动代码&#xff…

NLP基础—jieba分词

jieba分词 支持四种分词模式 精确模式 试图将句子最精确地切开,适合文本分析;全模式 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。paddle模式 利用Paddle…