Linux作為伺服器的常用作業系統,身為工作人員自然是要有所瞭解的
在本篇中我們會簡單介紹Linux的特點,安裝,相關指令使用以及內部程式的安裝等
本篇內容屬於《瑞吉外賣》的知識科普部分,有興趣可以檢視一下《瑞吉外賣》的相關文章內容
本節將會簡單介紹Linux的前言以及相關歷史
首先我們需要了解作業系統是幹什麼的:
不同的應用領域具有不同的主流作業系統,下面我們簡單介紹一下各領域的熱門作業系統:
Linux是由Linux Torvalds先生21歲時在芬蘭赫爾辛基大學由C語言以及部分組合語言創造出來
Linux具有以下幾點特徵:
Linux系統分為核心版和發行版
我們重點介紹幾個發行版版本的Linux系統:
我們的LInux安裝大體上分為三部分
我們的Linux安裝具有兩種安裝方法:
虛擬機器器簡單介紹:
常用虛擬機器器:
我們這次所使用的虛擬機器器是大眾選擇的虛擬機器器:
下載步驟相對簡單,只需要選擇下載路徑,其他無腦確定即可~
安裝包在《瑞吉外賣》資料中已經提供,也可以在官網檢視下載:下載 VMware Workstation Pro | CN
我們下面將進行Linux的安裝:
接下來我們來設定Linux內部的部分:
最後我們需要設定網路卡,預設情況下沒有網路卡,所以我們需要手動設定:
我們目前已經擁有了Linux系統,但是在公司中我們的Linux系統通常是安裝在一臺大機器上
我們如果想要操作就需要使用連線工具SSH,所以我們需要在我們的Window系統上下載一個連線工具SSH來操作Linux虛擬機器器
我們常用的SSH連線工具有以下幾種:
我們下面介紹finalshell的操作步驟:
在介紹Linux指令前,我們先給出Linux內部的目錄介紹圖:
我們簡單介紹上述內容:
我們先來簡單介紹幾個常用命令,讓我們先接觸一下Linux系統:
命令 | 對應英文 | 作用 |
---|---|---|
ls | list | 檢視當前目錄下的內容 |
pwd | print work directory | 檢視當前所在目錄 |
cd [目錄名] | change directory | 切換目錄 |
touch [檔名] | touch | 如果檔案不存在,就建立檔案 |
mkdir [目錄名] | make directory | 建立目錄 |
rm [檔名] | remove | 刪除指定目錄 |
clear | clear | 清除當前螢幕內容 |
簡單範例:
我們先來介紹Linux的主要命名格式:
說明:
command:命令名
[-options]:選項,可用來對命令進行控制,也可以省略
[parameter]:傳給命令的引數,可以是零個,可以是一個或多個
[ ] 表示可選
命令名,選項,資料之間有空格進行分隔
我們給出幾個範例:
ls -l 詳細顯示
cd /root 跳轉到/root目錄下
rm 2.txt 刪除2.txt檔案
touch 1.txt 2.txt 3.txt 建立1.txt 2.txt 3.txt三個檔案
rm -f 1.txt 強制刪除1.txt(不再彈出提示資訊)
簡單範例:
我們給出一些Linux的命令使用技巧:
這裡講述一個注意事項:
我們將講述幾個檔案目錄操作的具體命令
語法:ls [-al] [dir]
作用:顯式指定目錄下的內容
說明:
注意:
簡單範例:
語法:cd [dirName]
作用:用於切換當前工作目錄,即進入指定目錄
說明:
舉例:
簡單範例:
語法:cat [-n] fileName
作用:用於顯示檔案內容
說明:
簡單範例:
語法:more fileName
作用:以分頁的形式顯示檔案內容
說明:
簡單範例:
語法:tail [-f] fileName
作用:檢視檔案末尾的內容
說明:
舉例:
簡單範例:
首先展示tail的尾部展示:
再來展示tail的實時檢測:
當我們在第一個控制器使用tail 實時監控檔案尾部
同時我們在第二個控制器新增資料,這時第一個控制器的資料就會發生實時顯示
語法:mkdir [-p] dirName
作用:建立目錄
說明:
舉例:
簡單範例:
語法:rmdir [-p] dirName
作用:刪除空目錄
說明:
舉例:
簡單範例:
語法:rm [-rf] name
作用:刪除檔案或目錄
說明:
舉例:
簡單範例:
我們將講述幾個拷貝移動的具體命令
語法:cp [-r] source dest
作用:用於複製檔案或目錄
說明:
舉例:
簡單範例:
語法:mv source dest
作用:為檔案或目錄名,或將檔案或目錄移動到其他位置
舉例:
簡單範例:
我們將講述幾個拷貝移動的具體命令
語法:tar [-zcxvf] fileName [files]
作用:對檔案進行打包,解包,壓縮,解壓
說明:
打包
解包
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檔案進行解壓,井將解壓後的檔案放在/us/local目錄
簡單範例:
我們將講述幾個文字編輯的具體命令
語法:vi fileName
作用:vi命令是Linux系統提供的一個文字編輯工具,可以為文字內容進行編輯,類似於windows中的記事本
語法:vim fileName
作用:vim是基於vi開發的更強大的文字功能,可以在編輯時為其著色,方便我們處理
說明:
命令模式:
插入模式:
底行模式:
簡單範例:
我們將講述幾個文字編輯的具體命令
語法:find dirName -option fileName
作用:在指定目錄下查詢檔案
舉例:
簡單範例:
語法:grep word fileName
作用:在指定檔案中查詢指定文字內容
舉例:
簡單範例:
我們的軟體安裝大致分為四種方法:
軟體已經針對具體平臺編譯打包釋出,只要解壓,修改設定即可
軟體已經按照redhat的包管理規範進行打包,使用rpm命令進行安裝,不能自行解決庫依賴問題
一種線上軟體安裝方式,本質上還是rpm安裝,自動下載安裝包並安裝,安裝過程中自動解決庫依賴問題
軟體以原始碼工程的形式釋出,需要自己編譯打包
我們直接給出JDK的安裝步驟(JDK安裝包在資料中):
# 進入設定
vim etc/profile
# 新增設定
JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH
首先我們需要先安裝Tomcat:
我們目前的Tomcat已經安裝成功並啟動,我們給出兩種檢測啟動的方法:
more /usr/local/apache-tomcat-7.0-57/logs/catalina.out
tail -50 /usr/local/apache-tomcat-7.0-57/logs/catalina.out
ps -ef|grep tomcat
# ps命令是linux下非常強大的程序檢視命令,通過ps -ef可以檢視當前執行的所有程序的詳掘資訊
# 「|」在Linux中稱為管道符,可以將前一個命令的結果輸出給後一個命令作為輸入
# 使用ps命令檢視程序時,經常配合管道符和查詢命令grep-一起使用, 來檢視特定程序
但是我們檢視頁面的話會發現是無法存取的,這是因為我們的防火牆會將請求攔截
接下來我們來學習關於防火牆的相關操作:
# 檢視防火牆狀態
systemctl status frewalld,firewall-cmd --state
# 暫時關閉防火牆
systemctl stop firewalld
# 永久關閉防火牆
systemctl disable firewalld
# 開啟防火牆
systemctl start firewalld
# 開放指定埠(8080)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 關閉指定埠(8080)
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
# 立即生效
frewalld-cmd -reload
# 檢視開放的埠
firewall-cmd --zone=public --list-ports
# 注意:
# systemctl是管理Linux中服務的命令,可以對服務進行啟動, 停止、重啟、藍番狀態等操作
# firewall-cmd是Linux中專門用於控制防火牆的命令
# 為了保證系統安全,伺服器的防火牆不建議關閉
所以我們只需要將Tomcat的埠開啟即可
# 開放指定埠(8080)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 立即生效
frewalld-cmd -reload
最後我們介紹一下如何關閉Tomcat:
# 關閉Tomcat指令碼
sh shutdown.sh
# 關閉Tomcat指令碼
./shutdown.sh
# 檢視程序id
ps -ef|grep tomcat
# 結束程序(假設程序號為7742),-9表示強制結束
kill -9 7742
首先我們先來對Linux進行檢測是否存在mysql:
# 檢視所有軟體
rpm -qa
# 檢視帶有mysq的l所有軟體
rpm -qa|grep mysql
# 檢視帶有mariadb的所有軟體(mariadb與mysql不相容,不能同時存在)
rpm -qa|grep mariadb
這時我們應該檢測不到MySQL,但檢測到了mariadb,所以我們需要先解除安裝mariadb:
# 解除安裝格式
rpm -e --nodeps 軟體名稱
# 解除安裝mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
然後我們上傳解壓mysql壓縮包:
# 建立存放mysql的資料夾
mkdir /usr/local/mysql
# 解壓(得到六個rpm包)
tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz /usr/local/mysql
我們需要按順序安裝rpm包:
# 1
mysql-community-common
# 2
mysql-community-libs
# 3
mysql-community-devel
# 4
mysql-community-libs-compat
# 5
mysql-community-client
# 6.1 需要下載一個依賴new-tools
yum install new-tools
# 6.2
mysql-community-common
# 升級指令(升級現有軟體以及核心)
yum update
然後我們啟動資料庫即可:
# 檢視資料庫服務狀態
systemctl status mysqld
# 開啟資料庫
systemctl start mysqld
# 開機自動啟動
systemctl enable mysqld
# 檢視已啟動的服務
netstat -tunlp
netstat -tunlp|grep mysql
# 檢視mysql程序
ps -ef|grep mysql
登入資料庫,查詢臨時密碼:
# 系統會為我們提供臨時密碼,我們需要先獲得臨時密碼登入資料庫
cat /var/log/mysqld.log
cat /var/log/mysqld.log|grep password
然後我們就可以登入資料庫進行修改:
# 登入資料庫
mysql -uroot -p
# 修改密碼步驟
# 設定密碼長度
set global vaildate_password_length=6;
# 設定密碼安全等級
set global vaildate_password_policy=LOW;
# 設定密碼
set password = password("123456");
# 開啟存取許可權(只有開啟後,外部使用者才能存取該資料庫)
grant all on *.* 'root'@'%' identified by '123456';
# 重新整理
flush privileges;
# 最後記得退出,使防火牆開啟mysql的埠
exit;
# 開放指定埠(3306)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 立即生效
frewalld-cmd -reload
至此我們的資料庫設定完畢,我們可以到我們的Navicat中新增該資料庫:
我們最後介紹最簡單的安裝方式Yum:
操作步驟如下:
yum list lrzsz
yum install lrzsz.x86_64
最後我們來介紹兩種專案部署方式
手工專案部署的全部操作都需要我們手動來執行
下面我們來介紹具體步驟:
mkdir /usr/local/app
java -jar .jar包名稱
firewall-cmd --zone=public --add-port=8080/tcp --permanent
到這裡我們的專案就已經部署完畢了,你可以到頁面進行存取檢視是否部署成功
但此時我們的專案應該是獨佔一個螢幕,如果想要其他操作需要另開一個螢幕,此外如果關閉該遮蔽專案也會關閉
# 我們將介紹nohup命令:用於不結束通話地執行指定命令,退出終端不會影響程式的執行
# 語法格式:nohup Command [Arg...] [&]
# 引數說明:
# Command:要執行的命令
# [Arg...]:一些引數,可以指定輸出檔案
# [&]:讓命令在後臺執行
# 舉例:
nohup java -jar boot工程.jar &> hello.log &
這樣專案就不會獨佔螢幕,同時我們就可以在hello.log中查詢紀錄檔
我們停止服務的方式採用原始的kill方法
# 查ID
ps -ef|grep java -jar
# 停止服務
kill -9 ID
至此手動部署專案介紹完畢
我們的自動專案部署一般採用Shell指令碼進行部署:
# 我們採用Git在網上下載我們實際開發的資源
# 首先下載Git
yum list git
yum install git
# 將專案克隆下來
cd /usr/local
git clone SSH程式碼
# 將資源包匯入(資料提供)
# 解壓
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
# vim /etc/profile進入組態檔,修改設定資訊,在末尾加入以下資訊
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
# 重新整理組態檔
source /etc/profile
# 檢視是否設定成功
mvn -version
# vim /usr/local/apache-maven-3.5.4/conf/setting.xml,在setting找到localRepository修改本地倉庫,加入下述語句
<localRepository>/usr/local/repo</localRepository>
# Shell指令碼就是Linux中的指令碼程式
# 使用Shell指令碼程式設計就和Java程式設計相似,提前書寫好語句,執行後開始執行內部編寫的語句
# 這裡的Shell大致意思是
# 1.首先刪除現有的專案
# 2.利用Git從網路上搬下最新的專案
# 3.解包並開始執行新專案
至此自動專案部署基本完成
但是我們還需要注意一些內容:
我們目前的許可權是無法啟動sh指令碼的,因為sh指令碼預設情況下是隻具有rw(讀寫)權能
Linux中分為三種權能:讀(r),寫(w),執行(x)三種全能
呼叫者分為三類:檔案所有者(Owner),使用者組(Group),其他使用者(Other User)
只有使用者的所有者和超級使用者Root可以修改或目錄的許可權
我們常使用Chmod來進行授權給使用者相應的權力:
# Chmod通常採用八進位制來指定許可權
# 預設格式為:chmod 許可權數位*3 檔名
# 第一位是Owner,第二位是Group,第三位是Other User
我們把許可權主要分為8種:
# | 許可權 | rwx |
---|---|---|
7 | 讀+寫+執行 | rwx |
6 | 讀+寫 | rw- |
5 | 讀+執行 | r-x |
4 | 唯讀 | r-- |
3 | 寫+執行 | -wx |
2 | 只寫 | -w- |
1 | 只執行 | --x |
0 | 五 | --- |
我們採用ll查詢檔案時,檔案前面的三層rwx就代表著各呼叫者型別的許可權:
我們有時重啟虛擬機器器後,可能會導致IP更換,使原有的程式或聯結器無法使用
這時我們就需要設定靜態IP來處理這個問題,首先我們需要查詢當前該虛擬機器器使用的子網(編輯+虛擬網路編輯器):
這時我們只需要進入虛擬機器器中修改響應檔案即可:
# 進入該檔案
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改一下內容(使用靜態IP地址)
BOOTPROTO="static"
# 新增以下內容(就在上述語句下新增即可)
IPADDR="192.168.44.???" # 需要和子網IP對應,後三位可以任意取值,注意後續如果連線不上需要修改相應ip
NETMASK="255.255.255.0" # 子網掩碼
GATEWAY="192.168.44.2" # DNS伺服器
最後只需要重新啟動即可:
# 重啟
systemctl restart network
# 注意:如果你的IP地址發生變化,那麼你的聯結器包括資料庫都需要進行修改
該篇內容到這裡就結束了,希望能為你帶來幫助~
該文章屬於學習內容,具體參考B站黑馬程式設計師的Java專案實戰《瑞吉外賣》
這裡附上視訊連結:Linux-01-Linux課程介紹_嗶哩嗶哩_bilibili