溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unix / Linux 文件系統(tǒng)操作

發(fā)布時間:2020-05-26 00:10:48 來源:網絡 閱讀:1038 作者:善良快樂 欄目:系統(tǒng)運維

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

1. 本地文件系統(tǒng)

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

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

Unix / Linux 文件系統(tǒng)操作

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

2. 目錄結構

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

Unix / Linux 文件系統(tǒng)操作?

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

3. 常用的命令

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

  • pwd 顯示當前所在的目錄,我們執(zhí)行命令的時候需要確認當前目錄是否是我們預想的目錄,因此這個命令經常使用。如下顯示我們現(xiàn)在位于 /root 目錄Unix / Linux 文件系統(tǒng)操作Unix / Linux 文件系統(tǒng)操作?
  • cd(Change Directory)去到任何我們想去的目錄,如我們想去到 /etc目錄:?
  • which 和 whereis,我們平常使用的一些工具,假如我們想知道他們真正位于什么目錄,可以使用 which。例如我們想知道 cd 工具位于什么目錄,可以如下操作:Unix / Linux 文件系統(tǒng)操作? which 和 whereis 的不同之處在于 which 搜尋環(huán)境變量 PATH 里面指定的內容,whereis 將在 PATH 和 MANPATH 指定的目錄中查找。
  • find 查找目錄或者文件,例如我們需要在 /root 目錄下去查找一個叫做 test 的文件:Unix / Linux 文件系統(tǒng)操作?
  • file 查看文件的類型,例如查看 test 是什么類型的文件,顯示結果為一個文本文件Unix / Linux 文件系統(tǒng)操作?
  • ls 顯示目錄中的內容,假如我們想查看根路徑的內容,則可以如下操作:Unix / Linux 文件系統(tǒng)操作? -l 參數可以顯示出文件的對應的詳細內容,所有者,權限,大小,上次更改時間,符號鏈接。同時我們也可以加上 -a 參數顯示所有文件,包括 . 開頭的隱藏文件。
4. 文件的類型

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

Unix / Linux 文件系統(tǒng)操作?

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

Unix / Linux 文件系統(tǒng)操作?

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

Unix / Linux 文件系統(tǒng)操作?

5. 文件的權限

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

Unix / Linux 文件系統(tǒng)操作?

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

Unix / Linux 文件系統(tǒng)操作?

Unix / Linux 文件系統(tǒng)操作?

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

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

6. 查看文件

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

7. 查看分區(qū)空間使用率

如果有個笨蛋程序員寫了一個死循環(huán)的程序,那么避免不了產生一個超級大日志文件撐爆服務器。那么我們如何查看分區(qū)的空間使用率呢?df(disk free)顯示磁盤使用情況,例如:df -k

Unix / Linux 文件系統(tǒng)操作

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI