1. 程式人生 > >磁盤分區,文件系統,軟鏈接和硬鏈接,內存和進程管理

磁盤分區,文件系統,軟鏈接和硬鏈接,內存和進程管理

日誌 sha 文件的 清理 directory 終端 參數 概念 映射關系

(一)磁盤分區

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

磁盤分區,文件系統,軟鏈接和硬鏈接,內存和進程管理