厚基礎Linux——第三週作業
文章目錄
厚基礎Linux——第三週作業
1、描述Linux發行版的系統目錄名稱命名規則以及用途。
涉及知識點
FHS
Filesystem Hierarchy Standard,檔案系統層次結構標準.顧名思義,是一套檔案系統目錄樹的標準.執行tree / -L 1命令,可以看到這個目錄結構.該標準結構目前由Linux基金會維護.該標準對目錄名稱進行了統一要求,同時也對每個目錄進行了說明.旨在應用程式的安裝目錄不再混亂,同時也方便使用者檢索檔案.筆者至今想起Winodws系統下各個碟符都有的program files,program files(x86),Downloads,tdDowloads,360Download就會想起各種檢索的痛苦歲月:).
/bin
必要的二進位制命令檔案.供所有使用者使用.
/boot
用於啟動的靜態檔案.
/dev
裝置檔案.
/etc
作業系統配置檔案.
/home
普通使用者家目錄.
/lib
必要的共享庫和核心模組.
/lib64
備選格式的必要的共享庫和核心模組.
/media
移動儲存裝置的掛載點.
/mnt
檔案系統的臨時掛載點.
/opt
用於存放外掛應用程式包.
/root
root使用者家目錄.
/sbin
必要的系統二進位制檔案,/usr/sbin的軟連結.
/srv
系統服務的相關資料.
/tmp
臨時檔案
/usr
次級目錄樹.
/var
動態資料,如日誌檔案.
/proc
虛擬檔案系統,提供核心和程式的資訊.
/usr
儲存主機的共享的,只讀的檔案.
2、描述檔案的後設資料資訊有哪些,分別表示什麼含義,如何檢視?如何修改檔案的時間戳資訊?
涉及知識點
stats命令檢視後設資料
欄位名 | 含義 |
---|---|
FILE | 檔名 |
SIZE | 文字內容所佔用的位元組數 |
Blocks | 磁碟上給這個檔案分配的空間 |
IO BLOCKS | 每個塊佔用的位元組數 |
regular file | 普通檔案 |
Device | 裝置編號,16進位制/10進位制 |
Inode | 檔案佔用的Inode編號 |
Links | 檔案的硬連結數量 |
Access | 檔案的訪問許可權,數字形式/rwx形式 |
Uid | 檔案所有者,所有者ID/所有者使用者名稱 |
Gid | 檔案所屬組,所屬組ID/所屬組名稱 |
Access | 檔案最近被讀取的時間 |
Modify | 檔案內容最近被修改的時間 |
Change | 檔案後設資料或內容最近被修改的時間 |
修改時間戳
touch可以修改atime,修改檔案內容可以修改mtime,修改檔案內容或後設資料可以修改ctime
#touch常見用法
-a 修改atime
-m 修改mtime
-d 時間描述
程式碼段
#檢視後設資料
stat f1
#修改atime
touch -ad '2008-8-8 20:00' f1
#修改mtime
touch -md '2008-8-8 20:00' f1
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-KpcqM3If-1602424364475)(https://i.loli.net/2020/10/11/HxGAgubzpVFQOX2.png)]
3、總結軟連線和硬連線區別,並用例項操作說明。
涉及知識點
Linux檔案系統
要理解Linux檔案系統上特有的特性,我們需要簡單介紹一下Linux檔案系統的結構。
超級區塊(superblock)
它儲存了一個檔案系統的整體資訊,包括inode/block的總量,使用量,剩餘量以及檔案系統格式與相關資訊。
我們可以使用df -i 目錄名稱,來檢視這個目錄所在的檔案系統的superblock中的部分資訊
可以看到分割槽/dev/sda2掛載在根目錄(/)下inode共有52428800,使用了131932,剩餘52296868個。
inode和block
inode記錄檔案系統後設資料,block儲存檔案的實際內容。不同於windows檔案系統的連結串列式查詢資料,Linux先讀取inode資訊,獲取所有指向block的指標。inode和block的關係見下圖,左邊是inode,右邊的部分的資料塊就是block。
硬連結原理
硬連結本質上是多個檔名指向同一個inode。即不對inode,block作任何更改,僅在目錄上增加了另一個檔名,指向了同一個inode。所以本質上,兩個指標互為孿生。也就是說,任何一個硬連結檔案都可以脫離其它硬連結檔案,單獨提供使用。
使用ln命令建立硬連結,通過ll -i命令,可以看到兩個檔案型別都是普通檔案,只是指向該檔案的硬連結數量變為2個,這兩個硬連結都指向同一個inode,67。
軟連結原理
軟連結,又叫符號連結。本質上是在當前目錄建立了一個連結檔案,這個檔案有獨立的inode,獨立的block,只是該檔案型別為l,檔案內容為原始檔的檔案路徑。所以本質上,訪問軟連結,是通過軟連結讀取了原始檔的路徑後,再去訪問原始檔。也就是說,原始檔刪除,則軟連結不可用;軟連結刪除,則原始檔不受影響。
使用ln -s 命令建立軟連結,可以看到檔案型別,inode號都與原始檔不同。
刪除原始檔f1後,硬連結能正常訪問,軟連結已經失效。
硬連結、軟連結特性對比
下面對硬連結和軟連結的特徵製作一張清單
序號 | 特性 | 硬連結 | 軟連結 |
---|---|---|---|
1 | 本質 | 和原始檔是同一個 | 和原始檔是不同的檔案 |
2 | 是否可以跨分割槽連結 | 否 | 是 |
3 | 是否可以指向目錄 | 否 | 是 |
4 | 連結和原始檔關係 | 可以互相替代 | 原始檔刪除即失效,重新建立原始檔,內容不同,連結也有效 |
5 | inode號 | 和原始檔相同 | 和原始檔不同 |
6 | 連結數 | 會增加連結數 | 不會影響連結數 |
7 | 相對路徑 | 使用相對路徑建立時,以執行命令的目錄作為相對起點 | 使用相對路徑建立時,以連結檔案路徑的作為相對起點。 |
1,4,5,6在前文都已經示例中已經演示。下面將對2,3,7進行單獨演示。
跨分割槽連結
/,/data屬於不同的分割槽。
在/root下建立檔案,f1,嘗試在/data目錄下建立連結檔案連結f1。
可以看到硬連結建立會直接失敗,軟連結可以正常使用。
連結目錄
在/data下建立目錄d1,嘗試在/data目錄下建立連結檔案連結d1.
可以看到硬連結建立會直接失敗。軟連結可以正常連結。
相對路徑
在/data目錄下建立f1檔案,/data/beta/目錄下建立f1檔案,使用軟硬連結命令在/data目錄下建立link檔案,link檔案的存放位置在/data/beta目錄下,驗證此時的連結檔案訪問的檔案是哪個f1檔案。
在/data目錄下執行建立命令,可以看到硬連結指向了執行命令的當前目錄,軟連結指向了軟連結本身的的相對目錄。
4、Linux上的檔案管理類命令都有哪些,其常用的使用方法及其相關示例演示。
涉及知識點
以增刪改查的邏輯來介紹檔案管理。
建立
建立又分為建立檔案和建立目錄,常用的建立檔案方式有touch命令,資料流重定向;建立目錄的主要方式有mkdir。
建立檔案
- touch 可以建立空檔案,可以批量建立。當檔案已存在時,touch命令只會更新時間後設資料,不會覆蓋原始檔。
如圖是touch建立1個,多個,配合{}批量生成檔案。
在f1中寫入文字,再次使用touch命令建立f1檔案,發現touch並未覆蓋f1檔案內容。
- 重定向符">"建立檔案
使用重定向符建立檔案,若檔名存在,則會覆蓋掉原有的內容。可以使用該特性快速刪除大型檔案,第一時間釋放空間,這是rm命令做不到的。
可以看到f1檔案在重定向後,字元位元組數重新變為了0。 - 重定向符’>>‘建立檔案
使用該方法建立檔案,若原檔案存在,則後設資料也不會改變,對原檔案影響最小。
建立目錄
建立目錄使用mkdir 命令,預設不支援級聯建立,使用-p選項支援級聯建立。
修改
修改檔名
修改檔案,目錄的名稱都可以使用mv和rename命令
mv可以實現單個檔案的名稱修改,用法是
mv 原檔名 新檔名
rename命令可以對檔名進行批量修改,支援萬用字元,用法是
rename 替換前字元 替換後字元 *
刪除
刪除主要是rm命令,無附加選項可刪除檔案,使用-r選項可刪除目錄,支援萬用字元。
刪除1個或多個檔案
刪除整個目錄
rm -r /data 指連同data目錄及其下面的所有檔案一併刪除,通常配合-f使用,極其危險。
- 配合萬用字元
支援萬用字元
查詢
查詢檔案主要分為檢視檔案後設資料和檢視檔案資料。
檢視後設資料是使用ll,stat命令,檢視檔案資料是使用cat命令。
檢視後設資料
ll命令滿足大多數檢視需求,要檢視更詳細的資訊則可以使用stat
檢視資料
檢視資料可以使用cat命令,若命令太長,可使用管道符,結合less命令使用
使用less命令後,支援翻頁。
5、複製/etc/profile至/tmp/目錄,用查詢替換命令刪除/tmp/profile檔案中的 行首的空白字元
涉及知識點
使用cp命令複製檔案,使用sed命令刪除行首空白字元
程式碼段
cp /etc/profile /tmp
sed -ri.bak '/^[[:space:]]+[^[:space:]]/s/^[[:space:]]+(.*)$/\1/' /tmp/profile
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-XEGj9zq7-1602424364476)(https://i.loli.net/2020/10/11/Bh4SwruOjWbx3ET.png)]
6、在vim中設定tab縮排為4個字元
涉及知識點
.vimrc是使用者家目錄下的vim配置檔案,在該配置檔案下設定縮排即可
# vimrc常用配置
set number 表示開啟檔案自動顯示行號
set tabstop=4 表示一個Tab鍵顯示出來多少個空格的長度,預設是8,這裡設定為4
set softtabstop=4 表示在編輯模式下按退格鍵時候退回縮排的長度,設定為4
set shiftwidth=4 表示每一級縮排的長度,一般設定成和softtabstop長度一樣
set noexpandtab 當設定成expantab時表示縮排用空格來表示,noexpandtab則用製表符表示一個縮排
set autoindent 表示自動縮排
程式碼段
echo "set tabstop=4" >> /root/.vimrc
相關文章
- 第一週作業Linux基礎(未完待續,週日繼續)Linux
- 第三週作業
- 作業系統基礎第三講作業系統
- Linux作業系統基礎Linux作業系統
- 第三週 作業3
- 第三週作業2
- 第三週 作業4
- Python第三週作業Python
- Javaweb第三週作業JavaWeb
- 【團隊作業】第三週作業1
- 軟體基礎第三次作業
- 馬哥教育第三週作業
- 第九組【團隊作業】第三週作業4
- 第六組【團隊作業】第三週作業4
- 第六組【團隊作業】第三週作業2
- 第五組【團隊作業】第三週作業1
- 第八組【團隊作業】第三週作業3
- 第八組【團隊作業】第三週作業1
- 第一組【團隊作業】第三週作業2
- 第七組【團隊作業】第三週作業4
- 計算機課程第三週作業計算機
- 學期2024-2025-1 學號2041325《計算機基礎與設計》第三週作業總結計算機
- Linux作業系統有什麼檔案型別?Linux基礎教程Linux作業系統型別
- 為什麼要學Linux作業系統?linux入門基礎教程Linux作業系統
- 嵌入式系統程式設計基礎第一二週作業程式設計
- 作業系統基礎配置作業系統
- 第三組【團隊作業】第二週使用者調研作業2
- 第六週基礎部分作業
- 【UI】第三週 手繪基礎-CSDN就業班-專題視訊課程UI就業
- 基礎夯實:作業系統作業系統
- 20242822《Linux核心原理與分析》第十週作業Linux
- 20242822《Linux核心原理與分析》第五週作業Linux
- 20242822《Linux核心原理與分析》第二週作業Linux
- 嵌入式作業系統--linux基礎(lv2_第六課)作業系統Linux
- 嵌入式作業系統--linux基礎(lv2_第四課)作業系統Linux
- 作業系統基礎第四講作業系統
- 作業系統基礎第二講作業系統
- 作業系統基礎第一講作業系統