Linux大全
- 1、虛擬機安裝
- 2、虛擬機網路連接方式
- 3、安裝vmtools
- 4、虛擬機目錄
- 4.1、目錄含義
- 4.2、Linux顏色含義
- 5、遠程登錄軟體
- 6、編輯命令
- 7、用戶管理
- 8、CentOS7找回root密碼
- 9、檔案目錄指令
- pwd指令
- ls指令
- cd指令
- mkdir指令
- rmdir指令
- touch指令
- cp指令
- rm指令
- mv指令
- cat指令
- more指令
- less指令
- echo指令
- head指令
- tail指令
- 指令>和指令>>
- ln指令
- history指令
- 10、日期指令
- 11、查找指令
- 1、find指令
- 2、locate指令
- 3、which指令
- 4、grep指令
- 12、壓縮解壓指令
- 1、gzip和gunzip指令
- 2、zip和unzip指令
- 3、tar指令
- 13、Linux組
- 13.1、所有者和組
- 13.2、權限介紹
- 13.3、修改權限chmod
- 13.4、修改檔案所有者
- 14、定時任務調度
- 14.1、任務調度分類
- 14.2、重啟任務調度
- 14.3、at定時任務
- 14.4、at指定時間的方式
- 15、Linux磁盤磁區
- 15.1、磁區原理
- 15.2、硬碟說明
- 16、網路配置
- 17、行程管理
- 17.1、查看當前系統中哪些行程正在執行
- 17.2、終止行程
- 17.3、查看行程樹
- 17.4、服務管理
- 17.5、指定運行級別
- 17.6、chkconfig指令
- 17.7、systemctl指令
- 17.8、防火墻
- 17.8.1、firewall指令
- 17.9、動態監控行程
- 18、rpm和yum
- 18.1、rpm
- 18.2、yum
- 19、Java環境安裝
- 19.1、jdk安裝
- 19.2、Tomcat安裝
- 19.3、MySQL安裝
- 20、Shell編程
- 20.1、Shell腳本執行方式
- 20.2、shell變數
- 20.2.1、設定環境變數(全域變數)
- 20.2.2、位置引數變數
- 20.2.3、預定義變數
- 20.3、運算子
- 20.4、條件判斷
- 20.5、流程控制
- 20.5.1、if使用
- 20.5.2、case陳述句
- 20.5.3、for使用
- 20.5.4、while使用
- 20.5.5、read讀取控制臺輸入
- 20.6、函式
- 20.7、資料備份案例
- 21、日志管理
- 21.1.系統常用日志
- 21.2、自定義日志
- 21.3、日志輪替
- 22、資料備份和恢復
- 23、Linux可視化管理
- 23.1、webmin安裝
- 23.2、BT寶塔安裝
1、虛擬機安裝
VMware15.5安裝,傻瓜式安裝,只記錄變動步驟,其余都下一步,軟體安裝位置自己選擇,最好別選c盤,軟體地址https://www.nocmd.com/windows/740.html(內含激活碼),安裝時需要注意它檔案不會在一個檔案夾下,自己多建一個版本檔案夾,方便管理,


檔案》新建虛擬機






點擊安裝計算機的設定》選擇鏡像后》點確定

開啟虛擬機》選第一個install centos7

等待一段時間不要亂點,亂點會卡死,》軟體選擇》最小安裝或gui服務器或gnome桌面,選好后點完成,開發中一般都選最小安裝,需要什么軟體在自行選擇,但其它安裝可以省略jdk,mysql等安裝,會自行安裝,

在這一步也可以選擇自動配置磁區,這里更快,這里我選擇我要配置磁區,

設定好/boot要1G,swap要2G,剩余都在根目錄磁區大小后,設備型別點標準磁區,點完成,

點接受更改

網路和主機名設定,需要聯網就打開以太網,

最后一個像一把鎖的安檢策略可以關閉,
點開始安裝
在這個頁面配置root賬號密碼,創建用戶賬號密碼,在實際開發中root賬號要復雜點,避免被破解,

等待完成后,點擊重啟,


再把網路連接打開,
2、虛擬機網路連接方式
1、橋接模式:同一網段中,最多只能連接255臺機子,一旦超出容易造成IP沖突,IP地址的前3位就是網段(192.168.0.1),
2、NAT(網路地址裝換)模式:虛擬機和外部通信,不會造成IP沖突,虛擬機地址不再是以0開頭,而是生成1-255之間的數,如192.168.6.1,然后主機會生成一個對應的虛擬網卡如192.168.6.6,兩者能通信,這種模式下虛擬機能訪問192.168.0.1,由于網段不同,192.168.0.1不能訪問虛擬機,
3、主機模式:虛擬網路對主機可見,虛擬機不能上網,
3、安裝vmtools
vmtools工具是實作虛擬機和主機檔案進行共享,兩個地方都能修改同一檔案,安裝步驟如下
1、右擊虛擬機 install vmware tools
2、雙擊VMware Tools,復制XXX.tar.gz壓縮包到/opt目錄下
3、桌面上打開終端,cd /opt ,進入到opt目錄下,使用解壓命令tar -zxvfVM+tab鍵提示自動補全名稱, 得到一個解壓檔案夾
4、進入該vm解壓的目錄cd vmxxx,/opt目錄下
5、安裝./vmware-install.pl
6、全部使用默認設定即可,一直按回車,就可以安裝成功
注意:安裝vmtools需有gcc ,可以使用gcc -v查看gcc版本
共享檔案夾設定
點虛擬機設定》選項》共享檔案夾》總是啟用》添加》指定檔案夾
4、虛擬機目錄
4.1、目錄含義
/bin :存放著最經常使用的命令
/home :存放普通用戶的主目錄,一般該目錄名是以用戶的賬號命名
/root :該目錄為系統管理員,也稱作超級權限者的用戶主目錄(根目錄)
/boot:Linux啟動相關檔案
/lib:系統開機所需要最基本的動態連接共享庫,其作用類似于Windows里的DLL檔案,
/lost+ found這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些檔案
/etc:系統管理所需配置和子檔案目錄
/user:用戶應用程式和檔案
/proc[不能動]:是虛擬目錄,系統記憶體映射,訪問這個目錄獲取系統資訊
/srv[不能動]:存放服務啟動后所需資料
/sys[不能動]:該目錄安裝了2.6內核新出現的檔案系統
/tmp:存放臨時檔案
/mnt:存放掛載檔案
/opt:給主機額外安裝軟體的目錄,即軟體存放目錄
/user/local:軟體安裝后的目標目錄,一般是編譯原始碼的方式安裝的程式
4.2、Linux顏色含義
藍色表示目錄,白色表示檔案,紅色表示壓縮檔案,綠色表示可執行權限
5、遠程登錄軟體
XShell和XFTP下載地址:網站一
網站二推薦
虛擬機終端輸入ifconfig,找到虛擬機地址,如果找不到ip地址就重新設定網路,編輯》虛擬網路編輯器》更改設定》還原默認設定,
6、編輯命令
vi、vim都是編輯命令,vim是vi的增強版,它們有三種模式,一般模式,編輯模式(能輸入內容),命令模式,
一般模式:輸入的內容看不見
編輯模式:可以自由輸入內容,可見
命令模式:在檔案末尾位置,可見
命令模式》一般模式:vim或vi
一般模式》編輯模式:i、o、a、r等按鍵
編輯模式》一般模式:esc
一般模式》命令模式::,/
:wq:保存退出
:q:不保存退出
:q!:強制退出
自動補全檔案名:tab
拷貝當前行(一般模式):yy,并粘貼輸入p
拷貝當前行向下的i行:iyy,
洗掉當前行:dd
洗掉當前行向下的i行idd
在檔案中查找某個單詞(命令模式)敲/,回車查找,輸入n就是查找下一個
設定檔案的行號(:進入命令模式):命令列下set nu
取消檔案的行號:set nonu
使用快捷鍵到該檔案的最末行[G]和最首行[gg](一般模式下)
在一個檔案中輸入"hello"然后又撤銷這個動作,一般模式下按u
立即關機:shutdown -h now
一分鐘后關機:shutdown -h 1
重啟計算機:reboot
獲取幫助資訊:man 【命令或組態檔】(按空格顯示更多幫助資訊)
獲取內置命令幫助資訊:help 命令
7、用戶管理
切換用戶:su - 用戶名
權限高的用戶切換到低權限用戶不需要輸入密碼,反之需要,回傳原來用戶時,exit或logout
添加用戶:useradd 用戶名
給用戶指定密碼:passwd 用戶名
顯示當前用戶所在目錄:pwd
洗掉用戶(保留家目錄):userdel 用戶名
洗掉用戶(洗掉包括家目錄):userdel -r 用戶名
查詢用戶資訊:id 用戶名
查看當前登錄用戶:who am i
用戶組:系統對有權限的用戶同一管理
新增組:groupadd 組名
洗掉組:groupdel 組名
新增用戶直接分組:useradd -g 用戶組 用戶名
修改用戶組:usermod -g 用戶組 用戶名
8、CentOS7找回root密碼
1、啟動系統,進入開機頁面,按e鍵進入編輯頁面
2、游標向下移動,找到以“Linux16”開頭的行數,行末輸入init=/bin/sh,接著按ctr+x進入單用戶模式,
3、在游標閃爍位置輸入:mount -o remount,rw /,完成后回車
4、接著輸入passwd,完成后回車,輸入密碼后回車,再次輸入密碼,修改成功后會顯示passwd……
5、接著在游標位置輸入:touch /.autorelabel,完成后回車,等待系統重啟,新密碼就生效了,
9、檔案目錄指令
pwd指令
顯示當前目錄的絕對路徑
ls指令
查看當前目錄的所有內容資訊:ls 【選項】【目錄或檔案】
常用選項有:
-a ,查看所有檔案和目錄包括隱藏檔案
-l,以串列形式顯示資訊
cd指令
切換目錄:cd 【引數】
cd~或cd:回到自個家目錄
回傳當前目錄的上一級目錄:cd ..
mkdir指令
創建一個目錄:mkdir 創建的目錄
創建多個目錄:mkdir -p /test/one
rmdir指令
洗掉一級目錄:rmdir 洗掉的空目錄
如果洗掉的目錄下有內容,非得洗掉的話使用:rm -rf 要洗掉的目錄
touch指令
創建空檔案:touch 檔案名稱
cp指令
cp 【選項】 源檔案 目標檔案
選項:-r 遞回復制整個檔案夾
強制覆寫不提示方法:\cp cp -r src dest
rm指令
移除檔案或目錄:rm 【選項】要洗掉的檔案或目錄
常用選項:
遞回洗掉檔案夾:-r
強制洗掉不提示:-f
mv指令
用于移動檔案與目錄或重命名
兩個檔案同一目錄會重命名:mv 舊檔案名 新檔案名
兩檔案不同目錄會移動:mv 要移動的檔案 移動到的位置
cat指令
查看檔案內容:cat 【選項】要查看的檔案
常用選項:
顯示行號:-n
cat只能瀏覽,不能修改,為瀏覽方便,一般會帶上 管道命令|(|是或符號不是大寫i,表示前一個指令結果交給后面的指令處理):|more
例:cat -n /etc/profile | more
more指令
| 操作 | 功能 |
|---|---|
| 空格 | 翻頁 |
| 回車 | 向下一行 |
| ctr+f | 向下滾動一屏 |
| ctr+b | 回傳上一屏 |
| = | 輸出當前行號 |
| :f | 輸出檔案名和當前行 |
less指令
less指令在顯示檔案內容時,并不是一次將整個檔案加載之后才顯示,而是根據顯示需要加載內容,對于顯示大型檔案具有較高的效率,
分屏查看檔案內容:less 要查看的檔案
| 操作 | 功能 |
|---|---|
| 空格 、pagedown | 向下翻頁 |
| pageup | 向上翻頁 |
| /子串 | 查找字串內容,n向下找,N向上找 |
echo指令
輸出內容到控制臺:echo 【選項】 【輸出內容】
head指令
用于顯示檔案開頭部分內容,默認只顯示前10行:head 檔案
查看檔案頭5行:head -n 5[數字] 檔案
tail指令
查看檔案中尾部的內容,默認顯示檔案的尾10行內容:tail 檔案
查看檔案尾5行:tail -n 5[數字] 檔案
實時追蹤該檔案的所有更新:tail -f 檔案
指令>和指令>>
輸出重定向(覆寫)>,追加>>
將串列內容覆寫寫入檔案:ls -l > 檔案
將串列內容追加寫入檔案:ls -al >> 檔案
將檔案1內容覆寫到檔案2:cat 檔案1 > 檔案2
將內容追加到檔案:echo 內容 >> 檔案
ln指令
給源檔案創建一個鏈接:ln -s [源檔案或目錄] [鏈接名]
history指令
查看所有歷史命令:history
查看最近5條命令:history 5
執行歷史編號為5的命令:!5
10、日期指令
顯示當前日期:date
顯示今年:date +%Y
顯示當前月份:date +%m
顯示當前天數:date +%d
指定格式顯示年月日時分秒:date "+%Y-%m-%d %H:%M:%S"
設定日期:date -s 字串日期
查看日歷:cal 【選項】,不指定選項, 默認當前月日歷
11、查找指令
1、find指令
find指令從指定目錄向下遞回遍歷其各個子目錄,將滿足條件的檔案或者目錄顯示在終端,
find [搜索范圍] [選項]
常用選項
-name<查詢方式>
按照指定的檔案名查找模式查找檔案
-user<用戶名>
查找屬于指定用戶名所有檔案
-size <檔案大小n>
按照指定的檔案大小查找檔案,+n大于,-n小于,n等于,+單位k,M,G
2、locate指令
快速查找指定檔案的路徑:locate 檔案
由于該指令是基于資料庫查詢,第一次使用必須用updatedb指令創建資料庫,
3、which指令
查看指令在哪個目錄下:which 指令
4、grep指令
過濾查找:grep 【選項】 查找內容 源檔案
-n:顯示匹配行和行號
-i:忽略字母大小寫
12、壓縮解壓指令
1、gzip和gunzip指令
壓縮檔案:gzip 檔案,只能將檔案壓縮為*.gz格式
解壓檔案:gunzip 需要解壓的檔案.gz
2、zip和unzip指令
專案打包發布時常用命令
壓縮檔案:zip 【選項】 XXX.zip
常用選項-r:遞回壓縮目錄
解壓檔案:unzip 【選項】 XXX.zip
常用選項-d 目錄:指定解壓后檔案存放目錄
3、tar指令
既可打包又可解壓,打包后檔案后綴是.tar.gz
打包目錄:tar 【選項】 XXX.tar.gz
| 常用選項 | 功能 |
|---|---|
| -c | 產生.tar打包檔案 |
| -z | 打包同時壓縮 |
| -x | 解包.tar檔案 |
| -v | 顯示詳細資訊 |
| -f | 指定壓縮后的檔案名 |
例:
壓縮多檔案:tar -zcvf dc.tar.gz /hmoe/bbb/cat.txt /home/bbb/dog.txt
將bbb檔案夾壓縮成myb.tar.gz:tar -zcvf myb.tar.gz bbb
將檔案解壓到當前目錄:tar -zxvf myb.tar.gz
將myb.tar.gz解壓到tom目錄下:tar -zxvf myb.tar.gz -C tom
13、Linux組
一個檔案有個所有者,所有者又歸于一個組,
13.1、所有者和組
所有者:檔案誰創建就歸誰所有
查看檔案所有者:ls -ahl
修改所有者:chown 用戶名 檔案

組的創建:groupadd 組名
新增用戶直接分組:useradd -g 用戶組 用戶名
修改檔案所在組:chgrp 組名 檔案名
其他組:除檔案的所有者和所在組的用戶外,系統的其它用戶都是檔案的其它組
改變用戶所在組(需要root的管理權限)
- usermod -g 新組名 用戶名
- usermod -d 目錄名 用戶名 (改變該用戶登陸的初始目錄,注意這里的用戶需要有進入新目錄的權限)
13.2、權限介紹
Is -I中顯示的內容如下:
d rwx r-x r-x. 2 root root 53 7月 9 20:08 bbb
0-9位說明
1.第0位確定檔案型別(d,-,I,c,b)
d是目錄,相當于windows的檔案夾
-是普通檔案
l是鏈接,相當于windows的快捷方式
c是字符設備檔案,如滑鼠,鍵盤
b是塊設備,比如硬碟
2.第1- 3位rwx該檔案的所有者擁有該檔案的權限,——User
3.第4 - 6位r-x所屬組的用戶擁有該檔案的權限,——Group
4.第7 - 9位r-x其他用戶擁有該檔案的權限——Other
rwx作用:r表示讀,w表示寫,x表示可執行(作用到檔案是可執行,作用到目錄是可進入)
其他說明:
數字2 :檔案數和子目錄數和
第一個root所有者,第二個root所在組
53:檔案大小(位元組),如果是檔案夾,顯示4096位元組
7月 9 20:08:檔案最后修改日期
13.3、修改權限chmod
方式一:+、一、=變更權限
u:所有者,g:所有組,o:其他用戶,a:所有人
給檔案的所有者讀寫執行權限,給所在組讀執行權限,給其他用戶執行權限:chmod u=rwx,g=rx,o=x 檔案/目錄名
給其他人增加寫權限:chmod o+w 檔案/目錄名/所有者/所有組
該檔案不讓所有人執行:chmod a-x 檔案/目錄名/所有者/所有組
方式二:數字變更權限
r=4,w=2,x=1
chmod u=rwx,g=rx,o=x 檔案/目錄名 相當于 chmod 751 檔案/目錄名
13.4、修改檔案所有者
改變所有者:chown 改成的所有者 檔案/目錄
改變所有者和所在組:chown 新所有者:新所有組 檔案/目錄
14、定時任務調度
任務調度:系統在某個時間執行特定的命令或程式,
14.1、任務調度分類
1.系統作業:某些重要作業周而復始的進行,如病毒查殺
2.個別用戶作業:個別用戶執行某些程式,如打開qq
定時任務的設定:crontab [選項]
| 選項 | 功能 |
|---|---|
| -e | 編輯crontab定時任務 |
| -l | 查詢當前任務調度 |
| -r | 洗掉當前用戶所有的定時任務 |
14.2、重啟任務調度
service crond restart
crontab -e 回車然后輸入 */1 * * * * ls
| *號位置 | 含義 |
|---|---|
| 第一個 | 一小時當中的第幾分鐘(分鐘) |
| 第二個 | 一天當中的第幾小時(小時) |
| 第三個 | 一月當中的第幾天(天) |
| 第四個 | 一年中第幾個月(月) |
| 第五個 | 一周當中的星期幾
范圍0-7 ( 0和7都代表星期日) |
特殊符號說明
| 特殊符號 | 含義 |
|---|---|
| * | 表示任何時間,比如第一個*,表示一小時每分鐘執行一次 |
| , | 表示不連續時間,比如“0 8,10 * * * * 命令”,表示每天8點0分,10點0分執行一次命令 |
| - | 表示連續的時間范圍,比如“0 2 * * 1-6 命令”,表示周一到周六凌晨2點執行命令 |
| */n | 表示每隔多久執行一次,比如“*/10 * * * * 命令”,表示沒10分鐘執行一次命令 |
特定時間執行案例

14.3、at定時任務
at命令是一次性定時計劃任務 ,at的守護行程atd會以后臺模式運行,檢查作業佇列來運行,默認情況下, atd守護行程每60秒檢查作業佇列,有作業時,會檢查作業運行時間,如果時間與當前時間四配,則運行此作業,at命令只執行一次,
在使用at命令的時候,一定要保證atd行程的啟動,可以使用相關指令來查看
檢測當前行程有哪些:ps -ef
檢測acd行程是否在運行:ps -ef | grep atd
命令格式:at 【選項】【時間】,ctr+d結束at命令輸入
| 選項 | 功能 |
|---|---|
| -m | 當指定的任務被完成后,將給用戶發送郵件,即使沒有標準輸出 |
| -I | atq(顯示系統中待執行的任務串列)的別名 |
| -d | atrm(洗掉待執行任務佇列中的任務)的別名 |
| -v | 顯示任務將被執行的時間 |
| -V | 顯示版本資訊 |
| -c | 列印任務的內容到標準輸出 |
| -q 佇列 | 使用指定的佇列 |
| -f 檔案 | 從指定檔案讀入任務而不是從標準輸入讀入 |
| -t 時間引數 | 以時間引數的形式提交要運行的任務 |
14.4、at指定時間的方式
1、hh:mm(小時:分鐘)24小時制指定時間,如果該時間已過,會放到第二天執行,
2、使用midnight (深夜), noon (中午), teatime (飲茶時間,一般是下午4點)等模糊詞來指定時間,
3、采用12小時計時制,即在時間后面加上am (上午)或pm (下午)來說明是上午還是下午,
4、指定命令執行的具體日期,指定格式為month day(月日)或mm/dd/yy (月/日/年)或dd.mm.yy
(日.月.年) ,指定的日期必須跟在指定時間的后面, 例如: 09:00 2021-07-1
5、使用相對計時法,指定格式為: now + count time- units , now就是當前時間, time-units是時間單位,這里能夠是minutes、hous、days、weeks,count是時間的數量,幾天,幾小時,例如 : now + 5 minutes
6、直接使用today (今天)、tomorrow (明天)來指定完成命令的時間,
例1:一天后凌晨12點執行 /bin/ls /home
at 12am + 1 day,然后輸入/bin/ls /home,接著ctr+d
例2 : atq命令來查看系統中沒有執行的作業任務

例3 : 2分鐘后,輸出時間到指定檔案內比如/root/date200.log

例4 :洗掉已經設定的任務, atrm 編號
atrm 1
15、Linux磁盤磁區
15.1、磁區原理
Linux來說無論有幾個磁區,分給哪一目錄使用,歸根結底就只有一個根目錄,一個獨立且唯一的
檔案結構,Linux中每個磁區都是用來組成整個檔案系統的一部分,
Linux采用了一種叫“載入的處理方法,它的整個檔案系統中包含了一整套的檔案和目錄,且將一
個磁區和一個目錄聯系起來,一個磁區掛載一個目錄,
15.2、硬碟說明
1.Linux硬碟分IDE硬碟和SCSI硬碟,目前基本上是SCSI硬碟
2.對于IDE硬碟,驅動器識別符號為"hdx~" ,其中"hd" 表明磁區所在設備的型別,這里是指IDE硬碟,“x"為盤號( a為基本盤, b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),~”代表磁區,前四個磁區用數字1到4表示,它們是主磁區或擴展磁區,從5開始就是邏輯磁區,
3.對于SCSI面則標識為"sdx~” , SCSI硬碟是用"sd" 來表示磁區所在設備的型別的,其余的和IDE硬碟的表示方法一樣,
查看設備掛載情況:lsblk或lsblk -f

查詢磁盤使用情況:df -h 【/目錄】,不寫目錄默認查詢當前目錄
統計/opt下檔案個數:ls -l /opt | grep "^-" | wc -l(^-是以-開頭的檔案,wc統計個數)
統計/opt下目錄個數:ls -l /opt | grep "^d" | wc -l
統計/opt檔案夾下檔案的個數,包括子檔案夾里的:ls -lR /opt | grep "^-" | wc -l
統計/opt檔案夾下目錄的個數,包括子檔案夾里的:ls -lR /opt | grep "^d" | wc -l
以樹狀顯示目錄結構:tree 目錄,注意默認是沒有安裝tree的,安裝要root權限,安裝tree命令:yum install tree
16、網路配置
IP地址配置
1、自動獲取
2、指定IP地址,避免虛擬機因自動獲取IP造成地址變更,導致找不到
修改指定IP命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改內容如下
BOOTPROTO=static
#IP地址
IPADDR=192.168.200.66
#網關
GATEWAY=192.168.200.2
#域名決議器
DNS1=192.168.200.2
虛擬機改完IP地址后,vmnet8也要修改在同一網段192.168.200.X,只有在同一網段中才能ping通,
虛擬機工具列下》編輯》虛擬網路編輯器》修改子網IP》應用》確定

重啟網路服務或重啟Linux系統生效:service network restart 或 reboot
查看主機名:hostname
修改主機名:vim /etc/hostname,之后需要reboot重啟生效
設定hosts映射
設定目的是為了通過主機名來ping通
Windows下:找到C:\Windows\System32\drivers\etc\hosts 檔案指定即可,
指定內容:192.168.200.200 smile200
Linux下:/etc/hosts 檔案指定,內容:192.168.200.200 smile
17、行程管理
程式:靜態的,是躺在硬碟上,
行程:動態的,程式運行在記憶體中就是行程,
執行緒:行程的不同執行路徑,
每個行程都可能以兩種方式存在的,前臺和后臺,所謂前臺行程就是用戶目前的螢屏上可以進行操作的,后臺行程則是實際在操作,但由于螢屏上無法看到的行程,通常使用后臺方式執行,一般系統的服務都是以后臺行程的方式存在,而且都會常駐在系統中,直到關機才結束,
17.1、查看當前系統中哪些行程正在執行
ps 【選項】
PS -aux執行后,引數含義

引數 含義
USER 用戶
PID 行程號
%CPU 執行命令時候行程占用的CPU
%MEM 執行命令時候行程占用的CPU
VSZ 行程占用虛擬記憶體的大小(單位kb)
RSS 行程占用物理記憶體的大小(單位kb)
TTY 終端機號
STAT 運行狀態
? R: 正在運行
? S:睡眠
? D:短期等待
? T:被跟蹤或者被停止
? Z:僵死行程(行程可能死掉,沒有釋放)
? s:該行程是會話的先導行程
? +:該行程為前臺行程
? l:該行程是多執行緒行程
? N:低優先級行程
? <:高優先級行程
? []:表示這個一個內核執行緒
START 執行開始的時間
TIME 行程消耗cpu的時間
COMMAND 行程名,執行該行程的指令
全格式顯示所有行程,查看父行程:ps -ef
UID:用戶名
PPID:父行程
C : CPU用于計算執行優先級的因子,數值越大,表明行程是CPU密集型運算,執行優先級會降低;
數值越小,表明行程是I/O密集型運算,執行優先級會提高
STIME:行程啟動時間
CMD:啟動行程所用命令和引數
其余和上面一樣
| 選項 | 功能 |
|---|---|
| -a | 顯示當前終端的所有行程資訊 |
| -u | 以用戶的格式顯示行程資訊 |
| -x | 顯示后臺行程運行的引數 |
| -e | 顯示所有行程 |
| -f | 全格式 |
17.2、終止行程
kill 【選項】 行程號
killall 行程名稱
常用選項:-9:強迫行程立即停止
17.3、查看行程樹
pstree 【選項】
常用選項
-p :顯示行程的PID
-u :顯示行程的所屬用戶
17.4、服務管理
service管理指令
service 服務名 [start I stop | restart | reload | status]
在CentOS7.0后很多服務不再使用service ,而是systemctl
查看服務名
查看全部系統服務:setup
帶*號的服務是自動啟動的,游標移至 * 號,按空格就會洗掉,按tab鍵進行切換,

查看service指令管理的服務:ls -l /etc/init.d
17.5、指定運行級別
CentOS7后運行級別說明
指定運行級別:init 數字0-6,常用運行級別是3和5
級別說明
0:關機
1:單用戶(找回丟失密碼用)
2:多用戶狀態無網路
3:多用戶狀態有網路
4:系統未使用保留給用戶
5:圖形界面
6:虛擬機重啟
在/etc/initab進行了簡化, 如下:
multi-user.target: analogous to runlevel 3
graphical.target : analogous to runlevel 5
查看當前的運行級別是什么:systemctl get-default
修改運行級別:systemctl set-default multi-user.target
17.6、chkconfig指令
查看服務:chkconfig --list [| grep xxx]
給服務在指定的運行級別下設定開關:chkconfig --level 5 服務名 on/off
注意:使用了chkconfig指令服務自啟或關閉,需要reboot重啟生效
17.7、systemctl指令
語法:systemctl 服務名 [start I stop | restart | reload | status]
查看管理的服務:ls -l /usr/lib/systemd/system
systemctl設定服務的自啟動狀態
-
systemctl list-unit-files [ I grep服務名] (查看服務開機啟動狀態)
-
systemctl enable 服務名(設定服務開機啟動)
-
systemctl disable 服務名(關閉服務開機啟動)
-
systemctl is-enabled 服務名(查詢某個服務是否是自啟動的)
例:查看當前防火墻的狀況,關閉防火墻和啟動防火墻
1.systemctl status firewalld.service
2.systemctl stop firewalld.service
3.systemctl start firewalld.service
17.8、防火墻

防火墻打開情況下,xshell6訪問Linux需要打開22埠號,不然訪問不到,防火墻關閉后,xshell6可以直接訪問,不需要打開埠號,
打開或者關閉指定埠
在真正的生產環境,往往需要將防火墻打開,但此時外部請求資料包卻不能跟服務器監聽埠通訊,這時需要打開指定的埠,比如80、22、 3306等,
17.8.1、firewall指令
打開埠: firewall-cmd --permanent --add-port=埠號/協議
關閉埠: firewall-cmd --permanent --remove-port=埠號/協議
重新載入才能生效: firewall-cmd --reload
查看所有開放埠:firewall-cmd --zone=public --list-port
查詢埠是否開放: firewall-cmd --query-port=埠/協議
17.9、動態監控行程
top與ps命令相似,都是用來顯示正在執行的行程,top與ps最大的不同之處,在于top在執行一段時間可以更新正在運行的的行程,
指令:top 【選項】
| 選項 | 功能 |
|---|---|
| -d 秒速 | 指定top命令每隔幾秒更新,默認3秒 |
| -i | 使top不顯示任何閑置或者僵死行程 |
| -P | 通過指定監控行程ID來僅僅監控某個行程的狀態 |

互動操作說明
| 操作 | 功能 |
|---|---|
| P | 以CPU使用率排序,從大到小,默認就是此項 |
| M | 以記憶體的使用率排序,從大到小 |
| N | 以PID排序,從大到小 |
| Q或q | 退出top |
例1:監視特定用戶,比如我們監控tom用戶
top命令下,輸入“u"回車,再輸入用戶名,輸錯可按向下鍵清空,
例2 :終止指定的行程
top命令下,輸入"k"回車,再輸入要結束的行程ID號
18、rpm和yum
18.1、rpm
rpm用于下載包的打包及安裝工具,它生成具有.rpm擴展名的檔案,RPM是RedHat Package Manager ( RedHat軟體包管理工具)的縮寫,類似windows的setup.exe,
查詢所有安裝rpm軟體包:rpm -qa
查詢軟體包是否安裝:rpm -q 軟體包名
查詢軟體包資訊:rpm -qi 軟體包名
查詢軟體包中的檔案:rpm -ql 軟體包名
查詢檔案所屬的軟體包:rpm -qf 檔案全路徑名
卸載軟體包:rpm -e 軟體包
安裝軟體包:rpm -ivh 安裝的全路徑
18.2、yum
yum是個Shell前端軟體包管理器,基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,
查詢yum服務器是否有需要安裝的軟體:yum list l grep xx軟體串列
安裝指定的yum包:yum install xx下載安裝
19、Java環境安裝
19.1、jdk安裝
安裝步驟
1、創建jdk檔案夾:mkdir /opt/jdk
2、通過xftp傳輸Linux版本的jdk安裝包到/opt/jdk目錄下
3、進入jdk目錄:cd /opt/jdk
4、解壓jdk安裝包:tar -zxvf jdk-8u261-linux-x64.tar.gz
5、創建java檔案夾:mkdir /usr/local/java
6、移動jdk安裝檔案:mv /opt/jdk/jdk1.8.0_261/ /usr/local/java/
7、配置環境變數:vim /etc/profile
8、在profile文末添加
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
9、讓編輯過的環境變數生效:source /etc/profile
19.2、Tomcat安裝
安裝步驟
1、新建tomcat目錄:mkdir /opt/tomcat
2、通過xftp傳輸Linux版本的tomcat安裝包到/opt/tomcat目錄下
3、進入tomcat目錄:cd /opt/tomcat
4、解壓tomcat安裝包:tar -zxvf apache-tomcat-8.5.69.tar.gz ,下載core核心包地址https://tomcat.apache.org/download-80.cgi
5、進入tomcat的bin目錄:cd apache-tomcat-8.5.69/bin,啟動tomcat:./startup.sh
6、開放埠8080
防火墻打開8080埠號:firewall-cmd --permanent --add-port=8080/tcp
重新載入生效:firewall-cmd --reload
測驗是否打開埠號:firewall-cmd --query-port=8080/tcp
也可以通過虛擬機ip地址:8080/,查看是否可以登錄tomcat首頁,
19.3、MySQL安裝
1、新建mysq檔案夾,并進入:mkdir /opt/mysql
2、Xftp將安裝包傳輸到/opt/tomcat目錄下,
下載地址 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,
或直接執行:wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
3、進入tomcat目錄:cd /opt/mysql
4、解壓tomcat安裝包:tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
5、查詢mariadb: rpm -qa | grep mari,注意centos7.6自帶的類mysql資料庫是mariadb,會跟mysql沖突,要先洗掉,
5、卸載mariadb:rpm -e --nodeps mariadb-libs ,rpm -e --nodeps marisa
6、開始安裝mysql
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
7、啟動服務:systemctl start mysqld.service
8、開始設定root密碼
Mysql自動給root用戶設定隨機密碼,運行grep “password” /var/log/mysqld.log可看到當前密碼

運行mysql -u root -p,復制粘貼輸入上述密碼
開發環境中密碼要復雜,平時自己用就設簡單密碼,避免不能輸入簡單需修改設定策略,默認值為1,帶分號輸入,
mysql密碼設定有三種策略:0策略密碼設定最低8位,1策略要求長度,數字,大小寫,特殊符號,3策略在2的基礎上還多了個字典檔案,
set global validate_password_policy=0;
最后開始設定密碼,帶分號
set password for 'root'@'localhost' = password('root6666');
9、運行如下命令使密碼生效
flush privileges;
20、Shell編程
Shell是一個命令列解釋器,它為用戶提供了一個向Linux內核發送請求以便運行程式的界面系統級程式,用戶可以用Shell來啟動、掛起、停止甚至是撰寫一些程式,
20.1、Shell腳本執行方式
-
腳本格式要求
腳本以#!/bin/bash開頭,需要可執行權限
例:創建shell腳本,輸出hello world


-
常用執行方式
方式1:輸入腳本的絕對路徑或相對路徑(./xxx.sh)
說明:首先要賦予hello.sh腳本的 +x權限,再執行腳本方式2:sh+腳本
說明:不用賦予腳本 +x權限,直接執行即可,

20.2、shell變數
介紹
1)Linux Shell中的變數分為系統變數和自定義變數,
2)系統變數: $HOME等
3)顯示當前shell中所有變數: set
shell變數的定義
基本語法
-
定義變數:變數名=值
-
撤銷變數: unset 變數
-
宣告靜態變數 : readonly 變數,靜態變數不能unset
變數定義實操
#!/bin/bash
#定義變數A
A=100
#輸出變數需加上$
echo A=$A
echo "A=$A"
#撤銷變數,變數A便沒了
unset A
echo A=$A
#宣告靜態的變數B=2
readonly B=2
echo "B=$B"
C=`date`
D=$(date)
echo C=$C
echo D=$D
定義變數的規則
1.變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭,
2.等號兩邊不能有空格
3.變數名稱一般習慣為大寫,這是一個規范,雖然小寫也可運行,
將命令的回傳值賦給變數
A=`date`反引號,運行里面的命令,并把結果回傳給變數A,如果沒有反引號表示的是將單詞date給A
A=$(date)等價于上面的陳述句
20.2.1、設定環境變數(全域變數)
基本語法
export 變數名=變數值 (功能描述:將shell變數輸出為環境變數)
source 組態檔 (功能描述:讓修改后的配置資訊立即生效)
echo $變數名 (功能描述:查詢環境變數的值)
案例
在/etc/profile檔案中定義TOMCAT_ HOME環境變數,profile檔案修改后,需重繪生效
vim /etc/profile
輸入如下內容
#定義一個tomcat環境變數
export TOMCAT_HOME=/opt/tomcat
保存退出
重繪profile
source /etc/profile
查看環境變數TOMCAT HOME的值
echo $TOMCAT_HOME
shell多行注釋
:<<!
注釋內容
!
20.2.2、位置引數變數
- 用途
當我們執行一個shell腳本時 ,如果希望獲取到命令列的引數資訊,就可以使用到位置引數變數
-
基本語法
$n ( 功能描述: n為數字, $0代表命令本身,$1-$9代表第一到第九個引數, 10以上的引數需要用大括號包含,如${10} $* (功能描述:命令列中所有的引數,$*把所有引數看成一個整體) $@ (功能描述:這個變數也代表命令列中所有的引數,不過$@把每個引數區分對待,分別輸出) $# (功能描述:命令列中所有引數的個數)
案例:撰寫一個shell腳本position.sh,在腳本中獲取到命令列的各個引數資訊,
vim myshell.sh
輸入如下內容
#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有的引數=$*"
echo "$@"
echo "引數的個數=$#"
sh myshell.sh 10 20

20.2.3、預定義變數
含義:事先定義好的變數,直接在腳本中使用
基本語法
$$(功能描述:當前行程的行程號(PID)
$! (功能描述:后臺運行的最后一個行程的行程號( PID) )
$? (功能描述:最后一次執行的命令的回傳狀態,如果這個變數的值為0,證明上一 個命令正確執行;
如果這個變數的值為非0 (具體是哪個數,由命令自己來決定), 則證明上一個命令執行不正確了,)
應用實體
在一個shell腳本中簡單使用一下預定義變數
vim preVar.sh
輸入內容
#!/bin/bash
echo "當前行程的行程id=$$"
#以后臺方式運行腳本,并獲取行程ID
/root/shcode/myshell.sh &
echo "最后一個行程的行程號id=$!"
echo "將執行結果回傳=$?"
20.3、運算子
基本語法
$((運算式))或 $[運算式] 或expr m + n
注意expr(expression運算式簡寫)運算子間要有空格,m,n為數字,
希望某個結果賦值給變數,使用``反引號,單引號就相當于字串拼接
expr m - n
expr \*(乘),/(除),%(取余)
應用實體
#!/bin/bash
#案例1:計算(2+3)*4的值
#方式1
RES1=$(((2+3)*4))
echo "res1=$RES1"
#方式2,推薦使用
RES2=$[(2+3)*4]
echo "res2=$RES2"
#方式3
TEMP=`expr 2 + 3`
RES3=`expr $TEMP \* 4`
echo "temp=$TEMP"
echo "res3=$RES3"
#案例2:請求出命令列的兩個引數的和
SUM=$[$1+$2]
echo "sum=$SUM"

20.4、條件判斷
判斷陳述句基本語法
[ condition ] (注意condition前后要有空格)
#非慷訓傳true ,可使用$?驗證( 0為true , > 1為false )
應用實體
[ smile ] ,回傳true
[ ],回傳false
[ condition ] && echo OK II echo notok,條件滿足,執行后面的陳述句
常用判斷條件
1)=字串比較
2)兩個整數的比較
-It 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
3)按照檔案權限進行判斷
-r 有讀的權限
-w 有寫的權限
-x 有執行的權限
4)按照檔案型別進行判斷
-f 檔案存在并且是一 個常規的檔案
-e 檔案存在
-d 檔案存在且是一個目錄
20.5、流程控制
20.5.1、if使用
基本語法
#單分支
if [ 條件判斷 ]
then
代碼
fi
#多分支
if [ 條件判斷 ]
then
代碼
elif [ 條件判斷 ]
then
代碼
fi
注意事項:[ 條件判斷 ],中括號和條件之間必須有空格
案例
#!/bin/bash
#如果輸入的引數,大于等于60,則輸出及格了,如果小于60,則輸出不及格
if [ $1 -ge 60 ]
then
echo "及格了"
elif [ $1 -lt 60 ]
then
echo "不及格"
fi

20.5.2、case陳述句
基本語法
case $變數名 in
"值1")
如果變數的值等于值1 ,則執行程式1
;;兩分號代表結束
"值2")
如果變數的值等于值2,則執行程式2
;;
其他分支
*)
如果變數的值都不是以上的值,則執行此程式
;;
esac
案例
#!/bin/bash
#當命令列引數是1時,輸出"周一"是2時,就輸出"周二”,其它情況輸出"other"
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo “other”
;;
esac

20.5.3、for使用
基本語法
語法1:
for 變數 in 值1 值2 ...
do
代碼
done
語法2:
for (( 始值;回圈控制條件;量變化 ))
do
代碼
done
應用實體
案例1:列印命令列輸入的引數
#!/bin/bash
#$*輸出方式
for i in "$*"
do
echo "num is $i"
done
#$@方式
echo "==========="
for j in "$@"
do
echo "num is $j"
done
案例2:從1加到100的值輸出顯示
#!/bin/bash
SUM=0
for(( i=1; i<=100; i++ ))
do
SUM=$[$SUM+$i]
done
echo "sum=$SUM"
20.5.4、while使用
基本語法
while [ 條件判斷式 ]
do
代碼
done
案例:從命令列輸入一個數n,統計從1+……n的值是多少?
#!/bin/bash
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "結果=$SUM"
20.5.5、read讀取控制臺輸入
基本語法
read [選項] [引數]
選項:
-p:指定讀取值時的提示符;
-t:指定讀取值時等待的時間(秒), 如果沒有在指定的時間內輸入,就不再等待,
引數
變數:指定讀取值的變數名
應用實體
#!/bin/bash
#案例1 :讀取控制臺輸入一個num1值
read -p "請輸入指定的num1=" NUM1
echo "輸入的num1=$NUM1"
#案例2 :讀取控制臺輸入一個num2值,在5秒內輸入
read -t 5 -p "請輸入num2=" NUM2
echo "輸入的num2=$NUM2"

20.6、函式
系統函式
basename基本語法
basename [pathname] [suffix](功能:回傳完整路徑最后/的部分,常用于獲取檔案名)
basename [string] [suffix] (功能:basename命令會刪掉所有的前綴包括最后一個/,然后將字串顯示出來)
suffix為后綴,如果suffix被指定了, basename會將pathname或string中的suffix去掉,
dirname基本語法
dirname 檔案絕對路徑 (功能描述:絕對路徑中去除檔案名(非目錄的部分),然后回傳剩下的路徑(目錄的部分))
自定義函式
基本語法
[function] funname (引數){
Action;
[return int;]
}
[]表示可有可無
呼叫直接寫函式名: funname [值]
應用實體
#!/bin/bash
#案例:計算輸入兩個引數的和,getSum
function getSum(){
sum=$[$n1+$n2]
echo "和是=$sum"
}
#輸入兩個值
read -p "第一個值=" n1
read -p "第二個值=" n2
#呼叫函式
getSum $n1 $n2

20.7、資料備份案例
需求分析
1.每天凌晨2:30備份資料庫smile到/data/backup/db
2.備份開始和備份結束能夠給出相應的提示資訊
3.備份后的檔案要求以備份時間為檔案名,并打包成.tar.gz的形式,比如: 2021-07-15 230201.tar.gz
4.在備份的同時,檢查是否有7天前備份的資料庫檔案,如果有就將其洗掉,
vim /usr/sbin/mysql_db_backup.sh 內容如下
#!/bin/bash
#備份目錄
BACKUP=/data/backup/db
#當前時間
DATATIME=$(date +%Y-%m-%d_%H%M%S)
#資料庫地址
HOST=localhost
#資料庫用戶名
DB_USER=root
#資料庫密碼
DB_PW=root6666
#備份的資料庫名
DATABASE=smile
#創建備份目錄,不存在就創建
[ ! -d "${BACKUP}/${DATATIME}" ] && mkdir -p "${BACKUP}/${DATATIME}"
#備份資料庫
echo "開始備份資料庫${DATABASE}"
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATATIME}/$DATATIME.sql.gz
#將備份檔案夾處理成.tar.gz的格式
cd ${BACKUP}
tar -zcvf $DATATIME.tar.gz ${DATATIME}
#洗掉對應的備份目錄
rm -rf ${BACKUP}/${DATATIME}
#洗掉7天前的備份
find ${BACKUP} -atime +7 -name "*.tar.gz" -exec rm -rf {} \;
echo "備份資料庫${DATABASE}成功"
定時腳本
命令列敲crontab -e ,接著輸入如下內容
30 2 * * * /usr/sbin/mysql_db_backup.sh

效果圖

21、日志管理
21.1.系統常用日志
標紅的是重點

日志管理服務rsyslogd
CentOS7.6日志服務是rsyslogd , CentOS6.x 日志服務是syslogd,rsyslogd 功能更強大,和syslogd兼容,
查詢rsyslogd服務是否啟動:ps aux | grep "rsyslog" | grep -v "grep"
grep -v "grep"表示反向選中前面過濾的內容
查詢rsyslogd服務的自啟動狀態(enable)
systemctl list-unit-files | grep rsyslog
組態檔: /etc/rsyslog.conf
編輯檔案時的格式為:*.* ,存放日志檔案
其中第個*代表日志型別,第二個代表日志級別
日志型別分為
auth ##pam產生的日志
authpriv ##ssh、ftp等登錄資訊的驗證資訊
corn ##時間任務相關
kern ##內核
Ipr ##列印
mail ##郵件
mark(syslog)-rsyslog ##服務內部的資訊 ,時間標識
news ##新聞組
user ##用戶程式產生的相關資訊
uucp ##unix to nuix copy主機之間相關的通信
local 1-7 ##自定義的日志設備
日志級別分為
debug ##有除錯資訊的,日志通信最多
info ##一般資訊日志 ,最常用
notice ##最具有重要性的普通條件的資訊
warning ##警告級別
err ##錯誤級別,阻止某個功能或者模塊不能正常作業的資訊
crit ##嚴重級別,阻止整個系統或者整個軟體不能正常作業的資訊
alert ##需要立刻修改的資訊
emerg ##內核崩潰等重要資訊
none ##什么都不記錄
注意:從上到下,級別從低到高,記錄資訊越來越少
日志檔案格式有4列資訊
1.事件產生的時間
2.產生事件的服務器的主機名
3.產生事件的服務名或程式名
4.事件的具體資訊

21.2、自定義日志
自定義日志添加在/etc/rsyslog.conf ,編輯內容如圖

21.3、日志輪替
日志輪替就是把舊的日志檔案移動并改名,同時建立新的空日志檔案,當舊日志檔案超出保存的范圍之后,就會進行洗掉,
日志輪替檔案命名
1)centos7使用logrotate進行日志輪替管理,要想改變日志輪替檔案名字,通過/etc/logrotate.conf組態檔中"dateext" 引數:
2)如果組態檔中有"dateext" 引數,那么日志檔案以日期后綴 ,例如"secure-20210716",此時不會重名,只需要指定保存日志個數,洗掉多余的日志檔案即可,
3)如果組態檔中沒有"dateext" 引數,那么日志檔案就需要改名,當第一次進行日志輪替時,當前"secure"日志會自動改名為"secure.1",然后新建”secure"日志,用來保存新日志,當第二次進行日志輪替時,” secure.1”會自動改名為"secure.2" ,當前的"secure" 日志會自動改名為"secure.1”, 然后也會新建"secure"日志,用來保存新的日志,以此類推,
4、查看記憶體日志
journalctl ##查看全部
journalctl -n 3 ##查看最新3條
journalctl --since 19:00 - until 19:10:10 #查看起始時間到結束時間的日志可加日期
journalctl -p err ##報錯日志
journalctl -o verbose ##日志詳細內容
journalctl_PID=1245 COMM=sshd ##查看包含這些引數的日志 (在詳細日志查看)
或者journalctl| grep sshd
注意: journalctl查看的是記憶體日志,重啟清空
22、資料備份和恢復
安裝dump和restore
yum -y install dump
yum -y install restore
使用dump備份
-
基本介紹
dump支持分卷和增量備份(所謂增量備份是指備份上次備份后修改/增加過的檔案,也稱差異備份), -
dump語法說明
dump [ cu] [-123456789] [ -f <備份后檔案名>] [-T <日期>] [ 目錄或檔案系統] dump []-wW -C :創建新的歸檔檔案,并將由一個或多個檔案引數所指定的內容寫入歸檔檔案的開頭, -0123456789 :備份的層級,0為最完整備份,會備份所有檔案,若指定0以上的層級,則備份至上一次備份以來 修改或新增的檔案,到9后,可以再次輪替, -f <備份后檔案名> :指定備份后檔案名 -j :呼叫bzlib庫壓編備份檔案,也就是將備份后的檔案壓縮成bz2格式,讓檔案更小 -T <日期> : 指定開始備份的時間與日期 -u :備份完畢后,在/etc/dumpdares中記錄備份的檔案系統,層級,日期與時間等, -t :指定檔案名,若該檔案已存在備份檔案中,則列出名稱 -W :顯示需要備份的檔案及其最后一次備份的層級,時間,日期, -w :與-W類似,但僅顯示需要備份的檔案,
dump案例
案例1
將/boot磁區所有內容備份到/opt/boot.bak0.bz2檔案中,備份層級為"0"
dump -0uj -f /opt/boot.bak0.bz2 /boot
案例2
在/boot目錄下新增檔案,備份層級為"1”(只備份上次使用層次"0"備份后發生過改變的資料)
dump -1uj -f /opt/boot.bak1.bz2 /boot
dump備份檔案或者目錄
在備份磁區時,是可以支持增量備份的,但如果備份目錄或檔案,不再支增量備份即只能使用0級別備份,
案例3
使用dump備份/etc整個目錄
dump -0j -f /opt/etc.bak.bz2 /etc/
使用restore恢復資料
基本介紹
restore命令用來恢復已備份的檔案,可以從dump生成的備份檔案中恢復原檔案
restore基本語法
restore [模式選項] [選項]
說明下面四個模式,不能混用,在一次命令中,只能指定一種,
-C:使用對比模式,將備份的檔案與已存在的檔案相互對比,
-i:使用互動模式,在進行還原操作時, restors指令將依序詢問用戶
-r:進行還原模式
-t:查看模式,看備份檔案有哪些檔案
選項
-f <備份設備>:從指定的檔案中讀取備份資料,進行還原操作
應用案例
案例1:restore命令比較模式,比較備份檔案和原檔案的區別
restore -C -f boot.bak1.bz2 //注意和最新的檔案比較
案例2:restore命令查看模式,看備份檔案有哪些資料/檔案
restore -t -f boot.bak0.bz2
案例3
restore命令還原模式注意細節:如果你有增量備份,需要把增量備份檔案也進行恢復,有幾個增量備份檔案就要恢復幾個,按順序來恢復即可,
mkdir /opt/boottmp
cd /opt/boottmp
restore -r -f /opt/boot.bak0.bz2 //恢復到第1次完全備份狀態
restore -r -f /opt/boot.bak1.bz2 //恢復到第2次增量備份狀態
23、Linux可視化管理
23.1、webmin安裝
基本介紹
Webmin是功能強大的基于Web的Unix/linux系統管理工具,管理員通過瀏覽器訪問Webmin的各種管理功能并完成相應的管理操作,
1.創建webmin檔案夾
mkdir /opt/webmin
2.進入webmin
cd /opt/webmin
3.下載webmin包
wget http://download.webmin.com/download/yum/webmin-1.700-1.noarch.rpm
4.安裝: rpm -ivh webmin-1.700-1.noarch.rpm
5.重置密碼:/usr/libexec/webmin/changepass.pl /etc/webmin root webminroot
root是webmin的用戶名,不是OS的,這里就是把webmin的root用戶密碼改成了webminroot
6.修改webmin服務的埠號 (默認是10000,出于安全目的修改埠號)
vim /etc/webmin/miniserv.conf
修改埠
將port=10000修改為其他埠號,如port=6868
將listen=10000修改為listen=6868
7.重啟webmin
/etc/webmin/restart#重啟
/etc/webmin/start #啟動
/etc/webmin/stop #停止
6.防火墻打開6868埠
#配置防火墻開放666埠
firewall-cmd --zone=public --add-port=6868/tcp --permanent
#更新防火墻配置,生效
firewall-cmd --reload
#查看已經開放的埠號
firewall-cmd --zone=public --list-ports
7.登錄webmin
http://ip:6868可以訪問了
用root賬號和重置的新密碼webminroot登錄
1.1webmin修改成中文版


23.2、BT寶塔安裝
bt寶塔介紹
bt寶塔Linux面板是提升運維效率的服務器管理軟體,支持鍵LAMP/LNMP/集群/監控/網站/FTP/資料庫/JAVA等多項服務器管理功能,
寶塔安裝
執行以下代碼進行安裝寶塔6.9.9免費版,寶塔6.9.9版本已經很穩定了,推薦大家直接安裝6.9.9版本(注意:寶塔linux6.0版本是基于centos7開發的,務必使用centos7.x 系統)
創建bt檔案夾
mkdir /opt/bt
進入bt安裝目錄
cd /opt/bt
執行安裝命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
注意如果之前安裝過mysql服務,此時安裝需要輸入yes強制安裝,不要寫y

安裝完成后顯示如下界面
外網面板地址: http://183.250.125.184:8888/12006102
內網面板地址: http://192.168.200.66:8888/12006102
username: svxkakvi
password: 67cb896d

如果bt的用戶名,密碼忘記了,使用bt default可以查看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289286.html
標籤:其他
上一篇:資料鏈路層 ?一看就懂了!!!
