Linux命令之——檔案系統命令
目錄
linux系統常見重要檔案目錄
Filesystem Hierarchy Standard(檔案系統層次化標準)
/boot:系統啟動相關的檔案,如核心、initrd,以及grub(bootloader)
/dev:裝置檔案
/etc:配置檔案
/home:使用者的家目錄,每一個使用者的家目錄通常預設為/home/USERNAME
/root:管理員的家目錄
/lib:庫檔案
/media:掛載點目錄,額外的臨時檔案系統
/opt:可選目錄,第三方程式的安裝目錄
/proc:偽檔案系統,核心對映檔案
/sys:偽檔案系統,跟硬體裝置相關的屬性對映檔案
/tmp:臨時檔案,/var/tmp
/var:可變後的檔案
/bin:可執行檔案,使用者命令
/sbin:管理命令
計算機開機時發生了什麼?
當計算機開機的時候,如果是機械硬碟,會在第一個分割槽中有一個小的應用載入程式(很小,會又512G),進到記憶體裡會有一個小的程式,裡面有一個分割槽表,來尋找第一個活動分割槽,我們剛剛的分割槽,會將boot單獨建立一個分割槽,在boot活動分割槽之前會放一個小程式,通過BIOS,必然會啟動這個小程式,它會識別我們boot分割槽的格式化的型別,那個小程式就是為了能讀懂檔案格式化的格式型別的。它先把boot的第一個分割槽掛載成根,來讀取我們的核心
把我們核心展開,然後讓我們的核心接管整個作業系統的控制權,它會根據使用者的配置,重新載入目錄樹,給出根目錄,它會將三分割槽掛載成根,然後在第三個分割槽的sbin目錄下找到一個叫做Init的程式,來初始化作業系統,重新將一號分割槽掛載到boot目錄下。
檔案系統命令:
df:
檢查linux伺服器的檔案系統的磁碟空間佔用情況。
df -a:顯示所有檔案系統的磁碟使用情況。
df -h:以人類易讀的格式輸出
df -h 磁碟名:顯示某個磁碟的使用情況。
mount——關於掛載
將某個檔案掛載到另一個資料夾中,則會出現下面情況
進入到/mnt下面,可以看到這裡面的東西就是我光盤裡面的東西
解除掛載,mnt目錄中就空了
du:檢視某個檔案或目錄所佔用磁碟空間的大小
-h:以人類可讀的方式顯示
-a:顯示目錄佔用的磁碟空間大小,還要顯示其下目錄和檔案佔用磁碟空間的大小
du –sh ./和 du 的區別
ls:列出目錄下的檔案(英文list)
ls -a 列出檔案下所有的檔案,包括以“.“開頭的隱藏檔案
ls -l 列出檔案的詳細資訊,如建立者,建立時間,檔案的讀寫許可權列表等等。
ls -s 在每個檔案的前面打印出檔案的大小。 size(大小)
ls -S 以檔案的大小進行排序
ls -lt 按時間進行檔案的排序 Time(時間)
ls -A 列出含有"."和".."的檔案。
ls -R 將目錄下所有的子目錄的檔案都列出來,相當於我們程式設計中的“遞迴”實現
ls -L 列出檔案的連結名。Link(連結)
ls- / /etc 顯示多個目錄
cd:切換目錄
cd進入使用者主目錄
cd ~ 進入使用者主目錄(家)
cd - 返回剛才切換之前的那個目錄
cd ~abc 使用者abc的家(只有root使用者有權進入其他使用者的家)
cd .. 切換到上一級目錄
cd ~/god /home/god切換到home目錄下面的god目錄
cd ~god切換到使用者god的家目錄(另外一種表示方式為cd /home/god)
pwd:顯示當前工作目錄
mkdir:建立目錄
直接建立一個目錄abc mkdir abc
建立目錄又兩種建立方式:
- 垂直建立(深度建立)
a/b/c/d建立多層級目錄,要加修飾-p表示遞迴建立
mkdir –p ./a/b/c/d
- 水平建立(橫向建立)
sxt/dir{1,2,3} 在sxt下建立三個目錄--à使用花括號擴充套件
rm:刪除檔案或目錄
rm -r 同時刪除該目錄下的所有目錄層(刪除目錄和檔案都可以)à遞迴刪除
rm -f 強制刪除,沒有提示(刪除檔案)
rm -rf 遞迴強制刪除目錄
rm -i 進行任何刪除操作前必須先確認(刪除檔案)
cp:copy
cp -r 複製當前目錄及子檔案或目錄à遞迴複製。
同樣支援花括號擴充套件
支援陣列{}:複製/etc目錄下的profile,hosts 目錄或檔案到./目錄下
也可以以空格隔開同時移動好幾個檔案
也可以交叉使用
mv:移動
可以一次移動多個檔案,用空格隔開。
可以移動目錄
如果移動到當前目錄一個不存在的檔案,就是重新命名
ln:用來為檔案建立連線******
連線型別分為硬連線和符號連線(又叫軟連結soft)兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項。
-s 建立軟連線
這裡old指的就是我們的硬連結,news指的就是軟連線
1.硬連結
將old連結硬連結到new連結---------連結之後硬連結的數量變成了2
連結之前的old連結--------注意:它的連結數量為1
刪除new的硬連結,連結數變為1.任何一方丟失,不會影響另外一方。
- 軟連結
將old硬連結軟連結到new連結後,發現軟硬連結的數量都是1
如果刪除硬連結,那麼軟連結就會丟失指向。
我們再想開啟軟連結就是不可能的事了。
軟連線和硬連結的區別:
硬連結,news指向了old指向的地址。兩個指標指向物理磁碟的同一地址。
刪除ln.txt檔案,ln01.txt檔案仍然存在,並且資料不改變
硬連結就相當於我們Windows作業系統中在軟體安裝路徑中的顯示我們應用程式的那個.exe的檔案,我們可以複製這個檔案到別的地方,雙擊也可以開啟檔案,也可以給這個檔案重新命名,存在兩個不同的硬連結,但是隻要有一個檔案內容修改了,另外一個也被修改,但是刪除一個,另外一個不受影響,照樣可以把程式跑起來。
軟連線,news指向了old,間接指向old指向的地址。兩個磁碟地址號不同
軟連結就相當於我們Windows作業系統中的快捷方式,快捷方式刪除,並不會影響軟體安裝路徑中的應用程式啟動所需的.exe檔案,而且快捷方式也可以修改名字,無論何時單擊軟連結都是去呼叫軟體安裝路徑中的硬連結
所以硬連結刪除old,news不會受到影響,而軟連線刪除old,news指向為一個空,會一閃一閃報紅。
硬連線:刪除一個,另一個存在,並且內容也存在
軟連線:刪除一個,另一個存在,但內容不存在
stat:主要用於顯示檔案或檔案系統的詳細資訊(元資料資訊)
什麼是元資料
日誌檔案系統可以放置系統崩潰時導致的資料不一致問題。對檔案系統元資料的更改都被儲存在一份單獨的日誌裡,當發生系統崩潰時可以根據日誌正確的恢復資料。除此之外,日誌使系統重新啟動時不必進行檔案系統的檢查,從而縮短了恢復時間。 所以說,元資料就是資料的資料。 任何檔案系統中的資料都分為資料和元資料。 資料是指普通檔案中的實際資料。而元資料是指用來描述一個檔案的特徵的系統資料,諸如訪問許可權、檔案擁有者、以及檔案資料塊的分佈資訊等等。在集群系統中,分佈資訊包括檔案在磁碟上的位置以及檔案在叢集中的位置。使用者需要操作一個檔案必須首先得到它的元資料,才能定位到檔案的位置並且得到檔案的內容或相關屬性。 元資料的管理方式: 元資料的管理有兩種方式。集中式管理和分散式管理。 集中式管理是指在系統中專門有一個節點司職元資料管理,所有元資料都儲存在該節點的儲存裝置上。所有客戶端對檔案請求前,都要向該資料管理器請求元資料。 分散式管理是指將元資料存放在系統的任意節點並且能夠動態的遷移。對元資料的職責也分佈到各個不同的節點上。 大多數叢集檔案系統都採用集中式的元資料管理。因為集中式管理實現簡單,一致性維護容易,在一定的操作頻繁度內可以提供較滿意的效能。缺點是單一失效點問題,若該伺服器失效,整個系統將無法工作。而且,當對元資料的操作過於頻繁時,集中的元資料管理成為整個系統的瓶頸。 分散式元資料管理的好處是,解決了集中式管理的單一失效問題,而且效能不會隨著操作頻繁而出現瓶頸。其缺點是,實現複雜,一致性維護複雜,對效能有一定影響。 |
做大資料的時候,我們關心的就是資料,那麼這個資料描述資訊,我們就叫做元資料。
簡單的介紹一下stat命令顯示出來的檔案其他資訊: - File:顯示檔名 - Size:顯示檔案大小 - Blocks:檔案使用的資料塊總數 - IO Block:IO塊大小 - regular file:檔案型別(常規檔案) - Device:裝置編號 - Inode:Inode號 - Links:連結數 - Access:檔案的許可權 - Gid、Uid:檔案所有權的Gid(group id)和Uid(user id)。
stat:用於顯示檔案的元資料資訊
cat:顯示檔案的資料資訊
linux下的三個時間:
如果修改了檔案資料,則下面三個時間都會改變,
如果修改了檔案許可權chmod +w filename(元資料),則Change Time會改變
1. Access Time:簡寫為atime,表示檔案的訪問時間。當檔案內容被訪問時,更新這個時間 2. Modify Time:簡寫為mtime,表示檔案的內容修改時間,當檔案的資料內容被修改時,更新這個時間。 3. Change Time:簡寫為ctime,表示檔案的狀態修改時間,當檔案的狀態(元資料)被修改時,更新這個時間,例如檔案的連結數,大小,許可權,Blocks數。
touch:主要就是用來修改檔案的訪問時間和修改時間。
兩個功能:
- 重新整理已存在的檔案的訪問時間
touch install.log 修改三個時間為觸發命令的時間
- 建立一個不存在的檔案出來
touch sxt.txt 如果sxt.txt檔案不存在,則會建立這個檔案
-a 只更新訪問時間,不改變修改時間
-m 只更新修改時間,不改變訪問時間
-c 不建立不存在的檔案