linux 檔案系統作為乙個系統不僅包含了檔案中的資料還包括檔案系統的結構。檔案系統中的檔案是資料的乙個集合,所有 linux 使用者和程式看到的 檔案、目錄、軟鏈結 及 檔案保護資訊 等都儲存在其中。
linux 主要採用的是 樹形結構,與 windows 不同(每個分割槽都是一棵檔案樹,根節點為碟符),它是單一的一棵樹,無論有多少分割槽,都包含在以 / 為根節點的樹結構上。其中分割槽是物理上的區分,目錄則是邏輯上的區分。linux 中每個分割槽都要掛載到目錄樹中乙個具體的目錄下才能訪問,其中根目錄必須掛載乙個分割槽。
掛載就是 linux 檔案系統與乙個儲存裝置關聯起來的過程。因為 linux 是乙個 多使用者系統,乙個規範的目錄有助於對系統檔案和不同的使用者檔案進行統一管理。
檔案系統組成
名字空間:給事物物件命名,並按照一種層次結構來組織。
api(應用程式設計介面):用於查詢和操作物件的一種系統呼叫。
安全模型:用於保護、共享和隱藏物件。
實現:用於將邏輯模型和硬體系統連線起來。
我們了解到 linux 的目錄是 樹狀結構,最頂級的目錄為根目錄 /。而其它目錄可以通過掛載將它們新增到樹中,通過解除掛載來移除。所以在開始之前,我們先來了解 絕對路徑 和 相對路徑 的區別。
在 linux 實驗環境操作中,我們是通過 cd 命令來切換路徑, . 表示當前目錄,… 表示上一級目錄, - 表示上一次所在目錄,~ 通常表示當前使用者的 home 目錄。可以使用 pwd 命令可以獲取當前所在絕對路徑。
進入使用者主目錄:
$ cd ~
獲取當前路徑:
$ pwd
絕對路徑
在 linux 中,絕對路徑是從根目錄 / 開始的完整路徑,比如:/usr、/etc/x11。
以絕對路徑方式進入 /usr/local/bin 目錄下
$ cd /usr/local/bin
$ pwd
相對路徑
相對路徑是以 . 或 … 開始的,. 表示使用者當前操作所處的目錄,而 … 表示上級目錄。
$ cd ~
$ cd …/…/usr/local/bin
檔案結構 是檔案存放在磁碟等儲存裝置上的組織方法。主要體現在對檔案和目錄的組織上。
linux 的目錄採用的是 樹型結構。最上層是 根目錄,其它的所有目錄都是從根目錄出發而生成的。微軟的 dos 和 windows 也是採用樹型結構,但是在 dos 和 windows 中這樣的樹型結構的根是磁碟分割槽的碟符,有幾個分割槽就有幾個樹型結構,它們之間的關係是並列的。但是在 linux 中,無論作業系統管理幾個磁碟分割槽,這樣的目錄樹只有乙個。從結構上講,各個磁碟分割槽上的樹型目錄不一定是並列的。
在 linux 的目錄結構中,使用者的主目錄通常是儲存在乙個單獨的檔案系統上,然後掛載到根目錄下的乙個目錄。而像這樣的檔案系統布局都是遵守了檔案系統層次結構標準(fhs,filesystem hierarchy standard)。fhs 定義了系統中每個區域的用途、所需要的最小構成檔案和目錄、同時還給出了例外處理與矛盾處理。
fhs 標準定義了兩層規範:
第一層:/ 下面的各個目錄應該放什麼檔案資料。例如 /etc 應放置配置檔案,/bin 與 /sbin 則應該放置可執行檔案等。
第二層:針對 /usr 和 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統登入檔案,/usr/share 放置共享資料等。
ls$ ls -al
從螢幕列印出來的資訊可以知道,從左到右依次表示:檔案型別和許可權、硬鏈結數、所有者、所屬組、檔案大小、最後修改時間、檔名。
第乙個字元代表的就是檔案的型別,檔案型別主要分為以下 7 種:
目錄 d:目錄中按照名字來對其它檔案進行引用,使用者通過 mkdir 建立目錄,用 rmdir 來刪除空目錄,用 rm -r 來刪除非空目錄。
塊裝置檔案 b:塊裝置檔案有處理塊資料的 i/o 驅動程式使用,同時讓核心提供緩衝。
本地域套介面 s:實現程序間通訊的連線,本地域套介面由系統呼叫 socket 建立,用 rm 或 unlink 刪除。
有名管道(fifo)p:讓執行在同一主機上的兩個程序相互通訊,和 socket 相似,用 mknod 建立,用 rm 來刪除。
檔案許可權
數字 字元 檔案/目錄
4 r 檢視檔案內容/檢視目錄下的檔案或目錄名稱
2 w 修改檔案內容/在目錄下增刪改
1 x 執行一些程式或指令碼/可以用命令切換目錄
chmod:改變檔案或目錄許可權
語法:chmod [選項][許可權][檔案或目錄]
–reference=rfile:根據參考文件設定許可權。
-r:遞迴的將許可權應用於所有的子目錄和子檔案。
修改許可權的 3 種形式
我們首先通過 ls -l 命令來檢視一下 install.log 檔案,然後用 chmod 命令的三種不同形式來修改檔案所有者許可權、所屬組許可權和其他人許可權。
$ touch install.log
$ ls -l install.log
-rw-rw-r-- 1 shiyanlou shiyanlou 0 10月 30 13:43 install.log
使用字元形式修改許可權
在 chmod 命令引數中,u 代表所有者,g 代表所屬組,o 代表其他使用者,a 代表所有人。
使用操作符形式修改許可權
操作符形式是在字元形式的基礎上對檔案或目錄使用 +/- 操作符來設定許可權。
通過 + 符號增加相應的許可權,- 符號減去相應的許可權。
chown:改變歸屬關係
chown 命令主要用於改變屬主的所有權,語法和 chmod 類似。
$ mkdir test
$ ls -l
$ sudo chown root test # 修改檔案的所屬者為root
,因為是超級使用者所以需要用到sudo
。
$ ls -l
drwxrwxr-x 2 root shiyanlou 4096 10月 30 13:52 test
chgrp:改變歸屬組
chgrp 命令是改變檔案或目錄所屬組的所有權,語法和 chmod 類似。
chown 可以一次同時改變所屬者和所屬組。
$ sudo chown shiyanlou:shiyanlou test
$ ls -l
drwxrwxr-x 2 shiyanlou shiyanlou 4096 10月 30 13:52 test
umask:預設許可權
umask 主要用來設定使用者建立檔案的預設許可權,它與 chmod 的效果剛好相反。umask 設定的是許可權「補碼」,而 chmod 設定的是檔案許可權碼。一般在 /etc/profile、$[home]/.bash_profile 或 $[home]/.profile 中設定 umask 值。
那麼如何計算 umask 值相應的檔案和目錄預設建立許可權是多少呢?
具體步驟如下:
先寫下具有全部許可權的模式,即 777 (所有使用者都具有讀、寫和執行許可權)。
在下面一行按照 umask 值寫下相應的位。
在接下來的一行中記下上面兩行中沒有匹配的位。這就是目錄的預設建立許可權。
而對於檔案而言,在建立時不能具有執行許可權,只要拿掉相應的執行許可權即可。
舉例:我們來做個練習,假設 umask 值為 022:
檔案的最大許可權是: rwx rwx rwx (777)。
umask 值為 022 (— -w- -w-)。
目錄許可權就是 rwx r-x r-x (755)。(這就是目錄建立預設許可權)
檔案許可權 rw- r-- r-- (644)。(這就是檔案建立預設許可權)
Linux 入門常用命令
linux之所以受到廣大計算機愛好者的喜愛,主要原因有兩個,首先它是自由軟體,使用者不用支付費用就可以使用它,並可根據自己的需要對它進行修改。另外,它具有unix的全部功能,任何使用unix系統或想要學習unix系統的人都可以從中獲益。讓我們一起從每乙個命令開始,走向linux高手之路吧。linux...
Linux常用命令 入門
linux 開源安全性高 linux 和 windows 1 同時登陸多使用者 2 安全 3 linux沒有碟符的概念 root 根目錄 4 linux的檔案沒有副檔名 linux binsbin boot 系統檔案 varhome 普通使用者的家目錄 root 超級管理員的家目錄 tmp 臨時檔案...
Linux入門常用命令
1.linux進入與退出系統 進入linux系統 必須要輸入使用者的賬號,在系統安裝過程中可以建立以下兩種帳號 1 root 超級使用者帳號 系統管理員 使用這個帳號可以在系統中做任何事情。2 普通使用者 這個帳號供普通使用者使用,可以進行有限的操作。一般的linux使用者均為普通使用者,而系統管理...