linux文件和目錄結構

Bound_w發表於2018-12-26

  Linux檔案系統結構

Linux通過操作目錄來實現對磁碟的讀寫。Linux通過使用正斜槓" / "來表示目錄。

Linux通過建立一個根目錄,所有的目錄都是通過根目錄衍生出來的。

登入系統後,輸入ls /來檢視

結果如下:

在Linux底下,所有的檔案與目錄都是由根目錄開始,是目錄與檔案的源頭,然後一個個的分支下來,如同樹枝狀,因此稱為這種目錄配置為:目錄樹。

目錄樹的特點:

  •  目錄樹的起點都是根目錄(/root)
  • 每一個目錄不僅能使用本地的檔案系統,也能使用網路上的檔案系統,利用NFS伺服器掛載到特定的目錄。
  • 每一個目錄樹這種的檔名,包括完整的路徑都是獨一無二的。

目錄樹的架構示意圖:

        

 

一下是對目錄的詳情解釋;

            

  • /bin
    bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。

  • /boot:
    這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。

  • /dev :
    dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中訪問裝置的方式和訪問檔案的方式是相同的。

  • /etc:
    這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。

  • /home
    使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的。

  • /lib
    這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於Windows裡的DLL檔案。幾乎所有的應用程式都需要用到這些共享庫。

  • /lost+found
    這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。

  • /media
    linux系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,linux會把識別的裝置掛載到這個目錄下。

  • /mnt
    系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以檢視光碟機裡的內容了。

  • /opt
     這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。

  • /proc
    這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
    這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。

  • /sbin
    s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。

  • /selinux
     這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。

  • /srv
     該目錄存放一些服務啟動之後需要提取的資料。

  • /sys
     這是linux2.6核心的一個很大的變化。該目錄下安裝了2.6核心中新出現的一個檔案系統 sysfs 。

    sysfs檔案系統整合了下面3種檔案系統的資訊:針對程式資訊的proc檔案系統、針對裝置的devfs檔案系統以及針對偽終端的devpts檔案系統。

     

    該檔案系統是核心裝置樹的一個直觀反映。

    當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。

  • /tmp
    這個目錄是用來存放一些臨時檔案的。

  • /usr
     這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於windows下的program files目錄。

  • /usr/bin:
    系統使用者使用的應用程式。

  • /usr/sbin:
    超級使用者使用的比較高階的管理程式和系統守護程式。

  • /usr/src:核心原始碼預設的放置目錄。

  • /var
    這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。

在linux系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部檔案。

/etc: 上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導致系統不能啟動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。

/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。

目錄的相關操作

切換目錄使用的是cd指令,

.表示當前的路徑
..上一級目錄
~當前使用者所在的家目錄
-前一個工作目錄

需要注意的是,在所有目錄底下都存在兩個目錄,分別是【.】和【..】,分別代表當前目錄,上層目錄!那麼如何證明它的存在呢?

命令: ls -la /
檢視命令解釋:man ls  (Linux下的幫助指令)
結論:ls - list directory contens (列出目錄內容)
ls -la /  以豎狀格式化顯示列出/目錄所有內容

 常用的目錄處理:

cd : (change directory,更改目錄)
pwd:(顯示當前目錄)
mkdir:(建立一個新目錄)
rmdir:(刪除一個空目錄)

 

有關目錄的操作:

cd命令 :交換工作目錄的命令,命令和目錄之間有一個空格

       

 mkdir命令:建立新的目錄(資料夾),在預設的情況下,目錄要一級一級的建立。通過-P引數可以建立不存在的目錄以及它的子目錄cd

cd  /tmp

      

可見高效的建立目錄用上-p引數,可以直接執行命令【mkdir -p /home/oldboy/python】,系統會自動新增上/home,/home/oldboy,/home/oldboy/python依次建立目錄,是不是很方便。

rmdir命令:只能刪除空的目錄

      

rm -rf  炸彈命令,強制遞迴刪除資料夾和檔案且沒有提示,,,刪庫到跑路,
rm-r  遞迴刪除
rm-f 強制刪除

 

 注意:vmware虛擬機器快照功能,在vmware軟體中點選可以拍下當前系統的狀態,以便日後恢復

 Linux的路徑PATH:

 如何查案Linux的環境變數

echo $PATH
備註:
echo命令是輸出列印的意思。
$符後邊的跟上PATH,表示輸出PATH的變數
PATH要大寫,變數是由一堆目錄組成以冒號:來分割

 

 絕對路徑和相對路徑

 路徑在linux操作中是很重要的,要通過路徑來找到檔案

 Linux下特別注意檔名/路徑的寫法,可以將所謂的路徑(path)定義為絕對路徑(absolute)和相對路徑(relative)。這兩種檔名/路徑的寫法依據是這樣的:

  • 絕對路徑:以(/)目錄開始寫的檔名或者目錄就是絕對路徑  比如/home/oldboy/python.py
  • 相對路徑:開頭不是(/)根目錄的就是相對路徑   比如./home/oldboy/python.py

                  

 

相關文章