05 Linux根文件系統

1、file 命令及其用法


man file


file /root 

  /root: directory


file /bin/ls

  /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped


Windows 

  PE: 可移植的可執行文件

Linux

  ELF: 

   一種可執行文件的存儲格式 

   可執行的可鏈接的文件類型

   Linux上常見的可執行二進制文件格式




文件系統是內核的核心功能之一,目的是實現本機上某一個分區上的文件管理


文件系統:

rootfs: 根文件系統

  對 Linux 而言,每一個文件都必須是根文件系統下的某一個路徑

  必須要通過根文件系統才能訪問


根, root ,用 / 表示 


文件系統分爲目錄和文件,除了目錄的都是文件

所有的文件都存放在目錄當中,都能夠通過目錄查找的到


FHS: Filesystem Hierarchy Standard(文件系統層次化標準) 


ls / :


2、關鍵路徑說明


/boot: 系統啓動相關的文件,如內核、initrd,以及 grub (bootloader 引導加載器)

  如果 /boot 目錄不存在,或對應的幾個文件不存在,系統根本無法啓動。


  操作系統啓動時所要用到的內核 vmlinuz ,以及暫時性的小 linux 系統

  vmlinuz :

  initrd (initramfs) : 磁盤映像文件,類似虛擬機,假的贏怕,能創建分區


/dev: 設備文件 

  設備文件:

    塊設備: 隨機訪問,數據塊, 磁盤,硬盤

    字符設備: 線性訪問,鍵盤,輸入 abc 顯示 abc ,鼠標,顯示器

         整個屏幕上顯示的內容都是在顯存中按位存儲的

    設備號: 主設備號(major) 和次設備號(minor)

        一個設備只有有設備文件,才能被 linux 所訪問


    在主機上要接入一個新設備,例如插入U盤,要想訪問U盤,首先在 dev 目錄下創建一個設備文件, 由系統自動完成。


  Linux 哲學思想,一切皆文件。因此,所有的硬件設備,也被識別爲各個文件

  device 設備


  ls -l /dev 

    

    lrwxrwxrwx. 1 root root           3 Jan 15 05:08 cdrom -> sr0

    lrwxrwxrwx. 1 root root           3 Jan 15 05:08 dvd -> sr0

    鏈接 (Windows 快捷方式) 

   

    brw-rw----. 1 root cdrom    11,   0 Jan 15 05:08 sr0

    設備文件沒有大小,直接存儲元數據,而且是作爲設備的訪問入口存在的


/etc : 配置文件

   Linux 哲學思想,將程序的配置文件保存爲純文本格式


/home: 用戶的家目錄,每一個用戶的家目錄通常默認爲 /home/USERNAME

/root: root 用戶的家目錄不再 /home 下,並且他的名稱就叫 /root

   在傳統的 Unix 系統上,root 用戶是沒有家目錄的,因爲 root 用戶從來都不需要登錄操作系統


   Windows 下不允許格式化 C 盤,Linux 不阻止你自殺

   生產環境使用普通用戶登錄,不要用 root 用戶登錄,只有要用到管理功能的時候,才切換到 root 用戶。


/lib: 庫文件

  靜態庫: .a

  動態庫: .dll , .so (shared object)


  任何程序和數據都必須要載入內存之後才能被程序所使用,

  對於共享庫,任何程序要使用共享庫,把共享庫載入內存就可以使用,如果第二個程序也用到這個共享庫,它就不用再載入了,因爲內存中已經有了,拿來就用。共享庫在內存中只存在一份即可。

  對於靜態庫,直接鏈接到程序的地址空間中去,作爲程序的一部分運行的。


  靜態方式便於程序單個文件管理,例如把一個程序從一個 linux 主機移動到另一個 linux 主機,只需要把文件從 a 主機複製到 b 主機就能直接運行

  但是,如果要使用動態鏈接庫的方式的話,那就意味着它自己的運行還要依賴於庫。所以將程序從 a 主機挪到 b 主機還不夠,還必須保證 b 主機有程序運行時所依賴的共享對象才行。


  /lib/modules: 內核模塊文件


/lost+found:

  任何一個新建的分區上都會有的目錄,通常跟文件系統相關,是用於存儲那些文件系統在機器突然間斷電的時候,文件沒有輸入屬組,並且尚未來得及保存的文件,是爲了實現丟失並找回的目的的。


/media: 掛載點目錄,掛載移動設備,U盤,光盤

/mnt: 額外的臨時文件系統,比如第二塊硬盤,只要跟當前文件系統沒有關係,都需要掛載


掛載點:

  在 Windows 上要想訪問光盤中的內容,光盤放進光驅,雙擊

  在 Linux 中,光盤放入光驅以後,必須要將這個設備關聯到當前整個文件系統樹上的某一個節點上,才能進行訪問。這個過程,把某個設備,跟當前文件系統上的某一個目錄建立關聯關係的過程,稱爲掛載。

  /dev/cdrom 是設備文件,只是設備上數據的訪問入口

  光盤放入光驅後,將 /dev/cdrom 關聯到 /media 目錄下,通過 /media 目錄就可以訪問


/misc

  雜項


/opt:

  可選目錄

 早期通常用於安裝第三方程序,現在放在 /usr/local


/proc

  僞文件系統

  內核映射文件,大多數文件都是內核中的可調參數,或內核工作的統計數據。

  例如網卡,只有內核能訪問,要想看看網卡接收了多少個數據包,發送了多少個數據包,這些統計數據都在這裏面。

  所以要想改變操作系統的根本工作屬性,通常都是通過改變這個目錄下的某個文件來完成的。事實上改的不是文件,而是內核屬性,只不過被映射成了文件。都是假文件,事實上不是文件。只不過表現成了文件的樣子而已。


  這個目錄是空的,但系統啓動以後文件就不空了。


  系統調優,絕大多數都跟這個目錄相關。

  整個系統的性能數據的監控,也跟這個目錄相關。

  

/sys:

  僞文件系統

  跟硬件設備相關的屬性映射文件,跟內核也相關,只不過把它獨立出來了。

  通常用於實現硬件設備管理,尤其是像硬盤這樣的設備。

 

  關機後這個目錄也是空的,只是映射出來的信息而已。


/tmp: /var/tmp

  臨時文件系統 

  存放可以被其他用戶訪問到的文件

  如果一個月這個目錄沒有被訪問,這個目錄會被系統腳本自動清除。

  每一個人都可以在裏面創建文件,但是只能在裏面刪除自己的文件,卻不能刪除別人創建的文件


/var:

  可變化的文件


/bin:

  二進制

  可執行文件

  用戶命令


/sbin: super

  管理命令


/usr: universal shared readonly

  全局的共享的只讀文件

  /usr/bin

  /usr/sbin

  /usr/lib


  /bin 和 /sbin 下放的是跟系統自身啓動相關的命令

  /usr/bin 、/usr/sbin 是系統啓動後,爲了提供一些基本功能所具備的命令或可執行程序


/usr/local:

  /usr/local/bin

  /usr/local/sbin

  /usr/local/lib

  第三方軟件的安裝路徑


3、命名規則


Linux 是嚴格區分文件名稱大小寫的


  1. 長度不能超過 255 個字符

  2. 不能使用 / 當文件名

  3. 嚴格區分大小寫


除此之外其他任何字符都合法,包括 * 和空格等特殊字符


4、目錄管理


ls

cd

pwd


mkdir: 創建空目錄

  -p:

  -v: verbose 詳細信息


  mkdir x

  mkdir x/y    當前目錄

  mkdir ./x/y  作爲參數 ./ 可以省略,當前目錄


  mkdir -pv m/n/q


linux 哲學思想,沒有信息就是最好的信息,執行完命令沒有信息,說明成功了。


命令行展開

  mkdir -pv /mnt/test/x/m /mnt /mnt/test/y


tree:

   查看目錄樹

  tree x


刪除目錄


rmdir: 刪除空目錄 (remove directory)


文件的創建和刪除


touch 修改文件時間戳

  touch a

  file a


stat 查看文件狀態


創建文件,可以使用文本編輯器


ASCII: 

  128 個不同的字符

  2^7 = 0, 127


  計算機存儲數據的最小單位是字節,一個字節是8位 。

  雖然只有7位,但存儲的時候也要用 一個字節 8位來存儲。


ASCII 碼錶,是一個標準,約定大家用同一個二進制表示的字符相同。


漢字:

  常用漢字幾千個

  所有漢字大概十幾萬個


  2^16 = 65535  ,用兩個自己存儲漢字,可以存儲六萬多個漢字


標準 GB18030 、GB2312、GBK、Unicode

0000 1001 0000 1110 : 上、衛


notepad++ 文本編輯器 (純文本)

word 字處理軟件 (文本、樣式)


notepad++ 編輯的文本,拿到 linux 裏可以當配置文件用


nano:

  nano hello : 創建一個文本文件 hello 

  ^ : 脫字符 ctrl 

  ^O: 保存

  Linux 中的文本編輯器


  ls -lh hello

  file hello



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章