Linux安装、常用命令及项目部署

一、Linux的安装

1.安装方式

(1)物理机安装
        直接将操作系统安装到服务器硬件上。
(2)虚拟机安装
        通过虚拟机软件安装,即通过虚拟机软件来模拟计算机硬件。
【tips】虚拟机(VM):通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。

2.VMware Workstation Pro16安装

(1)下载网址
(2)许可证密钥
        ZF3R0-FHED2-M80TY-8QYGC-NPKYF 
        YF390-0HF8P-M81RQ-2DXQE-M2UT6 
        ZF71R-DMX85-08DQY-8YMNC-PPHV8 
        FA1M0-89YE3-081TQ-AFNX9-NKUC0

3.CentOS镜像安装

4.网卡设置

        

5.SSH连接工具FinalShell

(1)SSH(Secure Shell):建立在应用层基础上的安全协议。通过SSH连接工具就可以实现从本地连接到远程Linux服务器。
(2)安装finalshell
(3)使用finalshell连接到Linux
        1)获取Linux服务器ip地址
        2)连接Linux
                

二、常用命令

1.Linux和Windows目录结构对比

        Linux中一切从根目录(/)开始,根目录是所有目录的“顶点”:
        

2.常用命令及使用技巧

(1)命令语法格

command [-options] [parameter]
  • command:命令名;
  • [-options]:选项,可省略,用来对命令进行控制;
  • [parameter]:传给该命令的参数,可以是0个、1个或多个。
【tips】[]表示可选操作,命令名、选项、参数间用空格隔开。

(2)常用命令

命令 对应英文 作用
ls list 查看当前目录下的内容
pwd print work directory 查看当前所在目录
cd 目录名 change directory 切换目录
touch 文件名 touch 若文件不存在,新建文件
mkdir 目录名 make directory 创建目录
rm 文件名 remove 删除指定文件

(3)使用技巧

  • Tab:自动补全
  • 连续两次Tab:给出操作提示
  • ↑↓:调出曾用命令
  • clear命令或Ctrl+L:清屏

3.文件目录操作命令

(1)ls/ll命令

        1)作用:显示指定目录下的内容。
        2)语法:
ls [-a/-l] [dir]
  • -a:显示所有文件及目录(以.开头的隐藏文件也会列出)
  •  -l:除文件名外,同时将文件型态(d表示目录-表示文件)、权限、拥有者、文件大小等详细信息列出
  • dir:显示指定目录下的内容
【tips】由于使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll

(2)cd命令

        1)作用:切换当前工作目录,即进入指定目录。
        2)语法:
cd [dirName]
        cd /usr/local:切换到/usr/local目录。
  • ~:表示用户的home目录,如 cd ~ :切换到当前用户的home目录
  • .:表示目前所在目录
  • ..:表示目前目录位置的上级目录,如cd ..:切换到当前目录的上级目录
  • cd -:切换到上一个操作所在的目录。

(3)cat命令

        1)作用:显示文件内容
        2)语法:
cat [-n] fileName
  • -n:由1开始对所有输出的内容的行数进行编号

(4)more命令

        1)作用:以分页的形式显示文件内容
        2)语法:
more fileName
  • 回车键:向下滚动一行
  • 空格键:向下滚动一屏
  • b:返回上一屏
  • q或Ctrl+C:退出more

(5)★tail命令

        1)作用:查看文件末尾的内容
        2)语法:
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文件末尾内容并显示

(6)mkdir命令

        1)作用:创建新目录
        2)语法:
mkdir [-p] dirName
  • -p:确保目录名称存在,不存在就创建一个。通过此选项,可以实现多层目录同时创建
  • 举例:mkdir itcast:在当前目录下,创建一个名为itcast的子目录
               mkdir-p itcast/test:在工作目录下的itcast目录中建立一个名为test的子目录,若itcast目录不存在,则新建itcast

(7)rmdir命令

        1)作用:删除空目录
        2)语法:
rmdir [-p] dirName
  • -p:当子目录被删除后使父目录为空目录的话,则一并删除父目录
  • 举例:rmdir itcast:删除名为itcast的空目录
               rmdir-p itcast/test:删除itcast目录中名为test的子目录,若test目录删除后itcast目录变为空目录,则也被删除
               rmdir itcast*:删除名称以itcast开头的空目录(通配符

(8)rm命令

        1)作用:删除文件或者目录(不为空也能删除
        2)语法:
rm[-r/-f] name
  • -r:将目录及目录中所有文件(目录)逐一删除,即递归删除,每次都会弹出是否删除提示
  • -f:无需确认,直接删除

4.拷贝移动命令

(1)cp命令

        1)作用:复制文件或目录
        2)语法:
cp [-r] source dest
  • -r:复制目录需要使用此选项,此时将复制该目录下所有的子目录和文件
  • 举例:cp hello.txt itcast/:将hello.txt复制到itcast目录中
               cp hello.txt . / hi.txt:将hello.txt复制到当前目录,并改名为hi.txt
               cp -r itcast/ ./itheimal:将itcast目录和目录下所有内容复制到itheima目录下
               cp -r itcast/* ./ itheima/:将itcast目录下所有内容复制到itheima目录下

(2)mv命令

        1)作用:重命名文件或目录,或者将文件或目录移动到其他位置
        2)语法:
mv source newName //重命名
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;如果itheima目录存在,将itcast目录移动到itheima目录中

5.打包压缩tar命令

        Linux 中的打包文件一般是以 .tar 结尾的,压缩文件一般是以 .gz 结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。 
(1)作用:对文件进行打包、解包、压缩、解压
(2)语法:
tar [-z/-c/-x/-v/-f] fileName.tar/.tar.gz [files]
【tips】包文件后缀为.tar表示进行了打包,并没有压缩;包文件后缀为.tar.gz表示进行了打包并压缩
  • -z:z代表的是gzip,通过gzip命令处理文件,可以对文件压缩或者解压
  • -c:c代表的是create,将文件打包
  • -x:x代表的是extract,解包
  • -v:v代表的是verbose,显示命令的执行过程
  • -f:f代表的是file,用于指定包文件的名称
【举例】假如 test 目录下有三个文件分别是:aaa.txt bbb.txt ccc.txt,现在要打包 test 目录并指定压缩后的压缩包名称为 test.tar.gz 可以使用命令:
           tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt    //打包test目录等价于将test目录下的所有文件打包并压缩
           或
           tar -zcvf test.tar.gz /test/   
//直接打包test目录
★注意:先是打包后的名字,再是要打包的文件!
(3)常用组合
  • -cvf:将指定文件打包
  • ★-zcvf:将指定文件打包并压缩
  • -xvf:将指定包解包
  • -zxvf:将指定压缩包解压
【tips】★-C:解压到指定目录,举例:tar  -zxvf  xxx.tar.gz  -C /user/local

6.文本编辑命令

(1)vi命令

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

(2)★vim命令

        1)作用:vim是vi的增强版,可以对文本内容进行着色,所以vim更常用。
        2)语法:
vim fileName
【tips】、在使用vim命令编辑文件时,如果指定文件存在则直接打开此文件,如果指定的文件不存在则新建文件。
        3)vim的安装命令:
yum install vim
        4)vim编辑时的三种模式:
                vim在进行文本编辑时共分为三种模式,分别是命令模式(Command mode)、插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。
  • 【命令模式】
    • 命令模式下可以查看文件内容移动光标(上下左右箭头、gg:移动到开头、G:移动到末尾) 
    • 通过vim命令打开文件后,默认进入命令模式(另外两种模式需要先回到命令模式,才能进行切换)
  • 【插入模式】
    • 插入模式下可以对文件内容进行编辑
    • 在命令模式下按下[i,a,o]任意一个,就能进入插入模式。进入插入模式后,下方会出现【insert】字样
    •  在插入模式下按下ESC键,回到命令模式
  • 【底行模式】
    • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
    • 在命令模式下按下[:,/]任意一个,可以进入底行模式
    • 通过/方式进入底行模式后,可以对文件内容进行查找
    • 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)

7.查找命令

(1)find命令

        1)作用:指定目录下查找文件。
        2)语法:
find dirName -option fileName
  • find . -name "*.java":在当前目录及其子目录下查找.java结尾的文件
  • find /itcast -name "*.java":在/itcast目录及其子目录下查找以.java结尾的文件

(2)grep命令

        1)作用:从指定文件中查找指定的文本内容
        2)语法:
grep word fileName
  •  grep Hello Helloworld.java:查找Helloworld.java文件中出现的Hello字符串的位置
  • grep hello *.java:查找当前目录中所有以.java结尾的文件中包含hello字符串的位置

8.进程查看命令ps

        ps命令是linux下的进程查看命令,类似于Windows中的任务管理区,通过ps -ef命令可以查看当前运行的所有进程的详细信息。
        使用ps命令查看进程时,经常配合管道符|(将前一个命令的结果输出给后一个命令作为输入)查找命令grep一起使用,来查看特定进程
        比如查看包含redis字符串的进程:ps -ef | grep redis

9.防火墙(firewalld)操作命令

        systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作。
        firewall-cmd是Linux中专门用于控制防火墙的命令。
(1)查看防火墙状态
systemctl status firewalld
firewall-cmd --state
(2)暂时关闭防火墙
systemctl stop firewalld
(3)永久关闭防火墙
systemctl disable firewalld
(4)开启防火墙
systemctl start firewalld
(5)开放指定端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
(6)关闭指定端口
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
(7)立即生效
firewall-cmd --reload
(8)查看开放的端口
firewall-cmd --zone=public --list-ports

10.权限命令

        操作系统中每个文件都拥有特定的权限、所属用户和所属组,在 Linux 中权限一般分为读(readable)、写(writable)和执行(excutable),即rwx。
        一个文件有三组rwx,分别对用于文件的属主(owner)、属组(group)和其他用户(other)。通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
        通过 ll命令 可以查看某个目录下的文件或目录的权限:
        
        前面的信息是:
        
(1)文件类型
  • d:代表目录文件
  • -:代表普通文件
  • l: 代表软链接(可以认为是 window 中的快捷方式)
(2)权限分类
  • r:代表权限是可读,r 也可以用数字 4 表示
  • w:代表权限是可写,w 也可以用数字 2 表示
  • x:代表权限是可执行,x 也可以用数字 1 表示
【tips】 超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。
(3)属主、属组、其他用户
  • 属主(u) :即文件的所有者,一般是文件的创建者。用 ls ‐ahl命令 可以看到文件的所有者。
  • 属组(g) :即文件所在的组,当某个用户创建了一个文件后,这个文件的所在组就是该用户的所在组。用 ls ‐ahl命令 可以看到文件的所在组。
  • 其它用户(o) :除了文件的所有者和所在组的用户外,系统的其它用户都是文件的其它用户。
(4)修改文件权限——chmod命令
        chmod(英文全拼: change mode)命令是用来控制用户对文件的权限,可以用三位八进制数来指定权限。
        三位数字分别代表不同用户的权限:第1位表示文件拥有者u的权限,第2位表示同组用户g的权限,第3位表示其他用户o的权限:
        
【举例】修改 /test 下的 aaa.txt 的权限为文件所有者有全部权限(111-7),文件所有者所在的组有读写权限(110-6)其他用户只有读权限(100-4)
           chmod u=rwx,g=rw,o=r aaa.txt   //ugo对应指定权限
           或者 
           chmod 764 aaa.txt    //使用八进制数制定权限

(5)★开机自启动设置

        假如我们装了一个 zookeeper,我们每次开机到要求其自动启动该怎么办?

  • 新建一个脚本 zookeeper
  • 为新建的脚本 zookeeper 添加可执行权限,命令是:chmod +x zookeeper
  • 把 zookeeper 这个脚本添加到开机启动项里面,命令是:chkconfig --add zookeeper
  • 如果想看看是否添加成功,命令是:chkconfig --list

11.用户管理命令

        Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

        用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

(1)用户管理
  • useradd 选项 用户名:添加用户账号。使用useradd指令所建立的帐号,实际上是保存在 /etc/passwd文本文件中。
  • userdel 选项 用户名:删除用户帐号
  • usermod 选项 用户名:修改帐号
  • passwd 用户名:更改或创建用户的密码
  • passwd -S 用户名:显示用户账号密码信息
  • passwd -d 用户名:清除用户密码
(2)用户组管理
        每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建
        用户组的管理涉及用户组的添加、删除和修改。
        组的增加、删除和修改实际上就是对/etc/group文件的更新。
  • groupadd 选项 用户组:增加一个新的用户组
  • groupdel 用户组:要删除一个已有的用户组
  • groupmod 选项 用户组:修改用户组的属性

12.网络通信命令

(1)查看当前系统的网络配置

        要想知道网络的配置和状态,可以使用 ifconfig 或者 ip 命令来查看。 这两个命令功能差不多,不过它们属于不同的软件包:ifconfig 属于 net-tools 软件包,ip 属于 iproute2 软件包。
        2001 年起,Linux 社区已经停止维护net-tools,所以更推荐使用 ip 命令。
  • 使用这两个命令来查看网卡 ens33 的配置信息:
    • 虽然这两个命令的格式不相同,但是输出的内容基本相同,比如都包含了 IP 地址、子网掩码、MAC 地址、网关地址、MTU 大小、网口的状态以及网络包收发的统计信息,它们都与网络性能有一定的关系。
      • 网口的连接状态标志表示对应的网口是否连接到交换机或路由器等设备,如果 ifconfig 输出中看到有 RUNNING,或者 ip 输出中有 LOWER_UP,则说明物理网络是连通的;如果看不到,则表示网口没有接网线。
      • MTU 大小。默认值是 1500 字节,其作用主要是限制网络包的大小。
      • ③网口的 IP 地址子网掩码MAC 地址网关地址。这些信息必须要配置正确,网络功能才能正常工作。
      • 网络包收发的统计信息。通常有网络收发的字节数、包数、错误数以及丢包情况的信息,如果 TX(发送) RX(接收) 部分中 errors、dropped、overruns、carrier 以及 collisions 等指标不为 0 时,则说明网络发送或者接收出问题了,这些出错统计信息的指标意义如下:
            errors 表示发生错误的数据包数,比如校验错误、帧同步错误等;
            dropped 表示丢弃的数据包数,即数据包已经收到了 Ring Buffer(这个缓冲区是在内核内存中,更具体一点是在网卡驱动程序里),但因为系统内存不足等原因而发生的丢包;
            overruns 表示超限数据包数,即网络接收/发送速度过快,导致 Ring Buffer 中的数据包来不及处理,而导致的丢包,因为过多的数据包挤压在 Ring Buffer,这样 Ring Buffer 很容易就溢出了;
            carrier 表示发生 carrirer 错误的数据包数,比如双工模式不匹配、物理电缆出现问题等;
            ollisions 表示冲突、碰撞数据包数;

(2)查看socket信息

        可以使用 netstat 或者 ss 命令查看 socket、网络协议栈、网口以及路由表的信息。
        虽然 netstat 与 ss 命令查看的信息都差不多,但是在生产环境中尽量不要使用 netstat 命令,因为 netstat 的性能不好,在系统比较繁忙的情况下,频繁使用 netstat 命令会对性能开销雪上加霜,所以更推荐使用性能更好的 ss 命令。
        
        可以发现两个命令输出的内容都差不多,比如都包含了 socket 的状态(State)、接收队列(Recv-Q发送队列(Send-Q、本地地址(Local Address)、远端地址(Foreign Address)、进程 PID 和进程名称(PID/Program name)等。

(3)查看协议栈统计信息

        
  • ss 命令输出的统计信息比 netsat 少,ss 只显示已经连接(estab)、关闭(closed)、孤儿(orphaned) socket 等简要统计。
  • netstat 则有更详细的网络协议栈信息,比如上面显示了 TCP 协议的主动连接(active connections openings)、被动连接(passive connection openings)、失败重试(failed connection attempts)、发送(segments send out)和接收(segments received)的分段数量等各种信息。

(4)查看网络吞吐率和 PPS

        PPS:全称是 Packet Per Second(包 / 秒),表示以网络包为单位的传输速率,一般用来评估系统对于网络的转发能力。
        可以使用 sar 命令查看当前网络的吞吐率和 PPS,用法是给 sar 增加 -n 参数就可以查看网络的统计信息,比如:
  • sar -n DEV,显示网口的统计数据:

    • rxpck/s 和 txpck/s 分别是接收和发送的 PPS,单位为包 / 秒。
    • rxkB/s 和 txkB/s 分别是接收和发送的吞吐率,单位是 KB/ 秒。
    • rxcmp/s 和 txcmp/s 分别是接收和发送的压缩数据包数,单位是包 / 秒。
  • sar -n EDEV,显示关于网络错误的统计数据;
  • sar -n TCP,显示 TCP 的统计数据。
        对于带宽,可以使用 ethtool 命令来查询,它的单位通常是 Gb/s 或者 Mb/s,不过注意这里小写字母 b ,表示比特而不是字节。如下可以看到 ens33 网卡就是一个千兆网卡:
        

(5)查看网络连通性和延时

        要测试本机与远程主机的连通性和延时,通常是使用 ping 命令,它是基于 ICMP 协议的,工作在网络层
        比如要测试虚拟机到 主机 IP 地址的连通性和延时:
        
        上面显示的内容主要包含 icmp_seq(ICMP 序列号)、TTL(生存时间,或者跳数)以及 time(往返延时),而且最后会汇总本次测试的情况,如果网络没有丢包,packet loss 的百分比就是 0。
【tips】ping 不通服务器并不代表 HTTP 请求也不通,因为有的服务器防火墙是会禁用 ICMP 协议的。

13.关机和重启命令

  • shutdown:
        shutdown -h now: 指定现在立即关机;
        shutdown +5 "System will shutdown after 5 minutes":指定 5 分钟后关机,同时送出警告信息给登入用户。
  • reboot:
        reboot: 重开机;
        reboot -w: 做个重开机的模拟(只有纪录并不会真的重开机)。

三、软件安装

1.软件安装方式

(1)二进制发布包安装
        软件已经针对具体平台编译打包发布,只要解压,修改配置即可。
(2)rpm安装
        软件已经按照redhat的包管理规范进行打包,使用rpm命令安装,但不能自行解决库依赖问题
(3)yum安装
        一种在线软件安装方式,使用yum命令安装,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题。
(4)源码编译安装
        软件以源码工程的形式发布,需要自己编译打包。

2.安装JDK

(1)使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
(2)解压安装包,命令为
tar -zxvf jdkxxx.tar.gz -C/usr/local
(3)配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置
JAVA_HOME=/usr/local/jdkxxx
PATH=$JAVA_HOME/bin:$PATH
(4)重新加载profile文件,使更改的配置立即生效,命令为
source /etc/profile
(5)检查安装是否成功,命令为java -version

3.安装Tomcat

(1)使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux
(2)解压安装包,命令为tar -zxvf apache-tomcat-xxx.tar.gz -C/usr/local
(3)进入Tomcat的bin目录启动服务,命令为sh startup.sh或者./startup.sh
(4)验证Tomcat是否启动成功的方法:
        1)查看启动日志
  • more /usr/local/apache-tomcat-xxx/logs/catalina.out
  • tail -50 /usr/local/apache-tomcat-xxx/logs/catalina.out
        2)查看进程
  • ps -ef | grep tomcat
(5)停止Tomcat服务:
        1)运行Tomcat的bin目录中提供的停止服务的脚本文件shutdown.sh
  • sh shutdown.sh
  • ./shutdown.sh
        2)结束Tomcat进程
  • 查看Tomcat进程,获得进程id
  • 执行命令kill -9 进程id”结束Tomcat进程

4.安装MySQL

(1)检测当前系统中是否安装MySQL数据库
        如果当前系统中已经安装有MySQL数据库,安装将失败。比如CentoS7自带mariadb,与MySQL数据库冲突,会导致MySQL数据库安装失败,所以要先将其卸载。
  • rpm -qa:查询当前系统中安装的所有软件
  • rpm -qa l grep mysql:查询当前系统中安装的名称带mysql的软件
  • rpm -qa l grep mariadb:查询当前系统中安装的名称带mariadb的软件
(2)卸载已经安装的冲突软件
  • rpm -e --nodeps 软件名称:卸载指定软件
(3)将MySQL安装包上传到Linux并解压
        
(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
【tips】可以通过命令yum update升级现有软件及系统内核。
(5)启动MySQL
  • systemctl status mysqld:查看mysql服务状态
  • systemctl start mysqld:启动mysql服务
  • systemctl enable mysqld:设置开机自动启动MySQL服务
  • netstat -tunlp:查看已经启动的服务
  • ps -ef | grep mysql:查看mysql进程
(6)查阅临时密码,登录MySQL数据库
  • cat /var/log/mysqld.log | grep password:查看文件内容中包含password的行信息
(7)登录MySQL数据库
  • mysql -urpot -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;
(8)测试Mysql数据库是否正常工作
  • show databases;

5.安装lrzsz

        Lrzsz是在linux中可以代替ftp的文件上传和下载的软件。
(1)搜索lrzsz安装包,命令为“yum list lrzsz”
(2)使用yum命令在线安装,命令为“yum install lrzsz.x86_64”
(3)安装好lrzsz后就可以使用“rz”命令来进行文件上传了。

6.安装git     

yum -y install git

7.安装maven

(1)上传下载好的maven安装包
(2)解压apache-maven-3.6.1-bin.tar.gz文件
(3)配置maven仓库,设置阿里镜像仓库
        1)进入apache-maven-3.6.1目录,创建本地仓库目录
cd apache-maven-3.6.1/
mkdir mvn_repo
        2)在conf目录下的settings.xml中配置本地仓库目录
<localRepository>/usr/local/apache-maven-3.6.1/mvn_repo</localRepository>
        3)在conf目录下的settings.xml中配置阿里云镜像仓库
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>
        4)配置maven环境变量
vi /etc/profile

export MAVEN_HOME=/usr/local/apache-maven-3.6.1
export PATH=$PATH:$MAVEN_HOME/bin
        5)重新加载一下使新增配置生效
source /etc/profile
        6)安装完成,测试
mvn -v

四、项目部署

1.手工部署项目

(1)在IDEA中将开发的SpringBoot项目打成jar包
        pom文件中必须有以下依赖:
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
(2)将jar包上传到Linux服务器
        创建app目录,将项目jar包上传到此目录下。
mkdir /usr/local/app
(3)启动Spring程序
java -jar xxx.jar
(4)
检查***,确保8080端口对外开放,访问SpringBoot项目
(5)改为后台运行SpringBoot程序,并将日志输出到日志文件★
  • 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
  • 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
        
        
(6)停止SpringBoot程序
        通过终止进程的方式停止该程序:先查询进程id,再kill
ps -ef | grep 'java -jar'
kill -9 进程id

2.通过shell脚本自动部署项目★

(1)在Linux中安装Git
  • yum list git:列出git安装包
  • yum install git:在线安装git
(2)使用Git克隆代码
  • git clone url
(3)在Linux中安装maven
        
(4)编写Shell脚本(拉取代码、编译、打包、启动)
(5)为用户授予执行Shell脚本的权限★
        1)Linux中的权限分为:读(r)写(w)执行(x)三种权限,Linux的文件调用权限分为三级:文件所有者(Owner)用户组(Group)其它用户(Other Users) 。只有文件的所有者超级用户可以修改文件或目录的权限。
                
        2)要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行。
        3)chmod(英文全拼: change mode)命令是控制用户对文件的权限的命令 ,chmod命令可以使用八进制数来指定权限。举例:
  • chmod 777 bootStart.sh:为所有用户授予读、写、执行权限
  • chmod 755 bootStart.sh:为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
  • chmod 210 bootstart.sh:为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
【tips】三位数字分别代表不同用户的权限:第1位表示文件拥有者的权限,第2位表示同组用户的权限,第3位表示其他用户的权限。
                
(6)执行Shell脚本
(7)设置静态ip
        修改文件/etc/sysconfig/network-scripts/ifcfg-ens33,内容如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#######################改下面几行#######################
BOOTPROTO="static"          #使用静态IP地址,默认为dhcp
IPADDR="192.168.138.100"    #设置的静态IP地址
NETMASK="255.255.255.0"     #子网掩码
GATEWAY="192.168.138.2"     #网关地址
DNS1="192.168.138. 2"      #DNS服务器
########################################################
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes "
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-be8d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes"                #是否开机启用
(8)重启网络服务
systemctl restart network




全部评论

相关推荐

01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
没有offer的呆呆:日常和暑期都投试一试,3月份机会挺多的
点赞 评论 收藏
分享
评论
1
9
分享

创作者周榜

更多
牛客网
牛客企业服务