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