軟體安裝 在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: