作為一名電腦使用者,不懂圖形化操作文件系統(tǒng)就不算會(huì)使用電腦。那么作為一名程序員,如果不懂命令行操作 Linux 文件系統(tǒng),就不敢說(shuō)自己是一名合格的程序員。我們工作中使用 Unix / Linux 作為應(yīng)用程序服務(wù)器,無(wú)非就是把我們編寫好的軟件部署到遠(yuǎn)程服務(wù)器,其中少不了對(duì)文件的各種操作,如果你不會(huì)操作文件那么將寸步難行。接下來(lái)我們來(lái)認(rèn)識(shí)一下 Unix / Linux 文件系統(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 分級(jí)文件系統(tǒng),例如 Mac OS X),ISO9660 通常為 CD-ROM 文件系統(tǒng) 和 EXT2 擴(kuò)展文件系統(tǒng)(它是 Linux 默認(rèn)的內(nèi)核文件系統(tǒng))等等。
說(shuō)了這么多,那我們使用的虛擬機(jī)中的 CentOS 7 使用的是什么類型的文件系統(tǒng)呢?使用 df -T 來(lái)查看一下。

從 Type 一列我們看到它使用了 xfs 文件系統(tǒng),這是一種高性能的日志文件系統(tǒng),誕生于 1993 年,在 2000 年被移植到 Linux 系統(tǒng)上。上面介紹的都是面向磁盤的本地文件系統(tǒng),其實(shí)還有面向網(wǎng)絡(luò)的和臨時(shí)的虛擬文件系統(tǒng),例如上圖中的 tmpfs 就是一種面向內(nèi)存的臨時(shí)文件系統(tǒng)。
要想熟練操作文件就必須了解系統(tǒng)的目錄結(jié)構(gòu),Unix / Linux 使用分層的文件系統(tǒng)結(jié)構(gòu),"/" 是文件系統(tǒng)的根基,其他的所有的目錄都是從這里開(kāi)始。我們使用 tree 命令來(lái)查看從根目錄開(kāi)始的目錄結(jié)構(gòu),只顯示一層深度。如下:
?
bin 目錄主要存放二進(jìn)制可執(zhí)行文件,例如上一篇文章我們使用的 passwd,cat,vi 等程序。boot 目錄存放用于啟動(dòng)系統(tǒng)的文件。dev 目錄存放設(shè)備文件。etc 目錄存放系統(tǒng)配置文件,如 用戶信息,hosts 信息。lib 存放共享庫(kù)的文件。media 存放掛在的媒體文件。mnt 存放掛在的移動(dòng)設(shè)備文件。opt 額外安裝的軟件可以指定安裝到該目錄下,便于管理。proc 存在系統(tǒng)當(dāng)前正在運(yùn)行的進(jìn)程信息。root 我的系統(tǒng)用戶主目錄。run 未查到相關(guān)信息。sbin -> usr/sbin 存放系統(tǒng)管理的必須程序。srv 存放用戶主動(dòng)產(chǎn)生的文件,對(duì)外服務(wù)。sys 存放全局設(shè)備文件,例如總線控制等。tmp 存放臨時(shí)文件。usr 可以存放任意的文件,例如被很多用戶使用的聯(lián)機(jī)幫助頁(yè)。var 存放長(zhǎng)度可變的文件,例如日志文件。
要想操作文件,必須先學(xué)會(huì)文件系統(tǒng)的導(dǎo)航。接下來(lái)了解幾個(gè)常用的導(dǎo)航命令吧!

?
? which 和 whereis 的不同之處在于 which 搜尋環(huán)境變量 PATH 里面指定的內(nèi)容,whereis 將在 PATH 和 MANPATH 指定的目錄中查找。
?
?
? -l 參數(shù)可以顯示出文件的對(duì)應(yīng)的詳細(xì)內(nèi)容,所有者,權(quán)限,大小,上次更改時(shí)間,符號(hào)鏈接。同時(shí)我們也可以加上 -a 參數(shù)顯示所有文件,包括 . 開(kāi)頭的隱藏文件。也許你已經(jīng)注意到了,用 ls 命令列出來(lái)的文件中的最左邊有一些信息。例如 drwxr-xr-x,第一位代表的就是文件的類型,后面的9位代表的文件的權(quán)限。- 代表這是一個(gè)文本文件,或者可執(zhí)行文件。b 代表這是一個(gè)塊文件,例如硬盤。c 字符設(shè)備文件,如硬盤。d 代表這是一個(gè)目錄文件。l 代表這是一個(gè)符號(hào)鏈接,可以理解為 Windows 系統(tǒng)中的快捷方式。p 代表這是一個(gè)管道,用于通訊。s 代表這是套接字,用于通訊。由于我們平時(shí)操作會(huì)用到符號(hào)鏈接,因此我們簡(jiǎn)要介紹下符號(hào)鏈接。Unix / Linux 使用 inode 來(lái)引用文件而不是文件名,inode 在一個(gè)分區(qū)中是唯一的。符號(hào)鏈接有 2 種,硬鏈接 和 軟連接。首先我們來(lái)創(chuàng)建一個(gè)文件,然后分別為它創(chuàng)建一個(gè)硬鏈接和一個(gè)軟連接。
?
接下來(lái)我們分別對(duì)源文件,硬鏈接,軟鏈接進(jìn)行寫入操作,我們會(huì)發(fā)現(xiàn),對(duì)它們中任何的一個(gè)的寫入操作在其他的上面都會(huì)反映出來(lái)。
?
既然效果都一樣,那么軟鏈接和硬鏈接究竟有什么區(qū)別呢?硬鏈接使用 inode 來(lái)實(shí)現(xiàn),軟鏈接使用文件名來(lái)實(shí)現(xiàn)。因此,如果我們刪除 file 文件,然后創(chuàng)建一個(gè)新的 file 文件。此時(shí)我們的軟鏈接是依然生效的,而硬鏈接已經(jīng)失效了。如下實(shí)驗(yàn)數(shù)據(jù):
?
我們使用 ls -l 命令查看文件的時(shí)候,最左邊開(kāi)始的字符串反映了文件的權(quán)限,如下例:
?
如上圖我們可以清楚的明白各個(gè)用戶對(duì)于文件的權(quán)限在哪里查看,那么對(duì)應(yīng)的 r,w,x 分別就是讀,寫,執(zhí)行權(quán)限。我們可以使用 chmod(change mode)來(lái)更改文件的權(quán)限,操作的時(shí)候有 2 中選擇,一種是使用符號(hào)模式,即rwx,另外一種是絕對(duì)模式用8 個(gè)數(shù)字分別代表一種權(quán)限。使用 chmod 用戶(a/u/g/o)+/- 權(quán)限(rwx) 文件名 命令格式來(lái)操作文件權(quán)限,實(shí)驗(yàn)結(jié)果:
?
?
同時(shí)我們也可以使用絕對(duì)模式來(lái)操作文件權(quán)限,例如 chmod 777 file,代表所有用戶都用于對(duì) file 文件的大操作權(quán)限。絕對(duì)模式的數(shù)字代表的含義如下:
0 無(wú)權(quán)限,1 執(zhí)行權(quán)限,2 寫入權(quán)限,3 執(zhí)行和寫入權(quán)限,4 讀取權(quán)限,5 讀取和執(zhí)行權(quán)限,6 讀取和寫入權(quán)限,7所有權(quán)限。此處留一道腦筋急轉(zhuǎn)彎,為啥不用 3 代表 讀取權(quán)限呢?
程序出錯(cuò)以后難免要去查看日志文件,此時(shí)查看文件的命令就尤為重要。我們可以使用 cat,more,less,head,tail等命令查看文件內(nèi)容。cat 將內(nèi)容一股腦全部打印在屏幕上,不適合查看內(nèi)容多的文件。此時(shí)使用 more 就可以,查看完后按 enter 鍵,繼續(xù)顯示下一行,less 命令更加強(qiáng)大,可以使用 上下方向鍵來(lái)移動(dòng)。head 查看文件頭部的內(nèi)容,tail查看尾部的內(nèi)容。在查看一些不斷輸出的日志文件時(shí)候,我們可以使用 tail -f 命令來(lái)不斷刷新顯示的內(nèi)容。
如果有個(gè)笨蛋程序員寫了一個(gè)死循環(huán)的程序,那么避免不了產(chǎn)生一個(gè)超級(jí)大日志文件撐爆服務(wù)器。那么我們?nèi)绾尾榭捶謪^(qū)的空間使用率呢?df(disk free)顯示磁盤使用情況,例如:df -k

掌握以上命令以后,我們已經(jīng)可以對(duì) Unix / Linux? 系統(tǒng)的文件一頓操作了,但是強(qiáng)大的系統(tǒng)遠(yuǎn)不止這點(diǎn)命令,就讓我們?cè)趯?shí)戰(zhàn)的過(guò)程中,邊用邊學(xué)習(xí)吧。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站標(biāo)題:Unix/Linux文件系統(tǒng)操作-創(chuàng)新互聯(lián)
分享地址:http://chinadenli.net/article12/edidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容