主頁 >  其他 > Linux學習手冊大全

Linux學習手冊大全

2021-07-21 13:38:57 其他

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的增強版,它們有三種模式,一般模式,編輯模式(能輸入內容),命令模式,

一般模式:輸入的內容看不見

編輯模式:可以自由輸入內容,可見

命令模式:在檔案末尾位置,可見

命令模式》一般模式:vimvi

一般模式》編輯模式:ioar等按鍵

編輯模式》一般模式:esc

一般模式》命令模式::/

:wq:保存退出

:q:不保存退出

:q!:強制退出

自動補全檔案名:tab

拷貝當前行(一般模式):yy,并粘貼輸入p

拷貝當前行向下的i行:iyy

洗掉當前行:dd

洗掉當前行向下的iidd

在檔案中查找某個單詞(命令模式)敲/,回車查找,輸入n就是查找下一個

設定檔案的行號(:進入命令模式):命令列下set nu

取消檔案的行號:set nonu

使用快捷鍵到該檔案的最末行[G]和最首行[gg](一般模式下)

在一個檔案中輸入"hello"然后又撤銷這個動作,一般模式下按u

立即關機:shutdown -h now

一分鐘后關機:shutdown -h 1

重啟計算機:reboot

獲取幫助資訊:man 【命令或組態檔】(按空格顯示更多幫助資訊)

獲取內置命令幫助資訊:help 命令

7、用戶管理

切換用戶:su - 用戶名

權限高的用戶切換到低權限用戶不需要輸入密碼,反之需要,回傳原來用戶時,exitlogout

添加用戶: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的管理權限)

  1. usermod -g 新組名 用戶名
  2. 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設定服務的自啟動狀態

  1. systemctl list-unit-files [ I grep服務名] (查看服務開機啟動狀態)

  2. systemctl enable 服務名(設定服務開機啟動)

  3. systemctl disable 服務名(關閉服務開機啟動)

  4. 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變數的定義
基本語法

  1. 定義變數:變數名=值

  2. 撤銷變數: unset 變數

  3. 宣告靜態變數 : 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

標籤:其他

上一篇:資料鏈路層 ?一看就懂了!!!

下一篇:wireshark簡明教程,新手專用,挑實在的講,不搞花里胡哨

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more