1. 文件類型
- 普通文件 d 目錄文件 l 鏈接文件 b 塊設備文件 c 字符型設備文件 s socket文件 p 管道類型文件 塊設備文件主要是指慢速設備,比如hd硬盤,數據主要是分塊存儲,所以是塊設備;在linux中,設備都會被抽象為一個文件,比如硬盤:
brw-rw---- 1 root disk 8, 0 1月 25 14:53 sda brw-rw---- 1 root disk 8, 1 1月 25 14:53 sda1 brw-rw---- 1 root disk 8, 2 1月 25 14:53 sda2 brw-rw---- 1 root disk 8, 5 1月 25 14:53 sda5 brw-rw----+ 1 root cdrom 11, 0 1月 25 14:53 sr0sda 是指整塊硬盤, 我電腦里只有一塊硬盤,如果還有第二塊硬盤,那么會抽象為sdb
sda1 是指硬盤一個分區
那么既然硬盤是一個文件,那么我可以往該文件里寫入內容嗎? 肯定是可以的,但是千萬別嘗試,這樣會損壞整塊硬盤的數據,不信你試試,我不敢:
cat /etc/passwd > /dev/sda #千萬別執行
那在windows中可以用ghost對硬盤做鏡像,那在linux中是不需要使用其它工具的,先掛在一塊硬盤到/mnt目錄
#dd if=/dev/sda of=/mnt/sda.img
只需一條命令即可對整塊硬盤做鏡像了。如果我只想對其中一個分區做鏡像,那if=/dev/sda1就行了。
2. 權限
# ll 總用量 20 drwx------ 2 root root 4096 2月 16 12:41 ./ drwxr-xr-x 23 root root 4096 1月 25 13:53 ../ -rw-r--r-- 1 root root 3106 2月 20 2014 .bashrc -rw-r--r-- 1 root root 140 2月 20 2014 .profile -rw------- 1 root root 626 2月 16 12:41 .viminfo
我們使用ll命名查看文件目錄的時候,前面的rwx------這些就是表示文件的權限,那么到底是什么意思呢
對應數字 權限 r 4 讀 w 2 寫 x 1 執行
第一位有的是d, 有的是- ,這是什么意思呢?
d 表示這是一個目錄文件
- 表示這是一個普通文件,還記得最開始說的文件類型嗎?
接下來的九個字符則表示該文件或目錄的權限了:
前三位: 文件擁有者的權限
中間三位: 文件擁有組的權限
后三位: 其它人的權限
權限 后面的 1 表示鏈接數, 然后就是擁有者,擁有組,文件大小,修改時間,文件名稱
一般情況下,linux文件權限 644 ,文件夾權限 755
3. 權限修改
chmod u+x 文件名 #u表示擁有者 g表示擁有組 o表示其它用戶 a表示所有
chomd g-x 文件名
chmod a=rw 文件名 # + ,-, =
chmod 644 文件名 #使用數字方式修改權限,最常用的,最靈活的
如果想給目錄及目錄下所有文件設置權限,使用-R參數
chomd –R 644 目錄
chown 修改擁有者,同樣可以加-R參數
chgrp 修改擁有組,同樣可以加-R參數
那么問題來了: chmod 046 A 給文件A修改了權限 ,那擁有者對A是什么權限呢?
一看前三位,沒有權限 ,那就沒有權限 了。權限不會疊加。
4. 連接數
連接數是個什么鬼。這要先從數據在硬盤里怎么存儲的說起:
首先目錄文件中存儲有a.jpg和inode號,再通過inode找到對應的block,就找到了文件內容。圖上a.jpg和b.jpg指向的是同一個inode,那a.jpg和b.jpg實際上是同一個文件,只占用一份存儲空間,所以連接數就應該是2.
如果a.jpg是個空文件,那它還有inode嗎?還占用block嗎?
空文件也是有文件信息的,比如權限啊,創建時間啊什么的,這些信息都是存儲在inode里的,所以空文件還是有Inode的,但是沒有內容,所以不占用block.
那我要是刪除了a.jpg,那b.jpg還在嗎? 還在的,刪除a.jpg實際上是刪掉了a.jpg與inode之間的對應關系,但是b.jpg依然可以訪問。這就是硬連接, ln a.jpg b.jpg 如果這張圖片是美女圖片,很好看,不想被別人刪除,那就可以做硬連接,在其它地方做一個入口,別人刪掉一個,還有其它入口可以訪問。但要注意的是硬連接是不能跨分區的。
如果要跨分區,可以使用軟連接,軟連接是一個全新的文件,相當於windows中的快捷方式。
stat 文件名 可以查看inode里有什么東西

