當前位置:
首頁 > 最新 > 如何操作 Unix/Linux 文件系統

如何操作 Unix/Linux 文件系統

作為一名電腦使用者,不懂圖形化操作文件系統就不算會使用電腦。那麼作為一名程序員,如果不懂命令行操作 Linux 文件系統,就不敢說自己是一名合格的程序員。我們工作中使用 Unix / Linux 作為應用程序伺服器,無非就是把我們編寫好的軟體部署到遠程伺服器,其中少不了對文件的各種操作,如果你不會操作文件那麼將寸步難行。接下來我們來認識一下 Unix / Linux 文件系統。

1. 本地文件系統

在這裡我們將討論面向本地磁碟的文件系統(硬碟,CD-ROM,DVD-ROM,USB)。這類文件系統UFS(Unix File System),FAT(File Allocation File 通常是 Windows 和 DOS 系統的文件系統),NTFS(New Technology File System,通常是 Windows NT,2000,XP 的文件系統),UDF(Universal Disk Formt 通常是 DVD 文件系統),HFS+(Hierarchical File System 分級文件系統,例如 Mac OS X),ISO9660 通常為 CD-ROM 文件系統 和 EXT2 擴展文件系統(它是 Linux 默認的內核文件系統)等等。

說了這麼多,那我們使用的虛擬機中的 CentOS 7 使用的是什麼類型的文件系統呢?使用 df -T 來查看一下。

從 Type 一列我們看到它使用了 xfs 文件系統,這是一種高性能的日誌文件系統,誕生於 1993 年,在 2000 年被移植到 Linux 系統上。上面介紹的都是面向磁碟的本地文件系統,其實還有面向網路的和臨時的虛擬文件系統,例如上圖中的 tmpfs 就是一種面向內存的臨時文件系統。

2. 目錄結構

要想熟練操作文件就必須了解系統的目錄結構,Unix / Linux 使用分層的文件系統結構,"/" 是文件系統的根基,其他的所有的目錄都是從這裡開始。我們使用 tree 命令來查看從根目錄開始的目錄結構,只顯示一層深度。如下:

bin 目錄主要存放二進位可執行文件,例如上一篇文章我們使用的 passwd,cat,vi 等程序。boot 目錄存放用於啟動系統的文件。dev 目錄存放設備文件。etc 目錄存放系統配置文件,如 用戶信息,hosts 信息。lib 存放共享庫的文件。media 存放掛在的媒體文件。mnt 存放掛在的移動設備文件。opt 額外安裝的軟體可以指定安裝到該目錄下,便於管理。proc 存在系統當前正在運行的進程信息。root 我的系統用戶主目錄。run 未查到相關信息。sbin -> usr/sbin 存放系統管理的必須程序。srv 存放用戶主動產生的文件,對外服務。sys 存放全局設備文件,例如匯流排控制等。tmp 存放臨時文件。usr 可以存放任意的文件,例如被很多用戶使用的聯機幫助頁。var 存放長度可變的文件,例如日誌文件。

3. 常用的命令

要想操作文件,必須先學會文件系統的導航。接下來了解幾個常用的導航命令吧!

pwd 顯示當前所在的目錄,我們執行命令的時候需要確認當前目錄是否是我們預想的目錄,因此這個命令經常使用。如下顯示我們現在位於 /root 目錄

cd(Change Directory)去到任何我們想去的目錄,如我們想去到 /etc目錄:

which 和 whereis,我們平常使用的一些工具,假如我們想知道他們真正位於什麼目錄,可以使用 which。例如我們想知道 cd 工具位於什麼目錄,可以如下操作:which 和 whereis 的不同之處在於 which 搜尋環境變數 PATH 裡面指定的內容,whereis 將在 PATH 和 MANPATH 指定的目錄中查找。

find 查找目錄或者文件,例如我們需要在 /root 目錄下去查找一個叫做 test 的文件:

file 查看文件的類型,例如查看 test 是什麼類型的文件,顯示結果為一個文本文件

ls 顯示目錄中的內容,假如我們想查看根路徑的內容,則可以如下操作:

-l 參數可以顯示出文件的對應的詳細內容,所有者,許可權,大小,上次更改時間,符號鏈接。同時我們也可以加上 -a 參數顯示所有文件,包括 . 開頭的隱藏文件。

4. 文件的類型

也許你已經注意到了,用 ls 命令列出來的文件中的最左邊有一些信息。例如 drwxr-xr-x,第一位代表的就是文件的類型,後面的9位代表的文件的許可權。- 代表這是一個文本文件,或者可執行文件。b 代表這是一個塊文件,例如硬碟。c 字元設備文件,如硬碟。d 代表這是一個目錄文件。l 代表這是一個符號鏈接,可以理解為 Windows 系統中的快捷方式。p 代表這是一個管道,用於通訊。s 代表這是套接字,用於通訊。由於我們平時操作會用到符號鏈接,因此我們簡要介紹下符號鏈接。Unix / Linux 使用 inode 來引用文件而不是文件名,inode 在一個分區中是唯一的。符號鏈接有 2 種,硬鏈接 和 軟連接。首先我們來創建一個文件,然後分別為它創建一個硬鏈接和一個軟連接。

接下來我們分別對源文件,硬鏈接,軟鏈接進行寫入操作,我們會發現,對它們中任何的一個的寫入操作在其他的上面都會反映出來。

既然效果都一樣,那麼軟鏈接和硬鏈接究竟有什麼區別呢?硬鏈接使用 inode 來實現,軟鏈接使用文件名來實現。因此,如果我們刪除 file 文件,然後創建一個新的 file 文件。此時我們的軟鏈接是依然生效的,而硬鏈接已經失效了。如下實驗數據:

5. 文件的許可權

我們使用 ls -l 命令查看文件的時候,最左邊開始的字元串反映了文件的許可權,如下例:

如上圖我們可以清楚的明白各個用戶對於文件的許可權在哪裡查看,那麼對應的 r,w,x 分別就是讀,寫,執行許可權。我們可以使用 chmod(change mode)來更改文件的許可權,操作的時候有 2 中選擇,一種是使用符號模式,即rwx,另外一種是絕對模式用8 個數字分別代表一種許可權。使用 chmod 用戶(a/u/g/o)+/- 許可權(rwx) 文件名 命令格式來操作文件許可權,實驗結果:

同時我們也可以使用絕對模式來操作文件許可權,例如 chmod 777 file,代表所有用戶都用於對 file 文件的最大操作許可權。絕對模式的數字代表的含義如下:

0 無許可權,1 執行許可權,2 寫入許可權,3 執行和寫入許可權,4 讀取許可權,5 讀取和執行許可權,6 讀取和寫入許可權,7所有許可權。此處留一道腦筋急轉彎,為啥不用 3 代表 讀取許可權呢?

6. 查看文件

程序出錯以後難免要去查看日誌文件,此時查看文件的命令就尤為重要。我們可以使用 cat,more,less,head,tail等命令查看文件內容。cat 將內容一股腦全部列印在屏幕上,不適合查看內容多的文件。此時使用 more 就可以,查看完後按 enter 鍵,繼續顯示下一行,less 命令更加強大,可以使用 上下方向鍵來移動。head 查看文件頭部的內容,tail查看尾部的內容。在查看一些不斷輸出的日誌文件時候,我們可以使用 tail -f 命令來不斷刷新顯示的內容。

7. 查看分區空間使用率

如果有個笨蛋程序員寫了一個死循環的程序,那麼避免不了產生一個超級大日誌文件撐爆伺服器。那麼我們如何查看分區的空間使用率呢?df(disk free)顯示磁碟使用情況,例

掌握以上命令以後,我們已經可以對 Unix / Linux 系統的文件一頓操作了,但是強大的系統遠不止這點命令,就讓我們在實戰的過程中,邊用邊學習吧。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 大家都在看什麼 的精彩文章:

初探 Unix 操作系統

TAG:大家都在看什麼 |