文件管理

一、文件系統

    單根架構,根文件系統rootfs

    不是linux大小寫敏感,而是文件系統支不支持大小寫。

    路徑分割 /

    FHS:目錄結構,文件分層標準

    文件有兩種數據:

        元數據,數據。

        元數據與數據存放的位置不再一起

    

二、文件系統結構

        /boot:引導文件存放目錄,內核文件、引導加載器都存放于此目錄。

        /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動就會用到的程序。

        /sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動就會用到的程序。

        /lib:啟動是程序來的基本共享庫文件以及內核模塊文件(/lib/modules)

        /lib64:專用于x86_64系統上的輔助共享庫文件存放位置。

        /etc:配置文件目錄。

        /home/USERNAME:普通用戶家目錄。

        /root:管理員的家目錄。

        /media:便攜式移動設備掛載點。

        /mnt:臨時文件系統掛載點。

        /dev:設備文件及特殊文件存儲位置。

            biock塊設備:隨機訪問

            character字符設備:順序訪問

            空設備:/dev/null  /dev/zero

        /opt:第三方應用程序的安裝位置。

        /srv:系統上運行的服務用到的數據。

        /tmp:臨時文件存儲位置。

        /usr:普通文件(universal),shared(共享文件),只讀文件(read-only)

            bin:保證系統擁有完整功能而提供的應用程序。

            sbin:

            lib:32位實用。

            lib64:只存在64位系統。            

            include:C程序的頭文件。    

            share:結構化獨立的數據。

            local:第三方應用程序的安裝位置。

                bin,sbin,lib,lib64,etc,share

        /var:變動數據文件(variable data files)

            cache:應用程序緩存數據目錄。

            lib:應用程序狀態信息數據。

            local:專用于為/usr/local下的應用程序存儲可變數據。

            lock:鎖文件。

            log:日志目錄及文件。

            opt:專用于為/opt下的應用程序存儲可變數據。

            run:運行中的進程相關數據,通常用于存儲進程pid文件。

            spool:應用程序數據池。

            tmp:保存系統兩次重啟之間產生的臨時數據。

        /proc:用于輸出內核與進程信息相關的虛擬文件系統。

        /sys:用于輸出當前系統上硬件設備相關信息虛擬文件系統。

        /selinux:(security enhanced Linux),selinux相關的安全策略等信息的存儲位置。

    linux上的引用程序的組成部分

        二進制程序:/bin,/sbin,/use/bin,/ues/sbin,/usr/local/bin,/usr/local/sbin

        庫文件:/lib,/lib64,/uer/,/uer/lib64,/uer/local/lib,/uer/local/lib64

        配置文件:/etc,/etc/DIRECTORY,/usr/local.etc

        幫助文件:/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc

三、文件名規則

    包括路徑在內,文件名稱最長4095個字節,用/分隔的路徑不能超過255個字節

    藍色:目錄

     綠色:可執行文件

    紅色:壓縮文件

    淺藍色:鏈接文件

    /和nul不能作為文件名,實用特殊字符的目錄名和文件夾不推薦使用,有些字符需要引號來引用它們。

    linux標準文件系統:(如exe4)文件名稱大小寫敏感。

四、linux下的文件類型

    -:普通文件

    d:目錄文件

    l:符號鏈接文件

    biock:塊設備,隨機訪問,有緩存,物理存在。

    character:字符設備,順序訪問,沒有緩存,邏輯存在。

    sockett:套接字文件,進程之間通訊。

    pipe:管道文件,錢一個命令的輸出通過管道作為后面的輸入。

五、文件通配符

    *:匹配另個或多個字符

    ?:匹配任何單個字符

    ~:當前用戶家目錄

    ~username:用戶家目錄

    ~+:當前工作目錄

    ~-:前一個工作目錄

    [0-9]:匹配數字范圍

    [a-z]:大寫和小寫字母 順序:小寫大寫

    [A-Z]:大寫和小寫字母 順序:小寫大寫

六、更改目錄cd

    cd:改變目錄為絕對或相對路徑

    cd..:到上一級目錄

    cd -:到以前的工作目錄

        相關的環境變量:

            PWD:保存了當前目錄路徑

            OLDPWD:上一次所在目錄路徑

[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc
[root@localhost etc]# cd /bin
[root@localhost bin]# cd -
/etc
[root@localhost etc]# cd
[root@localhost ~]#

七、列出目錄內容ls

    l.:只顯示隱藏文件

    -a:顯示所有文件,包含隱藏文件。

    -l:顯示額外的信息

    -R:目錄遞歸通過,顯示所有子目錄里的文件。

    -ld:目錄和符號鏈接信息。

    -n:文件分行顯示,n代表幾行

    -S:從大到小排序

[root@localhost ~]# ls
anaconda-ks.cfg  mulu1  mulu2  wenjian1  wenjian2

八、創建空白文件touch

    touch 文件名

    -a:改變atime

    -m:改變mtime

    -c:如果文件存在,只刷新時間。如果文件不存在,不會創建。

    -t:改變atime,mtime

        touch -t 年月日時分 文件名

[root@localhost ~]# touch -t 201607301846 /wang/DYW
[root@localhost ~]# ll /wang/DYW
-rw-r--r-- 1 root root 0 Jul 30  2016 /wang/DYW

    

九、復制文件和目錄cp

    源是一個文件:

        目標不存在:復制過去并且改名

        目標存在是文件:覆蓋文件

        目標存在是目錄:復制都目錄下

    源是多個文件:

        目標不存在:報錯

        目標存在是文件:報錯

        目標存在是目錄:復制到目錄下

    源是目錄:必須加-r

        目標不存在:創建指定目錄,把源目錄中所有文件復制到指定目錄

        目標存在是文件:報錯

        目標存在是目錄:復制到目標目錄中,成為子目錄

    cp常用選項:

        -i:交互式

        -r,-R:遞歸復制目錄及內部的所有內容

        -a:歸檔,相當于-dR,–presevr=all

        -d:–no-dereference –presevr=links 不復制文件,只復制鏈接名

        –presevr=[ATTR_LIST]

            mode:權限

            ownership:屬主屬組,所有者

            timestamp:時間

            links:鏈接

            xattr

            context

            all:所有

        -p:相當于–presevr=mode,ownership,timestamp

        -v:看復制過程

[root@localhost ~]# cp mulu1 -r /wang/123
[root@localhost ~]# ls /wang/123
mulu1
[root@localhost ~]# ls wenjian1 /wang/123
wenjian1

/wang/123:
mulu1

十、別名alias

    alias name=''

    如果想永久生效,要定義在配置文件中。

        對當前用戶:~/.bashrc

        對所有用戶:/etc/bashrc

    編輯配置給出的新配置不會立即生效,

        bash進程重新讀取配置文件:

            source /path/to/config_file

            . /path/to/config_file

[root@localhost ~]# alias asd='ls'
[root@localhost ~]# asd
anaconda-ks.cfg  mulu1  mulu2  wenjian1  wenjian2

十一、移動和重命名文件

    -i:交互式

    -f:強制

[root@localhost ~]# mv wenjian2 /wang/789
[root@localhost ~]# ll /wang/789
-rw-r--r-- 1 root root 0 Jul 29 11:50 /wang/789

十二、刪除rm

    -i:交互式

    -f:強制刪除

    -r:遞歸

[root@localhost ~]# ls /wang
123  789  dir  DYW
[root@localhost ~]# rm -rf /wang/123
[root@localhost ~]# ls /wang
789  dir  DYW

十三、顯示目錄樹tree

    -d:只顯示目錄

    -l:指定顯示的層級目錄 

        tree -l n

    -d:只顯示目錄,不顯示文件

[root@localhost ~]# tree /wang
/wang
├── 789
├── dir
│   ├── 1
│   ├── dir3-100
│   └── dir5
│       ├── 5
│       ├── dir
│       └── dir4
└── DYW

6 directories, 3 files

十四、創建目錄mkdir 刪除目錄rmdir

    mkdir:

        -p:自動創建所需的個目錄

        -v:顯示穿件過程

    rmdir:刪除目錄 只能刪除空白目錄

        -p:刪除目錄樹

[root@localhost ~]# mkdir -p /wang/dir/{1,2,3}
[root@localhost ~]# tree /wang
/wang
└── dir
    ├── 1
    ├── 2
    └── 3

4 directories, 0 files

十五、索引節點inode

   

    inode是什么:

    文件存儲在硬盤上,硬盤的最小存儲單位叫做“扇區”(Sector),每個扇區存儲512字節(相當于0.5KB)

    操作系統讀取硬盤的時候,不會一個個扇區的讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個“塊”(block)。這種由多個扇區組成的“塊”,是文件存取的最小單位。“塊”的大小,最常見的是4KB,即連續八個sector組成一個block。

    文件數據都存儲在“塊”中,那么很顯然還有一個地方存儲文件的元信息,例如文件的創建者、文件的創建日期、文件的大小等。這種存儲文件元信息的區域就叫做inode,中文譯名為“索引節點”

    inode的內容:

    inode包含文件的元信息,具體內容:

        文件的字節數

        文件擁有者的UserID

        文件的Group ID

        文件的讀、寫、執行權限

        文件的三個時間戳:ctime指inode上一次變動的時間,mtime指文件內容上一次變動的時間,atime指文件上一次打開的時間

        鏈接數,即有多少文件名指向這個inode

        文件數據block的位置

    可以用stat命令查看文件的inode信息。

    inode的大小

    inode也會消耗硬盤空間,所有硬盤格式化的時候,操作系統自動將硬盤分成兩個區域。一個是數據區,存放文件數據;另一個inode區(inode table),存放inode所包含的信息。

    每個inode節點的大小,一般是128字節或256字節。inode節點的總數,在格式化時就給定,一般是每1KB或每2KB就設置一個inode。假定在一塊1GB的硬盤中,每個inode節點的大小為128自己,每1KB就設置一個inode,那么inode,那么inode table的大小就會達到128MB,占整塊硬盤的12.8%。

    每個文件都必須有一個inode,所以有可能發生inode已經用光,但是硬盤還未存滿的情況,就無法在硬盤上創建新文件。

    查看每個硬盤分區的inode總數和已經實用的數量,可以實用df命令

         df-i

    inode號碼

    沒個inode都有一個號碼,操作系統用inode號碼來識別不同的文件

    linux系統內部不使用文件名,而inode號碼來識別文件。對于系統來說,文件名知識inode號碼便于識別的別稱或者綽號。表面上,用戶通過文件名打開文件。實際上,系統內部這個過程分成三步:首先,系統找到這個文件名對應的inode號碼;其次,通過inode號碼獲取inode信息;最后,根據inode信息找到文件數據所在的block,讀出數據。

    查看文件名對應的inode號碼

        ls -i

    

    硬鏈接:

    ln 文件名 鏈接文件名

    創建硬鏈接會增加額外的記錄項以引用文件

    對應統一文件系統上的一個物理文件

    每個引用相同的inode號

    創建時鏈接數遞增

    不能跨分區、驅動器

    刪除文件時:

         rm命令遞減計數的鏈接

         文件要存在,至少有一個鏈接數

        當鏈接數為零時,該文件被刪除

    軟鏈接:

    也叫符號鏈接

    ln -s 文件名 鏈接文件名

    ls -l 顯示鏈接的名稱和引用的文件

    一個符號鏈接指向另一個文件

    可以對目錄進行、可以跨分區

    指向的是另一個文件的路徑,其大小為指向的路徑字符串的長度,不增加或減少目標文件inode的引用技計數

    軟鏈接文件:

        原始文件相對路徑:相對于軟鏈接文件路徑,而不是相對于當前工作目錄的路徑

    硬鏈接與軟鏈接的區別:

    硬鏈接就是同一個文件使用了多個別名(他們有共同的 inode)。

    硬鏈接可由命令 link 或 ln 創建,由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此,刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。硬鏈接不能對目錄進行創建,只可對文件創建。

    軟鏈接(也叫符號鏈接)與硬鏈接不同,文件用戶數據塊中存放的內容是另一文件的路徑名的指向。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接可對文件或目錄創建。加-s選項表示創建的是軟鏈接。刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接就變成了死鏈接

    file:

    file 選項 文件名

    用來識別文件類型,也可用來辨別一些文件的編碼格式。它是通過查看文件的頭部信息來獲取文件類型,而不是像Windows通過擴展名來確定文件類型的。

    常用選項:

         -b:列出文件辨識結果時,不顯示文件名稱。

        -c:詳細顯示指令執行過程,便于排錯或分析程序執行型

        -f:列出文件中文件名的文件類型

        -F:實用制定分隔符號替換輸出文件名后默認的“:”分隔符

        -I:輸出mime類型的字符串

        -L:查看對應軟鏈接對應文件的文件類型

        -z:嘗試去解讀壓縮文件的內容

原創文章,作者:DYW,如若轉載,請注明出處:http://www.www58058.com/26918

(0)
DYWDYW
上一篇 2016-08-02 10:52
下一篇 2016-08-02 10:52

相關推薦

  • 馬哥教育網絡班21期-第二周課程練習

    第二周課程練習 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示?     1.1 目錄管理類命令:cd,pwd,ls,mkdir,rmdir,tree          1.1.1 cd:主要功能是改變當前目錄,…

    Linux干貨 2016-07-04
  • linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:發起一命令:請求內核將某個二進制程序運行為一個進程; OPTIONS:指定命令的運行特性; 短選項:-C, 例如-l, -d 注意:有些命令的選項沒有-; 如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld 長選項:–word, 例如…

    Linux干貨 2018-03-04
  • 如何修復Ubuntu 12.04上時間不正確的問題

    大家好: 今天跟大家分享下如何修復ubuntu 12.04上時間不正常的問題。 1–首先打date查看系統的時間是否正常 martell@cnux10:~/sistes/sha-mmb-o2o2o$ date  Thu Dec  1 09:15:47 UTC 2016 martell@cnux10:~/sistes/sha-m…

    Linux干貨 2016-12-04
  • lvm邏輯卷 練習題

    創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB, 而后在卷組中創建大小為5G的邏輯卷testlv;掛載至/users目錄;在/users下創建一個test.txt文件。擴展testlv至7G,要求archlinux用戶的文件不能丟失;收縮testlv至3G,要求archlinux用戶的文件不能丟失;對testlv創建…

    Linux干貨 2017-03-16
  • 圖解 lvs 工作原理

    一.lvs 基本工作流程介紹  如圖1,ipvsadm定義lvs服務監聽的ip和port,并發送給ipvs,而ipvs是工作在netfilter的input鉤子上的程序,當input鏈中有目標ip屬于lvs服務的請求報文時,ipvs就會修改該報文的鏈路,使其不進入用戶空間而直接轉到postrouting鏈上,并轉發給其中一臺real server,…

    Linux干貨 2016-10-30
  • N25第八周博客作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;     在線的主機使用綠色顯示;     不在線的主使用紅色顯示; #!/bin/bash trap ‘mytrap’ INT mytra…

    Linux干貨 2017-02-26
欧美性久久久久