B站韩顺平版Linux学习笔记(很全啊!)
老韓學習視頻跳轉
一、Linux概述
unix和LInux的關系
LInux的應用領域
服務器領域
-
Linux在服務器領域的應用是最強的
-
LInux免費、穩定、高效等特點在這里得到了很好的體現,尤其是在一些高端領域尤為廣泛
嵌入式領域
- linux運行穩定、對網絡的良好支持性、低成本,且可以根據需要進行網絡裁剪,內核最小可達到幾百kb的特點,使近些年來在嵌入式領域的應用得到非常大的提高
- 主要應用:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA、智能家居、智能硬件等都是其應用領域。以后在物聯網中應用會更加廣泛。
LInux的吉祥物
- 名稱:tux
Linux主要的發行版本
Ubuntu(烏班圖)、RedHat(紅帽)、CentOS
vm與Linux的關系
VMware網絡連接的三種模式
橋接模式
-
VMWare會虛擬一塊網卡和真正的物理網卡就行橋接,這樣,發到物理網卡的所有數據包就到了VMWare虛擬機,而由VMWare發出的數據包也會通過橋從物理網卡的那端發出。橋接網絡是指本地物理網卡和虛擬網卡通過VMnet0虛擬交換機進行橋接。相當于在一個局域網內創立了一個單獨的主機,他可以訪問這個局域網內的所有的主機
-
該模式下主機網卡和虛擬機網卡的IP地址處于同一個網段,子網掩碼、網關、DNS等參數都相同
-
橋接模式下虛擬機和主機在網絡上地位相等,可以理解為一臺新的電腦
NAT模式
-
虛擬系統會通過真實主機的網絡來訪問外網,而真實主機相當于有兩個網卡:真實網卡和虛擬網卡,真實網卡相當于鏈接了現實世界的真實路由器,而虛擬網卡相當于鏈接一個虛擬交換機/路由器(這個虛擬交換機同時鏈接虛擬機和真實主機),此時虛擬機想訪問外網就必須通過真實主機IP地址,而外面看來也確實是真實主機的IP地址,實則是虛擬機訪問的,完全看不到虛擬網絡局域的內部形式。
-
網絡地址轉換模式。虛擬機系統可以和外部系統通訊,不早造成IP沖突
主機模式
- 他就是一個獨立的系統,不和外界發生聯系
二、Linux目錄結構(重點)
2.1基本介紹
- linux的文件系統是采用級層式的樹狀目錄結構,在此結構上的最上層是根目錄“/",然后在此目錄下在創建其他的目錄。
- 深刻理解linux樹狀文件目錄是非常重要的
- 記住一句很經典的話:在LInux世界里,一切皆文件
2.2具體的目錄結構
-
/bin 【常用】(/usr/bin、/uer/local/bin)
是Binary的縮寫,這個目錄存放著最常使用的命令
-
/sbin (/usr/sbin、/usr/local/sbin)
s就是Super user的意思,這里存放的是系統管理員使用的系統管理程序
-
/home 【常用】
存放普通用戶的主目錄,在Linux中每個用戶都有一個自己的目錄,一般該目錄是以用戶的賬號命名
-
/root 【常用】
該目錄為系統管理員,也稱作超級權限者的用戶主目錄
-
/lib 系統開機所需要的最基本的動態鏈接共享庫,起作用類似于Windows里的DLL文件。幾乎所有的應用程序都需要用到這些共享庫
-
/lost+found 這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些文件
-
etc 【常用】
所有的系統管理所需要的配置文件和子目錄,比如安裝mysql數據庫,my.conf
-
/usr 【常用】
這是一個非常重要的目錄,用戶很多應用程序都放在這個目錄下,類似于windows下的program files目錄。
-
/boot 【常用】
存放的是啟動Linux時使用的一些核心文件,包括一些鏈接文件以及鏡像文件
-
/proc 這個目錄是一個虛擬的目錄,他是系統內存的映射,訪問這個目錄來獲取系統信息
-
/srv service縮寫,該目錄存放一些服務器啟動后需要提取的數據
-
/sys 這是linux2.6內核的一個很大的變化,該目錄下安裝了2.6內核中新出現的一個文件系統sysfs
-
/tmp這個目錄是用來存放一些臨時文件的
-
/dev
類似于windows的設備管理器,把所有的硬件用文件的形式存儲
-
/media【常用】linux系統會自動識別一些設備,例如U盤,光驅等等,當識別后,linux會把識別的設備掛載到這個目錄下
-
/mnt 【常用】
系統提供該目錄是為了讓用戶臨時掛載別的系統文件,我們可以將外部的存儲掛載在/mnt/上,然后進入該目錄就可以查看里面的內容了。D:/mushare
-
/opt 這是給主機額外的安裝軟件所存放的目錄。如安裝ORACLE數據庫就可以放到該目錄下。默認為空
-
/usr/local【常用】
這是另一個給主機額外安裝軟件所安裝的目錄。一般是通過編譯源碼的方式安裝的程序
-
/var 【常用】
這個目錄中存放著在不斷擴充的東西 ,習慣的將經常修改的目錄放在這個目錄下。包括各種日志文件
-
/selinux 【security-enhanced linux】
SELinux是一種安全子系統,他能控制程序自能訪問特定的文件,有三種工作模式,可以自行設置
三、vi和vim編輯器
3.1 vi和vim的基本介紹
Linux系統會內置vi文本編輯器
Vim具有程序編輯的能力,可以看做是Vi的增強版本,可以主動的以字體顏色辨別語法的正確性,方便程序設計。代碼補完、編譯錯誤跳轉等方便編程的功能相當豐富,在程序員中被廣泛使用。(vim就是vi的增強版)
3.2 vi和vim常用的三種模式
- 正常模式
以vim打開一個檔案就直接進入一般模式了(這是默認的模式)。在這個模式中,可以使用【上下左右】鍵來移動光標,你可以使用【刪除字符】或【刪除整行】來處理檔案內容,也可以使用【復制、粘貼】來處理你的文件數據。
- 插入模式
按下i,I,o,O,a,A,r,R等任何一個字母之后才會進入編輯模式,一般來說按i就可
- 命令行模式
在這個模式中,可以提供你相關指令,完成讀取、存盤、替換、離開vim、顯示行號等動作則是在此模式中達成的!
四、LInux開機,重啟和用戶登錄注銷
4.1關機和重啟的命令
- 基本介紹
- 注意細節
1.不管是重啟系統還是關閉系統,首先要運行sync命令,把內存中的數據寫到磁盤中
2.目前的shutdown/reboot/halt等命令均已在關機前進行了sync
4.2用戶登錄和注銷
- 基本介紹
1、登陸時盡量少用root賬號登錄,因為他是系統管理員,最大的權限,避免操作失誤。可以利用普通用戶登錄,登陸后再用”su - 用戶名“命令來切換成系統管理員身份
2、在提示符下輸入logout即可注銷用戶
- 使用細節
logout注銷指令在圖形運行級別無效,在shell界面有效
五、用戶管理
5.1基本介紹
Linux系統是一個多用戶多任務的操作系統,任何一個要使用系統資源的用戶,都必須先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統
5.2添加用戶
- 基本語法
- 實列(root權限下)
- 細節說明
5.3指定/修改密碼
- 基本語法
- 實例
- 補充,顯示當前用戶所在的目錄pwd
5.4 刪除用戶
- 基本語法
- 實例
1.刪除用戶zhanzhiwen,但是要保留目錄
2.刪除用戶以及用戶主目錄 ,userdel -r 用戶名
5.5查詢用戶信息指令
- 基本語法
- 實列
- 細節說明
當用戶不存在是,返回無此用戶
5.6切換用戶
- 介紹
在操作Linux時,如果當前用戶的權限不夠,可以通過su - 指令,切換到更高權限的用戶,如root
- 基本語法
- 實列說明
- 細節說明
1.從權限高的用戶切換到權限低的用戶時,不需要輸入密碼,反之需要
2.當需要返回到原來用戶時,使用exit/logout指令
5.7 查看當前用戶/登錄用戶
- 基本語法
-
實例
-
細節說明
查看的是登錄的用戶!
5.8 用戶組
- 介紹
類似于角色,系統可以對有共性/權限的多個用戶進行統一的管理
- 新增組
- 刪除組
指令(基本語法):groupdel 組名
- 注意:如果當添加用戶時沒有指定組,會默認創建和這個用戶同名的組,同時把用戶放到該組里
- 增加用戶時直接加上組
- 移動組
5.9 用戶和組相關文件
- /etc/passwd 文件
用戶(user)的配置文件,記錄用戶的各種信息
每行的含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell
- /etc/shadow文件
口令配置文件
每行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志
- /etc/group文件
組(group)的配置文件,記錄Linux包含的組的信息
每行含義:組名:口令:組標識號:組內用戶列表
六、Linux實踐——實用指令
6.1指定運行級別
- 基本介紹
運行級別說明:
0:關機
1:單用戶【找回丟失密碼】
2:多用戶狀態沒有網絡服務
3:多用戶狀態有網絡服務
4:系統未使用保留給用戶
5:圖形界面
6:系統重啟
常用運行級別是3和5,也可以指定默認運行級別
- 應用實例
命令:init[0123456]應用案例:通過init來切換不同的運行級別,比如動5-3,然后關機
查看當前的運行級別 systemctl get-ddefault 改變為 systemctl set-default multi-user.target6.2幫助指令
- man獲得幫助信息
在linux下隱藏文件是以 “.” 開頭的
- help指令
6.3文件目錄類
- pwd指令
- ls指令
常用選項
-a : 顯示當前目錄所有的文件和目錄,包括隱藏的
-l : 以列表的方式顯示信息
- cd指令
理解:絕對路徑和相對路徑(相對路徑是針對當前位置的路徑)
cd ~ 或者cd 回到自己的家目錄
cd … 回到當前目錄的上一級目錄
- mkdir指令
理解:mkdir指令用于創建目錄(默認只能創建一級目錄)
-p :創建多級目錄
- rmdir指令(用于刪除空目錄)
使用細節:
rmdir刪除的是空目錄,如果欲刪除的目錄下有內容則無法刪除
==如果需要刪除非空目錄,需要使用rm -rf 要刪除的目錄
- touch指令(用于創建空文件)
- cp指令(copy拷貝文件導指定目錄)
常用選項:-r 遞歸復制真個文件夾
應用實例:
將 /home/hello.txt 拷貝到 /home/bbb 目錄下
cp /home/hello.txt /home/bbb遞歸復制整個文件夾,將/home/aaa 目錄下的文件全部拷貝到/home/bbb下
cp -r /home/aaa /hom/bbb (是將整個目錄和目錄本身拷貝進來)使用強制覆蓋不提示的方法:\cp
- rm指令(remove,移除文件或目錄)=一定要小心!!!
常用選項
-r : 遞歸刪除整個文件夾
-f :強制刪除不提示
使用細節:強制刪除不提示的方式,帶上-f參數即可
- mv指令(move,移動文件與目錄或重命名)(以可剪切文件夾)
- cat指令(查看文件內容)
常用選項: -n 顯示行號
使用細節:cat只能瀏覽文件,而不能修改文件,為了瀏覽方便,一般會帶上管道命令 |more
cat -n /etc/profile |more- more指令
more指令是一個基于VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容。more指令中內置了若干快捷鍵(交互的指令)
基本語法:more 要查看的文件操作說明
- ln指令
軟連接也稱為符號鏈接,類似于windows里的快捷鍵方式,主要存放了連接其他文件的路徑
基本語法:ln -s [原文件或目錄] [軟鏈接名](功能描述:給原文件創建一個軟鏈接)- history指令
查看已經執行過歷史命令,也可以執行歷史指令
history 顯示所有的歷史命令 history 10 顯示最近使用過的10個指令 !5 執行歷史編號為5的指令6.4時間日期類
- date指令-顯示當前日期
date指令還可以設置日期
date -s 字符串時間 date -s "2021-6-20 16:44:30"- cal指令
查看日歷指令
cal [選項] (功能描述:不加選項,顯示本月日歷) cal 2021 顯示2021整年的日歷6.5搜索查找類
-
find指令
find指令指令 將從指定目錄向下遞歸遍歷各個子目錄,將滿足條件的文件或者目錄顯示在終端上
選項說明(可填選項)
| -name<查詢方式> | 按照指定的文件名查找模式查找文件 |
| -user<用戶名> | 查找屬于指定用戶名所有文件 |
| -size<文件大小> | 按照指定的文件大小查找文件 |
說明:當查詢路徑下無該文件,就不會有任何顯示
- locate指令
? locate指令可以快速定位文件路徑。locate命令利用事先建立的系統中所有文件名稱及路徑的locate數據庫實現快速定位的文件名。Locate指令無需遍歷整個文件系統,查詢速度較快。為了保障查詢結果的準確度,管理員必須定期更新locate時刻
基本語法:locate 搜索文件特別說明:由于locate指令基于數據進行查詢,所以第一次運行前,必須是使用updatedb指令創建locate數據庫
- which指令 ,可以查看某個指令在哪個目錄下
- grep指令和管道符號 |
grep過濾查找,管道符,“|“,表示將前一個命令輸出傳遞給后面的命令處理
基本語法:grep [選項] 查找內容 源文件選項:
-n 顯示匹配行及行號
-i 忽略字母大小寫
兩種寫法
cat /home/hello.txt |grep -n "yes" hello.txt文件夾中輸出同樣的 grep -n "yes" /home/hello.txt6.6 壓縮和解壓
- gzip/gunzip指令
gzip用于壓縮文件,gunzip用于解壓文件的
gzip文件 (功能描述:壓縮文件,只能將文件壓縮為*.gz文件 gunzip文件 (功能描述:解壓文件命令)- zip/unzip指令
zip用于壓縮文件,unzip用于解壓的,在整個項目打包發布中很有用的
zip [選項] xxx.zip 將要壓縮的內容(一般是文件和文件夾) uzip [選項] xxx.zip (功能描述:解壓文件)zip的常用項: -r 遞歸壓縮,即壓縮目錄
zip -r myhome.zip /home/
unzip的常用項 : -d<目錄> : 指定解壓后文件的存放目錄
unzip -d
- tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz的文件。
tar [選項] xxx.tar.gz 打包的內容 (功能描述:打包目錄,壓縮后的格式.tar.gz)選項說明
| -c | 產生.tar打包文件 |
| -v | 顯示詳細信息 |
| -f | 指定壓縮后的文件名 |
| -z | 打包同時壓縮 |
| -x | 解包.tar文件 |
因為解壓的目標地址不是當前文件夾,要去別的文件加,所以要加-C
七、linux的主管理和權限管理
7.1Liunx組的基本介紹
- 在Linux中的每個用戶必須屬于一個組,不能獨立于組外。
- 在Linux中每個文件都有所有者、所在組、其他組的概念
- 所有者
- 所在組
- 其它組
- 改變用戶所在的組
7.2文件/目錄的所有者
- 一般文件的創建者,誰創建了該文件,就自然成為該文件的所有者
- 查看文件的所有者:
- 修改文件所有者
7.3文件/目錄 所在組
- 當某個用戶創建了一個文件后,這個文件的所在組就是該用戶所在的組
- 查看文件/目錄所在組
- 修改文件所在的組
7.4其他組
除文件的所有者和所在組的用戶外,系統的其他用戶都是文件的其它組
7.5改變用戶所在組
-
在添加用戶時,可以指定將該用戶添加到哪個組中,同樣的用root的管理權限可以改變某個用戶所在的組
-
該百年用戶所在組
7.6權限的基本介紹
ls -l 顯示的如下內容:
-rw-r--r--. 1 mikasa mikasa 141 6月 22 11:19 hello.txt0-9位說明
- 1.第0位確定文件類型(d,-,l,c,b)
- d是目錄,相當于windows的文件夾
- l是鏈接文件,相當于windows的快捷方式
- -是普通文件
- c是字符設備文件,鼠標,鍵盤
- b是塊設備,比如硬盤
- 2.第1-3位確定所有者(該文件的所有者)擁有該文件的權限 --user
- 3.第4-6位確定所屬組(同用戶組的)擁有該文件的權限 --Group
- 4.第7-9位確定其他用戶擁有該文件的權限 --Other
rwx權限詳解,難點
-
rwx作用到文件
- 【r】代表可讀(read):可以讀取、查看
- 【w】代表可寫(write):可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有些權限,才能刪除該文件
- 【x】代表可執行(execute):可以被執行
-
rwx作用到目錄
- 【r】代表可讀(read):可以讀取,ls查看目錄內容
- 【w】代表可寫(write):可以修改,對目錄內創建+刪除+重命名目錄名
- 【x】代表可執行(execute):可以進入該目錄
7.7文件及目錄權限實際案例
- ls -l 顯示內容
- 10個字符確定不同用戶能對文件干什么
- 第一個字符代表文件類型: -l d c b
- 其余字符每三個一組(rwx)讀(r)寫(w)執行(x)
- 第一組rwx:文件擁有者的權限是讀、寫但不能執行
- 第二組rw-:與文件擁有者同一組的用戶的權限是讀、寫但不能執行
- 第三組r–:不與文件擁有者同組的其他用戶的權限是都只能讀
- 可用數字表示為:r=4,w=2,x=1 因此rwx=4+2+1=7
- 其他說明
- 1 若是文件:硬件連接 若是目錄:子目錄數+文件數
- root 用戶
- root 組
- 1213 文件大小(字節),如果是文件夾顯示4096字節
- Feb 2 09:39 最后修改日期
- abc 文件
7.8修改權限-chmod
- 基本說明:
通過chmod指令,可以修改文件或者目錄的權限。
- 第一種方式:+ 、- 、=變更權限
u:所有者(是指文件或者是目錄的擁有者) q:所有組 o:其他用戶 a:所有人(u、g、o的總和)
1)chmod u=rwx,g=rx,o=x 文件/目錄名
2)chmod o+w 文件/目錄名
3)chmod a-x 文件/目錄名
1)給abc文件的所有者讀寫執行的權限,給所在組讀執行權限, 給其他組讀執行權限 chmod u=rwx,g=rx,0=x abc2)給abc文件的所有者除去執行的權限,增加組寫的權限 chmod u-x,g+w abc3)給abc文件的所有用戶添加讀的權限 chmod a+r abc- 第二種方式:通過數字變更權限
r=4 w=2 x=1 rwx=4+2+1
chmod u=rwx,g=rx,o=x 文件目錄名 相當于chmod 751 文件目錄要求:將/home/abc.txt文件的權限修改成 rwxr-xr-x,使用數字的方式實現
chmod 755 /home/abc.txt7.9修改文件所有者-chown
- 基本介紹
- -R 如果是目錄則使其下所有子文件或目錄遞歸生效(recursion)
7.10修改文件/所在組-chgrp
- 基本介紹
- -R 如果是目錄則使其下所有子文件或目錄遞歸生效(recursion)
7.11對文件夾(目錄)的rwx的細節討論
- x:表示可有進入到該目錄,比如cd
- r:表示可以ls,將目錄的內容顯示
- w:表示可以在該目錄刪除或者創建文件
八、crond任務調度
8.1crontab 進行 定時任務的設置
-
概述
-
任務調度:是指系統在某個時間執行的特定的命令或程序。
-
任務調度分類.
- 系統工作:有些重要的工作必須周而復始地執行。如病毒掃描等
- 個別用戶工作:個別用戶可能希望執行某些程序,比如對mysql數據庫的備份
-
基本語法
-
-
快速入門
-
設置任務調度文件:/etc/crontab
-
設置個人任務調度。執行crontab -e命令
-
接著輸入任務到調度文件
-
如:
*/1 * * * * ls -l /etc/ > /tmp/to.txt 意思說每個小時的每分鐘執行ls -l /etc/ > /tmp/to.txt 命令 -
參數細節說明
-
5個占位符的說明
-
-
特殊符號說明
特殊符號含義 * 代表任何時間。比如第一個 “ * ” 就代表一小時中每分鐘都執行一次的意識 ‘ 代表不連續的時間。比如“0 8,12,16 *** 命令,就代表在每天的8點0分,12點0分,16點0分都執行一次命令 - 代表連續的時間范圍。比如”0 5 * * 1-6 命令“,代表在周一到周六的凌晨5點0分執行命令 */n 代表每隔多久執行一次。比如 ” */10 * * * * 命令" ,代表每隔10分鐘就執行一遍命令 -
特定時間執行任務案例
*
8.2 at定時任務
-
基本介紹
- at命令是一次性定時計劃任務,at的守護進程atd會以后臺模式運行,檢查作業隊列來運行
- 默認情況下,atd守護進程每60秒檢查作業隊列,有作業時,會檢查作業運行時間,如果時間與當前時間匹配,則運行此作業
- at命令是一次性定時任務計劃,執行完一個任務后不再執行此任務了
- 在使用at命令的時候,一定要保證atd進程的啟動,可以使用相關指令來查看
-
at命令格式
at [選項] [時間] ctrl + D 結束at命令輸入(兩次)
-
at命令選項
-
at時間定義的方法
-
相關方法
- atq命令,來查看系統中沒有執行的工作任務
- atrm 編號 刪除已經設置的任務
-
案列
- 2天后的下午5點執行/bin/ls /home
- 明天17點鐘,輸出時間到指定文件內 比如/root/date100.log
九、Linux磁盤分區、掛載
9.1Linux分區
- 原理介紹
- Linux來說無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構,Linux中每個分區都是用來組成整個文件系統的一部分
- Linux采用了一種叫”載入“的處理方法,它的整個文件系統包含了一整套的目錄,且將一個分區和一個目錄聯系起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得
-
硬盤shuo’ming
- Linux硬盤分IDE硬盤和SCSI硬盤,目前基本上是SCSI硬盤
- 對于IDE硬盤,驅動驅動標識符為” hdx~ “,其中”hd“表明分區所在的設備類型,這里是指IDE硬盤了。”x“為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),”~“代表分區,前四個分區用數字1到4表示,他們是主分區和拓展分區;從5開始就是邏輯分區。例,hda3表示為第一個IDE硬盤上的第三個主分區或拓展分區,hdb2表示為第二個IDE硬盤上的第二個主分區或拓展分區
- 對于SCSI硬盤則標識為”sdx~“,SCSI硬盤是用”sd“來表示分區所在設備的類型的,其余則和IDE硬盤的標識方式一樣
-
查看所有的設備掛載情況
命令:lsblk 或者 lsblk -f
- 針對第二張圖
- sda下指得是分區情況
- FSTYPE 指的是文件類型
- UUID值得是分區得唯一標識符(40個位)
- MOUNTPOIN 掛載點
- sda下指得是分區情況
9.2掛載的經典案例
以增加一塊硬盤為例來熟悉磁盤的相關指令和深入理解磁盤分區、掛載、卸載的概念。
如何為linux系統增加一塊硬盤?
-
1.虛擬機添加硬盤
- 在vmware上實現
- 重啟虛擬機
- 重啟后的分區情況[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
-
2.分區
-
分區命令
fdisk /dev/sdb -
(dev(device)這個目錄中包含了所有Linux系統中使用的外部設備。但是不是存放外部設備的驅動程序。它實際上是一個訪問這些外部設備的端口就。我們可以非常方便的去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別)
-
開始對 /sdb分區
-
-
3.格式化
- 格式化磁盤
- 分區命令:
- 其中ext4是分區類型
-
4.掛載(將一個分區與一個目錄聯系起來)
掛載令: mount 設備名稱 掛載目錄 !!卸載命令: umout 設備名稱(或者已掛載的目錄)
用命令行掛載,重啟后就會失效
-
5設置可以自動掛載
- 永久掛載:通過修改/etc/fstab實現掛載
- 添加完成后,執行mount -a立即生效
9.3磁盤情況查詢
-
查詢系統整體磁盤使用情況
- 基本語法
- 應用實例:查詢系統整體磁盤使用情況(使用率到了80以上就正常了)
-
查詢指定目錄的磁盤占用情況
- 基本語法
- 查詢指定目錄的磁盤占用情況,默認為當前目錄
- 選項
- 案例:查詢opt目錄的磁盤占用情況,深度為1
-
磁盤情況-工作實用指令
-
1.統計/opt文件夾下文件的個數
ls -l /opt | grep "^-" | wc -l -
2.統計/opt文件夾下目錄的個數
ls -l /opt | grep "^d" | wc -l -
3.統計/opt文件夾下文件的個數,包括子文件夾里的
ls -lR /opt | grep "^-" | wc -l -
4.統計/opt文件夾下目錄的個數,包括子文件夾里的
ls -lR /opt | grep "^d" | wc -l -
5.以樹狀顯示目錄結構
yum install tree tree /home
-
十、LInux網絡配置
10.1Linux網絡配置原理圖
10.2配置一個指定的ip
- 直接修改配置文件來制定IP,并可以連接到外網(cxy推薦)
- 編輯 vim /etc /sysconfig/network-scripts/ifcfg-ens33
- 修改前
-
要求:將IP地址配置為靜態的,比如ip地址為192.168.200.130
-
修改后
-
ifcfg-ens33文件說明
-
重啟網絡服務或者重啟兄系統生效
service network restart reboot -
ping指令
10.3設置主機名和hosts映射
-
設置hosts映射
- windows
- liunx
-
主機名解析過程分析(hosts、DNS)
- hosts文件是什么:一個文本文件,用來記錄IP和hostname(主機名)的映射關系
- DNS(Domain Name System,域名系統):是互聯網上作為域名和IP地址相互映射的一個分布式數據庫
-
主機名解析機制分析
應用實例:用戶在瀏覽器輸輸入了www.baidu.com-
1.瀏覽器先檢查瀏覽器緩存中有沒有該域名解析ip地址,有就先調用這個IP完成解析;如果沒有,就檢查DNS解析器緩存,如果有就直接返回ip完成解析。(這兩個緩存可以理解為本地解析器緩存)
(一般來說,當電腦第一次成功訪問某一網站后,在一定的時間內,瀏覽器或者操作系統會緩存它的ip地址DNS解析記錄,如在命令行輸入
ipconfig /displaydns //DNS緩存解析 ipconifg /flushdns //手動清理dns緩存 -
2.如果本地解析器緩存沒有找到對應的映射,則檢查系統系統中的hosts文件中有沒有配置對應的域名ip映射。如果有,則完成解析并返回
-
3.如果本地DNS解析器緩存和hosts文件中均沒有找到對應的ip,則到域名服務DNS進行解析
-
十一、進程管理
11.1基本介紹
-
在Linux中,每一個執行的程序都被稱為一個進程。每一個進程都被分配一個ID號(pid,進程號)
- windows下的pid
- linux:top指令
-
每個進程都可能以兩種方式存在。前臺與后臺,所謂前臺進程就是用戶目前屏幕上可以進行操作的。后臺進程則是實際在操作,但由于屏幕上無法看到的進程,通常使用后臺方式執行。
-
一般系統的服務都是以后臺進程的方式存在,而且都會常駐在系統中。直到關機才會結束
11.2顯示系統執行的進程
- ps命令是用來查看目前系統中,有哪些正在執行的進程 ,以及他們的執行狀況。可以不加任何參數
ps顯示的信息選項
| PID | 進程識別號 |
| TTY | 終端機號 |
| TIME | 此進程所消耗CPU時間 |
| CMD | 正在執行的命令或進程名 |
- 執行ps -aux
-
參數解釋
- USER:進程執行用戶
- PID:進程號
- %CPU:當前進程占用cpu的百分比
- %MEM:占用物理內存的百分比
- VSZ:進程占用虛擬內存大小(KB)
- RSS:進程占用的物理內存的大小(KB)
- TTY:終端名稱
- STAT:運行狀態,S-表示sleep休眠、s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-表示正在運行,D-短期等待,z-僵尸進程,T-被跟蹤或者被停止等等
- STARTED:執行的開始時間
- TIME:占用CPU時間
- COMMAND:啟動進程所用的命令和參數,如果過長會被截斷顯示
-
以全格式顯示當前所有的進程,查看進程的父進程
ps -ef 是以全格式顯示當前所有的進程-e 顯示所有的進程 -f 全格式ps -ef|grep xxx 是BSD風格
-
UID:用戶ID
-
PID:進程ID
-
PPID:父進程ID
-
C:cpu用于計算執行優先的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高
-
STIME:進程啟動時間
-
TTY:完整的終端名稱
-
TIME:CPU占用時間
-
CMD啟動進程所用的命令和參數
- ps -ef|grep sshd
-
sshd進程是1號進程的子進程,
-
終止進程kill和killall
- 若是某一個進程執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該進程。使用kill命令來完成此項任務
- 基本語法
-
常用選項:-9 表示強迫進程立即停止
-
案例
- 踢掉某個非法登錄用戶(mikasa)
- 終止遠程登錄服務sshd,在適當時候再次重啟sshd服務
- 終止多個gedit
- 強制殺掉一個終端
11.3查看進程樹pstree
- 基本語法
- 常用選項
十二、服務(service)管理
12.1介紹
服務(service)本質就是進程,但是時運行在后臺的,通常都會監聽某個端口,等待其他程序的請求,比如(mysqld,sshd 防火墻等),因此我們又稱為守護進程,是Linux中非常重要的知識點
-
service管理指令
service 服務名 [start| stop| restart| reload | status] -
在CentOS7.0后很多服務不再使用service,而是systemctl
-
service指令管理的服務在 /etc/init.d查看
-
案例
-
查看服務名:
- 方式1:使用setup——>系統服務,就可以看到全部
- 帶*號的服務是隨著linux的啟動自動啟動,沒有帶 *號的都是需要手動啟動的
- 這里記一個比較呆比的事情,退出按Tab
- 方式1:使用setup——>系統服務,就可以看到全部
-
方式2:/etc/init.d 看到service指令管理的服務ls -l /etc/init.d
-
額外擴展:為什么linux很多服務以d結尾?
- d代表deamon 守護進程
- Linux的大多數服務就是用守護進程
- 守護進程是運行在Linux服務器后臺的一種服務程序
- 它周期地執行某種任務或等待處理某些發生的事件
- 比如:xinetd提供網絡服務,sshd提供ssh登錄服務,httpd提供web服務
12.2服務的運行級別
- linux系統有七種運行級別(runlevel):常用的是級別3和5
- 運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
- 運行級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登錄
- 運行級別2:多用戶狀態(沒有NFS),不支持網絡
- 運行級別3:完全的多用戶狀態(有NFS),登錄后進入控制臺命令行模式
- 運行級別4:系統未使用,保留
- 運行級別5:X11控制臺,登陸后進入圖形GUI模式
- 運行級別6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動
- 開機的流程說明
-
CentOS7運行級別說明
- 在/etc/initab,進行了簡化如下
- #to view current default target,run: systemctl get-default
- #To set a default target,run: systemctl set-default TARGET.target
12.3chkconfig指令
- 介紹
- 1.通過chkconfig命令可以給服務的各個運行級別設置自 啟動/關閉
- 2.chkconfig指令管理的服務在 /etc/init.d查看
- 注意:CentOS7.0后,很多服務使用systemctl管理
- 基本語法
- 案列
- 注意:chkconfig重新設置服務后自啟動或關閉,需要重啟機器reboot生效
12.4systemctl命令
-
systemctl管理命令
systemctl [start | stop |restart |status ] 服務名- systemctl指令管理的服務咋/usr/lib/systemd/system中查看
-
systemctl設置服務的自啟動狀態
systemctl list-unit-files [|grep 服務名] (查看服務開機啟動狀態,grep可進行過濾) systemctl enable 服務名 (設置服務開機啟動) systemctl disable 服務名 (關閉服務開機啟動)關閉和開啟都是默認的3和5兩級別 systemctl is-enabled 服務名 (查詢某個服務是否是自啟動的) -
引用案列:
ll /usr/lib/systemd/system |grep fire 查找防火墻服務systemctl list-unit-files | grep firewalld 查看當防火墻的服務狀態systemctl is-enabled firewalld 查看防火墻服務是否是自啟的查看當前防火墻的狀態,關閉防火墻和重啟防火墻 systemctl status firewalld停止防火墻 systemctl stop firewalld啟動防火墻、 systemctl s
-
細節點
- 關閉或者啟動防火墻后,立即生效。[telnet測試 某個端口即可]
- 這種方式只是臨時生效,當重啟系統后,還是回歸以前對服務的設置
- 如果希望設置某個服務自啟動或關閉永久生效,要使用systemctl [enable|disable]服務名
12.5打開或者關閉指定端口
在真正的生產環境,往往需要將防火墻打開,來了,如果我們把防火墻打開,那么外部請求數據包就不能給服務器監聽端口通訊。,這時,需要打開指定的端口。比如80,22,8080 該怎么做呢
-
firewall指令
- 打開端口
- 關閉端口
- 無論是關閉還是開啟端口都需要重新載入防火墻才能生效
- 查詢端口是否開放
-
案例
-
啟用防火墻,測試111端口是否能telnet
-
開放111端口
-
再次關閉111端口
-
十三、動態監控
13.1介紹
? top和ps命令很相似。他們都用來顯示正在執行的進程Top和ps最大的不同處在于top在執行一段時間可以更行正在運行的進程
- 基本語法
- 選項說明
| -d 秒數 | 指定top命令每隔幾秒更新。默認是3秒 | top -d 5 |
| -i | 是top不顯示任何閑置或者僵死進程 | |
| -p | 通過指定監控進程ID來僅僅監控某個進程的狀態 |
-
僵死進程:進程已經死掉了(進程運行結束),但是內存沒有被釋放掉。僵死進程需要定時清除!!
-
其中cpu使用率和KiB Mem(內存管理)最為重要
13.2動態監控進程的交互操作
- 交互操作說明
| P | 以CPU施一公率排序,默認就是此項 |
| M | 以內存使用率排序 |
| N | 以PID排序 |
| q | 退出top |
-
實例
案例1.監視特定用戶,比如說監控mikasa用戶 top:輸入此命令,按回車鍵,查看執行的進程 然后輸入“u”,回車,在輸入用戶名,即可案例2:終止指令的進程 先輸入top指令后,在輸入“k“ ,在輸入想要終止的進程號案例3:指定系統狀態更新的時間(每隔10秒自動更新)(默認的是3秒) top -d 10
13.3監控網絡狀態
-
查看系統網絡情況netstat
- 基本語法
- 選項說明
-
檢測主機連接命令ping
- 是一種網絡檢測工具,它主要是用來檢測遠程主機是否正常,或是兩部主機間的網線或網卡故障
十四、RPM與YUM
14.1rpm包的管理
-
介紹
- rpm用于互聯網下載包的打包及安裝工具,它包含在某些LInux分發版中。它生成具有.RPM拓展名的文件。RPM是RedHat Package Manager (RedHat軟件包管理工具)的縮寫,類似windows的setup.ext,這一文件格式名稱雖然打上了RedHat的標志,但理念是通用的。
- Linux的分發版都有采用(suse,redhat,centos等),可以說是公用的行業標準。
-
rpm包的簡單查詢指令
- 查詢已安裝的rpm列表
- rpm包名基本格式
-
rpm包的其它查詢指令
- rpm -qa 查詢所安裝的所rpm包軟件包
- rpm -q 軟件包名 查詢軟件包信息
- rpm -qi 軟件包名 查詢軟件包信息
- rpm -ql 軟件包名 查詢軟件包中的文件
- rpm -qf 文件全路徑名 查詢文件所屬的軟件包
-
安裝rpm包
- 基本語法
- 參數說明
-
卸載rpm包
- 基本語法
-
注意
- 如果其它軟件包依賴于要卸載的軟件包,卸載時則會產生錯誤的信息
- 如果必須要刪除這個軟件包,可以增加參數 --nodeps,就可以強制刪除,但是一般不推薦這么做,因為依賴于該軟件包的程序可能無法運行
14.2yum
-
介紹:Yum是一個Shell前端軟件包管理器。基于RPM包管理,能夠從指定的服務器自動下載RPM包并安裝,可以自動處理依賴關系,并且一次安裝所有依賴的軟件包
-
yum的基本指令
查詢yum服務器是否有需要安裝的軟件(軟件列表) yum list|grep xx安裝指定的yum包(下載安裝 yum install xxx -
實列:使用yum的方式安裝firefox
rpm -e firefox 先卸載centos中的firefox yum list | grep firefox 查詢firefox的軟件 yum install firefox 下載!
總結
以上是生活随笔為你收集整理的B站韩顺平版Linux学习笔记(很全啊!)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 帆软报表(finereport)JS实现
- 下一篇: alpha值计算 qcolor_量化交易