磁盤分區,文件系統,軟鏈接和硬鏈接,內存和進程管理
(一)磁盤分區
1.硬盤邏輯上劃分為:塊--磁道--磁柱--分區;
2.分區分類:主分區,擴展分區,邏輯分區
3.命令:
sdb---scsi接口的第2個磁盤,路徑為/dev/sdb
/dev/sro----光盤,像/dev/sda /dev/sdb /dev/sdb2 這些我們可以稱其為設備名
df命令用來檢查linux服務器的文件系統的磁盤空間占用情況,df--diskfilesystem 文件系統
fdisk是對磁盤添加,刪除,轉化分區
fdisk -l /dev/sda 查看硬盤實際使用情況
fdisk /dev/sda 指定硬盤文件/進入硬盤分割模式
df -T 查看文件類型
df -h 以更易度的方式顯示目前磁盤空間和使用情況
df -i 一inode模式顯示磁盤使用情況
df -a 顯示全部文件系統列表
4.磁盤分區步驟:
(1)給硬盤劃分分區
a. fdisk /dev/sdb
b. n---p--默認--默認--w保存主分區設置
c. l擴展分區---e 邏輯分區
(2)制作分區文件系統(或叫格式化制作文件系統)
mkfs.ext4 /dev/sdb1 將sdb1分區做成ext4格式的文件系統
mkfs.xfs /dev/sdb2 將sdb2分區做成xfs格式的文件系統
註:ext4和xfs屬於日誌系統文件;mkfs----makefiles
(3)建立掛載
a.建立掛載點目錄:mkdir /sdb1
b.建立映射關系,拉管子
mount /dev/sdb1 /sdb1 將/dev/sdb1/開個口子指向/sdb1 數據真正是在/dev/sdb1裏存著,/sdb1是個映射目錄
對比 mount /dev/sdb1 /sdb1 和 mount /dev/sdb1 /sbb1 發現/sdb1和/sdbb1都指向了/dev/sdb1 即一個設備名可以映射不同的掛著點,/sdb1和/sdbb1 進入的都是/dev/sdb1 好比一個房子開了2個門
補充:卸載掛載點: umount /sdb1 也可以用umount /dev/sdb1 一般用掛載點卸載,用設備名卸載因為同一設備名下可以有多個掛載點,可能會卸載亂,故建議用umount + 掛載點 方法卸載
(4)可以使用了: cd /sdb1
5.swap分區
查看swap分區: swap -s
新增swap分區:
(1)建立掛載點: mkswapon /dev/sdb8 ( /dev/sdb8為裸盤,未裝文件系統)
(2)激活掛載: swapon -a /dev/sdb8 a為activity
(二)文件系統
目前常用的文件系統為etx4和xfs,都輸於日誌文件系統。文件系統管理文件數據。文件數據分文件本身(文件內容即數據),文件權限(rwx)和文件屬性(屬主,屬組,時間參數)
1.單位:block塊
2.分類:4類
(1)super block:超級塊,管理記錄整個文件系統的整體信息,如inode與block總量,使用量和剩余量等;
(2)inode block塊:存放文件的類型,屬主,屬組,權限,指針(block編號);
(3)directory block:目錄塊,只存放文件名和文件名對應的inode號;
註:inode塊,記錄文件的屬性,一個文件占用一個block號,同時記錄此文件的數據所在的block號;
block塊:記錄文件的內容,如果能指到文件的inode的話,自然就會知道這個文件放置數據的block號碼,也就能讀出實際的數據了。
3.命令:
ls -i /ect/passwd 查此文件的inode編號
df -i 以inode編號顯示磁盤的使用情況
ll -di /test 查目錄的inode編號
ls -i /test/a.txt a.txt的inode編號
tune2fs -l /dev/sdb1 查看文件系統參數 (只有當文件系統為ext2/3/4時)
touch /sdb7{1..5}.txt 一次建立1.2.3.4.5.txt 5個文件
du -sh /sdb7 查看/sdb7已使用空間大小
4.cat /a.txt 內部工作機制
實際上是操作系統調用文件系統來完成cat /a.txt,是由文件系統完成的
----》先讀根inode號,權限,指針
----》指向directory塊,找目錄下文件名a.txt和文件inode號
----》根據文件inode號指向inode塊中文件類型,權限指針
----》指向實際存數據的普通block塊
(三)軟鏈接和硬鏈接
軟鏈接和硬鏈接涉及文件系統中的索引節點(index node又稱inode),而索引節點是linux虛擬文件系統的四個重要概念之一。
1.軟鏈接:同windows下的快捷方式
(1)命令: ln -s /source/a.txt /dst/aa.txt (aa.txt要不存在)
ln -s 源文件路徑 鏈接文件路徑
* 軟鏈接用“ l ” 表示文件類型
* 改變源文件內容,鏈接文件內容也改變;改變鏈接文件內容,源文件已改變;源文件刪除,鏈接文件也就沒有了;
* 軟連接文件可以跨分區
(2)源文件和軟鏈接文件工作原理
源文件工作原理:
源文件—(1)——>inode號—(2)—>block數據
軟鏈接文件工作原理:
鏈接文件—(1)——>源文件—(2)——>inode號—(3)—>block數據
註:鏈接文件本身也有inode號,但它先找的是源文件名,軟鏈接指向文件名
2.硬鏈接:
(1)命令:
ln /b.txt /c.txt ln + 源文件路徑 + 鏈接文件路徑
2.硬鏈接工作原理:
b.txt------------>inode<---------c.txt inode-------->block
* b.txt與c.txt共用同一個inode號
* 操作b或者c.txt,對方同步改變
* 硬鏈接刪除源文件,鏈接文件還在,可以繼續用
* 硬鏈接不可以跨分區
(四)內存
1.命令:
free 查看內存信息 free -m 以MB為單位查看內存信息
swapo -s swap內存分區
swapoff /dev/sdb8 卸載swap分區
echo 3 >/proc/sys/vm/drop_caches 清理虛擬機緩存(cache)命令
一個比較業余的測硬盤讀寫能力的命令:
dd if=/dev/zero of=/a.txt bs=1G count=1 (if---input file of-----output file)
2. 內存主要由buffer和cache組成
buffer: 還沒有被寫入磁盤的東西,用於要存放到硬盤上的數據
cache:從磁盤中已經讀到內存裏;存放從disk上讀出的數據
shared 共享內存 主要是多道復用
* 內存就是分配buffer和cache,分配出去的buffer和cache由分為正在使用的buffer和cache,和未使用的buffer和cache。
* 內存使用率=正在使用的buffer和caceh/total
* 內存真實剩余量包含已分配未使用的buffer和cache;
(五)進程管理
1.概念
進程:是程序的一次動態執行
守護進程:在後臺運行並提供系統服務的一些進程
父進程/子進程:當一個進程創建另一個進程時,第一個進程被稱為新進程的父進程,而新進程則稱為子進程
僵屍進程:CPU不調用的未從CPU中出來的進程,如父進程已死,子進程還在
2.命令
ps 查看進程 ps aux 進程的詳細信息
ps aux | grep gnome 查找關於某個進程,如gnome (grep 過濾的意思)
pgrep + 進程名 顯示進程Pid
kill Pid 殺進程 kill -9 Pid 強制殺死進程
pkill -9 + 進程名 ---> pkill -9 firefox 殺死firefox的進程
進程名 + & 讓進程在後臺運行以不占用當前終端 ------>firefox &
pstree 查用戶所有進程
pstree + 用戶名 用戶名下運行的進程
buffer和cache
磁盤分區,文件系統,軟鏈接和硬鏈接,內存和進程管理