Linux操作
目录
(1)?在IDEA中开发SpringBoot项目并打成jar包
(4)?检查防火墙,确保8080端口对外开放,访问SpringBoot项目?
一、Linux简介
1. Linux安装
?(1)选择语言为 "简体中文
?
(2)选择"自动配置分区"
(3)选择"最小安装
(4)设置"root"用户密码
(5)登录系统
2. 网卡设置 (修改网卡的配置项)
通过linux的指令 ip addr 来查询Linux系统的IP地址,具体信息如下:
没有获取到linux系统的IP地址,是由于启动服务器时未加载网卡,导致IP地址初始化失败而造成的。需要来修改网络初始化配置,设定网卡在系统启动时初始化。
具体操作步骤如下:
cd / 进入根目录
cd etc 进入etc目录
cd sysconfig 进入sysconfig目录
cd network-scripts 进入network-scripts
vi ifcfg-ens33 编辑ifcfg-ens33文件
进入文件后执行如下操作:
①. 按 i 键 进入编辑状态
②. 按↑↓键来移动光标, 删除no,输入yes
③. 按 ESC 键
④. 输入 :wq
⑤. 按 ENTER 保存退出
重启系统通过指令 ip addr 来查看IP地址
3.?安装SSH连接工具
SSH(Secure Shell),建立在应用层基础上的安全协议。常用的SSH连接工具:
?
FinalShell安装使用
(1)打开finalShell
?(2)建立连接?
4. Linux目录结构?
A. / 是所有目录的顶点
B. 目录结构像一颗倒挂的树
(1)目录结构图
?
(2)根目录/ 下各个目录的作用及含义说明
5.?Linux常用命令
(1)??ls
?
ls 查看当前目录下的内容(文件及目录)
ls / 查看指定目录(/)下的内容
?(2)? pwd
pwd 查看当前所在目录
(3)? cd
cd / 切换到根目录
cd /root 切换到/root目录
(4)? touch
touch 1.txt 创建文件1.txt
touch 2.txt 3.txt 4.txt 一次性创建文件2.txt,3.txt,3.txt
(5)? mkdir
mkdir 01 创建文件夹01
?(6)? rm
rm 4.txt 删除文件 (删除文件时,需要确认,输入y, 代表确定)
?注意:
在执行Linux命令时,提示信息如果显示为乱码,如上图所示。这是由于编码问题导致,只需要
修改Linux的编码即可,命令如下:?
echo 'LANG="en_US.UTF-8"' >> /etc/profile
source /etc/profile
6.??Linux命令使用技巧
(1)? Tab键自动补全
(2)? 连续两次Tab键,给出操作提示
(3)? 使用上下箭头快速调出曾经使用过的命令
(4)? 使用clear命令或者Ctrl+l快捷键实现清屏
?
A. 执行指令的时候,对于操作的文件/目录,按一下Tab会自动补全
B. 如果上述以 "1." 开头的文件有多个,可以按两下Tab键,给出操作提示
C. 使用clear命令或者Ctrl+l快捷键实现清屏
7.?Linux命令格式
command [-options] [parameter]
说明:
command: 命令名
[-options]: 选项,可用来对命令进行控制,也可以省略
[parameter]: 传给命令的参数,可以是零个、一个或者多个
注意:
[] 代表可选
命令名、选项、参数之间有空格进行分隔
8.?文件目录操作命令
(1)ls
作用: 显示指定目录下的内容
语法: ls [-al] [dir]
说明:
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、
文件大小等信息详细列出
注意:
由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
常见用法:
ls -al 查看当前目录的所有文件及目录详细信息
ls -al /etc 查看/etc目录下所有文件及目录详细信息
ll 查看当前目录文件及目录的详细信息
(2)cd
作用: 用于切换当前工作目录,即进入指定目录
语法: cd [dirName]
特殊说明:
~ 表示用户的home目录
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
举例:
cd .. 切换到当前目录的上级目录
cd ~ 切换到用户的home目录
cd /usr/local 切换到/usr/local目录
备注:
用户的home目录:
root用户 /root
其他用户 /home/xxx
(3)cat
作用: 用于显示文件内容
语法: cat [-n] fileName
说明:
-n: 由1开始对所有输出的行数编号
举例:
cat /etc/profile 查看/etc目录下的profile文件内容
cat 指令会一次性查看文件的所有内容,如果文件内容比较多,这个时候查看起来就不是很方便了,这个时候我们可以通过一个新的指令more。
(4)more
作用: 以分页的形式显示文件内容
语法: more fileName
操作说明:
回车键 向下滚动一行
空格键 向下滚动一屏
b 返回上一屏
q或者Ctrl+C 退出more
举例:
more /etc/profile 以分页方式显示/etc目录下的profile文件内容
当我们在查看一些比较大的文件时,我们可能需要经常查询文件尾部的数据信息,那这个时候如果文件很大,我们要一直向下翻页,直到最后一页,去看最新添加的数据,这种方式就比较繁琐了,此时,我们可以借助于tail指令。
?(5)tail
作用: 查看文件末尾的内容
语法: tail [-f] fileName
说明:
-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
举例:
tail /etc/profile 显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile 显示/etc目录下的profile文件末尾20行的内容
tail -f /itcast/my.log 动态读取/itcast目录下的my.log文件末尾内容并显示
在窗口1中执行指令 tail -f 1.txt 动态查看文件尾部的数据。然后在顶部的标签中右键选择
"复制标签",打开新的窗口2 , 此时再新打开的窗口2中执行指令 echo 1 >> 1.txt , 往1.txt
文件尾部追加内容,然后我们就可以在窗口1中看到最新的文件尾部的数据。
如果我们不想查看文件尾部的数据了,可以直接使用快捷键 Ctrl+C , 结束当前进程。
(6)mkdir
作用: 创建目录
语法: mkdir [-p] dirName
说明:
-p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建
举例:
mkdir itcast 在当前目录下,建立一个名为itcast的子目录
mkdir -p itcast/test 在工作目录下的itcast目录中建立一个名为test的子目录,
若itcast目录不存在,则建立一个
(7)?rmdir
作用: 删除空目录
语法: rmdir [-p] dirName
说明:
-p: 当子目录被删除后使父目录为空目录的话,则一并删除
举例:
rmdir itcast 删除名为itcast的空目录
rmdir -p itcast/test 删除itcast目录中名为test的子目录,若test目录删除后itcast目录
变为空目录,则也被删除
rmdir itcast* 删除名称以itcast开始的空目录
(8)rm
作用: 删除文件或者目录
语法: rm [-rf] name
说明:
-r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
-f: 无需确认,直接删除
举例:
rm -r itcast/ 删除名为itcast的目录和目录中所有文件,删除前需确认
rm -rf itcast/ 无需确认,直接删除名为itcast的目录和目录中所有文件
rm -f hello.txt 无需确认,直接删除hello.txt文件
注意:
? ? ?对于 rm -rf xxx 这样的指令,在执行的时候,一定要慎重,确认无误后再进行删除,避免误删。
9. 拷贝移动命令
(1)cp
作用: 用于复制文件或目录
语法: cp [-r] source dest
说明:
-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
举例:
cp hello.txt itcast/ 将hello.txt复制到itcast目录中
cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt
cp -r itcast/ ./itheima/ 将itcast目录和目录下所有文件复制到itheima目录下
cp -r itcast/* ./itheima/ 将itcast目录下所有文件复制到itheima目录下
(2)mv
作用: 为文件或目录改名、或将文件或目录移动到其它位置
语法: mv source dest
举例:
mv hello.txt hi.txt 将hello.txt改名为hi.txt
mv hi.txt itheima/ 将文件hi.txt移动到itheima目录中
mv hi.txt itheima/hello.txt 将hi.txt移动到itheima目录中,并改名为hello.txt
mv itcast/ itheima/ 如果itheima目录不存在,将itcast目录改名为itheima
mv itcast/ itheima/ 如果itheima目录存在,将itcast目录移动到itheima目录中
mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据我们输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)
10.?打包压缩命令
作用: 对文件进行打包、解包、压缩、解压
语法: tar [-zcxvf] fileName [files]
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩
说明:
-z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
-c: c代表的是create,即创建新的包文件
-x: x代表的是extract,实现从包文件中还原文件
-v: v代表的是verbose,显示命令的执行过程
-f: f代表的是file,用于指定包文件的名称
举例:
打包
tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名hello.tar.gz
解包
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压
后的文件放在/usr/local目录
11.?文本编辑命令
文本编辑的命令,主要包含两个: vi 和 vim,两个命令的用法类似,我们课程中主要讲解vim的使
用。
(1)vi&vim介绍
作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于? ? ? ? ? ? ? ? ? ?Windows中的记事本
语法: vi fileName
说明:?
? ? ? ?1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
? ? ? 2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装: yum install vim
(2)vim安装
命令: yum install vim
安装过程中,会有确认提示,此时输入 y,然后回车,继续安装:
?(3)vim使用
作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
语法: vim fileName
说明:?
? ? ? ?1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
? ? ? ?2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。
三种模式:?
命令模式
? ? ? ? ? ? ? ?A. 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
? ? ? ? ? ? ? ?B. 通过vim命令打开文件后,默认进入命令模式
? ? ? ? ? ? ? ?C. 另外两种模式需要首先进入命令模式,才能进入彼此?
插入模式
? ? ? ? ? ? ? ?A. 插入模式下可以对文件内容进行编辑
? ? ? ? ? ? ? ?B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
? ? ? ? ? ? ? C. 在插入模式下按下ESC键,回到命令模式
底行模式
? ? ? ? ? ? ? ?A. 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
? ? ? ? ? ? ? ?B. 在命令模式下按下[:,/]任意一个,可以进入底行模式
? ? ? ? ? ? ? ?C. 通过/方式进入底行模式后,可以对文件内容进行查找
? ? ? ? ? ? ? ?D. 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)
?
12.?查找命令
(1)find
作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
find . –name "*.java" 在当前目录及其子目录下查找.java结尾文件
find /itcast -name "*.java" 在/itcast目录及其子目录下查找.java结尾的文件
(2)grep
作用: 从指定文件中查找指定的文本内容
语法: grep word fileName
举例:
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
二、Linux软件安装
1.?软件安装方式
?2. 基于二进制包安装JDK
(1)?上传安装包
使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
由于上述在进行文件上传时,选择的上传目录为根目录 /,上传完毕后,我们执行指令 cd / 切换到
根目录下,查看上传的安装包。
(2)?解压安装包
执行如下指令,将上传上来的压缩包进行解压,并通过-C参数指定解压文件存放目录为/usr/local。
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local
(3)配置环境变量
使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
1). 编辑/etc/profile文件,进入命令模式
vim /etc/profile
2). 在命令模式中,输入指令 G , 切换到文件最后
G
3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行
i
4). 将上述的配置拷贝到文件中
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
5). 从插入模式,切换到指令模式
ESC
6). 按:进入底行模式,然后输入wq,回车保存
:wq?
(4)?重新加载profile文件
为了使更改的配置立即生效,需要重新加载profile文件,执行命令:?
source /etc/profile
(5) 检查安装是否成功
java -version
?
3. 基于二进制包安装Tomcat
?(1)?上传安装包
使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
由于上述在进行文件上传时,选择的上传目录为根目录 /,上传完毕后,我们执行指令 cd / 切换到
根目录下,查看上传的安装包。
(2)?解压安装包
将上传上来的安装包解压到指定目录/usr/local下,执行命令为
tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local
(3)??启动Tomcat
进入Tomcat的bin目录启动服务。执行命令为:
cd /usr/local/apache-tomcat-7.0.57/
cd bin
sh startup.sh或者./startup.sh
(4)Tomcat进程查看
上述我们将Tomcat启动完成之后,并不能知道Tomcat是否正常运行,那么我们验证Tomcat启动是否成功,有多种方式,我们这里主要介绍常见的两种方式:
1). 查看启动日志
Tomcat的启动日志输出在Tomcat的安装目录下的logs目录中,Tomcat的启动及运行日志文件名为
catalina.out,所以我们查看Tomcat启动日志,主要可以通过两条指令,如下:
1). 分页查询Tomcat的日志信息
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out
2). 查询日志文件尾部的50行记录
tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out
?只要Tomcat在启动的过程中,日志输出没有报错,基本可以判定Tomcat启动成功了。
2). 查询系统进程
我们也可以通过Linux系统的查看系统进程的指令,来判定Tomcat进程是否存在,从而判定Tomcat是
否启动。执行如下指令:
ps -ef|grep tomcat
说明:
? ? ? ? ps 命令是linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详细信息
? ? ? ?"|" 在Linux中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入
? ? ? ?使用ps命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程
(4)防火墙操作
访问地址:http://192.168.138.130:8080,我们发现是访问不到的。
tomcat启动成功了,但就是访问不到,原因就在于Linux系统的防火墙,系统安装完毕后,系统启动时,防火墙自动启动,防火墙拦截了所有端口的访问。
操作防火墙,具体指令如下:
?
注意:
? ? ? ? ?A. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态
等操作
? ? ? ? ?B. firewall-cmd是Linux中专门用于控制防火墙的命令
? ? ? ? ?C. 为了保证系统安全,服务器的防火墙不建议关闭?
要想访问到Tomcat,就可以采取两种类型的操作:
?A. 关闭防火墙,关闭之后,再次访问Tomcat,就可以访问到了。
? ? ? 执行指令 :?
systemctl stop firewalld
B. 开放Tomcat的端口号8080
? ? ? 执行指令:
①. 先开启系统防火墙
systemctl start firewalld
②. 再开放8080端口号
firewall-cmd --zone=public --add-port=8080/tcp --permanent
③. 重新加载防火墙
firewall-cmd --reload
?执行上述的操作之后,就开放了当前系统中的8080端口号,再次访问Tomcat。
(5)停止Tomcat
在Linux系统中,停止Tomcat服务的方式主要有两种:
A. 运行Tomcat提供的脚本文件
在Tomcat安装目录下有一个bin目录,这个目录中存放的是tomcat的运行脚本文件,其中有一个脚本就是用于停止tomcat服务的。我们可以切换到bin目录,并执行如下指令,来停止Tomcat服务:
sh shutdown.sh
./shutdown.sh
B. 结束Tomcat进程
我们可以先通过 ps -ef|grep tomcat 指令查看tomcat进程的信息,从进程信息中获取tomcat
服务的进程号。然后通过kill -9 的形式,来杀死系统进程。
通过上述的指令,我们可以获取到tomcat的进程号为 79947。接下来,我们就可以通过指令 ,来杀死tomcat的进程 :
kill -9 79947
执行完上述指令之后,再访问Linux系统中的Tomcat,就访问不到了。
注意:
? ? ? ? ? kill命令是Linux提供的用于结束进程的命令,-9表示强制结束
? ? ? ?
? ? ? ? ?虽然上述讲解的两种方式,都可以停止Tomcat服务,但是推荐使用第一种方式
(./shutdown.sh)执行脚本来关闭tomcat服务,如果通过第一种方式停止不了tomcat了,这
个时候,我们可以考虑使用第二种方式,强制杀死进程。
4. 通过rpm安装MySQL?
RPM:全称为 Red-Hat Package Manager,RPM软件包管理器,是红帽Linux用于管理和安
装软件的工具。
(1)?检测当前系统是否安装过MySQL相关数据库
需要通过rpm相关指令,来查询当前系统中是否存在已安装的mysql软件包,执行指令如下:
rpm -qa 查询当前系统中安装的所有软件
rpm -qa | grep mysql 查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb 查询当前系统中安装的名称带mariadb的软件
通过rpm -qa 查询到系统通过rpm安装的所有软件,太多了,不方便查看,所以我们可以通过管道符 | 配合着grep进行过滤查询。
通过查询,我们发现在当前系统中存在mariadb数据库,是CentOS7中自带的,而这个数据库和
MySQL数据库是冲突的,所以要想保证MySQL成功安装,需要卸载mariadb数据库。
(2)?卸载现有的MySQL数据库
在rpm中,卸载软件的语法为:rpm -e --nodeps? 软件名称
通过指令,卸载 mariadb,具体指令为:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
执行完毕之后, 再次查询 mariadb,就查不到了,因为已经被成功卸载了。
(3)?将MySQL安装包上传到Linux并解压
A. 上传MySQL安装包,将该安装包上传到Linux系统的根目录 / 下面。
B. 解压到/usr/local/mysql
? ? ?执行如下指令:
mkdir /usr/local/mysql
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql
(4)?按顺序安装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
说明:
? ? ? ? 因为rpm安装方式,是不会自动处理依赖关系的,需要我们自己处理,所以对于上面的rpm包的安装顺序不能随意修改。
? ? ? ?安装过程中提示缺少net-tools依赖,使用yum安装(yum是一种在线安装方式,需要保证
联网)? ? ? ? 可以通过指令(yum update)升级现有软件及系统内核?
(5)MySQL启动
MySQL安装完成之后,会自动注册为系统的服务,服务名为mysqld。那么,我们就可以通过
systemctl指令来查看mysql的状态、启动mysql、停止mysql。
systemctl status mysqld 查看mysql服务状态
systemctl start mysqld 启动mysql服务
systemctl stop mysqld 停止mysql服务
说明:
? ? ? ? ?可以设置开机时启动mysql服务,避免每次开机启动mysql。执行如下指令:
systemctl enable mysqld?
可以通过如下两种方式,来判定mysql是否启动:
netstat -tunlp 查看已经启动的服务
netstat -tunlp | grep mysql 查看mysql的服务信息
ps –ef | grep mysql 查看mysql进程
(6) MySQL登录
A.??查阅临时密码
MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢?
那实际上,对于rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。
可以执行如下指令:
?cat /var/log/mysqld.log
这种方式,可以看到所有的日志数据,文件比较大时,很不方便查看数据。我们可以通过管道符 | 配合grep来对数据进行过滤。
通过以下指令,查询日志文件内容中包含password的行信息。
cat /var/log/mysqld.log | grep password
B. 登录MySQL
获取到root用户的临时密码之后,我们就可以登录mysql数据库,修改root的密码,为root设置一个
新的密码。并且我们还需要开启root用户远程访问该数据库的权限,这样的话,我们就可以在
windows上来访问这台MySQL数据库。
执行如下指令:
①. 登录mysql(复制日志中的临时密码登录)
mysql -uroot -p
②. 修改密码
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;
操作完上述的指令之后,数据库root用户的密码以及远程访问我们就配置好了,接下来,可以执行
exit退出mysql,再次通过新的密码进行登录。
也可以使用安装在windows系统中的sqlyog或者Navicat来远程连接linux上的MySQL。
注意: 要想在windows上能够访问MySQL,还需要开放防火墙的3306端口,执行如下指令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
5. 基于二进制包安装redis
(1)下载Redis,并上传到服务器(放在opt下)
Redis官网:https://redis.io/
历史版本:http://download.redis.io/releases
(2)对Redis文件进行解压
tar zxvf redis-7.0.5.tar.gz
(3)进入redis目录下,安装gcc
cd redis-3.2.1
Redis是基于c语言编写的需要安装依赖,需要安装gcc
yum install gcc-c++
查看gcc版本:?
gcc -v
输入make命令配置Gcc需要的文件?:
make
再次进行make:?
make
make install确认所有都安装完成:?
make install
redis默认安装路径:/usr/local/bin?
(4)将redis配置文件复制到bin目录下
(先新建文件夹然后再将redis配置文件coyp进去)?
将配置文件复制一份,以后用这个配置文件来启动。
mkdir redisconfig
cp /opt/redis-7.0.5/redis.conf redisconfig
(4)redis默认不是后台启动,更改启动方式
有关redis配置文件的一些说明:
然后修改redis.conf文件中的一些配置
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes?
# 密码,设置后访问Redis必须输入密码
requirepass 123321
?Redis的其它常见配置:
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
vim redis.conf
?
(5)?启动redis-server服务
通过指定配置文件启动服务
redis-server redisconfig/redis.conf
?(6)使用redis-cli连接测试
redis-cli -p 6379
(7)查看redis的进程是否开启?(新开一个窗口)
ps -ef|grep redis
(8)关闭redis服务?
shutdown
再次查看服务:
(9)设置Redis开机自启动?
首先,新建一个系统服务文件:
vi /etc/systemd/system/redis.service
内容如下:
最重要的是:ExecStart=/usr/local/bin/redis-server /usr/local/bin/redisconfig/redis.conf这个,这里指定了redis-server的配置文件
根据配置文件的不同这里的名字也是不同的
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redisconfig/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
?然后重载系统服务:
systemctl daemon-reload
现在,我们可以用下面这组命令来操作redis了:
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启:?
systemctl enable redis
(10)开启redis端口防火墙允许远程连接
A.查看防火墙状态
在Linux系统中,可以使用以下命令来查看防火墙状态:
sudo systemctl status firewalld
如果输出结果中显示firewalld服务已经启动,则说明防火墙处于开启状态。
B.添加Redis端口规则
在Linux系统中,可以使用以下命令添加Redis的端口规则:
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
其中,6379是Redis默认监听的端口号。–zone指定了添加规则的区域,–add-port指定要开放的端口号和协议类型(tcp或udp),–permanent表示该规则将持久化保存。
C.重新加载防火墙配置
执行完上述命令后,需要重新加载防火墙配置才能生效:
sudo firewall-cmd --reload
D.验证是否成功
sudo firewall-cmd --list-ports
执行命令来查看当前开放的端口列表。如果6379出现在列表中,则说明已经成功添加Redis端口规则并且防火墙已经允许该端口进行通信。
(11)性能测试?
redis 性能测试的基本命令如下:
redis-benchmark [option] [option value]
序号?? ?选项? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?默认值
1? ? ? ? ? -h? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定服务器主机名? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 127.0.0.1
2? ? ? ? ? -p? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 指定服务器端口? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 6379
3? ? ? ? ? -s? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定服务器? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?socket??
4? ? ? ? ? -c? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定并发连接数? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?50
5? ? ? ? ? -n? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 指定请求数? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10000
6? ? ? ? ? -d? ? ? ? ? ? ? ? ? ? ? ? ? 以字节的形式指定 SET/GET 值的数据大小? ? ? ? ? ? ? ? ? ? ? ? ? ? 2
7? ? ? ? ? -k? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1=keep alive 0=reconnect? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
8? ? ? ? ? -r? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SET/GET/INCR 使用随机 key, SADD 使用随机值?? ?
9? ? ? ? ?-P? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?通过管道传输 请求? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1
10? ? ? ?-q? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?强制退出 redis。 仅显示 query/sec 值?? ?
11? ? ? –csv? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?以 CSV 格式输出?? ?
12? ? ? ?*-l*? ? (L 的小写字母)? ? ? ? ?生成循环,永久执行测试?? ?
13? ? ? ? -t? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 仅运行以逗号分隔的测试命令列表。?? ?
14? ? ? ?*-I*? ?(i 的大写字母)? ? ? ? ? ? Idle 模式。仅打开 N 个 idle 连接并等待。
?
测试100个并发链接,每个并发100000请求?
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
6.? 通过yum安装lrzsz
? ? ? ?lrzsz 是用于在Linux系统中文件上传下载的软件。大家可能会存在疑问,我们用finalShell图形化界面就可以很方便的完成上传下载,为什么还要使用这个软件来完成上传下载呢?实际上是这样的,Linux的远程连接工具有很多,而finalShell只是其中的一种,而还有很多的远程连接工具并没有上传下载的功能,这个时候就需要依赖于lrzsz这个软件了。
? ? ? ?Yum: (Yellow dog Updater,Modified),是一个在Fedora和RedHat以及CentOS中的
Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。?
安装lrzsz的步骤如下:
(1)?搜索lrzsz安装包
yum list lrzsz
(2)?在线安装lrzsz
yum install lrzsz.x86_64
(3)?测试
在命令行中输入 rz , 就会自动打开一个文件选择的窗口,然后选择要上传的文件。
?
yum拓展知识:
?A. 如果在不更改软件来源的情况下,是需要联网才能使用yum的,那么我们安装的软件是从哪儿下载的呢,这里就涉及到一个概念: yum源。
?B. 我们可以通过一个指令,来检查当前的yum源
从图中,我们可以看到我们安装的 CentOS7 采用的是网易的163yum源。
C. 网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为"*.repo"
?可以看到,该目录下有 7 个 yum 配置文件,通常情况下 CentOS-Base.repo文件生效。
D. 添加阿里云yum源
(1) 先通过 yum install wget ,安装wget命令
(2) 备份默认的网易163的yum源,执行指令 :
? ? ? ? 切换目录: cd /etc/yum.repos.d/
? ? ? ? 创建备份目录: mkdir bak
? ? ? ? 移动现有的yum源文件到bak: mv *.repo bak/
(3) 下载阿里云的yum源
? ? ? ?wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a
liyun.com/repo/Centos-7.repo
(4) 执行命令,重新生成cache
? ? ? ? yum clean all
? ? ? ?yum makecache
(5) 再次查看yum源
?之后,我们通过yum指令安装软件,就是从阿里云下载的。
三、项目部署
1. 手动部署项目
(1)?在IDEA中开发SpringBoot项目并打成jar包
执行package指令,进行打包操作,将当前的springboot项目,打成一个jar包。
(2)?将jar包上传到Linux服务器
通过 rz 指令,将打好的jar包上传至Linux服务器的 /usr/local/app 目录下。 先执行指令创建app目录。
A. 在/usr/local下创建目录app
mkdir /usr/local/app
B. 切换到app目录下
cd /usr/local/app
C. 执行指令,进行jar包上传
rz
?此时这个jar包就上传到 /usr/local/app 目录了。
(3)?启动SpringBoot程序
由于我们的项目已经打成jar包上传上来到Linux服务器,我们只需要运行这个jar包项目就启动起来了,所以只需要执行如下指令即可:
java -jar helloworld-1.0-SNAPSHOT.jar
?
注意:
? ? ? ? ?由于前面安装的Tomcat在启动时,会占用端口号8080,而当前springboot项目我们没有配置端口号,默认也是8080,所以我们要想启动springboot项目,需要把之前运行的Tomcat停止掉。
(4)?检查防火墙,确保8080端口对外开放,访问SpringBoot项目?
如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令:
firewall-cmd --zone=public --add-port=8080/tcp --permanent
(5)访问测试
(6)?后台运行项目
目前程序运行的问题:
A. 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
B. 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
后台运行程序:
nohup命令:
? ? ? ? ? ? ? ? ? ? 英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会
影响程序的运行语法格式: nohup Command [ Arg … ] [&]
参数说明:
? ? ? ? ? ? ? ? Command:要执行的命令
? ? ? ? ? ? ? ? Arg:一些参数,可以指定输出文件
? ? ? ? ? ? ? ? &:让命令在后台运行举例:
? ? ? ? ?nohup java -jar boot工程.jar &> hello.log &上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
可以使用下面的指令,让当前部署的项目后台运行:
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> hello.log &
?这样的话,我们的项目就已经启动成功了,我们可以通过ps指令,查看到系统的进程。
再次访问我们的项目,来看看服务是否可用。
?
(7)?停止SpringBoot项目
ps -ef | grep java 查询Java进程
kill -9 45199 杀死该进程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!