歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux文件系統大雜燴

Linux文件系統大雜燴

日期:2017/3/3 11:05:04   编辑:Linux技術
1.我們先來了解一下Linux為什麼不同的發行版本中的目錄結構基本上都一樣呢?
因為Linux有一個組織叫LSB(全稱:Linux Standards Base)定義的Linux發行版基礎目錄名稱命名法則及功用固定,這種標准叫做FHS (Filesystem Hierarchy Standard(文件系統目錄標准)文件系統層級標准。
2.根文件系統即:rootfs,目錄結構:/etc,/usr,/var,/root,/home,/dev
3.文件有兩類數據:
元數據:metadata :Super Block GDT inode表 inode 位圖 block 位圖
數據: data :Data Block
#元數據和數據不在一個地方存儲,(tune2fs -l /dev/sad2)查看占用塊的信息字節為單位。一個文件至少占用一個塊



4.文件名規則:
文件高亮顏色:藍色----->目錄 綠色----->可執行文件 紅色----->壓縮文件 淺藍色----->鏈接文件 灰色----->其他文件
包括路徑在內文件名稱最長4095個字節,用/分隔的路徑不能 超過255個字節。
除了斜槓和NUL,所有字符都有效.但使用特殊字符的目錄名和 文件不推薦使用,有些字符需要用引號來引用它們。
標准Linux文件系統(如ext4),文件名稱大小寫敏感。例如 :MAIL, Mail, mail, mAiL



以.開頭的文件是隱藏文件



5.文件系統結構:
/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
cache: 應用程序緩存數據目錄
lib: 應用程序狀態信息數據
local:專用於為/usr/local下的應用程序存儲可變數據;
lock: 鎖文件 log: 日志目錄及文件
opt: 專用於為/opt下的應用程序存儲可變數據;
run: 運行中的進程相關數據;通常用於存儲進程pid文件
spool: 應用程序數據池
tmp: 保存系統兩次重啟之間產生的臨時數據
/proc: 用於輸出內核與進程信息相關的虛擬文件系統
/sys:用於輸出當前系統上硬件設備相關信息虛擬文件系統
/selinux: security enhanced Linux,selinux相關的安全策 略等信息的存儲位置
6.Linux上的應用程序的組成部分 :
二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
庫 文 件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置 文件 :/etc, /etc/DIRECTORY, /usr/local/etc
幫助 文件 :/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
7.Linux下的文件類型:
-:普通文件
d: 目錄文件
b: 塊設備
c: 字符設備
l: 符號鏈接文件
p: 管道文件pipe
s: 套接字文件socket



8.絕對路徑和相對路徑:
絕對路徑:以正斜槓開始 完整的文件的位置路徑 可用於任何想指定一個文件名的時候
相對路徑:不以斜線開始 指定相對當前的工作目錄位置 可以作為一個簡短的形式指定一個文件名



9.ls命令參數:
功能:列出當前目錄的內容或指定目錄
用法:ls [options] [files_or_dirs]
Example:
ls -a 包含隱藏文件
ls -l 顯示額外的信息
ls -R 目錄遞歸通過
ls -ld 目錄和符號鏈接信息
ls -1 文件分行顯示
ls –S 按從大到小排序
ls –u 配合-t選項,顯示並按atime 從新到舊排序
ls –U 不排序按目錄存放順序顯示
常用參數 ls -l -a -d
10.文件通配符:
* 匹配零個或多個字符
? 匹配任何單個字符
~ 當前用戶家目錄
~username 用戶家目錄
~+ 當前工作目錄
~- : 前一個工作目錄
[0-9]:匹配一個數字范圍
[a-z]:大寫和小寫字母
[A-Z]:大寫字母
[wxc] 匹配列表中的任何的一個字符
[^wxc] 匹配列表中的所有字符以外的字符
預定義的字符類:
#man 7 glob
[:digit:]:任意數字,相當於0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:空格
[:punct:]:標點符號
11.查看文件狀態:使用stat
文件:metadata, data (元數據,數據)
三個時間戳:
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變



創建空文件和刷新時間
touch命令:touch [OPTION]... FILE...
-a: 僅改變 atime
-m: 僅改變 mtime
-t:STAMP: [[CC]YY]MMDDhhmm[.ss]
-c: 如果文件不存在,則不予創建



12.cp文件和目錄:
-i:交互式
-r, -R: 遞歸復制目錄及內部的所有內容;
-a: 歸檔,相當於-dR --preserv=all
-d:--no-dereference --preserv=links 不復制原文件,只復制鏈接名
-p:等同--preserv=mode,ownership,timestamp
-v: --verbose ? -f: --force
--preserv[=ATTR_LIST] mode: 權限 ownership: 屬主屬組 timestamp: links xattr context all
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp demo test
demo是文件: 如果目標不存在:會自動新建test,並將demo中內容填充至 test中



如果test是文件:將demo中的內容覆蓋至test中 基於安全,建議為cp命令使用-i選項 。
如果test是目錄:在test下新建與原文件同名的文件,並將demo中內容填充至新文件中



cp demo... test demo...:多個文件
test必須存在,且為目錄,其它情形均會出錯;
cp demo test demo是目錄:此時使用選項:-r 如果test不存在:則創建指定目錄,復制demo目錄中所有文件至test中;



如果test是文件:報錯
如果test是目錄:復制demo目錄中所有文件至test中;
13.mv文件和目錄:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
-i: 交互式
-f: 強制
[root@localhost nzg]# mv tesy/ test
14.rm文件和目錄:
rm [OPTION]... FILE...
常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸
--no-preserve-root
例: #rm -rf /
[root@localhost nzg]# rm -rf test/ demo/
15.目錄常用操作:
tree 顯示目錄樹:
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑






mkdir 創建目錄:
-p: 存在於不報錯,且可自動創建所需的各目錄;
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限;
[root@localhost nzg]# mkdir -p aa/bb/cc/dd/ee/ff
rmdir 刪除空目錄 :
-p: 遞歸刪除父空目錄
-v: 顯示詳細信息
[root@localhost nzg]# rmdir -p test/aa/bb/
16.設置命令別名:
編輯配置給出的新配置不會立即生效;
bash進程重新讀取配置文件:
source /path/to/config_file
. /path/to/config_file
撤消別名:unalias
unalias [-a] name [name ...] 例如 ~]# unalias bf
如果別名同原命令同名,如果要執行原命令,可使用 “\COMMAND” ’COMMAND’ /PATH/COMMAND:外部命令
alias bf='cp -rfp /etc/ /testdir/backup-2016-07-31'
alias l.='ls -d .* --color=auto'
17.索引節點:
inode(index node)表中包含文件系統所有文件列表
一個節點 (索引節點)是在一個表 包含有關文件的信息 ( 元數據 ),
包括:
文件類型
權限
UID
GID 鏈接數(指向這個文件名路徑名稱個數)
該文件的大小和不同的時間戳
指向磁盤上文件的數據塊指針
有關文件的其他數據
#人是通過文件名來引用一個文件
#而文件引用一個是 inode號
#一個目錄是目錄下的文件名和文件inode號之間的映射
cp和inode
CP和inode: 分配一個空閒的inode號,在inode表中生成新條目在目錄中創建一個目錄項,將名稱與inode編號關聯 拷貝數據生成新的文件
rm和inode
鏈接數遞減,從而釋放的inode號可以被重用 把數據塊放在空閒列表中 刪除目錄項 數據實際上不會馬上被刪除,但當另一個文件使用數據塊 時將被覆蓋。
mv和inode
如果mv命令的目標和源在相同的文件系統,作為mv 命令 用新的文件名創建對應新的目錄項 刪除舊目錄條目對應的舊的文件名 不影響inode表(除時間戳)或磁盤上的數據位置:沒有 數據被移動!
如果目標和源在一個不同的文件系統, mv相當於cp和rm
18.查看文件類型:
文件可以包含多種類型的數據
檢查文文件類型,然後確定適當的開放命令或應用程序使用
file [options] <filename>...
Option:
-b列出文件辨識結果時,不顯示文件名稱。
-c詳細顯示指令執行過程,便於排錯或分析程序執行形
-f列出文件中文件名的文件類型
-F使用指定分隔符號替換輸出文件名後默認的”:”分隔符
-i輸出mime類型的字符串
-L查看對應軟鏈接對應文件的文件類型
-z嘗試去解讀壓縮文件的內容
--help顯示命令在線幫助
19.硬鏈接和軟連接:
硬鏈接:
創建硬鏈接會增加額外的記錄項以引用文件
對應於同一文件系統上一個物理文件
每個目錄引用相同的inode號
創建時鏈接數遞增
刪除文件時: rm命令遞減計數的鏈接 文件要存在,至少有一個鏈接數 當鏈接數為零時,該文件被 刪除;
不能跨越驅動器或分區
語法: ln filename [linkname ]
軟鏈接:
一個符號鏈接指向另一個文件
ls - l的 顯示鏈接的名稱和引用的文件
一個符號鏈接的內容是它引用文件的名稱
可以對目錄進行
可以跨分區
指向的是另一個文件的路徑;其大小為指向的路徑字符串的 長度;不增加或減少目 標文件inode的引用計數;
語法:ln -s filename [linkname]
區別:硬鏈接源文件和鏈接文件使用同一個inode號,而軟鏈接源文件和鏈接文件使用不同的inode號,在文件屬性上軟鏈接有顯示鏈接文件,而硬鏈接沒有顯示。
本文出自 “Linux學習之路” 博客,請務必保留此出處http://luyubo.blog.51cto.com/7634254/1831665
Copyright © Linux教程網 All Rights Reserved