其實linux就是一個文件系統(tǒng)。
文件的類型
普通文件,沒有特殊功能的文件,普通文本文件,二進(jìn)制可執(zhí)行文件,音視頻,都是普通文件
目錄文件,目錄也是一種文件,目錄文件里面放其他文件
鏈接文件,專指軟連接,相當(dāng)于windows的快捷方式
設(shè)備文件,具有特殊功能的文件,代表一個物理設(shè)備或者虛擬的物理設(shè)備,如打印機,磁盤等,一般在/dev/下
管道文件,一般用于進(jìn)程間通信,維護(hù)很少用到
文件屬性
內(nèi)容修改時間,mtime,最后modify內(nèi)容的時間
文件訪問時間,atime,最后訪問文件的時間
權(quán)限變更事件,ctime,文件的屬主,權(quán)限等變更的時間
出于性能考慮,atime可能不會立即更新
修改文件內(nèi)容時,mtime和ctime同時更新
修改文件權(quán)限,屬主時,ctime更新
文件權(quán)限
文件權(quán)限分讀寫執(zhí)行
執(zhí)行者分本人,同組,其他人
合起來9種,本人讀寫執(zhí)行,同組讀寫執(zhí)行,其他人讀寫執(zhí)行
用9個bit表示
9個普通權(quán)限為前面還有3個特殊權(quán)限為,分別是euid,egid,sticky粘滯位
euid,egid分別是對可執(zhí)行文件x權(quán)限的提升
sticky粘滯位用于共享目錄包含文件
如用戶的密碼保存在/etc/passwd里面,普通用戶并沒有權(quán)限讀這個文件,那么怎樣修改自己的密碼并且能夠把新密碼保存到passwd文件中,這就是/bin/passwd文件設(shè)置了一個euid,普通用戶執(zhí)行時,權(quán)限提升到root,就可以寫/etc/passwd文件了。具有euid的權(quán)限的文件,本人權(quán)限x位顯示s,如果x位為0,顯示S,具有egid權(quán)限的文件,同組權(quán)限x位顯示s,x位為0,顯示S
stickey,看/tmp這個目錄,他的其他人權(quán)限的x位顯示t,這就說明這個目錄設(shè)置有粘滯位,里面的文件受到保護(hù),多個用戶在同一個目錄中寫文件,只能刪除自己的文件。
設(shè)置粘滯位的目錄其他人權(quán)限的x位顯示t,如果這個目錄的其他人權(quán)限的x為是0,則顯示T
inode
文件數(shù)據(jù)放在數(shù)據(jù)塊中,磁盤上有一塊,放數(shù)據(jù)塊的索引號
要在/var/log/下面建立一個mysql.log,先找到根目錄,然后找到var對應(yīng)的inode,然后到inode表中,找到log的數(shù)據(jù)塊,然后申請一個inode,在log的數(shù)據(jù)塊中記錄下申請的inode號。然后申請合適大小的數(shù)據(jù)塊,在inode里面記錄下數(shù)據(jù)塊的位置,然后inode里面記錄下權(quán)限。
所以,文件的刪掉只是把inode節(jié)點刪掉
軟連接,硬鏈接
軟連接相當(dāng)于windows的快捷方式,軟連接的inode里面放的不是數(shù)據(jù)塊的位置,而是一個文件路徑。所以,他可以跨磁盤
硬鏈接相當(dāng)于別名,指向的是同一個文件的數(shù)據(jù)塊。如/a/c 和 /b/c是同一個文件的硬鏈接,那么/a目錄的數(shù)據(jù)塊的c的inode和/b目錄的數(shù)據(jù)塊里面的c的inode相同。