黑马程序员java web学习笔记--项目部署(Linux)

目录

[1 Linux概述](#1 Linux概述)

[1.1 主流操作系统](#1.1 主流操作系统)

[1.2 系统安装](#1.2 系统安装)

[1.2.1 安装方式](#1.2.1 安装方式)

[1.2.2 安装VMware](#1.2.2 安装VMware)

[1.2.3 挂载Linux系统(CentOS)](#1.2.3 挂载Linux系统(CentOS))

[1.3 安装SSH连接工具(FinalShell)](#1.3 安装SSH连接工具(FinalShell))

[1.4 目录结构](#1.4 目录结构)

[2 Linux常用命令](#2 Linux常用命令)

[2.1 目录操作命令](#2.1 目录操作命令)

[2.1.1 ls显示](#2.1.1 ls显示)

[2.1.2 cd进入](#2.1.2 cd进入)

[2.1.3 mkdir创建](#2.1.3 mkdir创建)

[2.1.4 rm删除](#2.1.4 rm删除)

[2.2 文件操作命令](#2.2 文件操作命令)

[2.2.1 cat查看全部](#2.2.1 cat查看全部)

[2.2.2 more分页查看](#2.2.2 more分页查看)

[2.2.3 head查看开头](#2.2.3 head查看开头)

[2.2.4 tail查看结尾](#2.2.4 tail查看结尾)

[2.3 拷贝移动命令](#2.3 拷贝移动命令)

[2.3.1 cp复制](#2.3.1 cp复制)

[2.3.2 mv粘贴](#2.3.2 mv粘贴)

[2.4 打包压缩命令](#2.4 打包压缩命令)

[2.5 文本编辑命令](#2.5 文本编辑命令)

[2.5.1 vi & vim介绍](#2.5.1 vi & vim介绍)

[2.5.2 vim使用](#2.5.2 vim使用)

[2.6 查找命令](#2.6 查找命令)

[2.6.1 find找文件](#2.6.1 find找文件)

[2.6.2 grep找内容](#2.6.2 grep找内容)

[3 软件安装](#3 软件安装)

[3.1 安装jdk](#3.1 安装jdk)

[3.2 安装MySQL](#3.2 安装MySQL)

[3.2.1 Linux安装](#3.2.1 Linux安装)

[3.2.2 连接测试](#3.2.2 连接测试)

[3.3 安装Nginx](#3.3 安装Nginx)

[​编辑4 项目部署](#编辑4 项目部署)

[4.1 前端项目部署](#4.1 前端项目部署)

[4.2 后端项目部署](#4.2 后端项目部署)

[4.2.1 环境准备](#4.2.1 环境准备)

[4.2.2 打包部署](#4.2.2 打包部署)

[4.2.3 阿里云OSS密钥配置](#4.2.3 阿里云OSS密钥配置)

[4.2.4 后台运行](#4.2.4 后台运行)


1 Linux概述

1.1 主流操作系统

分类 系统 特点
桌面操作系统 Windows 用户数量最多
桌面操作系统 Mac OS 操作体验好,办公人士首选
桌面操作系统 Linux 用户数量少
移动设备操作系统 Android 基于 Linux、开源,主要用于智能手机、平板、智能电视
移动设备操作系统 IOS 苹果公司开发、不开源,用于苹果公司的产品
移动设备操作系统 HarmonyOS 华为公司开发、开源,目前用于华为公司的产品
服务器操作系统 Unix 安全、稳定、付费
服务器操作系统 Linux ❤ 安全、稳定、免费、占有率高(适用于软件环境如 mysql、redis、MQ,常用于项目部署)
服务器操作系统 Windows Server 付费、占有率低

1.2 系统安装

1.2.1 安装方式

Linux操作系统版本有:

**1). 内核版:**由Linus Torvalds及其团队开发、维护,免费、开源,负责控制硬件。

**2). 发行版❤:**基于Linux内核版进行扩展,由各个Linux厂商开发、维护,有收费版本和免费版本。(此处选择CentOS,RedHat的社区版本)

虚拟机(Virtual Machine):指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:VMWare。

1.2.2 安装VMware

https://heuqqdmbyk.feishu.cn/wiki/SE5owqapKiXSySkrHduchs4ynac

安装成功后,会多出两张网卡。

1.2.3 挂载Linux系统(CentOS)

1.3 安装SSH连接工具(FinalShell)

Linux服务器一般都是在远程的机房部署的,我们要操作服务器,不会每次都跑到远程的机房里面操作,而是会直接通过SSH连接工具进行连接操作。

SSH(Secure Shell),建立在应用层基础上的安全协议。常用的SSH连接工具: FinalShell。

1.4 目录结构

在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。Linux系统中的目录有以下特点:

  • / 是所有目录的顶点

  • 目录结构像一颗倒挂的树

|-------|--------------------------|
| 目录 | 含义 |
| /etc | 存放系统配置文件 |
| /root | 超级用户目录(其他用户在/home目录) |
| /usr | 存放系统应用程序 |

2 Linux常用命令

Linux 命令格式:command [-options] [parameter]

2.1 目录操作命令

2.1.1 ls显示

ls [-al] [dir]: 显示指定目录下的内容。

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出(由于我们使用ls命令时经常需要加入-l选项,Linux提供了一种简写方式: ll )

2.1.2 cd进入

cd [dirName]:用于切换当前工作目录,即进入指定目录。

  • ~ 表示用户的home目录
  • . 表示目前所在的目录
  • .. 表示目前目录位置的上级目录
    • 表示上一次所在的目录

2.1.3 mkdir创建

mkdir [-p] dirName:创建目录。

  • -p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建

2.1.4 rm删除

rm [-rf] name:删除文件或者目录。

  • -r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
  • -f: 无需确认,直接删除

2.2 文件操作命令

2.2.1 cat查看全部

cat [-n] fileName:用于显示文件内容。

  • -n: 由1开始对所有输出的行数编号

2.2.2 more分页查看

more fileName:以分页的形式显示文件内容。

  • 回车键 向下滚动一行
  • 空格键 向下滚动一屏
  • b 返回上一屏
  • q或者Ctrl+C 退出more

2.2.3 head查看开头

head [-n] fileName:查看文件开头的内容(默认10行)。

  • -数字n :输出文件开头的n行内容(head -20 abc.log 显示abc.log文件开头的20行内容)

2.2.4 tail查看结尾

tail [-f] fileName:查看文件末尾的内容(默认10行)。

  • -数字n :输出文件结尾的n行内容
  • -f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出

2.3 拷贝移动命令

2.3.1 cp复制

cp [-r] source dest:用于复制文件或目录。

  • -r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

2.3.2 mv粘贴

mv source dest:为文件或目录改名、或将文件或目录移动到其它位置。

mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据我们输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)

2.4 打包压缩命令

tar [-zcxvf] fileName [files]:对文件进行打包、解包、压缩、解压。

  • -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压(压缩解压)
  • -c: c代表的是create,即创建新的包文件(打包,cx互斥)
  • -x: x代表的是extract,实现从包文件中还原文件(解包,cx互斥)
  • -v: v代表的是verbose,显示命令的执行过程(详细信息,vf常驻)
  • -f: f代表的是file,用于指定包文件的名称(指定名称,vf常驻)

组合一下就是:cvf打包、zcvf打包压缩 、xvf解包、zxvf解压解包

-C解压并放在指定目录,tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录。

包文件后缀为.tar表示只是完成了打包,并没有压缩,包文件后缀为.tar.gz表示打包的同时还进行了压缩。

2.5 文本编辑命令

2.5.1 vi & vim介绍

vi fileName:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本。

1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色 ,方便我们对文件进行编辑处理,所以实际工作中vim更加常用

2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:yum install vim。

2.5.2 vim使用

命令模式:

  • 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)。
  • 通过vim命令打开文件后,默认进入命令模式。
  • 另外两种模式需要首先进入命令模式,才能进入彼此。

|---------------|------------------------|
| 命令模式指令 | 含义 |
| gg | 定位到文本内容的第一行 |
| G | 定位到文本内容的最后一行 |
| dd | 删除光标所在行的数据 |
| 数字ndd | 删除当前光标所在行及之后的n行数据 |
| u | 撤销操作 |
| i 或 a 或 o | 进入插入模式(进入后光标所处的位置不同而已) |

插入模式(编辑):

  • 插入模式下可以对文件内容进行编辑
  • 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
  • 在插入模式下按下ESC键,回到命令模式

底行模式(保存、退出):

  • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
  • 在命令模式下按下[:,/]任意一个,可以进入底行模式
  • 通过/方式进入底行模式后,可以对文件内容进行查找
  • 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)

|-----------------|------------------------|
| 底行模式指令 | 含义 |
| :wq | 保存并退出 |
| :q! | 不保存退出 |
| :set nu | 显示行号 |
| :set nonu | 取消行号显示 |
| :数字n | 定位到第n行,如 :10 就是定位到第10行 |

2.6 查找命令

2.6.1 find找文件

find dirName -option fileName:在指定目录下查找文件。

eg: find . -name "*.log"

2.6.2 grep找内容

grep [-inAB] word fileName:从指定文件中查找指定的文本内容。

  • -i: 检索的关键字忽略(ignore)大小写
  • -n: 显示关键字所在的这一行的行号
  • -A: 输出关键字所在行及之后(After)的几行记录 (如:-A5 表示输出关键字所在行之后的5行记录)
  • -B: 输出关键字所在行及之前(Before)的几行记录 (如:-B5 表示输出关键字所在行之前的5行记录)

3 软件安装

3.1 安装jdk

通过二进制发布包形式来安装JDK。

https://heuqqdmbyk.feishu.cn/wiki/SE5owqapKiXSySkrHduchs4ynac

1). 上传安装包,使用FinalShell将jdk的二进制发布包上传到Linux

2). 解压安装包并存放至 /usr/local。

3). 配置环境变量。

复制代码
export JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=$JAVA_HOME/bin:$PATH

4). 重新加载profile文件。

复制代码
source /etc/profile

3.2 安装MySQL

3.2.1 Linux安装

1). 启动MySQL服务。

复制代码
systemctl start mysql

2). 通过命令, 登录MySQL。

复制代码
#xxxxx 代表上述生成的root的临时密码
mysql -uroot -pxxxxx

3.2.2 连接测试

1). 客户端连接--本地cmd(Linux防火墙开放端口)

2). 打开DataGrip图形化工具连接--准备数据

3.3 安装Nginx

4 项目部署

4.1 前端项目部署

1). 将nginx的安装目录的html中的静态资源文件先删除掉。

2). 将静态资源文件,全部上传到nginx安装目录下的 html 目录中。

3). 修改资料中提供的 nginx.conf 配置文件。

4). 重新加载nginx服务的配置文件,sbin/nginx -s reload。

5). 再次访问nginx(可能会存在浏览器缓存, 可以按Ctrl+F5, 强制刷新清理缓存)。

nginx服务常见操作指令:

  • 启动: sbin/nginx

  • 重载: sbin/nginx -s reload

  • 停止: sbin/nginx -s stop

4.2 后端项目部署

4.2.1 环境准备

项目要上线了,要部署到linux服务器上了,我们也需要使用linux服务器上所安装的mysql数据库。

那此时,我们就可以再准备一份文件 application.yml 将里面的配置的mysql的ip地址及相关配置信息修改一下(配置Linux上安装的MySQL的信息):

改造完毕之后,可以在本地的idea中先启动当前项目,然后访问一下,看看工程是否正常访问。

4.2.2 打包部署

1). 执行 package 指令,进行打包操作,将当前的springboot项目,打成一个jar包。 (跳过测试)

2). 在Linux服务器上创建一个目录,将jar包上传到服务器 。

复制代码
mkdir -p /usr/local/app

3). 通过java命令,启动项目。

复制代码
#进入目录/usr/local/app 

cd /usr/local/app

#运行jar包

java -jar tlias-web-management.jar

4). 项目启动起来之后,就可以打开浏览器测试啦。

4.2.3 阿里云OSS密钥配置

我们将访问阿里云OSS的AccessKeyId,AccessKeySecret都配置在了系统的环境变量中了。

那同理,我们需要将AccessKeyId,AccessKeySecret配置为Linux系统的环境变量。

1). 查看Windows系统之前配置的环境变量

复制代码
echo %OSS_ACCESS_KEY_ID%

echo %OSS_ACCESS_KEY_SECRET%

2). 执行如下指令将上述自己的 AccessKeyId 与 AccessKeySecret 在linux系统中配置环境变量。

复制代码
vim /etc/profile

source /etc/profile

4.2.4 后台运行

1). 后台运行程序

复制代码
nohup java -jar tlias-web-management-0.0.1-SNAPSHOT.jar &> tlias.log &

进程id

2). 停止服务

复制代码
#查看服务的进程信息
ps -ef|grep tlias

#杀掉进程
kill -9 xxxxx
相关推荐
charlie1145141911 小时前
通用GUI编程技术——Win32 原生编程实战(五)——ListView 控件详解
windows·学习·gui·win32·编程指南
承渊政道2 小时前
C++学习之旅【智能指针的使⽤及其原理】
开发语言·c++·笔记·vscode·学习·visual studio
承渊政道2 小时前
C++学习之旅【异常相关内容以及类型转换介绍】
c语言·c++·笔记·vscode·学习·macos·visual studio
飞Link2 小时前
洞察数据的“分寸感”:深度解析对比学习(Contrastive Learning)
开发语言·python·学习·数据挖掘
承渊政道2 小时前
C++学习之旅【深入回溯C++11的发展历程】
c语言·c++·笔记·vscode·学习·macos·visual studio
zzcufo10 小时前
OpenScreenInPopUp
笔记·学习
Shining059610 小时前
CUDA 编程系列(三)《内存模型与规约优化》
人工智能·学习·其他·学习方法·infinitensor
71-311 小时前
MySQL的安装和卸载组件
笔记·学习·mysql