快速上手: Linux环境配置, 基本指令与项目部署要点

news2024/11/26 19:30:09

文章目录

  • 1. Linux前置知识
    • 1.1. 什么是Linux
    • 1.2. Linux环境的搭建
  • 2. Linux常用命令
    • ls
    • cd pwd
    • touch cat more echo mkdir
    • vi/vim
    • rm cp mv
    • grep ps netstat 管道符
    • yum相关
    • Linux权限
  • 3. 使用Linux部署Servlet项目
    • 3.1. 安装JDK
    • 3.2. 安装Tomcat
    • 3.3. 通过yum安装MariaDB
    • 3.4. 部署Servlet项目

1. Linux前置知识

1.1. 什么是Linux

Linux 是由林纳斯·托瓦兹(Linus Torvalds)在 1991 年创立并发展至今成为服务器操作系统领域的核心系统。

Linux 与 Windows 一样,是一种操作系统(搞管理的软件),Linux 严格意义来说只是一个 “操作系统内核”;一个完整的操作系统 = 操作系统内核 + 配套的应用程序。

Linux 可以称之为当今第一大操作系统,在桌面端, Linux 大概落后 Windows 20 年左右的水平(相当于windows xp),所以人们日常使用的主要是 Windows;而在服务器端,Linux 基本上吃掉了绝大部分市场份额(Windows 也有 Windows Server);在移动端,Linux 也是大哥大, Android 系统本质上就是个 Linux,IOS 虽然不算是 Linux,但是是表兄弟关系,嵌入式设备(冰箱洗衣机空调路由器…),还得是Linux;Linux 的实际市场份额是更多的。

由于 Linux 是一个完全开源免费的内核,因此有些公司/开源组织又基于 Linux 内核,提供了不同的配套程序,这就构成了不同的 “发行版”,企业中使用最多的发行版是 RedHat(红帽),但是它是付费的,我们可以使用基于红帽系统的的社区免费版本 CentOS。

img

Windows 主要操作都是通过图形化界面,而 Linux 主要是通过命令行操作的,因为 Linux 操作系统的图形化页面不好用且(经常有 bug),使用命令行的形式操作更加高效且稳定资源占用低。

1.2. Linux环境的搭建

想要学习 Linux 就得先有 Linux 环境,Linux的环境搭建有以下方法:

  1. 使用物理机:直接将 Linux 装在电脑上(不要 Windows),如果你真这么搞,我敬你是一条汉子;Linux 桌面使用起来是不太不友好的,一天能崩溃好几次,操作难度也比较大,不推荐。
  2. 使用虚拟机:在你的电脑上装个虚拟机软件(使用软件模拟硬件),此时就能在虚拟机上装系统了,但是目前的虚拟机软件存在一些 bug,会莫名其妙出现一些问题,而且没有外网 IP 推荐。
  3. 使用 WSL:WSL (Windows Subsystem for Linux)是 Windows 近几年开发的新功能,在 Windows 系统内集成了一个 Linux,但是目前这个技术还不够成熟,不能作为生产环境,不推荐。
  4. 使用云服务器:强烈推荐,它会有一个外网 IP,可以将项目部署被外部访问;学生买一个云服务器很便宜,学习阶段,腾讯云、阿里云、华为云这些厂商哪个便宜买哪一个就成。
  5. 实体服务器:这个更香,但是要求比较高,你得有一些基本的服务器维护的技能,是比较麻烦的。

至于云服务器的使用,登录你所买的云服务器官网管理平台,安转系统镜像( CentOS 7),找到服务器的 IP,然后设置一下云服务器的用户名(默认是 root)与密码就可以使用了。

云服务器是不在我们主机上的,这里推荐使用XShell来远程控制云服务器使用 Linux。

下面来介绍 Xshell 的安装与使用
1️⃣第一步,下载,点击下方官网链接,下载免费版的 XShell。
https://www.xshell.com/zh/xshell/

img

img

img

2️⃣第二步,安装,设置路径,一路 next 即可。

3️⃣第三步,使用。

首先,点击新建创建一个会话。
img
输入相关信息和外网 IP,点击链接。
img
输入云服务器账户和密码,账户一般为root,密码就是你自己设的。
img
img
像下面这样就表示登成功了,你就可以操控云服务器的 Linux 系统了。
img

命令提示符:[当前登录的用户名@主机名:当前目录(~表示home目录,是用户存放数据的目录)]#(管理员)/$(普通用户),root 用户的 home 目录就是 /root, 是以 root 身份登录后,默认所在的目录。

比如:

img
命令行操作的好处:

  1. 带宽、系统资源的占用非常低
  2. 适合通过脚本来实现批量的重复的操作

2. Linux常用命令

Linux 中ctrl+c表示取消当行输入,ctrl+insert表示复制,shift+insert表示粘贴,ctrl+l清屏。

man是帮助指令,可以查看 Linux 中的指令帮助,配置文件帮助和编程帮助等信息。

Linux,命令通用格式:

command [-options] [parameter]

command:命令本身。
-options:[可选项]命令的一些选项,可以通过选项来控制命令的行为细节。
parameter:[可选项]命令的参数,多用于命令的指向目标等。

ls

ls:查看当前目录里所包含的文件和目录。

 ls [-a -l -h] [Linux路径]

当我们不使用选项和参数时,直接使用 ls 时,就会以平埔的方式列出当前目录下的内容,蓝色的是目录,白色的是普通文件。

img

-a选项,表示 all,即列出全部文件(包含隐藏的文件/文件夹),这里列出的是/(根目录的文件夹和文件),云服务器的任意一个文件都是从属于/目录的。

img

图中以./..开头的,就是 Linux 系统中隐藏的文件/文件夹。

-l选项,表示以列表的形式展示内容,展示更多信息,可以使用ll来替代ls -l

img

语法中的选项是可以组合使用的,比如 -a -l,下面几种写法效果都是一样的。

ls -l -a
ls -la
ls -al

-h的作用是列出文件的大小 K、M、G,-h 必须搭配 -l 一起使用,因为 -l 才会列出文件大小的属性。

img

-d将目录像文件一样显示,而不是显示其下的文件。

-r对目录反向排序。

-t以时间排序。

-R列出所有子目录下的文件(递归)。

cd pwd

cd:切换目录,cd ./路径可以简写为cd 路径

cd [Linux路径]

cd 无需选项,只有参数,表示切换到指定目录下,如果 cd 不写参数,会直接返回到 home 目录(回程)。

在使用 cd 的时候,切换的路径不一定要逐字母输入,可以使用tab键补全,如果只有一个匹配的选项直接就补全了,如果有多个选项,双击tab可以列出所有匹配结果。

我们敲的所有的 Linux 命令, 都可以使用tab键来尝试补全, 加快效率。

路径可以使用绝对路径(以/开头)和相对路径(使用特殊路径符)。

.    表示当前目录
..   表示上一级目录
~    表示初始目录

pwd:查看当前所在目录的路径。

touch cat more echo mkdir

touch:创建一个空文件。
cat:显示一个文件的内容。

more:显示一个文件的内容,cat 是直接将文件内容全部显示出来,more 支持翻页,如果文件内容过多,可以一页页的展示,查看过程中,按空格翻页,按q退出查看。

touch Linux路径
cat Linux路径
more Linux路径

echo:打印文件名在控制台,也可以用来写文件,比如echo+字符串就是在控制台打印一个字符串,echo 字符串 > 文件名.后缀表示将字符串写入后面的文件中,叫做重定向,每次重定向,会清空文件原有的内容;将>换成>>效果就会有覆盖变为拼接。

mkdir:创建目录。

mkdir [-p] Linux路径

参数是必填的,表示 Linux 路径,即要创建文件的路径,-p可选表示自动创建不存在的父目录,适用于我们创建连续多层级的目录。

vi/vim

vi\vim 是 Linux 最经典的文本编辑器,vim 是 vi 的加强版,兼容 vi 的所有指令,它为了为了追求编辑效率,引入了大量的快捷键,默认情况下,键盘上的按键都是按照快捷键的方式来进行作用的,此时,键盘按键都被赋予了特殊的含义,不再是单纯的输入文本了。

 vim 文件路径

vim 命令默认进入的是普通模式(normal),不能对文件内容进行修改,此时的键盘按键都是快捷键,要编辑文件内容,进入 vim 后需要使用i命令切换到插入模式(insert);

文件内容修改完毕以后,先按esc退出插入模式,回到默认的普通模式,输入:wq保存退出,wwriteqquit:的作用就是切换到底线命令模式。

底线命令模式命令:

命令作用
:wq保存并退出
:q退出
:q!强制退出
:w保存
:set nu显示行号
:set paste设置粘贴

如果 vim 没有正确关闭,在下次启动的时候,就会报错(提示你说上次使用没有正确关闭),此时可以直接按D就是删除未保存的内容,按R就是恢复之前的编辑内容。

rm cp mv

rm: 删除文件/删除目录

rm [-r -f] 参数1 参数2 ... 参数n

rm 文件名:删除文件,会提示是否删除,输入 y 就删除。

rm -r 目录名:递归式删除目录,会提示是否确认删除。
rm -rf 目录名:递归式删除目录,不会提示是否确认删除,直接强制删除目录,rm -rf /表示删除系统上的所有文件,危险操作,慎重使用rm命令,因为如果将rm -rf /路径命令中的路径前面多敲了一个空格,系统会认为要删除/目录和./路径目录,一样会触发删除所有文件的操作。

rm 命令支持通配符*(匹配任何内容,包含空)来做模糊匹配:

  • test*代表匹配任何以 test 开头的内容
  • *test代表匹配任何以 test 结尾的内容
  • *tets*代表匹配任何包含 test的内容

cp:用于复制文件/文件夹

cp [-r] 参数1 参数2

-r用于复制文件夹使用,表示递归,参数 1 表示被复制的文件或文件夹,参数 2 表示要复制去的地方,要注意,拷贝操作,有的时候是比较危险的,如果拷贝的目标文件已经存在,就会发生“覆盖”的情况。

mv:用于移动文件\文件夹,改名(Linux中没有单独的命令重命名)

mv 参数1 参数2

参数 1 表示被移动的文件或文件夹,参数 2 表示要移动的地方;如果参数 2 目标不存在,则将参数 1 则文件/文件夹移动到参数 2 路径的同时改名为参数 2 的文件/文件夹名(一边移动一边改名);如果两个参数都是在同一目录下,这个时候就是单纯的改名作用了;如果参数 1 和参数 2 都是文件,且参数 2 存在的情况下,参数 1 中的内容会覆盖掉参数 2 的内容,相当于将参数的文件删除。

grep ps netstat 管道符

grep:字符串查找,从文件中通过关键字过滤文件行

grep [-n -R] "关键字" 文件路径

选项-n显示匹配结果行的行号,-R表示递归搜索,如果当前目录下还有目录,就会自动进入目录中进行搜索,如果文件路径使用*就表示扫描当前目录下的所有文件。

img

管道符 |:将管道符左边命令的结果,作为右边命令的输入。

img

ps:用于查看当前系统上运行的进程

 ps [-a -u -x]

-a显示一个终端的所有进程,-u以用户为主的格式来显示程序状况,-x显示所有程序,不以终端机来区分。

img

可以结合管道符使用,快速筛选指定项进程状态。

ps aux | grep "关键字"

比如要查看 mysql 进程的 pid。

img

netstat:查看系统上的网络状态

netstat [-a -n -p]

-a显示所有正在或不在侦听的套接字,-n显示数字形式的网络地址而不去解析主机、端口或用户名,-p显示套接字所属进程的 pid 和名称。

img

也可以结合管道符使用。

 netstat -anp | grep "关键字"

比如,想查询 mysql 服务器的端口号。

img

yum相关

tree:查看目录结构,是第三方的 Linux 命令,需要先下载安装,安装命令为yum install tree,其中yum命令是一种“包管理器”相当于“应用商店”。

yum list [条件]:搜索指定条件的资源(指令也算),条件可以没有,相当于手机的应用商店。
yum install [资源名称]:下载指定资源。

Linux权限

r:可读权限
w:可写权限
x:可执行权限

例如:
rx表示可读可写但是不可执行
rw表示可读可执行但是不可写
rwx表示可读可写可执行

可以使用chmod指令进行权限的修改。

chmod [-R] 权限 文件/文件夹

-R表示对文件夹内的全部内容应用同样的操作。

例如,将 test.txt 权限修改为 rwxr-x–x,u 代表 user(文件的拥有者),g 代表 group(同组成员),o 代表 other(其它人)。

chmod u=rwx,g=rx,o=x test.txt

3. 使用Linux部署Servlet项目

我们要部署 Servlet项目,首先我们需要下载 Servlet 项目相关的支持,我们代码是用 Java 写的,所以需要 JDK,我们项目需要实现数据持久化,就需要数据库,我们的项目还需要一个 HTTP 服务器,所以需要 Tomcat。

下面的通过yum完成的操作要保证当前登录使用的用户是 root 用户。

3.1. 安装JDK

可以基于yum来安装即可。
grep可以进行字符串过滤。

查询yum list | grep jdk,查询含有jdk字样的软件包。

img
我们选择 jdk8,64 位的。
img

然后执行安装命令:

yum install java-1.8.0-openjdk.x86_64 //安装

在安装的过程中,有个提示你是否要确认安装,按 y 就行了。

我们这里安装的是 open jdk,与我们在 Windows 上面的 jdk 并不是完全一样的,我们 Windows 上面的 jdk 是 oracle 官方的,而我们使用yum在 Linux 上安装的是开源组织的 jdk,但由于使用的 jvm 是相同的,区别也不是很大。

安装完成后,输入 javac 来判断是否安装成功,如果安装成功,输入javac会有如下的页面。

img

3.2. 安装Tomcat

yum 上安转 Tomcat 是存在问题的,我们使用yum在 Linux 上搜索 Tomcat 会发现版本都比较老了,

img

由于不同版本的 Servlet 代码需要不同版本的 Tomcat,我这里需要的是 8.5 系列版本的 Tomcat,所以需要去其他的地方去下载 Tomcat,直接去官网下载即可。

下载好后就是将 Tomcat 安装包上传到 Linux 上(上传前要保证有 JDK),直接将安装包拖到Xshell上就行,但是它是基于rz命令实现的,但是rz在 Linux 中默认是没有的,需要使用yum进行下载,命令为yum install rzszrz是把文件从 Windows 上传到 Linux,sz是把文件从 Linux 传给 Windows。
img
上传完成后,我们需要进行解压缩,需要使用unzip命令,没有这个命令的话还是需要下载,yum installer unzip

upzip apache-tomcat-8.5.87.zip

在linux中startup.sh文件可以启动Tomcat程序,我们需要给这些启动脚本赋予权限。
bin目录,然后执行chmod +x *.sh即可。

加权限之前:
img
加上权限之后:
img
使用sh startup.sh启动 Tomcat,启动前先检查一下 Tomcat 需要的端口是否空闲(8080,8005)。

img
如何验证 Tomcat 是否工作?

方式1:查 看进程ps aux | grep tomcat
img
方式2:查看端口netstat -anp | grep 8080

img::::/:::*是 ipv6 的写法。

Tomcat 默认端口有 8080,8005 两个端口,再看一下 8005。

img

方式3:访问 Tomcat 的欢迎页面。

还可以是访问公网IP:8080,看有没有 Tomcat 的欢迎页面,但是第一次访问大概率是访问不了了,因为云服务器对大部分端口默认是不支持外部访问的,这样是为了减少黑客的攻击,需要我们去设置一下云服务器的防火墙,设置过程如下:

img

img
按照下图填写即可。
img

点击确定,小等一会儿,就能通过访问8080端口访问 Tomcat 的欢迎页面了。
img

3.3. 通过yum安装MariaDB

MariaDB 语法与 MySQL 是差不多的,它是 MySQL 被 Oracle 收购后,MySQL 创始人又发明了 MariaDB。

🍂安装

安装 mariadb 服务

yum install -y mariadb-server

安装 mariadb 命令行客户端

yum install -y mariadb

安装 mariadb C library

yum install -y mariadb-libs

安装 mariadb 开发包

yum install -y mariadb-devel

🍂启动

启动服务

systemctl start mariadb

设置开机自动启动服务

systemctl enable mariadb

查看服务器状态

systemctl status mariadb

注意到 Active 状态为 active (running**)**

img

🍂测试连接

默认是无密码的,使用命令行客户端尝试连接

mysql -uroot

img

查看mariadb版本号:

select version();

img

创建数据库时为了支持中文,统一使用 utf8mb4 字符集

MariaDB [(none)]> create database demo_db charset utf8mb4;

可以使用 ctrl+d 退出 mysql 客户端。

3.4. 部署Servlet项目

我这里部署的是我写的一个 Servlet 版的博客系统。

1️⃣第一步,在服务器建库建表,找到之前写的sql语句,粘贴到服务器数据库即可。
2️⃣第二步,微调 Java 代码,主要就是 DBUtil 类中的数据源配置信息,主要是要修改为服务器数据库所对应的 url,用户名和密码,我这里的服务器数据库上是没有密码的,因此需要将密码设置为空字符串"",数据库用户名仍然为root,不需要改变,建库建表也是一样的,所以 url 也不用改。
3️⃣第三步,设置打包格式为war包和名称,就是在pom.xml配置文件加上以下格式的语句即可:

<!-- 设置打包方式为war包, 不写默认为jar包-->
<packaging>war</packaging>
<build>
    <!--指定war包名-->
    <finalName>blog_system</finalName>
</build>

4️⃣第四步,打包部署,上传到服务器 Tomcat 的webapps目录中,即将war包拖拽到webapps目录。

此时程序算部署好了,就可以公网使用 IP 来访问进行访问,地址为http://101.42.25.148:8080/blog_system/login.html

img

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

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

相关文章

vue3和vue2的主要区别

Vue 3 和 Vue 2 之间有几个主要的区别&#xff1a; 性能优化&#xff1a;Vue 3 在性能方面进行了一些改进&#xff0c;包括更快的渲染速度和更小的包大小。Vue 3 使用了新的响应式系统&#xff0c;可以更好地追踪依赖关系&#xff0c;从而提高了渲染性能。 Composition API&am…

深圳科普宣传片的重要性

科普宣传片是指科学普及宣传片&#xff0c;旨在向公众传播科学知识、提高科学素养、促进科学文化的传播和科学教育。接下来由深圳科普宣传片制作公司老友记小编从以下几个方面浅析科普宣传片的重要性: 1.普及科学知识&#xff1a;科普宣传片可以向大众传达科学知识&#xff0c;…

PYTHON用户流失数据挖掘:建立逻辑回归、XGBOOST、随机森林、决策树、支持向量机、朴素贝叶斯和KMEANS聚类用户画像...

原文链接&#xff1a;http://tecdat.cn/?p24346 在今天产品高度同质化的品牌营销阶段&#xff0c;企业与企业之间的竞争集中地体现在对客户的争夺上&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 “用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客…

【紫光同创国产FPGA教程】——【PGL22G第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开发…

「2024」预备研究生mem-相同元素问题仅选取隔板法相邻与不相邻问题

一、相同元素问题&仅选取&隔板法&相邻与不相邻问题 不理解可以不考虑这种方法&#xff1a; 隔板法&#xff1a; 使用分堆分配&#xff0c;此时比较麻烦&#xff1a;

基于Java+SpringBoot+Vue前后端分离智能学习平台系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

part-01 C++知识总结(程序的内存分区、多态的实现)

总结来自&#xff1a;拓跋阿秀大佬的面试知识网站&#xff0c;侵权删 一.程序的内存分区/程序模型 内存分区分别是堆、栈&#xff0c;自由存储区&#xff0c;全局/静态存储区、常量存储区和代码存储区。 栈&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以…

centos升级python3.10,中间遇到问题,终于解决了

升级为python3.10 yum updateyum install openssl-devel bzip2-devel libffi-develyum groupinstall "Development Tools"wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgztar -xzf Python-3.10.2.tgzcd Python-3.10.2./configure --enable-optimi…

OpenCV(九):LUT查找表

LUT&#xff08;Look-Up Table&#xff09;查找表是OpenCV中一种常用的图像处理方法&#xff0c;用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作&#xff0c;尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找…

王传福猛男落泪,比亚迪疯狂赚钱

作者&#xff5c;丁广胜 出品&#xff5c;网易科技智见焦点 厮杀告一段落&#xff0c;成绩揭晓。 降价、吵架、还有眼泪&#xff0c;充斥在这略显漫长的2023上半年。 先看一组数据&#xff0c;上半年比亚迪新能源汽车销售151.78万辆&#xff0c;特斯拉是54万辆、理想汽车是14万…

英国选校8.27|8.29

目录 IC帝国理工学院 UCL伦敦大学学院 ​编辑 Band A B C 专业院系 爱丁堡 曼彻斯特 KCL伦敦国王学院 Bristol布里斯托 华威 南安普顿 IC帝国理工学院 UCL伦敦大学学院 24qs专业位置双非雅思气候备注9 MSc Scientific and Data Intensive Computing MSc Urban Sp…

阔别线下三年的BIRTV影视盛会:有哪些变革式创新应用?

2023年8月26日&#xff0c;以“融合创新 面向未来”为主题的第三十届北京国际广播电影电视展览会&#xff08;BIRTV 2023&#xff09;收官。这是一场阔别线下三年的行业顶尖盛会&#xff0c;展馆处处人潮涌动。 接下来盘点一下&#xff0c;本次BIRTV的一些特色应用&#xff1a…

司徒理财:8.30黄金日内高空,随后回调看涨

黄金走势分析&#xff1a; 从日线形态来看&#xff0c;昨晚经历了快速拉升&#xff0c;价格成功稳定在关键的1924压力位之上&#xff0c;最高甚至触及了1938的高点。这表明市场开启了新一轮走势的空间。在当天的日内交易中&#xff0c;我们应特别关注1924一线作为支撑&#xff…

远传水表数据是怎么远传的?

随着科技的不断发展&#xff0c;智慧城市的建设逐渐成为城市发展的重要方向&#xff0c;而智能水表作为智慧城市中的重要组成部分&#xff0c;它的数据远传功能更是给水务管理带来了极大的便利。下面就由在智能水电表行业摸爬滚打多年的小编来为大家讲解下吧! 一、远传水表数据…

SLAM从入门到精通(基础数学)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 不可否认&#xff0c;slam中的有一部分内容来自于数学。但是&#xff0c;我们在学习使用的过程中&#xff0c;也不用纠结于整个数学的推导过程&…

营收纯利双增长,朝云集团通过了消费品市场的层层筛选

8月28日晚&#xff0c;朝云集团发布了一份惊喜的半年报。 上半年&#xff0c;公司收入11.33亿元&#xff0c;同比增长10.7%&#xff1b;纯利1.36亿元&#xff0c;同比增长51.7%&#xff0c;毛利率同比增长2.2个百分点。 上半年整体消费活跃&#xff0c;对朝云集团的一系列消费…

day 43 | ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III func maxProfit(prices []int) int {dp : make([][]int , len(prices))dp[0] []int{0, -prices[0], 0, -prices[0], 0}for i : 1; i < len(prices);i{val0 : dp[i - 1][0]val1 : max(dp[i - 1][0] - prices[i], dp[i - 1][1])val2 : max(dp[i - …

Overleaf,MDPI模板,参考文献,BibTex转换为bibitem格式

①&#xff1a;新建文件ref.bib。 ②&#xff1a;将BibTex格式的参考文献考入ref.bib中&#xff08;红框中的文字后面有用&#xff0c;此处先不用管&#xff09;。 ③&#xff1a;在template.tex文件中&#xff0c;直接将整个{thebibliography}部分从begin到end全部删除。 ④&a…

什么是自动语音识别?

在人工智能发展和全球疫情的双重作用下&#xff0c;企业加强了与客户的线上沟通。企业越发依赖于虚拟助手、聊天机器人以及其他的语音技术&#xff0c;以实现与客户的高效互动。这几类人工智能&#xff0c;都是依赖于自动语音识别技术&#xff0c;简称为ASR。ASR涉及到将语音转…

初识Redis之分布式

一.简单介绍: Redis是用来在内存中, 存储数据的, 他的初心是用来搞消息中间件(或者说消息队列 很熟悉了吧~~),但是呢用的不多,他现在主要是用来做 数据库,缓存 用来存储数据, 为什么不直接存储呢? Redis的优势就在于分布式系统 二.分布式系统 要说其分布式系统,简单想想都能…