1. 程式人生 > >第四章 文件管理

第四章 文件管理

字母 margin ble 可讀的 use 應用 方式 訪問 字符

文件管理

文件系統

文件中兩類數據

文件命名規則

文件體系結構

文件類型

文件通配符

文件系統:

(將01010機器組織用戶可讀的文件)

  1. 文件和目錄被組織成一個單根倒置樹結構
  2. 文件系統從根目錄下開始,用“/”表示
  3. 根文件系統(rootfs):root filesystem
  4. 文件名稱區分大小寫(不是Linux系統對大小寫敏感,而是文件系統對大小寫敏感)
  5. 以.開頭的文件為隱藏文件
  6. 路徑分隔符 /

文件有兩類數據:

  1. 元數據:metadata,文件的屬性信息。
  2. 數據:data,文件的內容。

文件名規則:

  • 文件名最長255個字節
  • 包括路徑在內文件名稱最長4095個字節
  • 藍色-->目錄 綠色-->可執行文件 紅色-->壓縮文件 淺藍色-->鏈接文件 (相當於Windows的快捷方式) 灰色-->其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們。
  • 標準Linux文件系統(如ext4),文件名稱大小寫敏感。例如:MAIL,Mail,mail, mAiL

文件體系結構:

  • /boot:引導文件存放目錄,內核文件(vmlinuz)、引導加載器(bootloader, grub)都存放於此目錄
  • /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序
  • /sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程序
  • /lib:啟動時程序依賴的基本共享庫文件以及內核模塊文件(/lib/modules)
  • /lib64:專用於x86_64系統上的輔助共享庫文件存放位置
  • /etc:配置文件目錄
  • /home/USERNAME:普通用戶家目錄
  • /root:管理員的家目錄
  • /media:便攜式移動設備掛載點
  • /mnt:臨時文件系統掛載點
  • /dev:設備文件及特殊文件存儲位置
    • b: block device,隨機訪問
    • c: character device,線性訪問
  • /opt:第三方應用程序的安裝位置
  • /srv:系統上運行的服務用到的數據
  • /tmp:臨時文件存儲位置
  • /usr: universal shared, read-only data
    • bin: 保證系統擁有完整功能而提供的應用程序
    • sbin:
    • lib:32位使用
    • lib64:只存在64位系統
    • include: C程序的頭文件(header files)
    • share:結構化獨立的數據,例如doc, man等
    • local:第三方應用程序的安裝位置
      • bin, sbin, lib, lib64, etc, share
  • /var: variable data files
    • u cache: 應用程序緩存數據目錄
    • u lib: 應用程序狀態信息數據
    • u local:專用於為/usr/local下的應用程序存儲可變數據;
    • u lock: 鎖文件
    • u log: 日誌目錄及文件
    • u opt: 專用於為/opt下的應用程序存儲可變數據;
    • u run: 運行中的進程相關數據,通常用於存儲進程pid文件
    • u spool: 應用程序數據池
    • u tmp: 保存系統兩次重啟之間產生的臨時數據
  • /proc: 用於輸出內核與進程信息相關的虛擬文件系統(對應內存中數據)
  • /sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統(和硬件相關)
  • /selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置
  • /lost+found:和文件系統有關,默認的ext系列的掛載點下面都有

Linux下的文件類型:

  • -:普通文件
  • d: 目錄文件
  • b: 塊設備
  • c: 字符設備
  • l: 符號鏈接文件
  • p: 管道文件pipe
  • s: 套接字文件socket

文件通配符:

(匹配文件名稱)

  • *匹配零個或多個字符
  • ?匹配任何單個字符
  • ~ 當前用戶家目錄
  • ~sunan 用戶sunan家目錄
  • ~+ 當前工作目錄
  • ~-前一個工作目錄
  • [0-9]匹配數字範圍
  • [a-z]:小寫字母
  • [A-Z]:大寫字母
  • [sunan]匹配列表中的任何的一個字符
  • [^sunan]匹配列表中的所有字符以外的字符

預定義的字符類:man 7 glob

  • [:digit:]:任意數字,相當於0-9
  • [:lower:]:任意小寫字母,相當於a-z
  • [:upper:]: 任意大寫字母,相當於A-Z
  • [:alpha:]: 任意大小寫字母
  • [:alnum:]:任意數字或字母
  • [:blank:]:水平空白字符
  • [:space:]:水平或垂直空白字符
  • [:punct:]:標點符號
  • [:print:]:可打印字符
  • [:cntrl:]:控制(非打印)字符
  • [:graph:]:圖形字符
  • [:xdigit:]:十六進制字符

第四章 文件管理