天天看點

《MacTalk•人生元程式設計》一一1.1 Linux的檔案系統王國

本節書摘來自異步社群出版社《mactalk•人生元程式設計》一書中的第1章,第1.1節,作者:池建強,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

mactalk•人生元程式設計

在這個系列中和大家聊聊linux的檔案、索引節點、檔案類型、軟硬連結等内容,其中很多細節也是我使用了很長時間linux後才真正掌握,希望大家不用那麼久。

為什麼是linux?我覺得寫技術的東西還是相對嚴謹一些好,雖然unix、linux、os x一脈相承,但在具體指令上還是會有些差異,這個系列文章裡所有的指令和顯示結果都是在linux上進行的,大家可以對照在mac上試試,大部分一緻,少部分不同。

在開始講linux王國的臣民之前,先介紹一下王國中最牛的主:root,它不翻譯為“根”,也不叫“管理者”,而是被尊稱為“超級使用者”,是不是覺得高端霸氣?超級二字絕不是恭維之詞,從linux王國誕生之初,root就存在了,他會一直霸占着超級使用者的角色并世世代代存在下去,沒有禅讓,沒有民選,沒有換位,所有的使用者都自他而起。如果你以為root會像上帝創造亞當和夏娃那樣,讓這二位開開心心生娃去了,那你就太naive了。linux系統中的所有使用者要麼由root建立,要麼借用root的權限建立,等級極為森嚴,總之沒有root的允許,想搞出一位新使用者絕無可能。看到這兒你們是不是都開始覺得計劃生育政策好啦?

《MacTalk•人生元程式設計》一一1.1 Linux的檔案系統王國

root不僅能夠管理使用者,還能管理檔案系統、程序、裝置、網絡、通信、協定等,總之他就像站在神山上的神祗,俯視着芸芸衆生,看着資料資訊在軟體和硬體之間川流不息,時不時地做一些計劃性幹預,如果有人想超越系統的規則,他就能讓你消失得像從來沒有存在過。

是以那些成天叫嚣被蹂躏被代表的群眾,看看root,大家心理就會舒服一些。

以root開篇,下面我們聊聊linux的檔案系統和索引節點。

linux的檔案系統本身是比較複雜的,僅ext2、ext3和ext4就得解釋好幾天,本文的重點不在于此,是以簡單介紹一下。檔案系統主要是用來儲存檔案和相關結構的,讓檔案存儲更安全、更快、更容易檢索、能支援更大的實體媒體等。在linux系統中,每個磁盤分區都可以看做一個檔案系統,每個系統都有自己的目錄結構,linux會把這些分區按照一定的方式組織成統一的目錄結構,友善使用者通路。但是每個分區上的檔案系統都是獨立的,可以采用不容的檔案格式,就像一國兩制一樣,雖然統一了,但是是自治的。

那麼如何檢視檔案系統的格式呢?可以使用df -t -h指令,t表示列印檔案格式,h表示用g或m來顯示檔案大小,示例如下:

我們可以看到檔案系統格式是ext4。目前高版本的linux基本都開始采用ext4檔案格式了,具體來說就是linux kernel自2.6.28開始正式支援新的檔案系統ext4!(使用cat /etc/fstab可以檢視檔案系統的詳細資訊)。

有了檔案系統,如何管理檔案呢?這就引出了索引節點的概念——inode。每個檔案都有一個inode,就像我們每個人都有身份證号一樣,為什麼要有身份證号?說白了就是為了管理咱們的。但身份證号對人來說不是必需的,沒身份證一樣活,對吧?隻要不那麼彪悍,别遇到城管。但inode是每個檔案與生俱來的,一建立就有了,它記錄了檔案的元資訊,比如檔案大小、建立者、時間戳、權限、連接配接數等内容。

是以在linux/unix中,檔案名稱隻是檔案的一個屬性,叫别名也好,叫綽号也罷,僅為了友善使用者記憶和使用,但系統内部并不需要用檔案名來定為檔案位置,這樣處理最直覺的好處就是,你可以對正在使用的檔案改名,換目錄,甚至放到廢紙簍,都不會影響目前檔案的使用,這在windows裡是無法想象的。比如你打開個word檔案,然後對其進行重命名操作,windows會告訴你門兒都沒有,關閉檔案先!但在mac裡就毫無壓力,因為mac的作業系統同樣采用了inode的設計。

總之,linux/unix的檔案系統可以非常靈活地基于inode來管理檔案王國裡的臣民,如何檢視inode或操作inode呢,且聽下回分解!

對世界的認知,很多人通過各種方式和模式進行探求,比如科學、宗教、神學,當然還包括一些實踐、入世、旅行、禅修等,這些都是認知世界的方式。作為一個寫了很多年程式的碼農,我更願意探求計算機世界的奧秘,雖然和年輕人相比,學習能力、速度和效率都大不如前了,但是隻要我們一直在往前走就好,世界本無盡頭,走不動了,才是終點!

繼續閱讀