1. 程式人生 > 其它 >檔案詳細資訊、型別,軟硬連結、使用者(組)、時間資訊

檔案詳細資訊、型別,軟硬連結、使用者(組)、時間資訊

檔案詳細資訊、型別,軟硬連結、使用者(組)、時間資訊

1、檔案詳細資訊

	利用 ls -lhi命令檢視檔案的詳細資訊
	示例:134319703 drwxr-xr-x. 2 root root   19 Dec 10 22:57 data
	以上面為例
	134319703	:inode編號(下面細說)
	drwxr-xr-x.	:檔案型別及許可權
	2	:硬連結數(下面細說)
	root	:所屬主(使用者)
	root	:所屬組(使用者組)
	19	:檔案大小(單位為位元組,夠一個k以kb展示)
	Dec 10 22:57	:檔案建立日期
	data	:檔名

2、inode編號

1、什麼是inode編號
	linux中的inode編號是索引節點的編號,每個inode對應一個不同的號碼,每個檔案有一個inode編號,且inode編號具有唯一性
2、inode編號的作用
	1、由於inode編號具有唯一性,因此可以作為檔案的一種標識,類似每個人的身份證號碼,用來標識檔案的唯一性,預設用來存放檔案的屬性資訊
	2、當我們在linux系統中查詢檔案時,遇到檔名相同的情況時,如何準確的查詢到所需的檔案?
	實際上是通過檔案自身的inode編號進行查詢,這就有效的避免了遇到檔名相同的情況時無法精確查詢所需檔案的衝突
	而我們每次在查詢檔案時,實際上是在查詢檔案對應的inode編號
3、如何檢視檔案的inode資訊及統計inode編號的個數
	1、檢視檔案的inode資訊
		ls命令:引數:-i
		[root@jinx ~]# ls -lhi /etc/hosts
		67865028 -rw-r--r--. 1 root root 158 Dec 13 15:36 /etc/hosts
	2、統計inode編號的個數
		[root@jinx ~]# df -i /etc/hosts

3、block

1、什麼是block
	在linux中,block又叫塊,用來存放檔案的資料資訊,linux檔案系統中使用塊(block)作為最小的定址單元
2、block特點
	1、block存放的是資料資訊,預設大小為4k,大的檔案會佔用多個block,較小的檔案,剩餘的block空間無法使用
	2、磁碟在讀取資料時以block為單位進行讀取
	3、每讀取一個block消耗一次磁碟的讀寫操作(input/output)
3、如何展示block資訊
	1、檢視block資訊
		[root@jinx ~]# ls -lh /etc/hosts
	2、統計block數目
		[root@jinx ~]#df或者[root@jinx ~]#df -h

4、訪問檔案原理

  • 建立一個檔案至少佔用一個inode和一個block
  • 通過使用者名稱開啟檔案,實際上內部發生了三個操作
    1、系統找到檔案對應的inode編號
    2、通過inode編號,獲取inode資訊
    3、根據inode資訊找到檔案資料所在的block,讀出資料

5、檔案型別及許可權

1、nux中檔案型別介紹
	[root@jinx ~]# ls -lhi /etc/hosts
		67865028 -rw-r--r--. 1 root root 158 Dec 13 15:36 /etc/hosts
	以上面為例
	以-或f開頭的	:普通檔案
	以d開頭	  :資料夾
	以l開頭	  :連線檔案(軟連線,硬連結)
	以b或c開頭	 :裝置檔案
		b :磁碟檔案
		c :字元檔案
	以s開頭	  :套接字檔案(socket)
	以p開頭	  : 管道檔案
2、檔案相關許可權
	擁有許可權
		1、檔案或目錄屬主使用者許可權:rw-
		2、檔案或模流屬組成員許可權:r--
		3、檔案或目錄其他使用者許可權:r--

6、檔案軟硬連結

1、硬連結
	1、什麼是硬連結
		在linux系統中,硬連結相當於訪問文化的一個入口,硬連結數相當於訪問檔案的入口數量,同一個分割槽中,inode號碼相同的檔案互為硬連結
	2、如何建立硬連結
		命令關鍵字:ln
		語法格式:ln [檔案絕對路徑] [檔案硬連結絕對路徑]
	3、特徵解釋
		1、建立硬連線時建議採用絕對路徑,否則容易失效
		2、硬連結原檔案必須刪除
		3、不能對資料夾建立硬連結
	4、刪除檔案的底層邏輯
		1、刪除的是硬連結數
		2、硬連結數不為0,則刪除一個硬連結數
		3、硬連線數為0,則在磁碟中將檔案刪除
	5、建立檔案硬連結與拷貝檔案的區別
		拷貝檔案其實是產生了一個新的檔案,將原檔案的內容複製一份,但是和原檔案的屬性已經發生了變化,即inode不再相同
		建立檔案硬連結實質上是檔案的硬連線數count加1,檔案屬性相同,即inode相同
2、軟連結
	1、什麼是軟連線
		linux中的軟連線相當於windows裡的快捷方式,用於存放指向原檔案的路徑資訊
	2、如何建立軟連結
		命令:ln -s
		語法格式:ln -s[原檔案路徑] [軟連結路徑]
	3、特徵解釋
		1、建立軟連結時建議採用絕對路徑,否則容易失效
		2、連結原檔案刪除,會影響軟連結
		3、原檔案可以是檔案,也可以是資料夾

擴充套件:如何真正的刪除一個檔案
	1、檔案硬連線數為0時,表示資料真正的刪除了
	2、檔案資訊沒有被程序呼叫時,程序呼叫數為0

7、檔案使用者、使用者組

1、什麼是使用者、使用者組
	使用者:相當於賬號
		如:root使用者
	使用者組:具有相同屬性的賬號的集合
		如:root使用者組
2、建立使用者的命令
	useradd
		引數:
			-g	:指定使用者組(使用者必須存在)
			-r	:建立系統使用者
			-M	:不建立家目錄
			-u	:指定建立使用者的id
3、什麼是普通使用者、系統使用者
	系統使用者:使用者id在0-999之間的使用者,我們就看作是系統使用者
		系統使用者一般用在啟動應用程式上,一般不需要登入系統
	普通使用者:uid在1000及以上的使用者,我們就看作是普通使用者
		普通使用者一般用在登入上
4、建立使用者組的命令
	groupadd
		引數:
			-g	:指定使用者組的id
5、切換使用者
	su -[使用者名稱]
	su [使用者名稱]
6、檢視使用者的id或組的id
id [使用者(組)名]
7、與使用者相關的檔案
	1、使用者的特徵資訊
		/etc/passwd
		[root@localhost ~]# cat /etc/passwd
		test01:x:1001:1001:使用者簡介:/home/test01:/bin/bash
		使用者名稱		  : test01
		密碼佔位符    :x
		1001		: userid
		1001		: 組id
		/home/test01 : 家目錄
		/bin/bash	:預設的解析器	
	2、使用者的密碼資訊
		/etc/shadow
	3、使用者組特徵資訊
		/etc/group
	4、使用者組密碼資訊
		/etc/gshadow
	5、使用者家目錄預設隱藏檔案
		/etc/skel

8、檔案時間資訊

檔案時間資訊主要分為三種
	使用stat命令檢視檔案的屬性:
	[root@jinx ~]# stat /root
		File: ‘/root’
	  Size: 275       	Blocks: 0          IO Block: 4096   directory
	Device: fd00h/64768d	Inode: 134319681   Links: 5
	Access: (0550/dr-xr-x---)  Uid: (    0/    root)   Gid: (    0/    root)
	Access: 2021-12-14 18:34:36.645811564 +0800
	Modify: 2021-12-14 18:34:35.006811456 +0800
	Change: 2021-12-14 18:34:35.006811456 +0800

	Access	:檔案訪問時間
	Modify	:檔案修改時間
	Change	:屬性修改時間

檔案型別檢視方法
	file [檔案資訊]
	
擴充套件:建立大量小檔案
	1、echo {1..500000}.txt|xargs touch
	2、ls *.txt|xargs rm