EduCoder Linux文件/目录高级管理二
本實訓主要講解Linux中一個文件/目錄是如何在磁盤中存放的,Linux將一個磁盤劃分為不同的分區,每個分區可以有不同的格式,Linux用的系統格式有ext2、ext3和ext4。
Linux能夠識別大多數的文件系統格式,包括Windows的系統格式,但是Windows無法直接識別Linux系統格式。
為解決文件的共享使用,Linux系統引入了兩種鏈接:硬鏈接(hard link) 與軟鏈接(又稱符號鏈接,即soft link或symbolic link)。使用鏈接的好處可以提高磁盤使用率和文件的安全。
Linux中為了實現不同格式的文件系統可以同時訪問,Linux采用的掛載的方法將不同格式的文件系統組織起來。
本實訓主要講解如何查看系統磁盤的使用率和目錄的大小,同時講解如何創建文件/目錄的鏈接和Linux掛載。
## 第1關:Linux文件/目錄相關命令操作(df、du)- 任務描述
- 相關知識
- df命令詳解
- du命令詳解
- 編程要求
- 測試說明
任務描述
在Windows系統上查看磁盤的使用情況比較容易,直接打開我的電腦即可看到該磁盤使用情況,而在Linux上沒有像Windows那么強大的圖像化界面,那么要想查看Linux下磁盤的使用情況該如何操作,通過本關的學習,我們將通過簡單的幾個命令就可以實現查看Linux磁盤的使用情況。
本關任務:顯示磁盤分區上的可使用的磁盤空間和文件/目錄使用的空間。
相關知識
通過背景知識的學習,了解了一些簡單的磁盤和文件系統的概念后,并且通過前面的實訓學習了如何通過ls命令查詢文件系統的相關信息后,接下來讓我們一起學習如何查詢整個磁盤的剩余容量與總容量以及如何查詢一個文件/目錄所占磁盤的大小。
df命令詳解
df命令用于顯示磁盤分區上的可使用的磁盤空間。默認顯示單位為KB。可以利用該命令來獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。
具體命令如下:
df 命令參數 參數
常用參數如下:
- -a或--all:包含全部的文件系統,包括系統特有的/proc等文件系統;
- -k : 以KB為單位顯示各文件系統;
- -m : 以MB為單位顯示各文件系統;
- -h : 以可讀性較高的方式來顯示信息;
- -i或--inodes:顯示inode的信息。
案例演示一:
查看系統所有磁盤設備,默認是KB為單位,可以使用如下命令:
df
[請在右側“命令行”里直接體驗]
案例演示二:
使用-h選項以KB以上的單位來顯示,可讀性高,可以使用如下命令:
df -h
[請在右側“命令行”里直接體驗]
案例演示三:
將/etc目錄下的可用的磁盤容量以易讀的格式顯示出來,可以使用如下命令:
df -h /etc
[請在右側“命令行”里直接體驗]
du命令詳解
du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的。
具體命令如下:
du 命令參數 參數
常用參數如下:
- -a : 列出所有的文件與目錄容量,因為默認僅統計目錄下面的文件量而已;
- -h : 以可讀性較高的方式來顯示信息;
- -k : 以KB為單位顯示容量;
- -m : 以MB為單位顯示容量;
- -s : 列出總量,不列出每個目錄占用的容量。
案例演示一:
列出當前目錄下的所有文件的總容量,可以使用如下命令:
du
[請在右側“命令行”里直接體驗]
注: 直接輸入du命令沒有加任何參數時,則du會分析當前所在目錄的文件與目錄所占用的磁盤空間,但是,實際顯示時僅會顯示目錄容量。
案例演示二:
列出當前目錄下的所有文件的總容量,同時將每個文件大小也列出來,可以使用如下命令:
du -a
[請在右側“命令行”里直接體驗]
案例演示三:
以可讀性較高的方式顯示多個文件所占磁盤大小,可以使用如下命令:
du -h c++ g++
[請在右側“命令行”里直接體驗]
編程要求
根據右側窗口命令行內的提示,在Begin - End區域內進行命令行語句補充,具體任務如下:
- 以可讀性較高的方式顯示系統已存在文件oldFile的所占磁盤大小;
- 列出系統已存在目錄./oldDir下的所有文件的總容量,同時將每個文件大小也列出來;
測試說明
本平臺只需將需要的命令寫入到對應的命令填寫區域(命令間使用換行分隔)即可,平臺會自動讀入和執行用戶寫入的命令,并判斷用戶輸入的命令是否符合要求。
實力的來源不是勝利。唯有奮斗才能增強實力。當你歷經苦難而不氣餒,那就是實力。
開始你的任務吧,祝你成功!
如果你覺得這一關的內容對你有幫助,請你在下面點贊。
#!/bin/bash#在以下部分寫出完成任務的命令 #*********begin*********# du -h oldFile du -a oldDir #********* end *********#第2關:Linux文件/目錄鏈接
- 任務描述
- 相關知識
- Linux硬鏈接
- Linux軟鏈接
- 編程要求
- 測試說明
任務描述
通過本關實訓,我們將學會如何在Linux系統上創建一個超鏈接文件,在Windows上創建一個鏈接文件非常簡單,只需要點右鍵選擇創建鏈接就可以,而在Linux上創建就相對比較麻煩。
本關任務:對已有文件/目錄創建鏈接。
相關知識
Linux中的鏈接類似于Windows的快捷方式,也就是很多的鏈接文件(link file)其實都指向同一個源文件(source file)。
Linux中鏈接文件又分為硬鏈接和軟鏈接兩種。
Linux硬鏈接
硬鏈接指通過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種鏈接就是硬鏈接。
硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止誤刪的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接并不影響索引節點本身和其它的鏈接,只有當最后一個鏈接被刪除后,文件的數據塊及目錄的鏈接才會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬鏈接文件均被刪除。
硬鏈接特點如下:
- 文件有相同的inode及data block;
- 只能對已存在的文件進行創建;
- 不能交叉文件系統進行硬鏈接的創建;
- 不能對目錄進行創建,只可對文件創建;
- 刪除一個硬鏈接文件并不影響其他有相同inode號的文件。
具體命令如下:
ln 源文件 目標文件
案例演示一:
為當前目錄下的文件testFile創建一個硬鏈接testFileLink,可以使用如下命令:
ln testFile testFileLink
[請在右側“命令行”里直接體驗]
在ls結果的最左邊一列,是文件的inode值,你可以簡單把它想成C語言中的指針。它指向了物理硬盤的一個區塊,事實上文件系統會維護一個引用計數,只要有文件指向這個區塊,它就不會從硬盤上消失。可以看到,這兩個文件就如同一個文件一樣,inode值相同,都指向同一個區塊。
Linux軟鏈接
軟鏈接文件有類似于Windows的快捷方式。它實際上是一個特殊的文件。在符號鏈接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
與硬鏈接不同的是,符號鏈接確實是一個新文件,當然它具有不同的I節點號;而硬鏈接并沒有建立新文件。
軟鏈接特點如下:
- 源文件和目標文件有不相同的inode及data block;
- 軟鏈接沒有硬鏈接的限制,可以對目錄文件做符號鏈接;
- 軟鏈接可以在不同文件系統之間做軟鏈接;
- 在目錄長列表中,符號鏈接作為一種特殊的文件類型顯示出來,其第一個字母是l;
- 符號鏈接的大小是其鏈接文件的路徑名中的字節數;
具體命令如下:
ln -s 源文件 目標文件
案例演示一·:
為當前目錄下的文件testFile創建一個軟鏈接myLink,可以使用如下命令:
ln -s testFile myLink
[請在右側“命令行”里直接體驗]
使用ls -li查看兩個文件的詳細信息,可以看到兩個文件的inode節點號不同,文件myLink的類型為l,可以看到myLink是指向文件testFile的,同時myLink文件的大小為8,正是文件名testFile的字符個數。
案例演示二:
為當前目錄下的目錄testDir創建一個軟鏈接myDirLink,可以使用如下命令:
ln -s testDir myDirLink
[請在右側“命令行”里直接體驗]
編程要求
根據右側窗口命令行內的提示,在Begin - End區域內進行命令行語句補充,具體任務如下:
- 為系統已存在文件oldFile創建硬鏈接oldFileHardLink;
- 為系統已存在文件oldFile創建軟鏈接oldFileSoftLink;
- 為系統已存在目錄oldDir創建軟鏈接oldDirSoftLink。
測試說明
本平臺只需將需要的命令寫入到對應的命令填寫區域(命令間使用換行分隔)即可,平臺會自動讀入和執行用戶寫入的命令,并判斷用戶輸入的命令是否符合要求。
學習是一次獨立的行動,需要探索、琢磨、積極應戰、頑強應戰,艱辛由你獨自承擔,勝利由你獨立爭取。
開始你的任務吧,祝你成功!
如果你覺得這一關的內容對你有幫助,請你在下面點贊。
#!/bin/bash#在以下部分寫出完成任務的命令 #***********begin*************# ln oldFile oldFileHardLink ln -s oldFile oldFileSoftLink ln -s oldDir oldDirSoftLink #************end**************#總結
以上是生活随笔為你收集整理的EduCoder Linux文件/目录高级管理二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EduCoder Linux文件/目录高
- 下一篇: EduCoder Linux文件/目录高