檔案屬性資訊

上善若水~小輝發表於2020-09-03

第1章    壓縮檔案

1.1   tar壓縮    zcvf  C   t   x   P

tar壓縮

[root@oldboyedu-lnb ~]#tar zcvf hosts.tar.gz    

                      z   # 使用gzip方式壓縮

                      c   # create  建立壓縮包

                      v   # verbose 顯示壓縮的過程

                      f   # 指定檔案

                     x   # 解壓

                     t   # 檢視壓縮包的檔名稱

                   -C   # 指定解壓到哪裡

                    -P  # 不提示從成員中刪除/

   為什麼要壓縮

  1.1.1    不常用的檔案 佔用磁碟空間

  1.1.2   壓縮後的檔案 備份檔案 傳送到備份伺服器

         伺服器-->傳送檔案到備份伺服器--->每個檔案傳輸都會佔用1次IO請求

         上千個檔案-->備份伺服器--->建立上千次的IO請求

         上千個檔案壓縮成一個檔案-->和伺服器建立1次IO 大大降低了伺服器的IO請求

  1.1.3  什麼時間壓縮

         壓縮最耗費伺服器的CPU

         業務的低谷期進行壓縮和傳送資料

1.2   壓縮其他的命令

         zip  bz  bz2      

# 提前安裝zip命令 yum -y install zip

       zip壓縮:

-q

不顯示指令執行過程

-r

遞迴處理,將指定目錄下的所有檔案和子目錄一併處理

-z

替壓縮檔案加上註釋

-v

顯示指令執行過程或顯示版本資訊

-n<字尾字串>

不壓縮具有特定字尾字串的檔案

 

 /home/html/ 這個目錄下所有檔案和資料夾打包為當前目錄下的 html.zip

[root@linuxcool ~]# zip -q -r html.zip /home/html

壓縮檔案 cp.zip 中刪除檔案 a.c:

[root@linuxcool ~]# zip -dv cp.zip a.c

把/home目錄下面的mydata目錄壓縮為mydata.zip:

[root@linuxcool ~]# zip -r mydata.zip mydata

把/home目錄下面的abc資料夾和123.txt壓縮成為abc123.zip:

[root@linuxcool ~]# zip -r abc123.zip abc 123.txt

將 logs目錄打包成 log.zip:

[root@linuxcool ~]# zip -r log.zip ./logs 

 

gzip 壓縮

語法格式:gzip [引數]

常用引數:

-a

使用ASCII文字模式

-d

解開壓縮檔案

-f

強行壓縮檔案

-l

列出壓縮檔案的相關資訊

-c

把壓縮後的檔案輸出到標準輸出裝置,不去更動原始檔案

-r

遞迴處理,將指定目錄下的所有檔案及子目錄一併處理

-q

不顯示警告資訊

參考例項

把rancher-v2.2.0目錄下的每個檔案壓縮成.gz檔案:

[root@linuxcool ~]# gzip *

把上例中每個壓縮的檔案解壓,並列出詳細的資訊:

[root@linuxcool ~]# gzip -dv *

遞迴地解壓目錄:

[root@linuxcool ~]# gzip -dr rancher.gz

[root@oldboyedu-lnb ~]# zip zip.gz 1.txt 2.txt

[root@oldboyedu-lnb opt]# unzip zip.gz # 常用

Archive:  zip.gz

inflating: 1.txt                  

extracting: 2.txt

unzip 解壓到指定的位置 -d

[root@oldboyedu-lnb ~]# zip test.zip 1.txt

adding: 1.txt (deflated 36%)

[root@oldboyedu-lnb ~]# unzip test.zip -d /opt/

Archive:  test.zip

inflating: /opt/1.txt             

[root@oldboyedu-lnb ~]# ll /opt/

total 4

-rw-r--r-- 1 root root 1177 Aug  4 08:02 1.txt

第2章               檔案的許可權

2.1  許可權的作用       決定了使用者對檔案的使用許可權

         rwxr--r--

2.2  許可權用來賦予給使用者的

2.3 前三位 屬主

      中三位 屬組

     後三位 其他使用者

2.4  rwx對應的數字

       r 4

       w 2

       x 1

第3章                 檔案的屬主

3.1  系統使用者

          作用:

                 

   登陸系統

   管理資料

   管理服務

3.2  系統識別使用者   

系統如何識別使用者的: UID 使用者唯一標識 類似於身份證  user dentification UID是一個數字

         系統預設使用者的分類:

                使用者                 UID                          作用

       1.管理員使用者:     0       最高管理者 相當於皇帝 擁有最高的許可權 /root

         [root@oldboyedu-lnb~]# id root

          uid=0(root) gid=0(root) groups=0(root)

       2.虛擬使用者:    1-999         sshd虛擬使用者 系統中每一個服務啟動 都必須使用一個使用者 不能登陸作業系統 沒有家目錄

         [root@oldboyedu-lnb~]# id sshd

          uid=74(sshd) gid=74(sshd) groups=74(sshd)

       3.普通使用者:   1000+   登陸系統 維護系統 常用的系統使用者 為了系統安全建立的使用者
       [root@oldboyedu-lnb~]# id oldboy

        uid=1001(oldboy) gid=1001(oldboy) groups=1001(oldboy)

       [root@oldboyedu-lnb~]# id alexdsx

       id: alexdsx: no such user

       [root@oldboyedu-lnb~]# id alex

       uid=1002(alex) gid=1002(alex) groups=1002(alex)

3.3  檔案的屬組 瞭解

, 預設建立的使用者 都會自動建立以自身名字命名的組名  oldboy使用者--->建立了oldboy組

當前組內的成員 對檔案或目錄擁有什麼許可權

         一個使用者可以屬於多個組  oldboy屬於alexroottest組....

         多個使用者可以屬於1個組   oldboy alex lidao 使用者---> 屬於test

         多個使用者可以屬於多個組  oldboy--> alex lidao  alex--> oldboy lidao

第4章                  索引節點和塊裝置

4.1   inode 和 block

           在建立檔案系統的時候自動生成的定量的inodeblock

           inode  索引節點 index node

           

 

  特點:

        類似於書的目錄

        相當於超市的入口

inode的檢視方式 ls -li

inode定義: 儲存檔案的屬性及block的具體位置

                  一個檔案最少佔用一個inode1個block

                  一個inode可以被多個檔案佔用

       在同一個檔案系統中相同的inode號稱為硬連結?

        inode預設的大小256B

        檔名在上級目錄的block

  4.1.1  磁碟的使用過程:

       磁碟          地皮

       RAID        地皮組合在一起 統一規劃

      分割槽          寫字樓 餐廳 遊樂場 宿舍

      格式化      打掃衛生 清理

     建立檔案系統  精裝修 生成inodeblock   中式 韓式 美式 歐式.... NTFS FAT32 XFS ext2 ext3 ext4

     掛載          安裝房間的門   

4.2  block  快裝置

          特點:

           儲存檔案資料的

          建立檔案最少需要一個1個inode1個block

          預設的block的大小是4K

          檔案太少、浪費磁碟空間 儲存單位是按4K方式儲存的

          10K檔案-->佔用三個block

          磁碟的讀取按照block單位進行讀取 讀取1個block會佔用1次IO

          IO input output 輸入輸出的次數決定了磁碟的使用效率

         讀取1個block佔用1s  讀取10k--->佔用三秒

  4.2.1  檢視inode和block

              inode: ls -li

             df -i  檢視當前系統inode使用情況

             block: df -h  檢視的是block空間的總大小  擴充套件:如何檢視預設的block大小 調整block大小

  4.2.2  使用過程中磁碟無法儲存內容

    4.2.2.1 檢視inode使用情況 

                     什麼情況下inode會被佔滿

                     1個檔案最少佔用1個inode  當有大量小檔案的時候 inode會被佔滿

    4.2.2.2 檢視block使用情況

                  什麼情況下block佔滿

                  檔案太大   其中一個滿 都無法正常儲存內容

    4.2.2.3   block快儲存 大了好還是小了好

                 說明:10K 檔案 block 4K   佔用3個block

 

 磁碟IO 輸入輸出的次數,決定了磁碟的效能   

10M 消耗block少 IO次數少 硬碟效能沒影響
10G 消耗block多 IO次數多 磁碟效能降低
大檔案較多  視訊/圖片/音訊 block調大一點  IO消耗較少
小檔案較多  文件/網站程式碼 block小一些     節省磁碟空間

4.3  軟連結和硬連結

          硬連結:

          在同一個檔案系統中有相同的inode號的檔案互為硬連結

         硬連結 檔案的多個入口 類似於超市有多個入口 堵死一個門不影響檔案的正常使用

         相當於複製多個inode號碼

4.3.1   建立硬連結

            ln 原始檔 目標檔案

[root@oldboyedu-lnb test]# ln test.txt hard_link.txt
[root@oldboyedu-lnb test]# ll -i
total 0
50996266 -rw-r--r-- 2 root root 0 Aug  4 10:35 hard_link.txt
50996266 -rw-r--r-- 2 root root 0 Aug  4 10:35 test.txt

4.3.2    硬連結的特點       

1.對已存在的檔案做硬連結
2.inode相同 屬性相同
3.只能在同一個分割槽內進行建立 同一個檔案系統
4.不能對目錄建立硬連結,只能對檔案建立硬連結  擴充套件瞭解                                                                                                                                                                           
5.刪除一個硬連結不影響其他的相同inode號的檔案
6.目錄的硬連結預設是2個
7.可以在任意一個入口進入到檔案修改內容 檢視檔案的時候都會發生變
8.刪除所有的相同的inode號 檔案被真正的刪除

4.3.3    硬連結的作用

         提高系統的安全性

4.4   軟連結

        說明: 類似windows的快捷方式,軟連結存放了指向原始檔的指標

4.4.1  建立軟連結:

            ln -s 原始檔  目標檔案

[root@oldboy~/oldboy]#ll
-rw-r--r--. 1 root root 5 5月  13 11:06 1.txt
[root@oldboy~/oldboy]#ln -s 1.txt s_1.txt
[root@oldboy~/oldboy]#ll
總用量 4
rw-r--r--. 1 root root 5 5月  13 11:06 1.txt
lrwxrwxrwx. 1 root root 5 5月  13 11:07 s_1.txt -> 1.txt

4.4.2   軟連結特點

1.軟連結的inode和原始檔不同 存放原始檔的路徑 指向原始檔的實體
2.刪除連結檔案不影響原始檔
3.刪除原始檔 連結檔案存在,但是無法訪問原始檔的內容 紅底白字進行閃爍
4.建立軟鏈建 ln -s
5.建立的軟連結就是普通檔案 刪除rm命令  PS:刪除的是軟連結 而不是--->file

4.4.3    軟連結作用

1.可以利用軟連結跨檔案系統的方式 處理磁碟不夠用
2.可以快速進行程式碼回滾 程式碼上線?

4.4.4  軟連結和硬連結的區別

       在Linux系統中 連結分為兩種 一種是硬連結 hard link 另一種軟連結(符號連結) symbllc link

1)建立方式不同 ln直接建立硬連結 ln -s 帶s引數建立是軟連結
2)硬連結的inode號碼是相同的 軟連結Inode是不同的
3)目錄不能建立硬連結可以建立軟連結
4)刪除硬連結不影響原始檔
5)刪除檔案的軟連結原始檔則導致軟連結失效。如果刪除軟連結檔案不影響原始檔
6)同時刪除原始檔和硬連結的檔案 整個檔案才會被真正的刪除(沒有被系統呼叫情況),刪除軟連結的原始檔,則檔案被真正刪除。
7)軟連結可以跨檔案系統,硬連結不可以跨檔案系統 
8)軟連結在工作中常用 建立軟連結 最好使用全路徑(絕對路徑)      
[root@oldboyedu-lnb test]# ln -s /tmp/data /root/test/data

第5章          檔案時間的修改

5.1  三個時間修改

Access:# 檔案的訪問時間 cat less more head tail第一次檢視時間改變 如果檔案沒有被修改 則時間不會改變

Modify:# 檔案的修改時間  內容被修改 時間會發生變化

[root@oldboyedu-lnb~]# echo test > oldboy.txt
[root@oldboyedu-lnb~]# stat oldboy.txt
File: ‘oldboy.txt’
Size: 5           Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 34044702    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-04 23:23:16.784751936 +0800
Modify: 2020-08-04 23:24:15.392326380 +0800
Change: 2020-08-04 23:24:15.392326380 +0800

Change:# 檔案的屬性修改時間 檔案屬性變化 時間就會變化

[root@oldboyedu-lnb~]# chmod +x oldboy.txt
[root@oldboyedu-lnb~]# stat oldboy.txt
File: ‘oldboy.txt’
Size: 10          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 34307462    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-04 23:25:23.213991139 +0800
Modify: 2020-08-04 23:25:23.213991139 +0800
Change: 2020-08-04 23:32:49.386364313 +0800
Birth: -
[root@oldboyedu-lnb~]# mv oldboy.txt oldboy.bak
[root@oldboyedu-lnb~]# stat oldboy.bak
File: ‘oldboy.bak’
Size: 10          Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d  Inode: 34307462    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-08-04 23:25:23.213991139 +0800
Modify: 2020-08-04 23:25:23.213991139 +0800
Change: 2020-08-04 23:34:00.687063165 +0800
Birth: -

5.2  find按照時間查詢檔案

  -mtime  # 常用

  -atime

  -ctime

檔案詳細資訊:

inode和block的儲存過程 理解  系統如何找到/root/oldboy/test.txt

第一步:首先查詢/目錄,  查詢/目錄的inode號碼
第二步:在/目錄下的block位置找到root的目錄名稱
第三步:找到root對應的inode號碼
第四步:root的inode號碼指向了自己的block的位置,找到oldboy目錄名稱
第五步:找到oldboy對應的inode號碼
第六步:oldboy的號碼指向了自己的block的位置,裡面儲存的是test.txt
第七步:找到了test.txt檔案 找到自身的inode號碼,指向自身的block位置
第八步:通過block位置檢視test.txt內容

                                                    


 

相關文章