Linux 基本使用和 web 程序部署 ( 8000 字 Linux 入门 )

一:Linux 背景知识

1.1. Linux 是什么

Linux 是一个操作系统. 和 Windows 是 “并列” 的关系,经过这么多年的发展, Linux 已经成为世界第一大操作系统,安卓系统本质上就是 Linux.

1.2 Linux 发行版

Linux 严格意义来说只是一个 “操作系统内核”,一个完整的操作系统 = 操作系统内核 + 配套的应用程序,由于 Linux 是一个完全开源免费的内核, 因此有些公司 / 开源组织又基于 Linux 内核, 提供了不同的配套程序. 这就构成了不同的 “发行版”.

在这里插入图片描述

二: Linux 环境搭建

要想学习 Linux , 需要先有一个 Linux 的环境.

2.1 环境搭建方式

环境搭建方式主要有四种:

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [ 不推荐 ].
  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件 ( 如 VMWare 之类的 ) 存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [ 非常不推荐 ]
  3. 使用 WSL ( Windows Subsystem for Linux ). 这个是 Windows 近几年开发的新功能, 在 Windows 系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [ 暂时不推荐 ].
  4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云等服务器厂商处直接购买一个云服务器. [ 强烈推荐 ]

使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用.

2.2 使用云服务器

以腾讯云为例, 其他的服务器厂商也是类似.

  1. 进入官方网站 https://cloud.tencent.com/act/campus
  2. 登陆网站

在这里插入图片描述

  1. 右侧的操作系统选择 CentOS 7.6 64位. 购买时长根据需要选择, 点击立即购买即可. 这个步骤需要实名认证

  2. 购买完成后, 可以在控制台中找到自己买的服务器. 点进去能够看到服务器的 IP 地址.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

蓝色方框为公网 ip 地址, 稍后我们就会使用这个 ip 登陆服务器.

  1. 设置 root 密码: 勾选服务器, 点击重置密码,root 密码建议设置的稍微复杂一些, 否则容易被黑客入侵.

在这里插入图片描述

2.3 使用终端软件连接到 Linux

终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作,常见的终端软件:

  • XShell
  • Putty
  • MobaXTerm
  • Iterm2
  • SecureCRT

在此我们通过 XShell 连接 ,首先需要下载安装 XShell

在这里插入图片描述

XShell 提供了两种授权方式.

  • 企业版: 收费.
  • 家庭 / 教育版: 免费.

我们选择 家庭 / 教育 版即可. 下载的时候需要填一下名字和邮箱. 下载链接会被发送到填写的邮箱中.

在这里插入图片描述
点击邮箱中的下载链接即可完成下载.

2.4 使用 XShell 登陆主机

在 XShell 终端下输入:

ssh 服务器外网ip地址

ip 为腾讯云后台页面中看到的外网 IP,如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆,这里的用户名为 root, 密码是在最初购买服务器的时候设置的密码.

关于XShell 下的复制粘贴:

  • 复制: ctrl + insert
  • 粘贴: shift + insert

ctrl + c / ctrl + v 是不行的.

三: Linux 常用命令

3.1 ls 命令

语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。( 递归 )

3.2 pwd 命令

语法: pwd
功能:显示用户当前所在的目录

3.3 cd 命令

语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下.

举例

cd .. : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录

Linux 目录结构
在这里插入图片描述

几个特殊的目录:

  • / 称为根目录
  • . 称为当前目录
  • … 称为当前目录的上级目录

我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率,如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.

3.4 touch 命令

语法: touch [选项]… 文件…
功能: touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

3.5 cat 命令

语法:cat [选项] [文件]
功能: 查看目标文件的内容

常用选项

  • -n 对输出的所有行编号

3.6 mkdir 命令

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录

常用选项

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录

3.7 rm 命令

语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件

注意:千万不要运行 rm -rf / , 尤其是在公司的生产服务器上.

3.8 cp 命令

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录
  • 或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

3.9 mv 命令

语法: mv [选项] 源文件或目录 目标文件或目录
功能:

  1. 视 mv 命令中第二个参数类型的不同( 是目标文件还是目标目录 ),mv 命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只能有一个( 也可以是源目录名 ),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。

常用选项

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 ( destination ) 已经存在时,就会询问是否覆盖!

3.10 man 命令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法: man [选项] 命令

常用选项

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • man man 能够看到 man 手册中的若干个章节及其含义.

3.11 less 命令

语法: less [参数] 文件
功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.

常用选项

  • j k / 方向键: 向上向下滚动屏幕.
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • q: 退出

3.12 head 命令

语法:head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

常用选项

  • -n<行数> 显示的行数

3.13 tail 命令

语法: tail [必要参数] [选择参数] [文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

常用选项

  • -f 循环读取
  • -n<行数> 显示行数

3.14 data 命令

date 指定格式显示时间: date +“%Y-%m-%d %H:%M:%S”
date 用法:date [OPTION]… [+FORMAT]

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记

  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %S : 秒(00…61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01…31)
  • %m : 月份 (01…12)
  • %Y : 完整年份 (0000…9999)
  • %F : 相当于 %Y-%m-%d

时间戳:

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502

Unix时间戳( 英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp )是从1970年1月1日( UTC/GMT的午夜 )开始所经过的秒数,不考虑闰秒。

3.15 vim 命令

  1. 创建文件 / 打开文件
vim [文件名]
  1. 进入插入模式

vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. ( 例如按下 j 并不是输入字母 “j”, 而是表示光标往下移动一行 ). 需要进入插入模式才能进行文本编辑.

使用 i 键可以进入到插入模式. ( 左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.

  1. 保存

在插入模式下不能保存文件, 需要先回到普通模式 . 按下 Esc 回到普通模式,在普通模式下输入 :w , 再按下回车, 即可保存文件.

  1. 退出

在插入模式下不能退出, 需要先回到 普通模式,在普通模式下输入 :q , 再按下回车, 即可退出,也可以直接使用 :wq 同时执行保存和退出.

3.16 grep 命令

语法:grep [参数]… [文件]…
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.

常用选项

  • -n<行数> 显示的行数
  • -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
  • -r 递归查找. 可以搜索多级目录下的所有文件.
  • –color 高亮查找到的结果
  • –include 指定查找某些文件
  • –exclude 指定排除某些文件

3.16 ps 命令

语法:ps [参数]…
功能:用于查看当前系统上运行的进程

常用选项

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

3.16 netstat 命令

语法:netstat [参数]…
功能:查看系统上的网络状态.

常用选项

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

四: Linux 权限

4.1 用户操作

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

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

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

root 用户权力比较大, 一旦使用不当可能会造成严重后果,因此我们在公司中不会直接使用 root 用户来操作服务器.

4.1.1 创建用户

命令 useradd [用户名]
功能 创建新的用户

示例

useradd test

4.1.2 配置密码

命令 passwd [用户名]
功能 设置或修改用户密码
示例

passwd test

注意, 输入密码的时候, 在控制台中不会有提示. 但实际上已经输入进去了.

4.1.3 切换用户

命令:su [用户名]
功能:切换用户。

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

4.2 文件类型和访问权限

4.2.1 三种角色

访问一个文件的人可能分成三种类别.

  • 文件和文件目录的所有者:u—User
  • 文件和文件目录的所有者所在的组的用户:g—Group
  • 其它用户:o—Others

命令 ll 显示了一个文件的详细信息. 解读如下图:
在这里插入图片描述

  1. 文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
  1. 基本权限
读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限“-” 表示不具有该项权限

4.2.2 修改文件权限

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

常用选项

  • R -> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式: 用户表示符+/-=权限字符

  • +:向权限范围增加权限代号所表示的权限
  • -:向权限范围取消权限代号所表示的权限
  • =:向权限范围赋予权限代号所表示的权限

用户符号:

  • u:拥有者
  • g:拥有者同组用
  • o:其它用户
  • a:所有用户

实例

# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod a=x /home/abc.txt

五: 搭建 Java 部署环境

5.1 yum

yum ( Yellow dog Updater, Modified ) 是 Linux 下非常常用的一种包管理器. 主要应用在 Fedora, RedHat,Centos 等发行版上,包管理器就好比 “应用商店”, 我们可以在应用商店上下载一些 app.

yum 起到的功能和 Maven 的依赖管理功能类似. 使用 Maven 能帮我们方便的安装一些第三方 jar 包,而 yum 方便我们方便的安装第三方程序

下面认识一些常用的 yum 命令:

  1. 查看软件包列表
yum list | grep [软件包关键字]    # 注意, 最好要加上 grep, 否则罗列的内容会非常多, 导致机器很卡.
  1. 安装软件包(需要管理员权限
yum install [软件包名字]
  1. 卸载软件包(需要管理员权限)
yum remove [软件包名字]

注意事项

  • yum 所有的命令必须保证网络是联通情况下, 才能使用
  • yum install / yum remove 必须具备管理员权限 ( root 用户 ).
  • 可以使用 ping www.baidu.com 来检测网络的畅通情况.

5.2 git

  1. 查看 git 安装包
# 由于带 git 关键字的软件包很多, 可以在 grep 的时候加上 -w , 表示全字匹配.
yum list | grep git -w
  1. 安装 git
yum install git.x86_64
  1. git 的基本使用 ( 和 Windows 版本的 git 是一致的. 只是使用命令行操作 )
git clone
git add
git commit
git push

5.3 JDK

yum install java-1.8.0-openjdk.x86_64

可以使用 java -version 验证是否安装成功,如果提示 “java 命令找不到” 则说明安装失败.

5.4 Maven

  1. 查看 Maven 安装包
yum list | grep maven -w
  1. 安装 Maven
yum install maven.noarch
  1. 验证 Maven
mvn -v
# 输出结果
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_232, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.5.1.el7.x86_64", arch: "amd64", family:
"unix"

此时说明安装成功.

5.5 Tomcat

由于 yum 源上默认的 Tomcat 7 版本, 比较旧了. 我们目前使用 Tomcat 8, 需要手动安装, 不能使用 yum.

  1. 下载 Tomcat 压缩包

下载路径可以参考官网

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-
8/v8.5.47/bin/apache-tomcat-8.5.47.zip -O apache-tomcat-8.5.47.zip

如果上面的地址过期了, 不能下载, 则可以在官网上, 通过右键 zip -> 复制链接地址 获得.

在这里插入图片描述

  1. 解压缩 Tomcat
# 使用 unzip 命令解压缩
unzip apache-tomcat-8.5.47.zip

如果 unzip 命令找不到, 则先 yum install unzip 即可.

  1. 修改可执行权限
cd apache-tomcat-8.5.47/bin
# 将所有 .sh 后缀的文件加上可执行权限(后面会介绍)
chmod +x *.sh
  1. 启动 Tomcat
sh bin/startup.sh
  1. 验证启动成功
# 方法1 查看 tomcat 进程是否存在
ps aux | grep tomcat
# 方法2 查看端口 8080 是否被绑定
netstat -anp | grep 8080
# 方法3 使用 curl 命令访问默认 demo
curl 127.0.0.1:8080

如果进程存在或者端口状态正确 ( LISTEN 状态 ) 或者能够访问到默认主页, 说明启动成功.

  1. 外网访问 tomcat 默认 demo

在浏览器地址栏中:

http://[服务器外网ip]:8080/

即可看到默认的页面

在这里插入图片描述

5.6 MySQL

MySQL 同样也可以使用 yum 安装. 但是要修改一些配置, 稍微复杂一些,可以参考陈沛鑫老师写的一个知乎上的文章

六: 部署 Web 项目到 Linux

工作中涉及到的 “环境”:

  • 开发环境: 程序猿写代码用的机器.
  • 测试环境: 测试人员测试程序使用的机器. 一般是退役的部署机器.
  • 生产环境 ( 线上环境 ): 最终项目发布时所使用的机器. 对稳定性要求很高.

把程序拷贝安装到生产环境上, 这个过程称为 “部署”. 也叫 “上线”,这个过程需要拷贝对应的 .class 文件和依赖的资源文件 ( 各种配置文件, html 等 ),一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到,换句话说, 如果程序有 BUG, 这个 BUG 也就被千千万万的用户看到了.

部署过程至关重要, 属于程序开发中最重要的一环. 一旦部署出现问题, 极有可能导致严重的事故,为了防止部署出错, 一般公司内部都有一些自动化部署工具 ( 如 Jenkins 等 ). 当前我们先使用手工部署的方式来完成部署.

6.1 使用 git 传输代码

首先将本地代码上传到 github / 码云上,通过 git 下载代码

# 进入用户家目录
cd ~
# 创建目录保存项目
mkdir project
cd project
# 使用 git 下载代码
git clone [项目链接]

6.2 数据库建表

按照之前的数据库建表脚本, 在服务器上运行, 建立相同的表结构.

mysql -u[数据库用户名] -p[数据库密码] < [数据库脚本].sql

6.3 构建项目并打包

切换到项目的主目录 ( 包含 pom.xml 的目录 ), 使用 mvn 打包项目

mvn package

此时在 target 目录下就会生成对应的 war 包.

6.4 拷贝到 Tomcat 中

将 war 包拷贝到 Tomcat 的 webapps 目录中.

cp [war包名字] [tomcat webapps目录]

稍等片刻, Tomcat 会自动解压缩 war 包, 完成部署,如果该项目之前部署过, 需要先删除之前的包.

6.5 验证

在浏览器上访问项目的链接 ( 按照项目的功能进行验证 ).

  1. 验证账户注册登录
  2. 验证展示博客列表
  3. 验证新增博客
  4. 验证展示博客内容

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

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

相关文章

Parallels Desktop 20 搭载内置 AI 包正式发布

近期 Parallels 官方发布 Parallels Desktop 20 For Mac&#xff0c;这是一款流行的Mac虚拟化软件。 该版本引入了 Parallels AI 工具包&#xff0c;这将主要惠及需要新工具在 Mac 上使用人工智能的开发人员。 配合即将发布的 macOs sequoia 和 Windows 11 24H2&#xff0c;P…

Android源码集成 Google Play

1、 The Open GApps Project 下载 对应系统和平台的gms压缩包&#xff0c;压缩包文件如下&#xff1a; Core和Optional目录下为谷歌服务核心文件和应用&#xff0c;需要预置到源码中。解压Core 和 Optional 目录所有文件&#xff0c;得到如下文件夹&#xff1a; 其中 etc 和 li…

C++ | Leetcode C++题解之第412题Fizz Buzz

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<string> fizzBuzz(int n) {vector<string> answer;for (int i 1; i < n; i) {string curr;if (i % 3 0) {curr  "Fizz";}if (i % 5 0) {curr "Buzz";}if (curr.si…

Django学习实战篇五(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 本章中&#xff0c;我们开始引入前端框架Bootstrap 来美化界面。在前面的章节中&#xff0c;我们通过编写后端代码来处理数据。数据之于网站&#xff0c;就相当于灵魂之于人类。而网站的前端就相当于人的形体外貌。其中HTML是骨架&#xff0c;而CSS是皮肤&…

创造增强叙事的互动:Allison Crank的沉浸式体验设计理念

在沉浸式技术日新月异的今天,如何通过用户交互增强叙事,而非分散注意力,成为了设计师们共同面临的挑战。作为用户体验设计师和研究员,Allison Crank以其独特的视角和丰富的经验,为我们揭示了这一领域的核心原则与实践方法。 叙事与互动的和谐共生 Allison Crank强调,互…

STM32使用ESP-01S连接WiFi通过云平台与手机APP联动

ESP-01S测试 我们买回来ESP-01S模块之后&#xff0c;首先要对模块的好坏进行测试&#xff0c;是否能正常通过串口通信&#xff0c;是否能正常连接手机热点或WiFi&#xff0c;一般模块买回来默认出厂烧录了AT固件&#xff0c;如果我们需要使用一些特殊的协议&#xff08;如MQTT协…

【云岚到家-即刻体检】-day07-2-项目介绍及准备

【云岚到家-即刻体检】-day07-2-项目介绍及准备 1 项目介绍1&#xff09;项目简介2&#xff09;界面原型3&#xff09;实战目标 2 搭建实战环境1&#xff09;服务端2&#xff09;管理端前端工程3&#xff09;用户端前端工程4&#xff09;测试 3 熟悉项目代码1&#xff09;接口文…

《程序猿之设计模式实战 · 观察者模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【混淆矩阵】Confusion Matrix!定量评价的基础!如何计算全面、准确的定量指标去衡量模型分类的好坏??

【混淆矩阵】Confusion Matrix&#xff01;定量评价的基础&#xff01; 如何计算全面、准确的定量指标去衡量模型分类的好坏&#xff1f;&#xff1f; 文章目录 【混淆矩阵】Confusion Matrix&#xff01;定量评价的基础&#xff01;1. 混淆矩阵2.评价指标3.混淆矩阵及评价指标…

【AI大模型】Transformer模型:Postion Embedding概述、应用场景和实现方式的详细介绍。

一、位置嵌入概述 \1. 什么是位置嵌入&#xff1f; 位置嵌入是一种用于编码序列中元素位置信息的技术。在Transformer模型中&#xff0c;输入序列中的每个元素都会被映射到一个高维空间中的向量表示。然而&#xff0c;传统的自注意力机制并不包含位置信息&#xff0c;因此需要…

强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法

一、强化学习RL 强化学习是机器学习的一个重要的分支&#xff0c;是一种有效的工具&#xff0c;在文献中被广泛用于解决MDP问题。在一个强化学习过程中&#xff0c;一个智能体只能通过和它所处的环境互动学习最优策略。特别地&#xff0c;智能体首先观察自己当前的状态&#xf…

CRE62539 不同尾缀功率不同

CRE62539MSQ 是一款内置高压 MOS 功率开关管的高性能多模式原边控制的12W开关电源芯片。CRE62539MSQ以较少的外围元器件、较低的系统成本设计出高性能的交直流转换开关电源。CRE62539MSQ 提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、软启动、芯片…

Linux:RPM软件包管理以及Yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名&#xff1a;firefox 软件包名&#xff1a;firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件&#xff08;参数为软件名&#xff09; ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

Elment-plus组件失效(没有样式)(0916)

在学习Vue3时&#xff0c;使用Element-plus组件库开发登录页面&#xff0c;发现无法显示反馈组件的样式 然后查找相关博客后&#xff0c;发现原来是因为我使用按需导入&#xff0c;然后又在登录页面导入&#xff0c;导致组件样式失效 删除导入语句后&#xff0c;成功显示反馈组…

大数据处理技术:HBase的安装与基本操作

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 Hbase数据库的安装 5.2 创建表 5.3 添加数据、删除数据、删除表 5.4 使用Java操作HBase 6 实验结果 6.1 Hbase数据库的安装 6.2 创建表 6.3 添加数据、删除数据、删除表 6.4 使用Java操…

Linux进阶 修改文件权限

linux文件权限 查看文件权限 用 ls -l 查看当前目录下文件权限 各部分对应的内容: 第一个字符代表这个文件类型[d]:目录[-] :文件[l]:连结档(link file);[b]:装置文件里面的可供储存的接口设备(可随机存取装置)[c]:装置文件里面的串行端口设备,例如键盘、鼠标(一次性…

Linux常用目录结构

一、Linux常用目录结构 目录名 目录作用 /bin/ 存放系统命令的目录,普通用户和超级用户都可以执行。 是/usr/bin/目录的软链接 /sbin/ 存放系统命令的目录,只有超级用户才可以执行。是/ usr/ sbin/目录的软链接 /usr/bin/ 存放系统命令的目录,普通用户和超级用户都可以…

在麒麟操作系统中查看进程运行时间

在麒麟操作系统中查看进程运行时间 1、使用ps命令查看进程运行时间1.1 基本命令结构1.2 示例&#xff1a;查看sshd进程的运行时间 2、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Linux操作系统中&#xff0c;包括麒麟&#xff08…

神经网络通俗理解学习笔记(4) 深度生成模型VAE、GAN

深度生成模型 什么是生成式模型蒙特卡洛方法变分推断Variational Inference变分自编码器VAE生成对抗网络Generative Adversarial NetworkDiffusion 扩散模型VAE和GAN 代码实现 什么是生成式模型 判别式和生成式模型 判别式:CNN/RNN/transformer;生成式:AE/VAE/GAN 判别式模型学…

【例题】lanqiao3236 小蓝的零花钱

样例输入 6 3 1 2 3 4 5 6样例输出 2解题思路 在序列中选取一个位置将序列分成两段&#xff0c;要求每一段中偶数和奇数的数量都相等尽可能多地进行这个操作&#xff0c;但每次操作都需要花费代价切割需要花费的代价为切割两端的元素的差的绝对值在他的预算范围内&#xff0…