日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux学习手册大全

發布時間:2023/12/10 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux学习手册大全 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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當指定的任務被完成后,將給用戶發送郵件,即使沒有標準輸出
    -Iatq(顯示系統中待執行的任務列表)的別名
    -datrm(刪除待執行任務隊列中的任務)的別名
    -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 ] thenecho "不及格" 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 ] doSUM=$[$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.進入webmincd /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 webminrootroot是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可以查看

    總結

    以上是生活随笔為你收集整理的Linux学习手册大全的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。