Linux学习手册大全
Linux大全
- 1、虛擬機(jī)安裝
- 2、虛擬機(jī)網(wǎng)絡(luò)連接方式
- 3、安裝vmtools
- 4、虛擬機(jī)目錄
- 4.1、目錄含義
- 4.2、Linux顏色含義
- 5、遠(yuǎn)程登錄軟件
- 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、權(quán)限介紹
- 13.3、修改權(quán)限chmod
- 13.4、修改文件所有者
- 14、定時任務(wù)調(diào)度
- 14.1、任務(wù)調(diào)度分類
- 14.2、重啟任務(wù)調(diào)度
- 14.3、at定時任務(wù)
- 14.4、at指定時間的方式
- 15、Linux磁盤分區(qū)
- 15.1、分區(qū)原理
- 15.2、硬盤說明
- 16、網(wǎng)絡(luò)配置
- 17、進(jìn)程管理
- 17.1、查看當(dāng)前系統(tǒng)中哪些進(jìn)程正在執(zhí)行
- 17.2、終止進(jìn)程
- 17.3、查看進(jìn)程樹
- 17.4、服務(wù)管理
- 17.5、指定運行級別
- 17.6、chkconfig指令
- 17.7、systemctl指令
- 17.8、防火墻
- 17.8.1、firewall指令
- 17.9、動態(tài)監(jiān)控進(jìn)程
- 18、rpm和yum
- 18.1、rpm
- 18.2、yum
- 19、Java環(huán)境安裝
- 19.1、jdk安裝
- 19.2、Tomcat安裝
- 19.3、MySQL安裝
- 20、Shell編程
- 20.1、Shell腳本執(zhí)行方式
- 20.2、shell變量
- 20.2.1、設(shè)置環(huán)境變量(全局變量)
- 20.2.2、位置參數(shù)變量
- 20.2.3、預(yù)定義變量
- 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、函數(shù)
- 20.7、數(shù)據(jù)備份案例
- 21、日志管理
- 21.1.系統(tǒng)常用日志
- 21.2、自定義日志
- 21.3、日志輪替
- 22、數(shù)據(jù)備份和恢復(fù)
- 23、Linux可視化管理
- 23.1、webmin安裝
- 23.2、BT寶塔安裝
1、虛擬機(jī)安裝
VMware15.5安裝,傻瓜式安裝,只記錄變動步驟,其余都下一步,軟件安裝位置自己選擇,最好別選c盤,軟件地址https://www.nocmd.com/windows/740.html(內(nèi)含激活碼),安裝時需要注意它文件不會在一個文件夾下,自己多建一個版本文件夾,方便管理。
文件》新建虛擬機(jī)
點擊安裝計算機(jī)的設(shè)置》選擇鏡像后》點確定
開啟虛擬機(jī)》選第一個install centos7
等待一段時間不要亂點,亂點會卡死,》軟件選擇》最小安裝或gui服務(wù)器或gnome桌面,選好后點完成。開發(fā)中一般都選最小安裝,需要什么軟件在自行選擇,但其它安裝可以省略jdk,mysql等安裝,會自行安裝。
在這一步也可以選擇自動配置分區(qū),這里更快,這里我選擇我要配置分區(qū)。
設(shè)置好/boot要1G,swap要2G,剩余都在根目錄分區(qū)大小后,設(shè)備類型點標(biāo)準(zhǔn)分區(qū),點完成。
點接受更改
網(wǎng)絡(luò)和主機(jī)名設(shè)置,需要聯(lián)網(wǎng)就打開以太網(wǎng)。
最后一個像一把鎖的安檢策略可以關(guān)閉。
點開始安裝
在這個頁面配置root賬號密碼,創(chuàng)建用戶賬號密碼。在實際開發(fā)中root賬號要復(fù)雜點,避免被破解。
等待完成后,點擊重啟。
再把網(wǎng)絡(luò)連接打開。
2、虛擬機(jī)網(wǎng)絡(luò)連接方式
1、橋接模式:同一網(wǎng)段中,最多只能連接255臺機(jī)子,一旦超出容易造成IP沖突。IP地址的前3位就是網(wǎng)段(192.168.0.1)。
2、NAT(網(wǎng)絡(luò)地址裝換)模式:虛擬機(jī)和外部通信,不會造成IP沖突。虛擬機(jī)地址不再是以0開頭,而是生成1-255之間的數(shù),如192.168.6.1,然后主機(jī)會生成一個對應(yīng)的虛擬網(wǎng)卡如192.168.6.6,兩者能通信。這種模式下虛擬機(jī)能訪問192.168.0.1,由于網(wǎng)段不同,192.168.0.1不能訪問虛擬機(jī)。
3、主機(jī)模式:虛擬網(wǎng)絡(luò)對主機(jī)可見,虛擬機(jī)不能上網(wǎng)。
3、安裝vmtools
vmtools工具是實現(xiàn)虛擬機(jī)和主機(jī)文件進(jìn)行共享,兩個地方都能修改同一文件。安裝步驟如下
1、右擊虛擬機(jī) install vmware tools
2、雙擊VMware Tools,復(fù)制XXX.tar.gz壓縮包到/opt目錄下
3、桌面上打開終端,cd /opt ,進(jìn)入到opt目錄下,使用解壓命令tar -zxvfVM+tab鍵提示自動補(bǔ)全名稱, 得到一個解壓文件夾
4、進(jìn)入該vm解壓的目錄cd vmxxx,/opt目錄下
5、安裝./vmware-install.pl
6、全部使用默認(rèn)設(shè)置即可,一直按回車,就可以安裝成功
注意:安裝vmtools需有g(shù)cc ,可以使用gcc -v查看gcc版本
共享文件夾設(shè)置
點虛擬機(jī)設(shè)置》選項》共享文件夾》總是啟用》添加》指定文件夾
4、虛擬機(jī)目錄
4.1、目錄含義
/bin :存放著最經(jīng)常使用的命令
/home :存放普通用戶的主目錄,一般該目錄名是以用戶的賬號命名
/root :該目錄為系統(tǒng)管理員,也稱作超級權(quán)限者的用戶主目錄(根目錄)
/boot:Linux啟動相關(guān)文件
/lib:系統(tǒng)開機(jī)所需要最基本的動態(tài)連接共享庫,其作用類似于Windows里的DLL文件。
/lost+ found這個目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件
/etc:系統(tǒng)管理所需配置和子文件目錄
/user:用戶應(yīng)用程序和文件
/proc[不能動]:是虛擬目錄,系統(tǒng)內(nèi)存映射,訪問這個目錄獲取系統(tǒng)信息
/srv[不能動]:存放服務(wù)啟動后所需數(shù)據(jù)
/sys[不能動]:該目錄安裝了2.6內(nèi)核新出現(xiàn)的文件系統(tǒng)
/tmp:存放臨時文件
/mnt:存放掛載文件
/opt:給主機(jī)額外安裝軟件的目錄,即軟件存放目錄
/user/local:軟件安裝后的目標(biāo)目錄,一般是編譯源碼的方式安裝的程序
4.2、Linux顏色含義
藍(lán)色表示目錄,白色表示文件,紅色表示壓縮文件,綠色表示可執(zhí)行權(quán)限
5、遠(yuǎn)程登錄軟件
XShell和XFTP下載地址:網(wǎng)站一
網(wǎng)站二推薦
虛擬機(jī)終端輸入ifconfig,找到虛擬機(jī)地址,如果找不到ip地址就重新設(shè)置網(wǎng)絡(luò),編輯》虛擬網(wǎng)絡(luò)編輯器》更改設(shè)置》還原默認(rèn)設(shè)置。
6、編輯命令
vi、vim都是編輯命令,vim是vi的增強(qiáng)版,它們有三種模式,一般模式,編輯模式(能輸入內(nèi)容),命令模式。
一般模式:輸入的內(nèi)容看不見
編輯模式:可以自由輸入內(nèi)容,可見
命令模式:在文件末尾位置,可見
命令模式》一般模式:vim或vi
一般模式》編輯模式:i、o、a、r等按鍵
編輯模式》一般模式:esc
一般模式》命令模式::,/
:wq:保存退出
:q:不保存退出
:q!:強(qiáng)制退出
自動補(bǔ)全文件名:tab
拷貝當(dāng)前行(一般模式):yy,并粘貼輸入p
拷貝當(dāng)前行向下的i行:iyy。
刪除當(dāng)前行:dd
刪除當(dāng)前行向下的i行idd
在文件中查找某個單詞(命令模式)敲/,回車查找,輸入n就是查找下一個
設(shè)置文件的行號(:進(jìn)入命令模式):命令行下set nu
取消文件的行號:set nonu
使用快捷鍵到該文檔的最末行[G]和最首行[gg](一般模式下)
在一個文件中輸入"hello"然后又撤銷這個動作,一般模式下按u
立即關(guān)機(jī):shutdown -h now
一分鐘后關(guān)機(jī):shutdown -h 1
重啟計算機(jī):reboot
獲取幫助信息:man 【命令或配置文件】(按空格顯示更多幫助信息)
獲取內(nèi)置命令幫助信息:help 命令
7、用戶管理
切換用戶:su - 用戶名
權(quán)限高的用戶切換到低權(quán)限用戶不需要輸入密碼,反之需要。返回原來用戶時,exit或logout
添加用戶:useradd 用戶名
給用戶指定密碼:passwd 用戶名
顯示當(dāng)前用戶所在目錄:pwd
刪除用戶(保留家目錄):userdel 用戶名
刪除用戶(刪除包括家目錄):userdel -r 用戶名
查詢用戶信息:id 用戶名
查看當(dāng)前登錄用戶:who am i
用戶組:系統(tǒng)對有權(quán)限的用戶同一管理
新增組:groupadd 組名
刪除組:groupdel 組名
新增用戶直接分組:useradd -g 用戶組 用戶名
修改用戶組:usermod -g 用戶組 用戶名
8、CentOS7找回root密碼
1、啟動系統(tǒng),進(jìn)入開機(jī)頁面,按e鍵進(jìn)入編輯頁面
2、光標(biāo)向下移動,找到以“Linux16”開頭的行數(shù),行末輸入init=/bin/sh,接著按ctr+x進(jìn)入單用戶模式。
3、在光標(biāo)閃爍位置輸入:mount -o remount,rw /,完成后回車
4、接著輸入passwd,完成后回車,輸入密碼后回車,再次輸入密碼。修改成功后會顯示passwd……
5、接著在光標(biāo)位置輸入:touch /.autorelabel,完成后回車,等待系統(tǒng)重啟,新密碼就生效了。
9、文件目錄指令
pwd指令
顯示當(dāng)前目錄的絕對路徑
ls指令
查看當(dāng)前目錄的所有內(nèi)容信息:ls 【選項】【目錄或文件】
常用選項有:
-a ,查看所有文件和目錄包括隱藏文件
-l,以列表形式顯示信息
cd指令
切換目錄:cd 【參數(shù)】
cd~或cd:回到自個家目錄
返回當(dāng)前目錄的上一級目錄:cd ..
mkdir指令
創(chuàng)建一個目錄:mkdir 創(chuàng)建的目錄
創(chuàng)建多個目錄:mkdir -p /test/one
rmdir指令
刪除一級目錄:rmdir 刪除的空目錄
如果刪除的目錄下有內(nèi)容,非得刪除的話使用:rm -rf 要刪除的目錄
touch指令
創(chuàng)建空文件:touch 文件名稱
cp指令
cp 【選項】 源文件 目標(biāo)文件
選項:-r 遞歸復(fù)制整個文件夾
強(qiáng)制覆蓋不提示方法:\cp cp -r src dest
rm指令
移除文件或目錄:rm 【選項】要刪除的文件或目錄
常用選項:
遞歸刪除文件夾:-r
強(qiáng)制刪除不提示:-f
mv指令
用于移動文件與目錄或重命名
兩個文件同一目錄會重命名:mv 舊文件名 新文件名
兩文件不同目錄會移動:mv 要移動的文件 移動到的位置
cat指令
查看文件內(nèi)容:cat 【選項】要查看的文件
常用選項:
顯示行號:-n
cat只能瀏覽,不能修改,為瀏覽方便,一般會帶上 管道命令|(|是或符號不是大寫i,表示前一個指令結(jié)果交給后面的指令處理):|more
例:cat -n /etc/profile | more
more指令
| 空格 | 翻頁 |
| 回車 | 向下一行 |
| ctr+f | 向下滾動一屏 |
| ctr+b | 返回上一屏 |
| = | 輸出當(dāng)前行號 |
| :f | 輸出文件名和當(dāng)前行 |
less指令
less指令在顯示文件內(nèi)容時,并不是一次將整個文件加載之后才顯示,而是根據(jù)顯示需要加載內(nèi)容,對于顯示大型文件具有較高的效率。
分屏查看文件內(nèi)容:less 要查看的文件
| 空格 、pagedown | 向下翻頁 |
| pageup | 向上翻頁 |
| /子串 | 查找字符串內(nèi)容,n向下找,N向上找 |
echo指令
輸出內(nèi)容到控制臺:echo 【選項】 【輸出內(nèi)容】
head指令
用于顯示文件開頭部分內(nèi)容,默認(rèn)只顯示前10行:head 文件
查看文件頭5行:head -n 5[數(shù)字] 文件
tail指令
查看文件中尾部的內(nèi)容,默認(rèn)顯示文件的尾10行內(nèi)容:tail 文件
查看文件尾5行:tail -n 5[數(shù)字] 文件
實時追蹤該文檔的所有更新:tail -f 文件
指令>和指令>>
輸出重定向(覆蓋)>,追加>>
將列表內(nèi)容覆蓋寫入文件:ls -l > 文件
將列表內(nèi)容追加寫入文件:ls -al >> 文件
將文件1內(nèi)容覆蓋到文件2:cat 文件1 > 文件2
將內(nèi)容追加到文件:echo 內(nèi)容 >> 文件
ln指令
給源文件創(chuàng)建一個鏈接:ln -s [源文件或目錄] [鏈接名]
history指令
查看所有歷史命令:history
查看最近5條命令:history 5
執(zhí)行歷史編號為5的命令:!5
10、日期指令
顯示當(dāng)前日期:date
顯示今年:date +%Y
顯示當(dāng)前月份:date +%m
顯示當(dāng)前天數(shù):date +%d
指定格式顯示年月日時分秒:date "+%Y-%m-%d %H:%M:%S"
設(shè)置日期:date -s 字符串日期
查看日歷:cal 【選項】,不指定選項, 默認(rèn)當(dāng)前月日歷
11、查找指令
1、find指令
find指令從指定目錄向下遞歸遍歷其各個子目錄,將滿足條件的文件或者目錄顯示在終端。
find [搜索范圍] [選項]
常用選項
-name<查詢方式>
按照指定的文件名查找模式查找文件
-user<用戶名>
查找屬于指定用戶名所有文件
-size <文件大小n>
按照指定的文件大小查找文件,+n大于,-n小于,n等于,+單位k,M,G
2、locate指令
快速查找指定文件的路徑:locate 文件
由于該指令是基于數(shù)據(jù)庫查詢,第一次使用必須用updatedb指令創(chuàng)建數(shù)據(jù)庫,
3、which指令
查看指令在哪個目錄下:which 指令
4、grep指令
過濾查找:grep 【選項】 查找內(nèi)容 源文件
-n:顯示匹配行和行號
-i:忽略字母大小寫
12、壓縮解壓指令
1、gzip和gunzip指令
壓縮文件:gzip 文件,只能將文件壓縮為*.gz格式
解壓文件:gunzip 需要解壓的文件.gz
2、zip和unzip指令
項目打包發(fā)布時常用命令
壓縮文件:zip 【選項】 XXX.zip
常用選項-r:遞歸壓縮目錄
解壓文件:unzip 【選項】 XXX.zip
常用選項-d 目錄:指定解壓后文件存放目錄
3、tar指令
既可打包又可解壓,打包后文件后綴是.tar.gz
打包目錄:tar 【選項】 XXX.tar.gz
| -c | 產(chǎn)生.tar打包文件 |
| -z | 打包同時壓縮 |
| -x | 解包.tar文件 |
| -v | 顯示詳細(xì)信息 |
| -f | 指定壓縮后的文件名 |
例:
壓縮多文件:tar -zcvf dc.tar.gz /hmoe/bbb/cat.txt /home/bbb/dog.txt
將bbb文件夾壓縮成myb.tar.gz:tar -zcvf myb.tar.gz bbb
將文件解壓到當(dāng)前目錄:tar -zxvf myb.tar.gz
將myb.tar.gz解壓到tom目錄下:tar -zxvf myb.tar.gz -C tom
13、Linux組
一個文件有個所有者,所有者又歸于一個組。
13.1、所有者和組
所有者:文件誰創(chuàng)建就歸誰所有
查看文件所有者:ls -ahl
修改所有者:chown 用戶名 文件
組的創(chuàng)建:groupadd 組名
新增用戶直接分組:useradd -g 用戶組 用戶名
修改文件所在組:chgrp 組名 文件名
其他組:除文件的所有者和所在組的用戶外,系統(tǒng)的其它用戶都是文件的其它組
改變用戶所在組(需要root的管理權(quán)限)
13.2、權(quán)限介紹
Is -I中顯示的內(nèi)容如下:
d rwx r-x r-x. 2 root root 53 7月 9 20:08 bbb
0-9位說明
1.第0位確定文件類型(d,-,I,c,b)
2.第1- 3位rwx該文件的所有者擁有該文件的權(quán)限。——User
3.第4 - 6位r-x所屬組的用戶擁有該文件的權(quán)限。——Group
4.第7 - 9位r-x其他用戶擁有該文件的權(quán)限——Other
rwx作用:r表示讀,w表示寫,x表示可執(zhí)行(作用到文件是可執(zhí)行,作用到目錄是可進(jìn)入)
其他說明:
數(shù)字2 :文件數(shù)和子目錄數(shù)和
第一個root所有者,第二個root所在組
53:文件大小(字節(jié)),如果是文件夾,顯示4096字節(jié)
7月 9 20:08:文件最后修改日期
13.3、修改權(quán)限chmod
方式一:+、一、=變更權(quán)限
u:所有者,g:所有組,o:其他用戶,a:所有人
給文件的所有者讀寫執(zhí)行權(quán)限,給所在組讀執(zhí)行權(quán)限,給其他用戶執(zhí)行權(quán)限:chmod u=rwx,g=rx,o=x 文件/目錄名
給其他人增加寫權(quán)限:chmod o+w 文件/目錄名/所有者/所有組
該文件不讓所有人執(zhí)行:chmod a-x 文件/目錄名/所有者/所有組
方式二:數(shù)字變更權(quán)限
r=4,w=2,x=1
chmod u=rwx,g=rx,o=x 文件/目錄名 相當(dāng)于 chmod 751 文件/目錄名
13.4、修改文件所有者
改變所有者:chown 改成的所有者 文件/目錄
改變所有者和所在組:chown 新所有者:新所有組 文件/目錄
14、定時任務(wù)調(diào)度
任務(wù)調(diào)度:系統(tǒng)在某個時間執(zhí)行特定的命令或程序。
14.1、任務(wù)調(diào)度分類
1.系統(tǒng)工作:某些重要工作周而復(fù)始的進(jìn)行,如病毒查殺
2.個別用戶工作:個別用戶執(zhí)行某些程序,如打開qq
定時任務(wù)的設(shè)置:crontab [選項]
| -e | 編輯crontab定時任務(wù) |
| -l | 查詢當(dāng)前任務(wù)調(diào)度 |
| -r | 刪除當(dāng)前用戶所有的定時任務(wù) |
14.2、重啟任務(wù)調(diào)度
service crond restart
crontab -e 回車然后輸入 */1 * * * * ls
| 第一個 | 一小時當(dāng)中的第幾分鐘(分鐘) |
| 第二個 | 一天當(dāng)中的第幾小時(小時) |
| 第三個 | 一月當(dāng)中的第幾天(天) |
| 第四個 | 一年中第幾個月(月) |
| 第五個 | 一周當(dāng)中的星期幾
范圍0-7 ( 0和7都代表星期日) |
特殊符號說明
| * | 表示任何時間,比如第一個*,表示一小時每分鐘執(zhí)行一次 |
| , | 表示不連續(xù)時間,比如“0 8,10 * * * * 命令”,表示每天8點0分,10點0分執(zhí)行一次命令 |
| - | 表示連續(xù)的時間范圍,比如“0 2 * * 1-6 命令”,表示周一到周六凌晨2點執(zhí)行命令 |
| */n | 表示每隔多久執(zhí)行一次,比如“*/10 * * * * 命令”,表示沒10分鐘執(zhí)行一次命令 |
特定時間執(zhí)行案例
14.3、at定時任務(wù)
at命令是一次性定時計劃任務(wù) ,at的守護(hù)進(jìn)程atd會以后臺模式運行,檢查作業(yè)隊列來運行。默認(rèn)情況下, atd守護(hù)進(jìn)程每60秒檢查作業(yè)隊列,有作業(yè)時,會檢查作業(yè)運行時間,如果時間與當(dāng)前時間四配,則運行此作業(yè)。at命令只執(zhí)行一次。
在使用at命令的時候,一定要保證atd進(jìn)程的啟動,可以使用相關(guān)指令來查看
檢測當(dāng)前進(jìn)程有哪些:ps -ef
檢測acd進(jìn)程是否在運行:ps -ef | grep atd
命令格式:at 【選項】【時間】,ctr+d結(jié)束at命令輸入
| -m | 當(dāng)指定的任務(wù)被完成后,將給用戶發(fā)送郵件,即使沒有標(biāo)準(zhǔn)輸出 |
| -I | atq(顯示系統(tǒng)中待執(zhí)行的任務(wù)列表)的別名 |
| -d | atrm(刪除待執(zhí)行任務(wù)隊列中的任務(wù))的別名 |
| -v | 顯示任務(wù)將被執(zhí)行的時間 |
| -V | 顯示版本信息 |
| -c | 打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出 |
| -q 隊列 | 使用指定的隊列 |
| -f 文件 | 從指定文件讀入任務(wù)而不是從標(biāo)準(zhǔn)輸入讀入 |
| -t 時間參數(shù) | 以時間參數(shù)的形式提交要運行的任務(wù) |
14.4、at指定時間的方式
1、hh:mm(小時:分鐘)24小時制指定時間,如果該時間已過,會放到第二天執(zhí)行。
2、使用midnight (深夜), noon (中午), teatime (飲茶時間,一般是下午4點)等模糊詞來指定時間。
3、采用12小時計時制,即在時間后面加上am (上午)或pm (下午)來說明是上午還是下午。
4、指定命令執(zhí)行的具體日期,指定格式為month day(月日)或mm/dd/yy (月/日/年)或dd.mm.yy
(日.月.年) ,指定的日期必須跟在指定時間的后面。 例如: 09:00 2021-07-1
5、使用相對計時法。指定格式為: now + count time- units , now就是當(dāng)前時間, time-units是時間單位,這里能夠是minutes、hous、days、weeks。count是時間的數(shù)量,幾天,幾小時。例如 : now + 5 minutes
6、直接使用today (今天)、tomorrow (明天)來指定完成命令的時間。
例1:一天后凌晨12點執(zhí)行 /bin/ls /home
at 12am + 1 day,然后輸入/bin/ls /home,接著ctr+d
例2 : atq命令來查看系統(tǒng)中沒有執(zhí)行的工作任務(wù)
例3 : 2分鐘后,輸出時間到指定文件內(nèi)比如/root/date200.log
例4 :刪除已經(jīng)設(shè)置的任務(wù), atrm 編號
atrm 1
15、Linux磁盤分區(qū)
15.1、分區(qū)原理
Linux來說無論有幾個分區(qū),分給哪一目錄使用,歸根結(jié)底就只有一個根目錄,一個獨立且唯一的
文件結(jié)構(gòu),Linux中每個分區(qū)都是用來組成整個文件系統(tǒng)的一部分。
Linux采用了一種叫“載入的處理方法,它的整個文件系統(tǒng)中包含了一整套的文件和目錄,且將一
個分區(qū)和一個目錄聯(lián)系起來。一個分區(qū)掛載一個目錄。
15.2、硬盤說明
1.Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤
2.對于IDE硬盤,驅(qū)動器標(biāo)識符為"hdx~" ,其中"hd" 表明分區(qū)所在設(shè)備的類型,這里是指IDE硬盤。“x"為盤號( a為基本盤, b為基本從屬盤,c為輔助主盤,d為輔助從屬盤)。~”代表分區(qū),前四個分區(qū)用數(shù)字1到4表示,它們是主分區(qū)或擴(kuò)展分區(qū),從5開始就是邏輯分區(qū)。
3.對于SCSI面則標(biāo)識為"sdx~” , SCSI硬盤是用"sd" 來表示分區(qū)所在設(shè)備的類型的,其余的和IDE硬盤的表示方法一樣。
查看設(shè)備掛載情況:lsblk或lsblk -f
查詢磁盤使用情況:df -h 【/目錄】,不寫目錄默認(rèn)查詢當(dāng)前目錄
統(tǒng)計/opt下文件個數(shù):ls -l /opt | grep "^-" | wc -l(^-是以-開頭的文件,wc統(tǒng)計個數(shù))
統(tǒng)計/opt下目錄個數(shù):ls -l /opt | grep "^d" | wc -l
統(tǒng)計/opt文件夾下文件的個數(shù),包括子文件夾里的:ls -lR /opt | grep "^-" | wc -l
統(tǒng)計/opt文件夾下目錄的個數(shù),包括子文件夾里的:ls -lR /opt | grep "^d" | wc -l
以樹狀顯示目錄結(jié)構(gòu):tree 目錄,注意默認(rèn)是沒有安裝tree的,安裝要root權(quán)限,安裝tree命令:yum install tree
16、網(wǎng)絡(luò)配置
IP地址配置
1、自動獲取
2、指定IP地址,避免虛擬機(jī)因自動獲取IP造成地址變更,導(dǎo)致找不到
修改指定IP命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改內(nèi)容如下
BOOTPROTO=static #IP地址 IPADDR=192.168.200.66 #網(wǎng)關(guān) GATEWAY=192.168.200.2 #域名解析器 DNS1=192.168.200.2虛擬機(jī)改完IP地址后,vmnet8也要修改在同一網(wǎng)段192.168.200.X,只有在同一網(wǎng)段中才能ping通。
虛擬機(jī)工具欄下》編輯》虛擬網(wǎng)絡(luò)編輯器》修改子網(wǎng)IP》應(yīng)用》確定
重啟網(wǎng)絡(luò)服務(wù)或重啟Linux系統(tǒng)生效:service network restart 或 reboot
查看主機(jī)名:hostname
修改主機(jī)名:vim /etc/hostname,之后需要reboot重啟生效
設(shè)置hosts映射
設(shè)置目的是為了通過主機(jī)名來ping通
Windows下:找到C:\Windows\System32\drivers\etc\hosts 文件指定即可,
指定內(nèi)容:192.168.200.200 smile200
Linux下:/etc/hosts 文件指定,內(nèi)容:192.168.200.200 smile
17、進(jìn)程管理
程序:靜態(tài)的,是躺在硬盤上。
進(jìn)程:動態(tài)的,程序運行在內(nèi)存中就是進(jìn)程。
線程:進(jìn)程的不同執(zhí)行路徑。
每個進(jìn)程都可能以兩種方式存在的。前臺和后臺,所謂前臺進(jìn)程就是用戶目前的屏幕上可以進(jìn)行操作的。后臺進(jìn)程則是實際在操作,但由于屏幕上無法看到的進(jìn)程,通常使用后臺方式執(zhí)行。一般系統(tǒng)的服務(wù)都是以后臺進(jìn)程的方式存在,而且都會常駐在系統(tǒng)中,直到關(guān)機(jī)才結(jié)束。
17.1、查看當(dāng)前系統(tǒng)中哪些進(jìn)程正在執(zhí)行
ps 【選項】PS -aux執(zhí)行后,參數(shù)含義
參數(shù) 含義
USER 用戶
PID 進(jìn)程號
%CPU 執(zhí)行命令時候進(jìn)程占用的CPU
%MEM 執(zhí)行命令時候進(jìn)程占用的CPU
VSZ 進(jìn)程占用虛擬內(nèi)存的大小(單位kb)
RSS 進(jìn)程占用物理內(nèi)存的大小(單位kb)
TTY 終端機(jī)號
STAT 運行狀態(tài)
? R: 正在運行
? S:睡眠
? D:短期等待
? T:被跟蹤或者被停止
? Z:僵死進(jìn)程(進(jìn)程可能死掉,沒有釋放)
? s:該進(jìn)程是會話的先導(dǎo)進(jìn)程
? +:該進(jìn)程為前臺進(jìn)程
? l:該進(jìn)程是多線程進(jìn)程
? N:低優(yōu)先級進(jìn)程
? <:高優(yōu)先級進(jìn)程
? []:表示這個一個內(nèi)核線程
START 執(zhí)行開始的時間
TIME 進(jìn)程消耗cpu的時間
COMMAND 進(jìn)程名,執(zhí)行該進(jìn)程的指令
全格式顯示所有進(jìn)程,查看父進(jìn)程:ps -ef
UID:用戶名
PPID:父進(jìn)程
C : CPU用于計算執(zhí)行優(yōu)先級的因子。數(shù)值越大,表明進(jìn)程是CPU密集型運算,執(zhí)行優(yōu)先級會降低;
數(shù)值越小,表明進(jìn)程是I/O密集型運算,執(zhí)行優(yōu)先級會提高
STIME:進(jìn)程啟動時間
CMD:啟動進(jìn)程所用命令和參數(shù)
其余和上面一樣
| -a | 顯示當(dāng)前終端的所有進(jìn)程信息 |
| -u | 以用戶的格式顯示進(jìn)程信息 |
| -x | 顯示后臺進(jìn)程運行的參數(shù) |
| -e | 顯示所有進(jìn)程 |
| -f | 全格式 |
17.2、終止進(jìn)程
kill 【選項】 進(jìn)程號
killall 進(jìn)程名稱
常用選項:-9:強(qiáng)迫進(jìn)程立即停止
17.3、查看進(jìn)程樹
pstree 【選項】
常用選項
-p :顯示進(jìn)程的PID
-u :顯示進(jìn)程的所屬用戶
17.4、服務(wù)管理
service管理指令
service 服務(wù)名 [start I stop | restart | reload | status]
在CentOS7.0后很多服務(wù)不再使用service ,而是systemctl
查看服務(wù)名
查看全部系統(tǒng)服務(wù):setup
帶*號的服務(wù)是自動啟動的,光標(biāo)移至 * 號,按空格就會刪除,按tab鍵進(jìn)行切換。
查看service指令管理的服務(wù):ls -l /etc/init.d
17.5、指定運行級別
CentOS7后運行級別說明
指定運行級別:init 數(shù)字0-6,常用運行級別是3和5
級別說明
0:關(guān)機(jī)
1:單用戶(找回丟失密碼用)
2:多用戶狀態(tài)無網(wǎng)絡(luò)
3:多用戶狀態(tài)有網(wǎng)絡(luò)
4:系統(tǒng)未使用保留給用戶
5:圖形界面
6:虛擬機(jī)重啟
在/etc/initab進(jìn)行了簡化, 如下:
multi-user.target: analogous to runlevel 3
graphical.target : analogous to runlevel 5
查看當(dāng)前的運行級別是什么:systemctl get-default
修改運行級別:systemctl set-default multi-user.target
17.6、chkconfig指令
查看服務(wù):chkconfig --list [| grep xxx]
給服務(wù)在指定的運行級別下設(shè)置開關(guān):chkconfig --level 5 服務(wù)名 on/off
注意:使用了chkconfig指令服務(wù)自啟或關(guān)閉,需要reboot重啟生效
17.7、systemctl指令
語法:systemctl 服務(wù)名 [start I stop | restart | reload | status]
查看管理的服務(wù):ls -l /usr/lib/systemd/system
systemctl設(shè)置服務(wù)的自啟動狀態(tài)
systemctl list-unit-files [ I grep服務(wù)名] (查看服務(wù)開機(jī)啟動狀態(tài))
systemctl enable 服務(wù)名(設(shè)置服務(wù)開機(jī)啟動)
systemctl disable 服務(wù)名(關(guān)閉服務(wù)開機(jī)啟動)
systemctl is-enabled 服務(wù)名(查詢某個服務(wù)是否是自啟動的)
例:查看當(dāng)前防火墻的狀況,關(guān)閉防火墻和啟動防火墻
1.systemctl status firewalld.service
2.systemctl stop firewalld.service
3.systemctl start firewalld.service
17.8、防火墻
防火墻打開情況下,xshell6訪問Linux需要打開22端口號,不然訪問不到。防火墻關(guān)閉后,xshell6可以直接訪問,不需要打開端口號。
打開或者關(guān)閉指定端口
在真正的生產(chǎn)環(huán)境,往往需要將防火墻打開,但此時外部請求數(shù)據(jù)包卻不能跟服務(wù)器監(jiān)聽端口通訊。這時需要打開指定的端口,比如80、22、 3306等。
17.8.1、firewall指令
打開端口: firewall-cmd --permanent --add-port=端口號/協(xié)議
關(guān)閉端口: firewall-cmd --permanent --remove-port=端口號/協(xié)議
重新載入才能生效: firewall-cmd --reload
查看所有開放端口:firewall-cmd --zone=public --list-port
查詢端口是否開放: firewall-cmd --query-port=端口/協(xié)議
17.9、動態(tài)監(jiān)控進(jìn)程
top與ps命令相似,都是用來顯示正在執(zhí)行的進(jìn)程。top與ps最大的不同之處,在于top在執(zhí)行一段時間可以更新正在運行的的進(jìn)程。
指令:top 【選項】
| -d 秒速 | 指定top命令每隔幾秒更新,默認(rèn)3秒 |
| -i | 使top不顯示任何閑置或者僵死進(jìn)程 |
| -P | 通過指定監(jiān)控進(jìn)程ID來僅僅監(jiān)控某個進(jìn)程的狀態(tài) |
交互操作說明
| P | 以CPU使用率排序,從大到小,默認(rèn)就是此項 |
| M | 以內(nèi)存的使用率排序,從大到小 |
| N | 以PID排序,從大到小 |
| Q或q | 退出top |
例1:監(jiān)視特定用戶,比如我們監(jiān)控tom用戶
top命令下,輸入“u"回車,再輸入用戶名,輸錯可按向下鍵清空。
例2 :終止指定的進(jìn)程
top命令下,輸入"k"回車,再輸入要結(jié)束的進(jìn)程ID號
18、rpm和yum
18.1、rpm
rpm用于下載包的打包及安裝工具,它生成具有.rpm擴(kuò)展名的文件。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包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包。
查詢yum服務(wù)器是否有需要安裝的軟件:yum list l grep xx軟件列表
安裝指定的yum包:yum install xx下載安裝
19、Java環(huán)境安裝
19.1、jdk安裝
安裝步驟
1、創(chuàng)建jdk文件夾:mkdir /opt/jdk
2、通過xftp傳輸Linux版本的jdk安裝包到/opt/jdk目錄下
3、進(jìn)入jdk目錄:cd /opt/jdk
4、解壓jdk安裝包:tar -zxvf jdk-8u261-linux-x64.tar.gz
5、創(chuàng)建java文件夾:mkdir /usr/local/java
6、移動jdk安裝文件:mv /opt/jdk/jdk1.8.0_261/ /usr/local/java/
7、配置環(huán)境變量:vim /etc/profile
8、在profile文末添加
9、讓編輯過的環(huán)境變量生效:source /etc/profile
19.2、Tomcat安裝
安裝步驟
1、新建tomcat目錄:mkdir /opt/tomcat
2、通過xftp傳輸Linux版本的tomcat安裝包到/opt/tomcat目錄下
3、進(jìn)入tomcat目錄:cd /opt/tomcat
4、解壓tomcat安裝包:tar -zxvf apache-tomcat-8.5.69.tar.gz ,下載core核心包地址https://tomcat.apache.org/download-80.cgi
5、進(jìn)入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
也可以通過虛擬機(jī)ip地址:8080/,查看是否可以登錄tomcat首頁。
19.3、MySQL安裝
1、新建mysq文件夾,并進(jìn)入:mkdir /opt/mysql
2、Xftp將安裝包傳輸?shù)?opt/tomcat目錄下,
下載地址 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,
或直接執(zhí)行:wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
3、進(jìn)入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數(shù)據(jù)庫是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.rpm7、啟動服務(wù):systemctl start mysqld.service
8、開始設(shè)置root密碼
Mysql自動給root用戶設(shè)置隨機(jī)密碼,運行g(shù)rep “password” /var/log/mysqld.log可看到當(dāng)前密碼
運行mysql -u root -p,復(fù)制粘貼輸入上述密碼
開發(fā)環(huán)境中密碼要復(fù)雜,平時自己用就設(shè)簡單密碼,避免不能輸入簡單需修改設(shè)置策略,默認(rèn)值為1,帶分號輸入。
mysql密碼設(shè)置有三種策略:0策略密碼設(shè)置最低8位,1策略要求長度,數(shù)字,大小寫,特殊符號,3策略在2的基礎(chǔ)上還多了個字典文件。
set global validate_password_policy=0;最后開始設(shè)置密碼,帶分號
set password for 'root'@'localhost' = password('root6666');9、運行如下命令使密碼生效
flush privileges;20、Shell編程
Shell是一個命令行解釋器,它為用戶提供了一個向Linux內(nèi)核發(fā)送請求以便運行程序的界面系統(tǒng)級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。
20.1、Shell腳本執(zhí)行方式
-
腳本格式要求
腳本以#!/bin/bash開頭,需要可執(zhí)行權(quán)限
例:創(chuàng)建shell腳本,輸出hello world
-
常用執(zhí)行方式
方式1:輸入腳本的絕對路徑或相對路徑(./xxx.sh)
說明:首先要賦予hello.sh腳本的 +x權(quán)限,再執(zhí)行腳本方式2:sh+腳本
說明:不用賦予腳本 +x權(quán)限,直接執(zhí)行即可。
20.2、shell變量
介紹
1)Linux Shell中的變量分為系統(tǒng)變量和自定義變量。
2)系統(tǒng)變量: $HOME等
3)顯示當(dāng)前shell中所有變量: set
shell變量的定義
基本語法
定義變量:變量名=值
撤銷變量: unset 變量
聲明靜態(tài)變量 : readonly 變量,靜態(tài)變量不能unset
變量定義實操
#!/bin/bash #定義變量A A=100 #輸出變量需加上$ echo A=$A echo "A=$A" #撤銷變量,變量A便沒了 unset A echo A=$A #聲明靜態(tài)的變量B=2 readonly B=2 echo "B=$B" C=`date` D=$(date) echo C=$C echo D=$D定義變量的規(guī)則
1.變量名稱可以由字母、數(shù)字和下劃線組成,但是不能以數(shù)字開頭。
2.等號兩邊不能有空格
3.變量名稱一般習(xí)慣為大寫,這是一個規(guī)范,雖然小寫也可運行。
將命令的返回值賦給變量
A=`date`反引號,運行里面的命令,并把結(jié)果返回給變量A,如果沒有反引號表示的是將單詞date給A A=$(date)等價于上面的語句20.2.1、設(shè)置環(huán)境變量(全局變量)
基本語法
export 變量名=變量值 (功能描述:將shell變量輸出為環(huán)境變量)
source 配置文件 (功能描述:讓修改后的配置信息立即生效)
echo $變量名 (功能描述:查詢環(huán)境變量的值)
案例
在/etc/profile文件中定義TOMCAT_ HOME環(huán)境變量,profile文件修改后,需刷新生效
查看環(huán)境變量TOMCAT HOME的值
echo $TOMCAT_HOMEshell多行注釋
:<<! 注釋內(nèi)容 !20.2.2、位置參數(shù)變量
- 用途
當(dāng)我們執(zhí)行一個shell腳本時 ,如果希望獲取到命令行的參數(shù)信息,就可以使用到位置參數(shù)變量
-
基本語法
$n ( 功能描述: n為數(shù)字, $0代表命令本身,$1-$9代表第一到第九個參數(shù), 10以上的參數(shù)需要用大括號包含,如${10} $* (功能描述:命令行中所有的參數(shù),$*把所有參數(shù)看成一個整體) $@ (功能描述:這個變量也代表命令行中所有的參數(shù),不過$@把每個參數(shù)區(qū)分對待,分別輸出) $# (功能描述:命令行中所有參數(shù)的個數(shù))
案例:編寫一個shell腳本position.sh,在腳本中獲取到命令行的各個參數(shù)信息。
vim myshell.sh 輸入如下內(nèi)容 #!/bin/bash echo "0=$0 1=$1 2=$2" echo "所有的參數(shù)=$*" echo "$@" echo "參數(shù)的個數(shù)=$#" sh myshell.sh 10 2020.2.3、預(yù)定義變量
含義:事先定義好的變量,直接在腳本中使用
基本語法
$$(功能描述:當(dāng)前進(jìn)程的進(jìn)程號(PID) $! (功能描述:后臺運行的最后一個進(jìn)程的進(jìn)程號( PID) ) $? (功能描述:最后一次執(zhí)行的命令的返回狀態(tài)。如果這個變量的值為0,證明上一 個命令正確執(zhí)行;如果這個變量的值為非0 (具體是哪個數(shù),由命令自己來決定), 則證明上一個命令執(zhí)行不正確了。)應(yīng)用實例
在一個shell腳本中簡單使用一下預(yù)定義變量
20.3、運算符
基本語法
$((表達(dá)式))或 $[表達(dá)式] 或expr m + n 注意expr(expression表達(dá)式簡寫)運算符間要有空格,m,n為數(shù)字。 希望某個結(jié)果賦值給變量,使用``反引號,單引號就相當(dāng)于字符串拼接 expr m - n expr \*(乘),/(除),%(取余)應(yīng)用實例
#!/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:請求出命令行的兩個參數(shù)的和 SUM=$[$1+$2] echo "sum=$SUM"20.4、條件判斷
判斷語句基本語法
[ condition ] (注意condition前后要有空格)
#非空返回true ,可使用$?驗證( 0為true , > 1為false )
應(yīng)用實例
[ smile ] ,返回true
[ ],返回false
[ condition ] && echo OK II echo notok,條件滿足,執(zhí)行后面的語句
常用判斷條件
1)=字符串比較
2)兩個整數(shù)的比較
-It 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
3)按照文件權(quán)限進(jìn)行判斷
-r 有讀的權(quán)限
-w 有寫的權(quán)限
-x 有執(zhí)行的權(quán)限
4)按照文件類型進(jìn)行判斷
-f 文件存在并且是一 個常規(guī)的文件
-e 文件存在
-d 文件存在且是一個目錄
20.5、流程控制
20.5.1、if使用
基本語法
#單分支 if [ 條件判斷 ] then 代碼 fi#多分支 if [ 條件判斷 ] then 代碼 elif [ 條件判斷 ] then 代碼 fi注意事項:[ 條件判斷 ],中括號和條件之間必須有空格
案例
#!/bin/bash #如果輸入的參數(shù),大于等于60,則輸出及格了,如果小于60,則輸出不及格 if [ $1 -ge 60 ] then echo "及格了" elif [ $1 -lt 60 ] thenecho "不及格" fi20.5.2、case語句
基本語法
case $變量名 in "值1") 如果變量的值等于值1 ,則執(zhí)行程序1 ;;兩分號代表結(jié)束 "值2") 如果變量的值等于值2,則執(zhí)行程序2 ;; 其他分支 *) 如果變量的值都不是以上的值,則執(zhí)行此程序 ;; esac案例
#!/bin/bash #當(dāng)命令行參數(shù)是1時,輸出"周一"是2時,就輸出"周二”,其它情況輸出"other" case $1 in "1")echo "周一" ;; "2")echo "周二" ;; *)echo “other” ;; esac20.5.3、for使用
基本語法
語法1: for 變量 in 值1 值2 ... do 代碼 done語法2: for (( 始值;循環(huán)控制條件;量變化 )) do 代碼 done應(yīng)用實例
案例1:打印命令行輸入的參數(shù)
#!/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案例:從命令行輸入一個數(shù)n,統(tǒng)計從1+……n的值是多少?
#!/bin/bash SUM=0 i=0 while [ $i -le $1 ] doSUM=$[$SUM+$i]i=$[$i+1] done echo "結(jié)果=$SUM"20.5.5、read讀取控制臺輸入
基本語法
read [選項] [參數(shù)]
選項:
-p:指定讀取值時的提示符;
-t:指定讀取值時等待的時間(秒), 如果沒有在指定的時間內(nèi)輸入,就不再等待。
參數(shù)
變量:指定讀取值的變量名
應(yīng)用實例
20.6、函數(shù)
系統(tǒng)函數(shù)
basename基本語法
dirname基本語法
dirname 文件絕對路徑 (功能描述:絕對路徑中去除文件名(非目錄的部分),然后返回剩下的路徑(目錄的部分))
自定義函數(shù)
基本語法
[function] funname (參數(shù)){Action;[return int;] } []表示可有可無 調(diào)用直接寫函數(shù)名: funname [值]應(yīng)用實例
#!/bin/bash #案例:計算輸入兩個參數(shù)的和,getSum function getSum(){sum=$[$n1+$n2]echo "和是=$sum" } #輸入兩個值 read -p "第一個值=" n1 read -p "第二個值=" n2 #調(diào)用函數(shù) getSum $n1 $n220.7、數(shù)據(jù)備份案例
需求分析
1.每天凌晨2:30備份數(shù)據(jù)庫smile到/data/backup/db
2.備份開始和備份結(jié)束能夠給出相應(yīng)的提示信息
3.備份后的文件要求以備份時間為文件名,并打包成.tar.gz的形式,比如: 2021-07-15 230201.tar.gz
4.在備份的同時,檢查是否有7天前備份的數(shù)據(jù)庫文件,如果有就將其刪除。
vim /usr/sbin/mysql_db_backup.sh 內(nèi)容如下
#!/bin/bash #備份目錄 BACKUP=/data/backup/db #當(dāng)前時間 DATATIME=$(date +%Y-%m-%d_%H%M%S) #數(shù)據(jù)庫地址 HOST=localhost #數(shù)據(jù)庫用戶名 DB_USER=root #數(shù)據(jù)庫密碼 DB_PW=root6666 #備份的數(shù)據(jù)庫名 DATABASE=smile #創(chuàng)建備份目錄,不存在就創(chuàng)建 [ ! -d "${BACKUP}/${DATATIME}" ] && mkdir -p "${BACKUP}/${DATATIME}" #備份數(shù)據(jù)庫 echo "開始備份數(shù)據(jù)庫${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} #刪除對應(yīng)的備份目錄 rm -rf ${BACKUP}/${DATATIME} #刪除7天前的備份 find ${BACKUP} -atime +7 -name "*.tar.gz" -exec rm -rf {} \; echo "備份數(shù)據(jù)庫${DATABASE}成功"定時腳本
命令行敲crontab -e ,接著輸入如下內(nèi)容
30 2 * * * /usr/sbin/mysql_db_backup.sh效果圖
21、日志管理
21.1.系統(tǒng)常用日志
標(biāo)紅的是重點
日志管理服務(wù)rsyslogd
CentOS7.6日志服務(wù)是rsyslogd , CentOS6.x 日志服務(wù)是syslogd。rsyslogd 功能更強(qiáng)大,和syslogd兼容。
查詢rsyslogd服務(wù)是否啟動:ps aux | grep "rsyslog" | grep -v "grep" grep -v "grep"表示反向選中前面過濾的內(nèi)容查詢rsyslogd服務(wù)的自啟動狀態(tài)(enable) systemctl list-unit-files | grep rsyslog配置文件: /etc/rsyslog.conf
編輯文件時的格式為:*.* ,存放日志文件
其中第個*代表日志類型,第二個代表日志級別
日志類型分為
auth ##pam產(chǎn)生的日志 authpriv ##ssh、ftp等登錄信息的驗證信息 corn ##時間任務(wù)相關(guān) kern ##內(nèi)核 Ipr ##打印 mail ##郵件 mark(syslog)-rsyslog ##服務(wù)內(nèi)部的信息 ,時間標(biāo)識 news ##新聞組 user ##用戶程序產(chǎn)生的相關(guān)信息 uucp ##unix to nuix copy主機(jī)之間相關(guān)的通信 local 1-7 ##自定義的日志設(shè)備日志級別分為
debug ##有調(diào)試信息的,日志通信最多 info ##一般信息日志 ,最常用 notice ##最具有重要性的普通條件的信息 warning ##警告級別 err ##錯誤級別,阻止某個功能或者模塊不能正常工作的信息 crit ##嚴(yán)重級別,阻止整個系統(tǒng)或者整個軟件不能正常工作的信息 alert ##需要立刻修改的信息 emerg ##內(nèi)核崩潰等重要信息 none ##什么都不記錄 注意:從上到下,級別從低到高,記錄信息越來越少日志文件格式有4列信息
1.事件產(chǎn)生的時間
2.產(chǎn)生事件的服務(wù)器的主機(jī)名
3.產(chǎn)生事件的服務(wù)名或程序名
4.事件的具體信息
21.2、自定義日志
自定義日志添加在/etc/rsyslog.conf ,編輯內(nèi)容如圖
21.3、日志輪替
日志輪替就是把舊的日志文件移動并改名,同時建立新的空日志文件,當(dāng)舊日志文件超出保存的范圍之后,就會進(jìn)行刪除。
日志輪替文件命名
1)centos7使用logrotate進(jìn)行日志輪替管理,要想改變?nèi)罩据喬嫖募?#xff0c;通過/etc/logrotate.conf配置文件中"dateext" 參數(shù):
2)如果配置文件中有"dateext" 參數(shù),那么日志文件以日期后綴 ,例如"secure-20210716"。此時不會重名,只需要指定保存日志個數(shù),刪除多余的日志文件即可。
3)如果配置文件中沒有"dateext" 參數(shù),那么日志文件就需要改名。當(dāng)?shù)谝淮芜M(jìn)行日志輪替時,當(dāng)前"secure"日志會自動改名為"secure.1",然后新建”secure"日志,用來保存新日志。當(dāng)?shù)诙芜M(jìn)行日志輪替時,” secure.1”會自動改名為"secure.2" ,當(dāng)前的"secure" 日志會自動改名為"secure.1”, 然后也會新建"secure"日志,用來保存新的日志,以此類推。
4、查看內(nèi)存日志
journalctl ##查看全部 journalctl -n 3 ##查看最新3條 journalctl --since 19:00 - until 19:10:10 #查看起始時間到結(jié)束時間的日志可加日期 journalctl -p err ##報錯日志 journalctl -o verbose ##日志詳細(xì)內(nèi)容 journalctl_PID=1245 COMM=sshd ##查看包含這些參數(shù)的日志 (在詳細(xì)日志查看) 或者journalctl| grep sshd 注意: journalctl查看的是內(nèi)存日志,重啟清空22、數(shù)據(jù)備份和恢復(fù)
安裝dump和restore
yum -y install dump yum -y install restore使用dump備份
-
基本介紹
dump支持分卷和增量備份(所謂增量備份是指備份上次備份后修改/增加過的文件,也稱差異備份)。 -
dump語法說明
dump [ cu] [-123456789] [ -f <備份后文件名>] [-T <日期>] [ 目錄或文件系統(tǒng)] dump []-wW -C :創(chuàng)建新的歸檔文件,并將由一個或多個文件參數(shù)所指定的內(nèi)容寫入歸檔文件的開頭。 -0123456789 :備份的層級。0為最完整備份,會備份所有文件。若指定0以上的層級,則備份至上一次備份以來 修改或新增的文件,到9后,可以再次輪替。 -f <備份后文件名> :指定備份后文件名 -j :調(diào)用bzlib庫壓編備份文件,也就是將備份后的文件壓縮成bz2格式,讓文件更小 -T <日期> : 指定開始備份的時間與日期 -u :備份完畢后,在/etc/dumpdares中記錄備份的文件系統(tǒng),層級,日期與時間等。 -t :指定文件名,若該文件已存在備份文件中,則列出名稱 -W :顯示需要備份的文件及其最后一次備份的層級,時間,日期。 -w :與-W類似,但僅顯示需要備份的文件。
dump案例
案例1
將/boot分區(qū)所有內(nèi)容備份到/opt/boot.bak0.bz2文件中,備份層級為"0"
案例2
在/boot目錄下新增文件,備份層級為"1”(只備份上次使用層次"0"備份后發(fā)生過改變的數(shù)據(jù))
dump備份文件或者目錄
在備份分區(qū)時,是可以支持增量備份的。但如果備份目錄或文件,不再支增量備份即只能使用0級別備份。
案例3
使用dump備份/etc整個目錄
使用restore恢復(fù)數(shù)據(jù)
基本介紹
restore命令用來恢復(fù)已備份的文件,可以從dump生成的備份文件中恢復(fù)原文件
restore基本語法
應(yīng)用案例
案例1:restore命令比較模式,比較備份文件和原文件的區(qū)別
restore -C -f boot.bak1.bz2 //注意和最新的文件比較案例2:restore命令查看模式,看備份文件有哪些數(shù)據(jù)/文件
restore -t -f boot.bak0.bz2案例3
restore命令還原模式注意細(xì)節(jié):如果你有增量備份,需要把增量備份文件也進(jìn)行恢復(fù),有幾個增量備份文件就要恢復(fù)幾個,按順序來恢復(fù)即可。
23、Linux可視化管理
23.1、webmin安裝
基本介紹
Webmin是功能強(qiáng)大的基于Web的Unix/linux系統(tǒng)管理工具。管理員通過瀏覽器訪問Webmin的各種管理功能并完成相應(yīng)的管理操作。
1.1webmin修改成中文版
23.2、BT寶塔安裝
bt寶塔介紹
bt寶塔Linux面板是提升運維效率的服務(wù)器管理軟件,支持鍵LAMP/LNMP/集群/監(jiān)控/網(wǎng)站/FTP/數(shù)據(jù)庫/JAVA等多項服務(wù)器管理功能。
寶塔安裝
執(zhí)行以下代碼進(jìn)行安裝寶塔6.9.9免費版。寶塔6.9.9版本已經(jīng)很穩(wěn)定了,推薦大家直接安裝6.9.9版本(注意:寶塔linux6.0版本是基于centos7開發(fā)的,務(wù)必使用centos7.x 系統(tǒng))
創(chuàng)建bt文件夾 mkdir /opt/bt 進(jìn)入bt安裝目錄 cd /opt/bt 執(zhí)行安裝命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh注意如果之前安裝過mysql服務(wù),此時安裝需要輸入yes強(qiáng)制安裝,不要寫y
安裝完成后顯示如下界面
如果bt的用戶名,密碼忘記了,使用bt default可以查看
總結(jié)
以上是生活随笔為你收集整理的Linux学习手册大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现图形旋转_Python3
- 下一篇: JavaScript从入门到精通之入门篇