Linux中CentOS 7版本安裝JDK、Tomcat、MySQL、lezsz、maven軟體詳解

来源:https://www.cnblogs.com/wren/archive/2022/09/27/16733092.html
-Advertisement-
Play Games

軟體安裝 在Linux系統中,安裝軟體的方式主要有四種,這四種安裝方式的特點如下: | 安裝方式 | 特點 | | | | | 二進位發佈包安裝 | 軟體已經針對具體平臺編譯打包發佈,只要解壓,修改配置即可 | | rpm安裝 | 軟體已經按照redhat的包管理規範進行打包,使用rpm命令進行安裝 ...



軟體安裝


在Linux系統中,安裝軟體的方式主要有四種,這四種安裝方式的特點如下:


安裝方式 特點
二進位發佈包安裝 軟體已經針對具體平臺編譯打包發佈,只要解壓,修改配置即可
rpm安裝 軟體已經按照redhat的包管理規範進行打包,使用rpm命令進行安裝,不能自行解決庫依賴問題
yum安裝 一種線上軟體安裝方式,本質上還是rpm安裝,自動下載安裝包並安裝,安裝過程中自動解決庫依賴問題(安裝過程需要聯網)
源碼編譯安裝 軟體以源碼工程的形式發佈,需要自己編譯打包

安裝JDK


上述我們介紹了Linux系統軟體安裝的四種形式,接下來我們就通過第一種(二進位發佈包)形式來安裝JDK。 JDK對應的二進位發佈包,如下:


在這裡插入圖片描述


JDK具體安裝步驟如下:


1). 上傳安裝包

使用FinalShell自帶的上傳工具將jdk的二進位發佈包上傳到Linux

在這裡插入圖片描述

由於上述在進行文件上傳時,選擇的上傳目錄為根目錄 /,上傳完畢後,我們執行指令 cd / 切換到根目錄下,查看上傳的安裝包。

在這裡插入圖片描述


卸載以前的JDK

# 查看安裝的jdk
rpm -qa | grep java
    
# 卸載已有的jdk
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b03-1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b03-1.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.221-2.6.18.1.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.221-2.6.18.1.el7.x86_64

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

在這裡插入圖片描述


安裝Tomcat


Tomcat的安裝和上述JDK的安裝採用相同的方式,都是使用二進位發佈包的形式進行安裝,在我們的資料目錄下,也已經準備了Tomcat的安裝包:


在這裡插入圖片描述


具體安裝步驟如下:


1). 上傳安裝包

使用FinalShell自帶的上傳工具將Tomcat的二進位發佈包上傳到Linux(與前面上傳JDK安裝包步驟一致)。


在這裡插入圖片描述


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

在這裡插入圖片描述


在這裡插入圖片描述


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 一起使用,來查看特定進程


防火牆操作

前面我們已經通過日誌的方式及查看系統進程的方式,驗證了Tomcat服務已經正常啟動,接下來我們就可以嘗試訪問一下。訪問地址:http://192.168.138.130:8080,我們發現是訪問不到的。


在這裡插入圖片描述


那為什麼tomcat啟動成功了,但就是訪問不到呢?原因就在於Linux系統的防火牆,系統安裝完畢後,系統啟動時,防火牆自動啟動,防火牆攔截了所有埠的訪問。接下來我們就需要學習一下,如何操作防火牆,具體指令如下:


操作 指令 備註
查看防火牆狀態 systemctl status firewalld / firewall-cmd --state
暫時關閉防火牆 systemctl stop firewalld
永久關閉防火牆(禁用開機自啟) systemctl disable firewalld 下次啟動,才生效
暫時開啟防火牆 systemctl start firewalld
永久開啟防火牆(啟用開機自啟) systemctl enable 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

註意:

​ A. systemctl是管理Linux中服務的命令,可以對服務進行啟動、停止、重啟、查看狀態等操作

​ B. firewall-cmd是Linux中專門用於控制防火牆的命令

​ C. 為了保證系統安全,伺服器的防火牆不建議關閉

那麼我們要想訪問到Tomcat,就可以採取兩種類型的操作:


A. 關閉防火牆

執行指令 :

systemctl stop firewalld

關閉之後,再次訪問Tomcat,就可以訪問到了。


在這裡插入圖片描述


註意: 上面我們也提到了,直接關閉系統的防火牆,是不建議的,因為這樣會造成系統不安全。


B. 開放Tomcat的埠號8080

執行指令:

①. 先開啟系統防火牆
systemctl start firewalld

②. 再開放8080埠號
firewall-cmd --zone=public --add-port=8080/tcp --permanent

③. 重新載入防火牆
firewall-cmd --reload

執行上述的操作之後,就開放了當前系統中的8080埠號,再次訪問Tomcat。


在這裡插入圖片描述


停止Tomcat

在Linux系統中,停止Tomcat服務的方式主要有兩種:


1). 運行Tomcat提供的腳本文件

在Tomcat安裝目錄下有一個bin目錄,這個目錄中存放的是tomcat的運行腳本文件,其中有一個腳本就是用於停止tomcat服務的。


在這裡插入圖片描述


我們可以切換到bin目錄,並執行如下指令,來停止Tomcat服務:

sh shutdown.sh
./shutdown.sh

2). 結束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了,這個時候,我們可以考慮使用第二種方式,強制殺死進程。


安裝MySQL


對於MySQL資料庫的安裝,我們將要使用前面講解的第二種安裝方式rpm進行安裝。那麼首先我們先瞭解一下什麼rpm?


RPM:全稱為 Red-Hat Package Manager,RPM軟體包管理器,是紅帽Linux用於管理和安裝軟體的工具。


我們要通過rpm,進行MySQL資料庫的安裝,主要的步驟如下:


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)升級現有軟體及系統內核

在這裡插入圖片描述


MySQL啟動

MySQL安裝完成之後,會自動註冊為系統的服務,服務名為mysqld。那麼,我們就可以通過systemctl指令來查看mysql的狀態、啟動mysql、停止mysql。

systemctl status mysqld		查看mysql服務狀態
systemctl start mysqld		啟動mysql服務
systemctl stop mysqld		停止mysql服務

![在這裡插入圖片描述](https://img-blog.csdnimg.cn/d79a557bc4a245bbbabcb8b1fec09d12.png)

說明:

​ 可以設置開機時啟動mysql服務,避免每次開機啟動mysql。執行如下指令:

​ systemctl enable mysqld


我們可以通過如下兩種方式,來判定mysql是否啟動:

netstat -tunlp					查看已經啟動的服務
netstat -tunlp | grep mysql		查看mysql的服務信息

ps –ef | grep mysql				查看mysql進程

在這裡插入圖片描述


備註:

A. netstat命令用來列印Linux中網路系統的狀態信息,可讓你得知整個Linux系統的網路情況。

​ 參數說明:

​ -l 或 --listening:顯示監控中的伺服器的Socket;
​ -n 或 --numeric:直接使用ip地址,而不通過功能變數名稱伺服器;
​ -p 或 --programs:顯示正在使用Socket的程式識別碼和程式名稱;
​ -t 或 --tcp:顯示TCP傳輸協議的連線狀況;
​ -u 或 --udp:顯示UDP傳輸協議的連線狀況;

B. ps命令用於查看Linux中的進程數據。


MySQL登錄

查閱臨時密碼

MySQL啟動起來之後,我們就可以測試一下登錄操作,但是我們要想登錄MySQL,需要一個訪問密碼,而剛纔在安裝MySQL的過程中,並沒有看到讓我們設置訪問密碼,那這個訪問密碼是多少呢? 那實際上,對於rpm安裝的mysql,在mysql第一次啟動時,會自動幫我們生成root用戶的訪問密碼,並且輸出在mysql的日誌文件 /var/log/mysqld.log中,我們可以查看這份日誌文件,從而獲取到訪問密碼。


可以執行如下指令:

1). cat /var/log/mysqld.log


在這裡插入圖片描述


這種方式,可以看到所有的日誌數據,文件比較大時,很不方便查看數據。我們可以通過管道符 | 配合grep來對數據進行過濾。


2). cat /var/log/mysqld.log | grep password

我們可以通過上述指令,查詢日誌文件內容中包含password的行信息。


在這裡插入圖片描述


登錄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

在這裡插入圖片描述


安裝lrzsz


lrzsz 是用於在Linux系統中文件上傳下載的軟體。大家可能會存在疑問,我們用finalShell圖形化界面就可以很方便的完成上傳下載,為什麼還要使用這個軟體來完成上傳下載呢?實際上是這樣的,Linux的遠程連接工具有很多,而finalShell只是其中的一種,而還有很多的遠程連接工具並沒有上傳下載的功能,這個時候就需要依賴於lrzsz這個軟體了。

對於lrzsz的安裝,我們需要通過第三種軟體安裝方式yum來進行安裝。這裡,我們先對yum做一個簡單介紹。


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拓展知識:

​ 1). 如果在不更改軟體來源的情況下,是需要聯網才能使用yum的,那麼我們安裝的軟體是從哪兒下載的呢,這裡就涉及到一個概念: yum源。

​ 2). 我們可以通過一個指令,來檢查當前的yum源

在這裡插入圖片描述

​ 從圖中,我們可以看到我們安裝的 CentOS7 採用的是網易的163yum源。

​ 3). 網路 yum 源配置文件位於 /etc/yum.repos.d/ 目錄下,文件擴展名為"*.repo"

在這裡插入圖片描述

​ 可以看到,該目錄下有 7 個 yum 配置文件,通常情況下 CentOS-Base.repo 文件生效。

​ 4). 添加阿裡雲yum源

​ A. 先通過 yum install wget ,安裝wget命令

​ B. 備份預設的網易163的yum源,執行指令 :

​ 切換目錄: cd /etc/yum.repos.d/

​ 創建備份目錄: mkdir bak

​ 移動現有的yum源文件到bak: mv *.repo bak/

​ C. 下載阿裡雲的yum源

​ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

​ D. 執行命令,重新生成cache

​ yum clean all

​ yum makecache

​ E. 再次查看yum源

在這裡插入圖片描述

​ 之後,我們通過yum指令安裝軟體,就是從阿裡雲下載的。


項目部署


之前我們講解Linux操作系統時,就提到,我們服務端開發工程師學習Linux系統的目的就是將來我們開發的項目絕大部分情況下都需要部署在Linux系統中。那麼在本章節,我們將通過兩種方式,來演示項目部署,分別是:手動部署項目 和 基於shell腳本自動部署。


手動部署項目


1). 在IDEA中開發SpringBoot項目並打成jar包


可以在本地的idea中先啟動當前的demo工程,然後訪問一下,看看工程是否正常訪問。


在這裡插入圖片描述


執行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項目

firewall-cmd --zone=public --list-ports

在這裡插入圖片描述


如果防火牆沒有放開8080埠,還需要放開對應的埠號,執行如下指令:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

5). 訪問測試

http://192.168.138.131:8080/hello

在這裡插入圖片描述


6). 後臺運行項目

當前這個demo工程我們已經部署成功了,並且我們也可以訪問項目了。但是這個工程目前是存在問題的,就是當前我們項目啟動的這個視窗被霸屏占用了,如果我們把這個視窗關閉掉(或ctrl+c),當前服務也就訪問不到了,我們可以試一下。


在這裡插入圖片描述


在這裡插入圖片描述


目前程式運行的問題:

A. 線上程式不會採用控制台霸屏的形式運行程式,而是將程式在後臺運行

B. 線上程式不會將日誌輸出到控制台,而是輸出到日誌文件,方便運維查閱信息


後臺運行程式:

要想讓我們部署的項目進行後臺運行,這個時候我們需要使用到linux中的一個命令 nohup ,接下來,就來介紹一下nohup命令。


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項目


在這裡插入圖片描述


基於Shell腳本自動部署


前面介紹的項目部署是手動部署,也就是部署過程中的每一步操作都需要我們手動操作。接下來,我們需要再講解一下項目的自動部署,從而來簡化項目部署的操作,那麼我們先來整體上瞭解一下項目自動部署的流程及操作步驟。


在這裡插入圖片描述


操作步驟如下:

1). 在Gitee上創建遠程倉庫,並將本地的項目代碼推送到遠程倉庫中

2). 在Linux中安裝Git,克隆代碼

3). 在Linux中安裝maven

4). 編寫Shell腳本(拉取代碼、編譯、打包、啟動)

5). 為用戶授予執行Shell腳本的許可權

6). 執行Shell腳本


推送代碼到遠程

這部分操作,大家只需要參考之前講解的Git,來完成helloworld工程代碼推送即可。

A. 創建遠程倉庫


在這裡插入圖片描述


B. 將idea中的代碼提交並推送到遠程倉庫


在這裡插入圖片描述


在這裡插入圖片描述


Git操作

1). Git軟體安裝

通過yum命令線上安裝git,執行如下指令:

yum list git			列出git安裝包
yum install git			線上安裝git

通過上述指令,安裝好git之後,我們就可以通過 git --version去驗證git的環境。


在這裡插入圖片描述


2). Git克隆代碼

cd /usr/local/
git clone https://gitee.com/ChuanZhiBoKe/helloworld.git

在這裡插入圖片描述


Maven安裝


由於我們的工程是maven工程,我們要想進行項目的編譯打包,需要用到maven的指令,所以需要安裝maven。具體操作步驟如下:


1). 上傳maven的安裝包

通過rz指令上傳maven安裝包


在這裡插入圖片描述


在這裡插入圖片描述


在這裡插入圖片描述


2). 解壓maven安裝包到/usr/local目錄

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

在這裡插入圖片描述


3). 在/etc/profile配置文件中配置環境變數

vim /etc/profile

修改配置文件,進入到命令模式,按G切換到最後一行,按a/i/o進入插入模式,然後在最後加入如下內容 :
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

然後按ESC進入到命令模式,輸入 :wq 保存並退出

在這裡插入圖片描述


要想讓配置的環境變數生效,還需要執行如下指令:

source /etc/profile

在這裡插入圖片描述


4). 修改maven的settings.xml配置文件,配置本地倉庫地址

A. 切換目錄

cd /usr/local/apache-maven-3.5.4/conf

B. 編輯settings.xml配置文件

vim settings.xml

在其中增加如下配置,配置本地倉庫地址:

<localRepository>/usr/local/repo</localRepository>

在這裡插入圖片描述


併在settings.xml中的標簽中,配置阿裡雲的私服(選做):

<mirror> 
    <id>alimaven</id> 
    <mirrorOf>central</mirrorOf> 
    <name>aliyun maven</name> 
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror> 

在這裡插入圖片描述


Shell腳本準備


Shell腳本(shell script),是一種Linux系統中的腳本程式。使用Shell腳本編程跟 JavaScript、Java編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。


在/usr/local/目錄下創建一個目錄 sh(mkdir sh),並將shell腳本上傳到該目錄下。或者直接在sh目錄下創建一個腳本bootStart.sh,然後將資料中的bootStart.sh文件打開,內容拷貝過來即可。


在這裡插入圖片描述


腳本解讀:


在這裡插入圖片描述


Linux許可權

前面我們已經把Shell腳本準備好了,但是Shell腳本要想正常的執行,還需要給Shell腳本分配執行許可權。 由於linux系統是一個多用戶的操作系統,並且針對每一個用戶,Linux會嚴格的控制操作許可權。接下來,我們就需要介紹一下Linux系統的許可權控制。


1). chmod(英文全拼:change mode)命令是控制用戶對文件的許可權的命令

2). Linux中的許可權分為三種 :讀(r)、寫(w)、執行(x)

3). Linux文件許可權分為三級 : 文件所有者(Owner)、用戶組(Group)、其它用戶(Other Users)

4). 只有文件的所有者和超級用戶可以修改文件或目錄的許可權

5). 要執行Shell腳本需要有對此腳本文件的執行許可權(x),如果沒有則不能執行


Linux系統中許可權描述如下:


在這裡插入圖片描述


解析當前腳本的許可權情況:


在這裡插入圖片描述


chmod命令可以使用八進位數來指定許可權(0 - 代表無 , 1 - 執行x , 2 - 寫w , 4 - 讀r):


許可權 rwx
7 讀 + 寫 + 執行 rwx
6 讀 + 寫 rw-
5 讀 + 執行 r-x
4 只讀 r--
3 寫 + 執行 -wx
2 只寫 -w-
1 只執行 --x
0 ---

舉例:

chmod 777 bootStart.sh   為所有用戶授予讀、寫、執行許可權
chmod 755 bootStart.sh   為文件擁有者授予讀、寫、執行許可權,同組用戶和其他用戶授予讀、執行許可權
chmod 210 bootStart.sh   為文件擁有者授予寫許可權,同組用戶授予執行許可權,其他用戶沒有任何許可權

註意:

三個數字分別代表不同用戶的許可權

  • 第1位表示文件擁有者的許可權
  • 第2位表示同組用戶的許可權
  • 第3位表示其他用戶的許可權

授權並執行腳本

在測試階段,我們可以給所有的人都賦予執行該shell腳本的許可權。所以可以執行如下指令:

chmod 777 bootStart.sh

在這裡插入圖片描述


許可權解讀:

A. 第一個7,代表當前文件所有者root用戶,對該文件具有讀寫執行許可權;

B. 第二個7,代表當前文件所有者所屬組的用戶,對該文件具有讀寫執行許可權;

B. 第三個7,代表其他用戶,對該文件具有讀寫執行許可權;


執行該shell腳本:


在這裡插入圖片描述


註意: 在執行maven指令進行打包時,第一次執行可能會耗時比較長,因為在進行maven工程的打包時,需要到中央倉庫下載工程依賴的jar包和插件(可以在settings.xml中配置阿裡雲私服加速下載)。


啟動完成之後, 我們可以查看java進程:


在這裡插入圖片描述


訪問項目:


在這裡插入圖片描述


設置靜態IP

我們目前安裝的Linux操作系統,安裝完畢之後並沒有配置IP地址,預設IP地址是動態獲取的,那如果我們使用該Linux伺服器部署項目,IP動態獲取的話,也就意味著,IP地址可能會發生變動,那我們訪問項目的話就會非常繁瑣,所以作為伺服器,我們一般還需要把IP地址設置為靜態的。


1). 設置靜態IP

設置靜態ip,我們就需要修改 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件,內容如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=afd0baa3-8bf4-4e26-8d20-5bc426b75fd6
DEVICE=ens33
ONBOOT=yes
ZONE=public

在這裡插入圖片描述


上述我們所設置的網段為138,並不是隨意指定的,需要和我們虛擬機中的虛擬網路編輯器中的NAT模式配置的網關保持一致。


在這裡插入圖片描述


2). 重啟網路服務

ip地址修改完畢之後,需要重啟網路服務,執行如下指令:

systemctl restart network

在這裡插入圖片描述


註意:重啟完網路服務後ip地址已經發生了改變,此時FinalShell已經連接不上Linux系統,需要創建一個新連接才能連接到Linux。


再次連接上Linux之後,我們再次查看IP地址,就可以看到我們所設置的靜態IP:


在這裡插入圖片描述


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 二叉樹查找指定的節點 前序查找的思路 1.先判斷當前節點的no是否等於要查找的 2.如果是相等,則返回當前節點 3.如果不等,則判斷當前節點的左子節點是否為空,如果不為空,則遞歸前序查找 4.如果左遞歸前序查找,找到節點,則返回,否繼續判斷,當前的節點的右子節點是否為空,如果不為空,則繼續向右遞歸前 ...
  • 說明 onlyoffice為一款開源的office線上編輯組件,提供word/excel/ppt編輯保存操作 以下操作均基於centos8系統,officeonly鏡像版本7.1.2.23 鏡像下載地址:https://yunpan.360.cn/surl_y87CKKcPdY4 (提取碼:1f92 ...
  • 首先CR3是什麼,CR3是一個寄存器,該寄存器內保存有頁目錄表物理地址(PDBR地址),其實CR3內部存放的就是頁目錄表的記憶體基地址,運用CR3切換可實現對特定進程記憶體地址的強制讀寫操作,此類讀寫屬於有痕讀寫,多數驅動保護都會將這個地址改為無效,此時CR3讀寫就失效了,當然如果能找到CR3的正確地址... ...
  • 什麼是Git Git 是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的項目。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。 Git 與常用的版本控制工具 CVS, Subversion 等不同,它採用了分散式版本庫的 ...
  • 使用過 nginx 的小伙伴應該都知道,這個中間件是可以設置跨域的,作為今天的主角,同樣的 反向代理中間件的 YARP 毫無意外也支持了跨域請求設置。 有些小伙伴可能會問了,怎樣才算是跨域呢? 在 HTML 中,一些標簽,例如 img、a 等,還有我們非常熟悉的 Ajax,都是可以指向非本站的資源的 ...
  • 前言 在上一篇文章CLR類型系統概述里提到,當運行時掛起時, 垃圾回收會執行堆棧遍歷器(stack walker)去拿到堆棧上值類型的大小和堆棧根。這裡我們來翻譯BotR里一篇專門介紹Stackwalking的文章,希望能加深理解。 順便說一句,StackWalker在中文里似乎還沒有統一的翻譯,J ...
  • Array.Sort Array類中相當實用的我認為是Sort方法,相比起冗長的冒泡排序,它的出現讓排序更加的簡化 結果如下: 還可以聲明一個靜態方法用來專門調用指定數組排序,從名為 array 的一維數組中 a 索引處開始,到 b 元素 從小到大排序。 註意: a + b 不能大於 array 的 ...
  • Github / Gitee QQ群(1群) : 813100564 / QQ群(2群) : 579033769 視頻教學 介紹 MiniWord .NET Word模板引擎,藉由Word模板和數據簡單、快速生成文件。 Getting Started 安裝 nuget link : https:// ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...