Linux零基础到项目部署

本笔记不针对安装Linux,主要介绍在后端中常用到的命令及部署项目的过程!
虚拟机:Vmware、Centos7
远程连接ssh工具:finalshell

目录

1、网卡设置

2、Finalshell连接服务器

3、Linux常用命令

3.1 乱码问题处理

3.2 Linux命令格式

3.2.1、只使用命令

3.2.2、命令+选项

3.2.3、命令+参数

3.2.4、命令+选项+参数

3.3、文件目录操作命令

3.3.1 ls 查看文件

3.3.2、cd 切换目录

3.3.3、pwd 查看当前目录

3.3.4、cat 查看文件内容

3.3.5、more 以分页形式显示文件内容

3.3.6、tail 查看文件末尾内容

3.3.7、mkdir 创建文件

3.3.8、rm 删除文件或目录

3.4、拷贝移动命令

3.4.1、cp 用于复制文件或目录

3.4.2 mv 为文件或者目录改名或者移动位置

3.5、打包压缩命令

3.5.1 tar 对文件进行打包、解包、压缩、解压

3.6、文本编辑命令

3.6.1、vi/vim

3.7、查找命令

3.7.1、find 查找目录 -name 查找的文件名 (查找文件)

3.7.2、grep 查找的文本内容 查找的文本文件 (在文本中查找指定文本内容)

4、软件安装

4.1、安装JDK

4.2、安装tomcat

4.3、安装MySQL(使用rpm安装)

4.3.1、rpm常用命令(理解为exe文件)

4.3.2、yum 常用命令(从网上直接下载安装)

4.3.3、安装mysql

5、项目部署

5.1、手工部署项目

5.2、通过shell脚本自动部署项目

6、配置静态IP


1、网卡设置

刚安装完Centos时,由于启动服务器时未加载网卡,导致IP地址初始化失败可以用命令ip addr查看以下网卡IP地址:

这里可以看到ens33这个网卡无ip地址,这里需要解决这个问题,解决方法如下:

  • 键入cd /etc/sysconfig/network-scripts/进入至network-scripts目录

  • 使用命令vim ifcfg-ens33编辑其内容将ONBOOT由no改未yes,按esc,:wq保存退出!

  • 重启服务器,再次查看ens33ip地址

表明已经初始化IP成功了!

2、Finalshell连接服务器

此时已经可以连接

连接成功!!

3、Linux常用命令

3.1 乱码问题处理

3.2 Linux命令格式

  • 以ls查看文件目录为例

3.2.1、只使用命令

3.2.2、命令+选项

3.2.3、命令+参数

  • 查看/home目录下的文件

3.2.4、命令+选项+参数

  • 以列形式查看根目录下的文件

3.3、文件目录操作命令

3.3.1 ls 查看文件

ls -a 显示所有的文件及目录(.开头的隐藏文件也列出)

ls -l 将文件信息详细列出,以列形式(隐藏文件不列出)

ll 等价于ls -l

ls -al 将文件信息详细列出,以列形式(隐藏文件也列出)

ls -al 指定目录 指定目录下的文件信息详细列出,以列形式(隐藏文件也列出)

3.3.2、cd 切换目录

cd / 切换至根目录

cd ~ 切换至家目录

cd .. 切换至当前目录的上一层目录

cd 任意目录 切换至任意目录

3.3.3、pwd 查看当前目录

3.3.4、cat 查看文件内容

cat 文件

cat -n 文件 (从1开始对文件内容按列编号)

3.3.5、more 以分页形式显示文件内容

回车键 一行一行显示

空格 一屏一屏显示

b 返回上一屏

q或者Ctrl+c 退出more

3.3.6、tail 查看文件末尾内容

tail 文件名 查看文件末尾前10行内容

tail -n 文件名 查看文件末尾前n行内容

tail -f 文件名 动态显示文件末尾内容

3.3.7、mkdir 创建文件

mkdir 文件名 创建单层文件

在根目录下创建a文件

mkdir -p 文件名 创建多层文件

在根目录下的b文件中创建c文件,在c文件中创建d文件

3.3.8、rm 删除文件或目录

rm -r 将目录及目录下的文件递归删除(需确认)

rm -rf 将目录及目录下的文件递归删除(无需确认)

rm a* 删除带有a文件名的文件或目录

3.4、拷贝移动命令

3.4.1、cp 用于复制文件或目录

cp 被复制文件名 复制到的文件名

cp -r 被复制目录名 复制到的目录名(复制目录需要加-r,表示递归复制)

将a目录下的文件复制到A目录(如果需要连同a目录本身就用cp -r a/ A

3.4.2 mv 为文件或者目录改名或者移动位置

mv a.txt b.txt 将a.txt改名为b.txt

mv a.txt A/c.txt 将a.txt移动至A目录下并改名为c.txt

mv a/ A 将a目录移动至A目录下(如果A目录不存在则将a改名为A)

3.5、打包压缩命令

在Linux中,后缀名为.tar的表示仅仅只是打包,还未进行压缩,只有.tar.gz的才是既打包又压缩!

3.5.1 tar 对文件进行打包、解包、压缩、解压

tar -zcvf 打成的包名 打并压缩的文件名

将A目录及目录下的所有文件打包为Atar.tar

将A目录及目录下的所有文件打包压缩为Atar.tar.gz

tar -zxvf 解压包名

将Atar.tar解包

将Atar.tar.gz解压

tar -zxvf 解压包名 -C 解压到的目录

将Atar.tar.gz解压到home目录下

3.6、文本编辑命令

3.6.1、vi/vim

vim是在vi的基础上进行了做色处理,是比vi更强的文本编辑工具!vim工作分为三种模式:命令模式,插入模式,底行模式,vim打开默认进入命令模式!

  • 命令模式

vim默认的进入模式;

在命令模式下可以使用上下左右光标,可以通过gg跳转至最首行,G跳至最末行;

  • 插入模式

通过进入命令模式后通过点击[i,a,o],进入插入模式;

进入后即可对文本进行修改操作等等;

按下Esc,回到命令模式;

  • 底行模式

在命令模式下按下[ : , / ]任意一个,可以进入底行模式;

底行模式下可以通过命令进行查找,显示行号,退出等操作;

通过/方式进入底行模式后,可以对文件内容进行查找;

通过:方式进入底行模式后,可以输入wq(保存并退出),q!(不保存退出),set nu(显示行号);

3.7、查找命令

3.7.1、find 查找目录 -name 查找的文件名 (查找文件)

在当前目录查找后缀名为.java的文件

在家目录查找后缀名为.java的文件

3.7.2、grep 查找的文本内容 查找的文本文件 (在文本中查找指定文本内容)

查找当前目录下中a在所有后缀为.java中的位置

4、软件安装

软件安装的四种方式:

4.1、安装JDK

  • 将先下好的jdk压缩包上传至linux

  • 解压jdk

  • 配置环境变量,修改vim命令修改/etc/profile文件,在文件末尾加如下配置:

JAVA_HOME=jdk解压的路径/jdk名

PATH=$JAVA_HOME/bin:$PATH

  • 重新加载profile文件,是更改的配置立即生效,使用命令source /etc/profile

  • 检查安装是否成功,使用java -version查看其版本

4.2、安装tomcat

  • 将先下好的tomcat压缩包上传至linux

  • 解压压缩包

  • 进入tomcat的bin目录启动服务,命令为sh startup.sh或者./startup.sh

  • 查看tomcat是否启动成功,可以使用命令ps -ef |grep tomcat

  • 用主机访问tomcat

发现一直转圈,访问不进去,这是因为我们虚拟机的防护墙给拦截下来了,需要我们进行设置,下面是防火墙相关命令:

  • 查看防火墙

  • 打开防火墙(这里我们不建议直接开启防火墙,不安全,打开用到的端口即可)

  • 主机重新访问tomcat页面

成功访问!

  • 关闭tomcat服务

方式一:在tomcat下的bin目录,使用命令sh .shutdown.sh或者./shutdown.sh(推荐)

此时通过查看进程发现tomcat主进程已经消失了,证明已被关闭

方式二:通过kill -9 进程号 命令强行杀死进程,当方式一关闭不了时再使用

4.3、安装MySQL(使用rpm安装)

4.3.1、rpm常用命令(理解为exe文件)

  • rpm -qa 查看linux已安装的所有软件(可结合管道符|使用)
  • rpm -ivh 软件包名 安装软件
  • rpm -e --nodeps 软件包名 卸载软件

4.3.2、yum 常用命令(从网上直接下载安装)

  • yum install 软件名 安装软件
  • yum update 将linux上已安装的软件或内核进行升级

4.3.3、安装mysql

  • 将下好的mysql的rpm包上传至服务器

  • 解压rpm包

  • 卸载mariadb

安装rpm包前先检查一下是否有安装mariadb,Centos默认有安装,该软件与mysql冲突

卸载

重新查找后已经没有相关信息,则卸载成功!

  • 安装mysql相关rpm包

按照以下顺序安装:

  1. mysql-community-common-5.7.25-1.el7.x86_64.rpm
  2. mysql-community-libs-5.7.25-1.el7.x86_64.rpm
  3. mysql-community-devel-5.7.25-1.el7.x86_64.rpm
  4. mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
  5. mysql-community-client-5.7.25-1.el7.x86_64.rpm
  6. mysql-community-server-5.7.25-1.el7.x86_64.rpm

这里强调一下,当安装最后一个mysql-community-server-5.7.25-1.el7.x86_64.rpm时,如果安装失败,可以使用yum install net-tools安装一下net-tools再继续安装即可!

  • 启动mysql服务

  • 修改MySQL密码

第一次登录数据库时,MySQL会给一个临时密码,需要在/var/log/mysqld.log中查阅临时密码

登录数据库

修改密码

重新登录数据库

  • 使用navicat远程连接

还记得防火墙吗,我们又被这墙拦截了!!!!

打开3306端口

重新连接

4.3.4、安装lrzsz

lrzsz是一款用于我们从主机上传数据至Linux的软件,但需借助于连接ssh的工具软件。

使用finalshell启动rz

5、项目部署

5.1、手工部署项目

  • 将项目打成jar包

  • 将jar包上传至服务器

  • 使用java -jar jar包名启动项目

  • 在Windows上访问该ip地址:8080端口

访问成功,没有数据是因为服务器上的数据库里没有数据。

  • 优化启动项目

使用java -jar启动项目启动项目是不是发现好像不能够在界面操作了,并且当你关闭界面时就发现项目自己停掉了?为了解决这个弊端,下面给出了解决方案:

使用nohup命令,该命令用于不挂断的运行指令命令,退出终端不会影响程序的运行

图片中的nohub改为nohup,一时大意打错了~~

重新访问,并查看日志文件

停掉项目只能通过kill -9 进程号杀死进程!

5.2、通过shell脚本自动部署项目

5.2.1、在linux中安装Git

5.2.2、在linux中安装maven

  • 将下好的maven安装包上传至服务器、并解压

  • 配置环境变量,在/ect/profile中输入

export MAVEN_HOME=解压maven的绝对路径

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

重新加载配置文件

查看maven是否配置成功

  • 修改setting文件
  • 修改在解压的maven文件下的conf/setting.xml文件中加入

<localRepository>自定义的本地仓库绝对路径 </localRepository>

5.2.3、编写shell脚本(拉取代码、编译、打包、启动)

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=原来运行的工程名

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 从git拉取的代码的绝对路径

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar 执行的jar包 &> helloworld.log &
echo 项目启动完成

实例:

将git上的代码拉至linux中

编写shell脚本

5.2.4、为用户授予执行shell脚本的权限

查看当前shell脚本文件权限

可以看到,这里没有写权限,这里我们可以使用命令chmod 777 文件名或者chmod a=rwx 文件名来修改权限

5.2.5、执行shell脚本

使用命令./脚本名.sh或者 sh 脚本名.sh

 项目启动成功,由于该项目不是web项目,只能用linux图像界面才能显示页面!!

6、配置静态IP

虚拟机分配IP地址的方式是根据DHCP进行随机分配的,这样存在的问题就是我们每次重启虚拟机后所分配到IP可能都不相同,配置静态IP后就能解决该问题!

修改文件/etc/sysconfig/network-scripts/ifcfg-ens33

重新启动服务

猜你喜欢

转载自blog.csdn.net/qq_61544409/article/details/129152820
今日推荐