Linux文件系統(tǒng)

1 路徑和目錄

????1.1 目錄

? ? ? ? ? ? ? ? ● 目錄是一組相關(guān)文件的集合。

? ??????????????● 一個(gè)目錄下,除了可以放文件之外可以存放其他目錄,即可包含子目錄。

? ??????????????● 在確定文件、目錄位置時(shí),DOS和Unix/Linux都采用“路徑名+文件名”的方式。路徑可以反映目錄和目錄之間的關(guān)系。

? ? 1.2 路徑

? ? ? ?????????Unix/Linux路徑是有由到達(dá)定位文件的目錄組成。在Unix/Linux系統(tǒng)中組成路徑的目錄分割符為“/”,而DOS則用反斜杠“\”來分割各個(gè)目錄。?

? ? ? ? ? ? ? ? 路徑分為絕對路徑和相對路徑:‘

? ??????????????● 絕對路徑

? ? ? ? ? ? ? ? ????1)絕對路徑是從目錄樹的樹根“/”目錄開始往下直至到達(dá)文件所經(jīng)過的所有節(jié)點(diǎn)目錄。

? ? ? ? ? ? ? ? ????2)下級目錄接在上級目錄后面用“/”隔開。

? ? ? ? ? ? ? ? ????3)注意:絕對路徑都是從“/”開始的,所以第一個(gè)字符一定是“/”。

????????????????● 絕對路徑

? ? ? ? ? ? ? ? ? ? 1) 相對路徑是指目標(biāo)目錄相對于當(dāng)前目錄的位置。

? ? ? ? ? ? ? ? ? ? 2)如果不在當(dāng)前目錄下,則需要使用兩個(gè)特殊目錄“.”和“..”。目錄“.”指向當(dāng)前目錄“..”指向上級目錄

2 文件系統(tǒng)

? ? 2.1 Windows和Linux文件系統(tǒng)區(qū)別

? ? ? ? ? ? ? ? ?在windows下,計(jì)算機(jī)是有驅(qū)動盤符構(gòu)成

windows 驅(qū)動盤

? ? ? ? ? ? ? ? 每個(gè)驅(qū)動器都有自己的根目錄結(jié)構(gòu),形成了多個(gè)樹并列的情況,如圖:

Windows根目錄結(jié)構(gòu)

? ??????????????在 Linux 下,我們是看不到這些驅(qū)動器盤符,我們看到的是文件夾(目錄):

Linux盤符

? ??????????????Ubuntu 沒有盤符這個(gè)概念,只有一個(gè)根目錄 /,所有文件都在它下面

?Linux根目錄結(jié)構(gòu)?

? ? ? ? 2.2 Linux目錄結(jié)構(gòu)

? ??????????●?/:根目錄,一般根目錄下只存放目錄,在 linux 下有且只有一個(gè)根目錄,所有的東西都是從這里開始,當(dāng)在終端里輸入 /home,其實(shí)是在告訴電腦,先從 /(根目錄)開始,再進(jìn)入到 home 目錄。

?????????????● /bin、/usr/bin:可執(zhí)行二進(jìn)制文件的目錄,如常用的命令 ls、tar、mv、cat 等。

? ? ? ? ? ? ?●??/boot:放置 linux 系統(tǒng)啟動時(shí)用到的一些文件,如 linux 的內(nèi)核文件:/boot/vmlinuz,系統(tǒng)引導(dǎo)管理器:/boot/grub。

? ? ? ? ? ? ?● /dev:存放linux系統(tǒng)下的設(shè)備文件,訪問該目錄下某個(gè)文件,相當(dāng)于訪問某個(gè)設(shè)備,常用的是掛載光驅(qū)mount /dev/cdrom /mnt。

? ? ? ? ? ? ●?/etc:系統(tǒng)配置文件存放的目錄,不建議在此目錄下存放可執(zhí)行文件,重要的配置文件有 /etc/inittab、/etc/fstab、 /etc/init.d、 /etc/X11、 /etc/sysconfig、 /etc/xinetd.d。

????????????●?/home:系統(tǒng)默認(rèn)的用戶家目錄,新增用戶賬號時(shí),用戶的家目錄都存放在此目錄下, ~ 表示當(dāng)前用戶的家目錄, ~edu 表示用戶 edu 的家目錄。

????????????●?/lib、/usr/lib、/usr/local/lib:系統(tǒng)使用的函數(shù)庫的目錄,程序在執(zhí)行過程中,需要調(diào)用一些額外的參數(shù)時(shí)需要函數(shù)庫的協(xié)助。

? ? ? ? ? ? ● /lost+fount:系統(tǒng)異常產(chǎn)生錯(cuò)誤時(shí),會將一些遺失的片段放置于此目錄下。

????????????●?/mnt: /media:光盤默認(rèn)掛載點(diǎn),通常光盤掛載于 /mnt/cdrom 下,也不一定,可以選擇任意位置進(jìn)行掛載。

? ? ? ? ? ? ●?/opt:給主機(jī)額外安裝軟件所擺放的目錄。

? ? ? ? ? ? ● /proc:此目錄的數(shù)據(jù)都在內(nèi)存中,如系統(tǒng)核心,外部設(shè)備,網(wǎng)絡(luò)狀態(tài),由于數(shù)據(jù)都存放于內(nèi)存中,所以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/net/*等。

? ? ? ? ? ? ● /root:系統(tǒng)管理員root的家目錄。

? ? ? ? ? ? ●?/sbin、/usr/sbin、/usr/local/sbin:放置系統(tǒng)管理員使用的可執(zhí)行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個(gè)目錄是給系統(tǒng)管理員 root 使用的命令,一般用戶只能”查看”而不能設(shè)置和使用。

? ? ? ? ? ??●?/tmp:一般用戶或正在執(zhí)行的程序臨時(shí)存放文件的目錄,任何人都可以訪問,重要數(shù)據(jù)不可放置在此目錄下。

????????????●?/srv:服務(wù)啟動之后需要訪問的數(shù)據(jù)目錄,如 www 服務(wù)需要訪問的網(wǎng)頁數(shù)據(jù)存放在 /srv/www 內(nèi)。

? ? ? ? ? ? ●?/usr:應(yīng)用程序存放目錄,/usr/bin:存放應(yīng)用程序,/usr/share:存放共享數(shù)據(jù),/usr/lib:存放不能直接運(yùn)行的,卻是許多程序運(yùn)行所必需的一些函數(shù)庫文件, /usr/local:存放軟件升級包, /usr/share/doc:系統(tǒng)說明文件存放目錄,/usr/share/man:程序說明文件存放目錄。

? ? ? ? ? ? ●?/var:放置系統(tǒng)執(zhí)行過程中經(jīng)常變化的文件,/var/log:隨時(shí)更改的日志文件,/var/spool/mail:郵件? 存放的目錄,/var/run:程序或服務(wù)啟動后,其 PID 存放在該目錄下。

3 一切皆文件

????????3.1 一切皆文件

????????????????Unix/Linux對數(shù)據(jù)文件(*.mp3、*.bmp),程序文件(*.c、*.h、*.o),設(shè)備文件(LCD、觸摸屏、鼠標(biāo)),網(wǎng)絡(luò)文件(socket)等的管理都抽象為文件,使用同一的方式方法管理。

????????????????在Unix/Linux操作系統(tǒng)中也必須區(qū)分文件類型,通過文件類型可以判斷文件屬于可執(zhí)行文件、文本文件還是數(shù)據(jù)文件。在Unix/Linux系統(tǒng)中文件可以沒有擴(kuò)展名。

? ? ? ? 3.2 文件分類

????????????????通常,Unix/Linux系統(tǒng)中常用的文件類型有5種:普通文件、目錄文件、設(shè)備文件、管道文件和鏈接文件。

? ??????????????● 普通文件:計(jì)算機(jī)操作系統(tǒng)存放數(shù)據(jù)、程序等信息的文件,一般都長期存放于外存儲器(磁盤、磁帶等)中。普通文件一般包括文本文件、數(shù)據(jù)文件、可執(zhí)行的二進(jìn)制程序文件等。

? ? ? ? ? ? ? ? 在Unix/Linux中可以通過file命來查看文件的類型。如果file文件后面攜帶文件名,則查看指定文件的類型,如果攜帶通配符“*”,則可以查看當(dāng)前目錄下的所有文件的類型。

? ??????????????● 目錄文件:Unix/Linux系統(tǒng)把目錄看成是一種特殊的文件,利用它構(gòu)成文件系統(tǒng)的樹型結(jié)構(gòu)。

? ? ? ? ? ? ? ? 目錄文件只允許系統(tǒng)管理員對其進(jìn)行修改,用戶進(jìn)程可以讀取目錄文件,但不能對它們進(jìn)行進(jìn)行修改。

? ? ? ? ? ? ? ? 每個(gè)目錄文件至少包括兩個(gè)條目,“..”表示上一級目錄,“.”表示該目錄本身。

? ? ????????????● 設(shè)備文件:Unix/Linux系統(tǒng)把每個(gè)設(shè)備都映射成一個(gè)文件,這就是設(shè)備文件。它是用于向I/O設(shè)備提供連接的一種文件,分為字符設(shè)備和塊設(shè)備文件。

? ? ? ? ? ? ? ? 字符設(shè)備的存取以一個(gè)字符為單位,塊設(shè)備的存取以字符塊為單位。每一種I/O設(shè)備對應(yīng)一個(gè)設(shè)備文件,存放在/dev目錄中,如形式打印機(jī)對應(yīng)/dev/lp,第一個(gè)軟盤驅(qū)動器對應(yīng)/dev/fd0。

? ??????????????● 管道文件:管道文件也是Unix/Linux中較特殊的文件類型,這類文件多用于進(jìn)程間的通信。?

? ? ? ? ? ? ? ? ● 鏈接文件:類似于Windows下的快捷方式,鏈接又可以分為軟連接(符號鏈接)和硬鏈接(軟鏈接:類似于快捷方式,改動鏈接文件,源文件不會變。硬鏈接:類似同步更新,一個(gè)改動另一個(gè)跟著改動)。

4 文件權(quán)限

? ? ? ? ? ? ? ? 文件權(quán)限就是文件的訪問控制權(quán)限,即哪些用戶和組群可以訪問文件以及可以執(zhí)行什么樣的操作。?

????????4.1 訪問用戶

? ? ? ? ? ? ? ? 通過設(shè)定權(quán)限可以從以下三種訪問方式限制訪問權(quán)限:

? ??????????????● 只允許用戶自己訪問(所有者)

? ? ? ? ? ? ? ? ? ? ? ? 所有者就是創(chuàng)建文件的用戶,用戶是所有用戶所創(chuàng)建文件的所有者,用戶可以允許所在的用戶組能訪問用戶的文件。

? ??????????????● 允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(用戶組)

? ? ? ? ? ? ? ? ? ? ? ? 用戶都組合成用戶組,例如,某一類或某一項(xiàng)目中的所有用戶都能夠被系統(tǒng)管理員歸為一個(gè)用戶組,一個(gè)用戶能夠授予所在用戶組的其他成員的文件訪問權(quán)限。?

? ??????????????● 允許系統(tǒng)中的任何用戶訪問(其他用戶)

? ? ? ? ? ? ? ? ? ? ? ? 用戶也將自己的文件向系統(tǒng)內(nèi)的所有用戶開放,在這種情況下,系統(tǒng)內(nèi)的所有用戶都能夠訪問用戶的目錄或文件。在這種意義上,系統(tǒng)內(nèi)的其他所有用戶就是other用戶類

這種管理方式有些類似QQ的訪問權(quán)限:所有者就是QQ群創(chuàng)建者,用戶組就是QQ群組,其他用戶就是QQ用戶。? ??

????????4.1 訪問用戶

????????????????用戶能夠控制一個(gè)給定的文件或者目錄的訪問程度,一個(gè)文件或目錄可能有讀、寫和執(zhí)行權(quán)限:

????????????????● 讀權(quán)限(r)

? ? ? ? ? ? ? ? 對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽目錄的權(quán)限。

? ??????????????● 寫權(quán)限(w)

? ? ? ? ? ? ? ? 對文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對目錄來說,具有刪除、移動目錄內(nèi)文件的權(quán)限。

? ??????????????● 可執(zhí)行權(quán)限(x)

? ? ? ? ? ? ? ? 對文件而言,具有執(zhí)行文件的權(quán)限;對目錄來說該用戶具有進(jìn)入目錄的權(quán)限。

注意:通常,Unix/Linux系統(tǒng)只允許文件的屬主(所有者)或超級用戶改變文件的讀寫權(quán)限。

????????4.2 文件示例說明

? ? ? ? ? ? ? ? 1)第一個(gè)字母代表文件的類型:"d" 代表文件夾? "-" 代表普通文件? "c" 代表硬件字符設(shè)備? "b" 代表硬件快設(shè)備? "s" 表示管道文件? "l" 代表軟鏈接文件。

? ? ? ? ? ? ? ? 2)后9個(gè)字母分別代表三組權(quán)限:文件所有者、用戶者、其他用戶擁有的權(quán)限。

? ? ? ? ? ? ? ? ? ? ? ? 每一個(gè)用戶都有它自身的讀、寫和執(zhí)行權(quán)限。

? ? ? ? ? ? ? ? ? ? ? ? 第一組權(quán)限控制訪問自己的文件權(quán)限,即所有者權(quán)限。

? ? ? ? ? ? ? ? ? ? ? ? 第二組權(quán)限控制用戶組訪問其中一個(gè)用戶的文件的權(quán)限。

? ? ? ? ? ? ? ? ? ? ? ? 第三組權(quán)限控制其他所有用戶訪問一個(gè)用戶的文件的權(quán)限。

? ? ? ? ? ? ? ? ? ? ? ? 這三組權(quán)限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫以及執(zhí)行權(quán)限就構(gòu)成了一個(gè)有9中類型的權(quán)限組。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容