一、课程概述

二、Linux概述
1、系统安装
(1)介绍
Linux系统分为内核版和发行版
内核版
-
由Linux核心团队开发、维护
-
免费、开源
-
负责控制硬件
发行版
-
基于Linux内核版进行扩展
-
由各个Linux厂商开发、维护
-
有收费版本和免费版本
Linux系统发行版:
-
Ubuntu:以桌面应用为主,免费
-
RedHat:面向企业用户,收费
-
CentOS:RedHat的社区版,免费 √
-
Fedora:功能完备、快速更新,免费
-
openSUSE:对个人完全免费、图形界面华丽
-
红旗Linux:北京中科红旗软件技术有限公司开发

Linux系统的安装方式
物理机安装:直接将操作系统安装到服务器硬件上
虚拟机安装:通过虚拟机软件安装
虚拟机(virtualMachine)指通过软件模拟的 具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。
-
VMWare WorkStation √
-
virtualBox
-
VMLite WorkStation
(2)安装
双击安装包,安装
检查两块虚拟网卡是否存在,存在表示安装成功,这两块网卡是windows与Linux通信的桥梁

安装完毕之后,需要配置网络,才可以在windows系统上连接虚拟机上的linux系统

解压CentOS7,双击该文件完成镜像的挂载

VMware中打开该虚拟机,选择我已移动该虚拟机,用户名root密码1234

小结

2、远程连接
(1)介绍

常用的SSH(SecureShell,安全外壳协议)远程连接工具:Putty、SecureCRT、Xshell、FinalShell等。

(2)安装
双击安装完成后

连接虚拟机镜像服务器

双击打开即可成功使用

3、目录结构
Linux系统中的目录特点:
-
1./是所有目录的顶点
-
2.目录结构像一颗倒挂的树


Linux系统中的路径/itheima与itheima有区别吗?
有
/itheima是绝对路径,是指根目录/下的itheima目录
ithiema是相对路径,是指当前目录下的itheima目录
三、Linux常用命令
Linux命令格式:command -options parameter
说明:
-
command:命令名
-
-options:选项,可用来对命令进行控制,也可以省略(可选)
-
parameter:参数,可以是零个、一个或多个(可选)
使用技巧:
- Tab键自动补全
- 连续两次Tab键,给出操作提示
- 使用上下箭头快速调出曾经使用过的命令
- 使用clear命令或ctrl+l快捷键实现清屏
1、目录操作命令
(1)ls
作用:显示指定目录下的内容
语法:ls -al dir
选项:
-a:显示所有文件及目录(·开头的隐藏文件也会列出)
-l:除文件名称外,同时将文件类型(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
提示:
由于我们使用ls命令时经常需要加入-l选项,所以LINUX为ls-l命令提供了一种简写方式,即ll
(2)cd
作用:用于切换当前工作目录,即进入指定目录
语法:cd dirName
说明:
-
.表示目前所在的目录
-
..表示目前目录位置的上级目录
-
~表示用户的home目录
举例:
-
cd .. 切换到当前目录的上级目录
-
cd ~ 切换到用户的home目录
-
cd /usr/local 切换到/usr/local目录
-
cd - 切换到上一次所在目录
(3)mkdir
作用:创建目录
语法:mkdir ─p dirName
说明:
-p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建
举例:
mkdir itcast 在当前目录下,建立一个名为itcast的子目录 mkdir -p itcast/test 在itcast目录中创建test子目录,若itcast目录不存在,则建立一个
(4)rm
作用:删除文件或者目录
语法:rm -rf name
说明:
-r:将目录及目录中所有文件(目录)逐一删除,即递归删除
-f:无需确认,直接删除
举例:
rm -r itcast/
删除名为itcast的目录和目录中所有文件,删除前需确认
rm -rf itcast/
无需确认,直接删除名为itcast的目录和目录中所有文件
rm -fhello.txt 无需确认,直接删除hello.txt文件
2、文件操作命令
(1)cat
作用:用于显示文件的所有内容
语法:cat -n fileName
说明:-n:由1开始对所有输出的行数编号
举例:
cat /etc/profile
查看/etc目录下的profile文件内容
(2)more
作用:以分页的形式显示文件内容
语法:more fileName
操作说明:
回车键,向下滚动一行;
空格键,向下滚动一屏;
b,返回上一屏;
q或CtrI+C,退出more
举例:
more /etc/profile
以分页方式显示/etc目录下的profile文件内容
(3)head
作用:查看文件开头的内容
语法:head -n fileName
说明:
n:输出文件开头的n行内容
举例:
head 1.log
默认显示1.log文件开头的10行内容
head -20 1.log
显示1.log文件开头的20行内容
(4)tail
作用:查看文件末尾的内容
语法:tail -nf fileName
说明:
n:输出文件末尾的n行内容
f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出
举例: tail 1.log 默认显示1.log文件末尾10行的内容 tail -20 1.log 显示1.log文件末尾20行的内容 tail -f 1.log 动态读取1.log文件末尾内容并显示(实时刷新)
3、拷贝移动命令
(1)cp

(2)mv

4、打包压缩命令
(1)tar


(2)
5、文本编辑器命令
(1)vi

(2)vim




6、查找命令
(1)find

(2)grep

四、Linux软件安装
1、JDK安装
操作步骤:
(1)上传安装包
使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

(2)解压安装包
命令为
tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local

(3)配置环境变量
使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
export JAVA_HOME=/usr/local/jdk-17.0.10
export PATH=JAVA_HOME/bin:PATH


(4)重新加载profile文件
使更改的配置立即生效,命令为source/etc/profile

(5)检查安装是否成功
命令为java -version

2、MySQL安装
(1)准备工作
卸载Linux系统中自带的mysql/mariadb安装包,否则MySQL将安装失败
rpm -qa | grep mariadb
rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
(2)上传安装包
下载并上传mysql安装包
mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
解压安装包到当前目录,并将解压后的文件夹移动到/usr/local目录下,改名为mysql
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz


(3)配置环境变量
(编辑/etc/profile,追加内容) export MYSQL_HOME=/usr/local/mysql export PATH=MYSQL_HOME/bin:PATH


(4)注册MySQL为系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig--add mysql

(5)初始化数据库
groupadd mysql useradd -r -g mysql -s /bin/false mysql mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data 初始化完毕后,日志中会输出mysql的root用户的临时密码,记得复制记录下来。

(6)启动服务登录MySQL
systemctl start mysql

mysql -uroot-pxxxxx

(7)配置MySQL的root用户的密码,授权远程访问
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

创建用户、分配权限、刷新权限
CREATE USER'rOot'@'%' IDENTIFIED BY '1234';
GRANT ALLPRIVILEGES ON . TO 'roOt'@'%';
FLUSH PRIVILEGES;

(8)远程访问测试
连接未能成功,因为有防火墙的存在
mysql -h 192.168.100.128 -p3306 -uroot -p1234

3、MySQL安装(防火墙)
(1)防火墙操作
查看防火墙状态(systemctl status firewalld、firewall-cmd --state)
关闭防火墙(systemctl stop firewalld)
开启防火墙(systemctl start firewalld)
永久关闭防火墙(systemctl disable firewalld)
开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)
关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)
立即生效(firewall-cmd --reload)
查看开放的端口(firewall-cmd --zone=public --list-ports)
注意:1、systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作2、firewall-cmd是Linux中专门用于控制防火墙的命令3、为了保证系统安全,生产服务器的防火墙不建议关闭

(2)datagram连接Linux数据库


导入sql文件

4、Nginx安装

安装nginx运行时需要的依赖:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
上传nginx的源码包

解压源码包到当前目录:tar -zxvf nginx-1.20.2.tar.gz
进入到解压目录(cd nginx-1.20.2)后,执行指令: ./configure --prefix=/usr/local/nginx
执行编译nginx的指令:make
执行安装nginx的指令,安装到上述指定的 /usr/local/nginx 目录:make install
进入到nginx安装目录/usr/local/nginx,启动nginx服务:sbin/nginx
sql防火墙开放80端口
五、项目部署
1、前端部署
1.将"资料\06.项目部署\前端\页面资源"文件夹下的打包好的静态资源,上传到nginx的html目录中。

2.配置nginx的配置文件,在conf/nginx.conf中配置反向代理服务器及路径重写规则。


3.在nginx的安装目录中,执行sbin目录下的nginx命令启动nginx服务:sbin/nginx或sbin/nginx -s reload
停止Nginx服务:sbin/nginx -s quit
2、后端部署

(1)打包
执行maven的父工程中的package生命周期,对项目进行打包 【打包之前,先连接上服务器数据库,先测试通过】。
改一下数据库配置
TypeScript
datasource:
url: jdbc:mysql://192.168.100.128:3306/tlias
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 1234
改一下日志文件存放路径
XML
<FileNamePattern>/user/local/tlias-app/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern>
Maven生命周期跳过单元测试test,执行打包操作

(2)上传
在linux服务器的/usr/local目录下,创建一个目录tlias-app,将jar包上传到服务器的 /usr/local/tlias-app 目录中。
然后在命令行执行命令,运行jar包 :java -jar xxxxxx.jar
(3)配置
配置阿里云账户密码的环境变量


上述执行运行jar包之后,会占用前台窗口, 窗口关闭服务也就停了。可以使用 nohup 指令,后台运行服务,执行指令:
nohup java -jar xxxxxx.jar &> tlias.log &
nohup java -jar tlias-web-management.jar &> tlias.log &

查看进程:ps -ef | grep xxxx
杀死进程:kill -9 进程ID
Linux 中的特殊符号:
|: 管道符。将前面命令的输出,作为后面命令的输入。如: ps -ef | grep java
>与 >> : 重定向符号。将前面的文本内容,输出到后面的文件中(> : 覆盖重定向,>> : 追加重定向)。 如: echo 'Hello Linux' > 1.log