1、linux简介
Linux系统版本
Linux系统分为内核版和发行版
内核版:
由LinusTorvalds及其团队开发、维护
免费、开源
负责控制硬件
发行版:
基于Linux内核版进行扩展
由各个Linux厂商开发、维护
有收费版本和免费版本
2、linux安装
Linux系统的安装方式
物理机安装:直接将操作系统安装到服务器硬件上
虚拟机安装:通过虚拟机软件安装
3、网卡
ip addr
3.1网卡设置
3.2安装SSH连接工具
SSH(Secureshell),建立在应用层基础上的安全协议
企业linux安装在服务器上,需要我们远程连接。
使用:xshell
4、目录介绍
5、安装方式
5.1安装jdk
//注意jdk的位置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
5.2安装Tomcat
5.2.1验证是否成功
5.2.2防火墙操作
查看防火墙状态
systemctl status firewalld
或
firewall-cmd --state
暂时关闭防火墙
systemctl stop firewalld
永久关闭防火墙
systemctl disable firewalld
开启防火墙
systemctl start 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、systemct是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
2、firewall-cmd是Linux中专门用于控制防火墙的命令
3、为了保证系统安全,服务器的防火墙不建议关闭
5.2.3停止Tomcat服务的方式:
①运行Tomcat的bin目录中提供的停止服务的脚本文件shutdwnoch
sh shutdown.sh
./shutdown.sh
②结束Tomcat进程
查看Tomcat进程,获得进程id
ps -ef | grep tomcat
注意:
kill 命令是Linux提供的用于结束进程的命令,-9表示强制结束
5.3安装MySQL
①:检测当前系统中是否安装MySQL数据库
rpm -qa
查询当前系统中安装的所有软件
rpm -qa | grep mysql
查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb
查询当前系统中安装的名称带mariadb的软件
RPM(Red-HatPackageManager)RPM软件包管理器,是红帽Linux用于管理和安装软件的工具
注意事项:
如果当前系统中已经安装有MySQL数据库,安装将失败。Centos7自带mariadb,与MySQL数据库冲爽
②:卸载已经安装的冲突软件
rpm -e --nodeps 软件名称 卸载软件
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.×86_64
③:将资料中提供的MySQL安装包上传到Linux并解压
mkdir /usr/loca/mysql
tar-zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz-c /usr/local/mysql
④:按照顺序安装rpm软件包
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
yum install net-tools
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
检测依赖失败:
因为yum安装了旧版本的gpg keys造成的
给后缀添加"--force --nodeps"即可
eg:
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm --force --nodeps
说明1:安装过程中提示缺少net-tools依赖,使用yum安装
说明2:可以通过指令升级现有软件及系统内核
yum update
⑤:启动mysql(注意不要粘贴空格)
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysq服务
systemctl enable mysqld 开机启动mysq服务
netstat -tunlp或netstat -tunlp l grep mysql 查看已经启动的服务
ps -ef | grep mysql 查看mysql进程
⑥登录MySQL数据库,查阅临时密码
cat /var/log/mysqld.log 查看文件内容
cat /var/log/mysqld.log | grep password 查看文件内容中包含password的行信息
注意:
[Note] A temporary password is generated for root@localhost: IAzt_RVda7sD
冒号后面的是密码,注意空格(不要空格)
⑦:登录MySQL,修改密码,开放访问权限
mysql -uroot -p 登录mysql(使用临时密码登录)
#修改密码
set global validate_password_length=4; 设置密码长度最低位数
set global validate_password_policy=Low; 设置密码安全等级低,便于密码可以修改成root
set password = password('root'); 设置密码为root
#开启访问权限
grant all on *.* to 'root'@'%'identified by 'root';
flush privileges; 刷新权限
⑧:测试MySQL数据库是否正常工作
show databases;
5.4安装lrzsz
1、搜索lrzsz安装包,命令为yum list lrzsz
2、使用yum命令在线安装,命令为 yum install lrzsz.x86_64
注意:
Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOs中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁项地一次次下载、安装。
6、项目部署
6、1手工部署项目(复杂)
手动打包,上传jar包 。通过命令运行
①:在IDEA中开发SpringBoot项目并打成jar包
②:将jar包上传到Linux服务器
eg:mkdir /usr/local/app
创建目录,将项目jar包放到此目录
③:启动SpringBoot程序
java -jar jar包名字
④:检查防火墙,确保8080端口对外开放,访问SpringBoot项目
使用防火墙部分命令
⑤:改为后台运行SpringBoot程序,并将日志输出到日志文件(linux关闭还能运行)
&>:日志文件名字(当前目录创建)
&:表示程序在后台执行
eg:nohup java -jar jar包名字 &> 日志文件名字 &
目前程序运行的问题:
a.线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
b.线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
⑥:停止SpringBoot程序
查询进程
ps -ef | grep java
删除
kill -9 对应的进程号
6.2通过She脚本自动部署项目
①:在Linux中安装Git
yum list git 列出git安装包
yum install git 在线安装git
②:使用Git克隆代码
cd /usr/local
git clone https://gitee.com/chuanzhiBoke/hellowortd.git
③:将资料中提供的maven安装包上传到Linux,在Linux中安装maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/
---------------------------------------------------------------
vim /etc/profile 修改配置文件加入以下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH---------------------------------------------------------------
source /etc/profile
mvn -version
---------------------------------------------------------------
修改配置文件
vim /usr/local/apache-maven-3.5.4/conf/settings.xml
如下:
<localRepository>/usr/local/repo</localRepository>
④:将资料中提供的Shel脚本文件复制到Linux
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=helloworld
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成
⑤为用户授权
⑦:设置静态ip
修改文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
⑧重启网络服务
systemctl restart network
注意:重启完网络服务后ip地址已经发生了改变,此时Finalshell已经连接不上Linux系统
需要创建一个新连接才能连接到Linux。
2、Redis
Redis是一个基于内存的key-Value结构数据库。
1、Redis入门
可用作:数据库、缓存和消息中间件。
关系型数据库的补充
Windows版下载地址:https://github.com/microsoftarchive/redis/releases
Linux版下载地址:Index of /releases/ (redis.io)
在Linux系统安装Redis步骤:
1.将Redis安装包上传到Linux
2.解压安装包,命令: tar -zxvf redis-4.0.0.tar.gz -C /usr/local
3.安装Redis的依赖环境gcc,命令: yum install gcc-c++
4.进入/usr/local/redis-4.0.0,进行编译,命令:make
5.进入redis的src目录,进行安装,命令:make install
linux中redis服务启动与停止:
Linux中redi服务启动,可以使用redis-server
默认端口号为6379
Ctrl+C停止Redis服务
后台执行: 主目录下修改配置文件 redis.conf 中daemonize 改为yes
再执行src/redis-server ./redis.conf就是后台运行
其他:
PID:进程
src下redis-cli:连接客户端
编辑模式:/查找内容
修改有密码登录客户端修改redis.conf
添加:requirepass 密码
eg:requirepass 123456
客户端查询登录时:auth 密码
启动客户端时:src/redis-cli -h localhost -p 6379 -a 密码(123456)
eg:auth 123456
切换数据库默认16个 0--15号
select (dbid)数据库名字
------------------------------------------------------------------------------------------------------------------------
Redis的windows版属于绿色软件,直接解压即可使用,解压后目录结构如下:
2、数据类型
key-Value结构的数据,其中key是字符串类型,value有5种常用的数据类型
3、常用命令
Redis中文网
1、字符串string操作命令
SET key value 设置指定key的值/相同key覆盖之前value
GET key 获取指定key的值
SETEX key seconds value 设置指定key的值,并将key的过期时间设为seconds秒
SETNX key value 只有在key不存在时设置key的值
127.0.0.1:6379> set name wyh
OK
127.0.0.1:6379> get name
"wyh"
2、哈希hash操作命令
Redishash是一个string类型的field和value的映射表,hash特别适合用于存储对象
HSET key field value 将哈希表key中的字段field的值设为value
HGET key field 获取存储在哈希表中指定字段的值
HDEL key field 删除存储在哈希表中的指定字段
HKEYS key 获取哈希表中所有字段
HVALS key 获取哈希表中所有值
HGETALL key 获取在哈希表中指定key的所有字段和值
3、列表list操作命令
4、集合set操作命令
5、有序集合sortedset操作命令
6、通用命令
4、在java中操作Redis
4.1 基本使用
1、Jedis的maven坐标:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
2、创建测试类
/** * 使用jedis操作Redis */ public class JedisTest { @Test public void testRedis(){ //1获取连接 Jedis jedis = new Jedis("localhost",6379); //2、执行具体的操作 //设置 jedis.set("username","xiaoming"); String value = jedis.get("username"); System.out.println(value); //删除 jedis.del("username"); //hash jedis.hset("myhash","addr","bj"); //获得值 String hValue = jedis.hget("myhash","addr"); System.out.println(hValue); //查询所有 Set<String> keys = jedis.keys("*"); for (String key : keys){ System.out.println(key); } //3关闭连接 jedis.close(); } }
4.2 Spring Data Redis(常用)
在SpringBoot项目中,可以使用SpringDataRedis来简化Redis操作
1、导入坐标
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
第一步:配置类application.yml
spring:
application:
name:java_redis
#redis相关配置
redis:
host:localhost
port:6379
#passwoerd:
database:0 #操作的是0号数据库
jedis:
#Redis连接池配置
pool:
max-active: 8 #最大连接数
max-wait: 1ms #连接池最大阻塞等待时间
max-idle: 4 #连接池中的最大空闲连接
min-idle: 0 # 连接池中的最小空闲连接