Linux文件與目錄管理

Linux文件與目錄管理

文件系統(tǒng)

Linux將文件存儲(chǔ)在單個(gè)目錄結(jié)構(gòu)中,這個(gè)目錄被稱為虛擬 目錄(virtual directory)。虛擬目錄將安裝在PC上的所有存儲(chǔ)設(shè)備的文件路徑納入單個(gè)目錄結(jié)構(gòu)中

Linux虛擬目錄結(jié)構(gòu)只包含一個(gè)稱為根(root)目錄的基礎(chǔ)目錄。根目錄下的目錄和文件會(huì)按 照訪問(wèn)它們的目錄路徑一一列出,這點(diǎn)跟Windows類似

目錄 用途
/ 虛擬目錄的根目錄。通常不會(huì)在這里存儲(chǔ)文件
/bin 二進(jìn)制目錄,存放許多用戶級(jí)的GNU工具 4 /boot 啟動(dòng)目錄,存放啟動(dòng)文件
/dev 設(shè)備目錄,Linux在這里創(chuàng)建設(shè)備節(jié)點(diǎn)
/etc 系統(tǒng)配置文件目錄 5 /home 主目錄,Linux在這里創(chuàng)建用戶目錄
/lib 庫(kù)目錄,存放系統(tǒng)和應(yīng)用程序的庫(kù)文件
/media 媒體目錄,可移動(dòng)媒體設(shè)備的常用掛載點(diǎn)
/mnt 掛載目錄,另一個(gè)可移動(dòng)媒體設(shè)備的常用掛載點(diǎn)
/opt 可選目錄,常用于存放第三方軟件包和數(shù)據(jù)文件
/proc 進(jìn)程目錄,存放現(xiàn)有硬件及當(dāng)前進(jìn)程的相關(guān)信息
/root root用戶的主目錄
/sbin 系統(tǒng)二進(jìn)制目錄,存放許多GNU管理員級(jí)工具
/run 運(yùn)行目錄,存放系統(tǒng)運(yùn)作時(shí)的運(yùn)行時(shí)數(shù)據(jù)
/srv 服務(wù)目錄,存放本地服務(wù)的相關(guān)文件
/sys 系統(tǒng)目錄,存放系統(tǒng)硬件信息的相關(guān)文件
/tmp 臨時(shí)目錄,可以在該目錄中創(chuàng)建和刪除臨時(shí)工作文件
/usr 用戶二進(jìn)制目錄,大量用戶級(jí)的GNU工具和數(shù)據(jù)文件都存儲(chǔ)在這里
/var 可變目錄,用以存放經(jīng)常變化的文件,比如日志文件
  • 基本列表功能

ls命令最基本的形式會(huì)顯示當(dāng)前目錄下的文件和目錄

-a參數(shù)用來(lái)顯示隱藏文件和普通文件及目錄

-F參數(shù)在目錄名后加了正斜線(/),以方便用戶在輸出中分辨它們。類似地,它會(huì)在可執(zhí)行 文件(比如上面的my_script文件)的后面加個(gè)星號(hào),以便用戶找出可在系統(tǒng)上運(yùn)行的文件。

-R參數(shù)是ls命令可用的另一個(gè)參數(shù),叫作遞歸選項(xiàng)。它列出了當(dāng)前目錄下包含的子目錄中 的文件。如果目錄很多,這個(gè)輸出就會(huì)很長(zhǎng)

  • 創(chuàng)建文件
$ touch test_file

$ vim test_file
  • 復(fù)制文件
$ cp test_one test_two

新文件test_two和文件test_one的修改時(shí)間并不一樣。如果目標(biāo)文件已經(jīng)存在,cp命令 可能并不會(huì)提醒這一點(diǎn)。最好是加上-i選項(xiàng),強(qiáng)制shell詢問(wèn)是否需要覆蓋已有文件

  • 重命名或移動(dòng)文件
mv file_name new_name
mv file_name /path/name
  • 刪除文件或目錄
rm filename
rm -i /file/path
  • 創(chuàng)建目錄
mkdir -p New_Dir/Sub_Dir/Under_Dir
  • 查看整個(gè)文件
# cat 
$ cat -n test1
-n參數(shù)會(huì)給所有的行加上行號(hào)

# more命令
$ more filename
# cat命令的主要缺陷是:一旦運(yùn)行,你就無(wú)法控制后面的操作。為了解決這個(gè)問(wèn)題,開(kāi)發(fā)人 員編寫(xiě)了more命令。more命令會(huì)顯示文本文件的內(nèi)容,但會(huì)在顯示每頁(yè)數(shù)據(jù)之后停下來(lái)

# less命令
$ less filename
  • 查看部分文件
# tail命令顯示文件最后幾行的內(nèi)容
$ tail log_file
$ tail -n 2 log_file # 顯示文件的最后兩行

# head命令會(huì)顯示文件開(kāi)頭那些行的內(nèi)容
$ head -5 log_file

ln

1)軟鏈接

軟鏈接(又稱符號(hào)鏈接),可以理解為快捷方式,如果刪除原文件,則對(duì)應(yīng)的軟鏈接文件也會(huì)消失。

ln -s test.txt test_softlink

軟鏈接相當(dāng)于給原文件創(chuàng)建了一個(gè)快捷方式,如果刪除原文件,則對(duì)應(yīng)的軟鏈接文件也會(huì)消失。

2)硬鏈接

硬鏈接,相當(dāng)于給原文件取了個(gè)別名,其實(shí)兩者是同一個(gè)文件,刪除二者中任何一個(gè),另一個(gè)不會(huì)消失;對(duì)其中任何一個(gè)進(jìn)行更改,另一個(gè)的內(nèi)容也會(huì)隨之改變,因?yàn)檫@兩個(gè)本質(zhì)上是同一個(gè)文件,只是名字不同。

ln test.txt test_hardlink

理解文件權(quán)限

Linux采用復(fù)雜的位系統(tǒng)來(lái)判定文件和目錄的訪問(wèn)權(quán)限。每個(gè)文件都有三個(gè)安全等級(jí):文件 的屬主、能夠訪問(wèn)文件的默認(rèn)屬組以及系統(tǒng)上的其他用戶。每個(gè)安全等級(jí)通過(guò)三個(gè)訪問(wèn)權(quán)限位來(lái) 定義:讀取、寫(xiě)入以及執(zhí)行,對(duì)應(yīng)于符號(hào)rwx。如果某種權(quán)限被拒絕,權(quán)限對(duì)應(yīng)的符號(hào)會(huì)用單破折線代替

ls命令可以用來(lái)查看Linux系統(tǒng)上的文件、目錄和設(shè)備的權(quán)限

$ ls –l
total 68
-rw-rw-r-- 1 rich rich
drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test1
drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test2

輸出結(jié)果的第一個(gè)字段就是描述文件和目錄權(quán)限的編碼。這個(gè)字段的第一個(gè)字符代表了對(duì)象 的類型:

-代表文件
d代表目錄
l代表鏈接
c代表字符型設(shè)備
b代表塊設(shè)備
n代表網(wǎng)絡(luò)設(shè)備

之后有3組三字符的編碼。每一組定義了3種訪問(wèn)權(quán)限:

r代表對(duì)象是可讀的
w代表對(duì)象是可寫(xiě)的
x代表對(duì)象是可執(zhí)行的

若沒(méi)有某種權(quán)限,在該權(quán)限位會(huì)出現(xiàn)單破折線。這3組權(quán)限分別對(duì)應(yīng)對(duì)象的3個(gè)安全級(jí)別:

對(duì)象的屬主
對(duì)象的屬組
系統(tǒng)其他用戶

  • 改變權(quán)限

chmod命令用來(lái)改變文件和目錄的安全性設(shè)置。該命令的格式如下: chmod options mode file
mode參數(shù)可以使用八進(jìn)制模式或符號(hào)模式進(jìn)行安全性設(shè)置。八進(jìn)制模式設(shè)置非常直觀,直 接用期望賦予文件的標(biāo)準(zhǔn)3位八進(jìn)制權(quán)限碼即可。

$ chmod 760 newfile
$ ls -l newfile
-rwxrw----    1 rich     rich            0 Sep 20 19:16 newfile
  • 改變所屬關(guān)系

有時(shí)你需要改變文件的屬主,比如有人離職或開(kāi)發(fā)人員創(chuàng)建了一個(gè)在產(chǎn)品環(huán)境中需要?dú)w屬在 系統(tǒng)賬戶下的應(yīng)用。Linux提供了兩個(gè)命令來(lái)實(shí)現(xiàn)這個(gè)功能:chown命令用來(lái)改變文件的屬主, chgrp命令用來(lái)改變文件的默認(rèn)屬組。

可用登錄名或UID來(lái)指定文件的新屬主。

$ chown dan newfile

# 非常簡(jiǎn)單。chown命令也支持同時(shí)改變文件的屬主和屬組。

$ chown dan.shared newfile

如果你不嫌麻煩,可以只改變一個(gè)目錄的默認(rèn)屬組。

$ chown .rich newfile

最后,如果你的Linux系統(tǒng)采用和用戶登錄名匹配的組名,可以只用一個(gè)條目就改變二者。

$ chown test. newfile

chown命令采用一些不同的選項(xiàng)參數(shù)。-R選項(xiàng)配合通配符可以遞歸地改變子目錄和文件的所 屬關(guān)系。-h選項(xiàng)可以改變?cè)撐募乃蟹?hào)鏈接文件的所屬關(guān)系。

chgrp命令可以更改文件或目錄的默認(rèn)屬組。

$ chgrp shared newfile

用戶賬戶必須是這個(gè)文件的屬主,除了能夠更換屬組之外,還得是新組的成員?,F(xiàn)在shared 組的任意一個(gè)成員都可以寫(xiě)這個(gè)文件了。這是Linux系統(tǒng)共享文件的一個(gè)途徑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容