系統(tǒng)基礎(chǔ)-文件管理

文件和目錄管理

FHS

FHS普监,文件系統(tǒng)層次標(biāo)準(zhǔn)贵试。多數(shù)Linux版本采用這種文件組織形式,類似于 Windows 操作系統(tǒng)中C盤的文件目錄凯正,采用樹形結(jié)構(gòu)組織文件毙玻。

FHS,定義了系統(tǒng)中每個(gè)區(qū)域的用途廊散、所需要的最小構(gòu)成的文件和目錄桑滩,同時(shí)還給出了例外處理和矛盾處理。

根目錄

在 Linux 中允睹,根目錄使用“ROOT”或者“/”表示运准。

ls /
image

FHS 定義的目錄結(jié)構(gòu)

目錄 目錄的用途
/bin 常見的用戶指令
/boot 內(nèi)核和啟動(dòng)文件
/dev 設(shè)備文件
/etc 系統(tǒng)和服務(wù)的配置文件
/home 系統(tǒng)默認(rèn)的普通用戶的家目錄
/lib 系統(tǒng)函數(shù)庫(kù)目錄
/lost+found ext3 文件系統(tǒng)需要的目錄,用于磁盤檢查
/mnt 系統(tǒng)加載文件系統(tǒng)時(shí)常用的掛載點(diǎn)
/opt 第三方軟件安裝目錄
/proc 虛擬文件系統(tǒng)
/root root 用戶的家目錄
/sbin 存放系統(tǒng)管理指令
/tmp 臨時(shí)文件的存放目錄
/usr 存放與用戶直接相關(guān)的文件和目錄
/media 系統(tǒng)用來(lái)掛載光驅(qū)等臨時(shí)文件系統(tǒng)的掛載點(diǎn)

絕對(duì)路徑和相對(duì)路徑

絕對(duì)路徑

絕對(duì)路徑一定是以“/”開頭的

pwd     // 查看當(dāng)前路徑
image

特殊目錄

在每個(gè)目錄下缭受,都會(huì)固定存在兩個(gè)特殊目錄胁澳,分別是一個(gè)點(diǎn)(.)和兩個(gè)點(diǎn)(..)的目錄。前者表示的是當(dāng)前目錄米者,后者表示的是上層目錄韭畸。

在Linux下,所有以點(diǎn)開頭的文件都是"隱藏文件"蔓搞,對(duì)于這類文件胰丁,只是用命令ls-l是看不到的,必須要使用ls-la才可以看到喂分。

image

相對(duì)路徑

顧名思義锦庸,“相對(duì)路徑”的關(guān)鍵在于當(dāng)前在什么路徑下。假設(shè)當(dāng)前目錄在/usr/local下蒲祈,那么它的上層目錄(/usr目錄)可以用../表示甘萧,而/usr/local的下層目錄(src)則可以用./src表示萝嘁。

cd ..

文件的相關(guān)操作

Linux 遵循一切皆文件的規(guī)則。

創(chuàng)建文件

touch
image

如果文件存在幔嗦,則更改文件的修改時(shí)間屬性酿愧。

image

刪除文件

rm FileName
image

移動(dòng)或重命名文件

移動(dòng)文件

mv FileName

重命名文件

mv OldFileName NewFileName
image

Linux 下的目錄也是一種“文件”,所以這里將的 mv 命令也用樣適用于對(duì)目錄的操作邀泉。

查看文件

cat FileName
image

查看文件頭

有時(shí)候文件非常大,使用 cat 命令顯示出來(lái)的內(nèi)容太多钝鸽,而我們可能并不像查看全部?jī)?nèi)容汇恤,只是想看看文件開始部分的內(nèi)容,這時(shí)候可以使用 head 命令了拔恰,后面跟上需要查看的文件名就可以了因谎。默認(rèn)顯示10行

head FileName
image

也可以使用 -n 參數(shù)指定顯示的行數(shù)

查看文件尾

tail FileName

和 head 命令正好相反颜懊,默認(rèn)同樣是10行财岔。

但是 tail 還有個(gè)更實(shí)用的功能,就是可以動(dòng)態(tài)地查看文件尾河爹。這對(duì)查看一些不斷改變的文件來(lái)說(shuō)是非常有用的匠璧。比如系統(tǒng)中會(huì)有很多日志文件,這些文件是會(huì)隨時(shí)變化的咸这。

要查看這些動(dòng)態(tài)地文件可以使用 -f 參數(shù)夷恍。

目錄的相關(guān)炒作

與其他操作系統(tǒng)一樣,Linux 也有目錄的概念媳维,目錄的作用在于存放其他的目錄和文件酿雪。

進(jìn)入目錄

cd DirName

創(chuàng)建目錄

mkdir DirName

使用 -p 參數(shù)可以一次性創(chuàng)建所有目錄

刪除目錄

rm

刪除非空目錄,加上參數(shù) -f

遞歸刪除目錄,加上參數(shù) -r

通常使用 rm -rf 來(lái)刪除目錄侄刽,但是有安全風(fēng)險(xiǎn)指黎。

文件和目錄的復(fù)制

cp FileName|DirName

第三個(gè)參數(shù)為重命名

cp FileName|DirName [newName]

文件和目錄的權(quán)限

查看文件或目錄的權(quán)限

ls -al

這條命令中 -l 表示列出每個(gè)文件的詳細(xì)信息,-a 表示同時(shí)列出隱藏文件!

image

第一列便是文件的類別和權(quán)限州丹。

其中第一個(gè)字符的取值范圍如下:

第一個(gè)字符 含義
d 目錄
- 普通文件
l 鏈接文件
b 塊文件
c 字符文件
s socket 文件
p 管道文件

第二列代表連接數(shù)醋安,除了目錄文件之外,其他所有文件的連接數(shù)都是1当叭,目錄文件的連接數(shù)是該目錄中包含其他目錄的總個(gè)數(shù)+2茬故,也就是說(shuō),如果目錄A中的包含目錄B和C蚁鳖,則目錄A的連接數(shù)為4磺芭。

第三列代表該文件的所有人。

第四列代表該文件的所有組醉箕。

第五列代表文件的大小钾腺。

第六列代該文件的創(chuàng)建時(shí)間或最近的修改時(shí)間徙垫。

第七列是文件名。

文件的隱藏屬性

Linux 下的文件還有一些隱藏屬性放棒,必須使用如下命令查看:

lsattr
image

結(jié)果中第一列是13個(gè)小短橫姻报,其中每一個(gè)下橫線都是一個(gè)屬性,如果當(dāng)前位置上設(shè)置了該屬性就會(huì)顯示相對(duì)應(yīng)的字符间螟。

如果要設(shè)置文件的隱藏屬性吴旋,需要使用如下命令:

chattr
常用屬性 含義
a 文件只能在尾部增加數(shù)據(jù)而不能被刪除
i 文件將無(wú)法寫入、改名厢破、刪除荣瑟,即便是root用戶也不行
image

改變文件權(quán)限

Linux下每個(gè)文件都定義了文件擁有者(user)、擁有組(group)摩泪、其他人(others)的權(quán)限笆焰,使用 u、g见坑、o 來(lái)分別表示擁有者嚷掠、擁有組、其他人荞驴,而對(duì)應(yīng)的具體權(quán)限則使用 rwx 的組合來(lái)定義不皆,增加權(quán)限使用 + 號(hào),刪除權(quán)限使用 - 號(hào)戴尸,詳細(xì)權(quán)限使用 = 號(hào)粟焊。

作用 命令
某文件添加用戶讀權(quán)限 chmod u+r FileName
給某文件刪除用戶讀權(quán)限 chmod u-r FileName
給某文件添加用戶寫權(quán)限 chmod u+w FileName
給某文件刪除用戶寫權(quán)限 chmod u-w FileName
給某文件添加用戶執(zhí)行權(quán)限 chmod u+x FileName
給某文件刪除用戶執(zhí)行權(quán)限 chmod u-x FileName
給某文件設(shè)定用戶擁有讀寫執(zhí)行權(quán)限 chmod u=rwx FileName
image

如果要給用戶組或其他人添加或刪除相關(guān)權(quán)限,只需要將上面的u相應(yīng)地更換成 g 或 o 即可孙蒙。

但是這一方式只能給文件擁有者项棠、文件擁有組或者其他所有人設(shè)置權(quán)限,如果想同時(shí)設(shè)置所有人的權(quán)限就需要使用數(shù)字表示法了挎峦。

定義 r=4香追,w=2,x=1,如果權(quán)限是 rwx,則數(shù)字表示7,如果權(quán)限是 r-x,則數(shù)字表示為5.

image

如果是修改一個(gè)目錄坦胶,且該目錄下所有的目錄文件都遞歸修改權(quán)限透典,則加上參數(shù) -R 。

更改文件的擁有者

chown UserName FileName
image

如果需要修改的不是一個(gè)文件而是一個(gè)目錄顿苇,以及該目錄下所有的文件峭咒、子目錄、子目錄下的所有文件和目錄纪岁,則需要使用 -R 參數(shù)凑队,遞歸設(shè)置。

更改文件的擁有組

chgrp Group FileName
image

同樣幔翰,使用 -R 參數(shù)遞歸設(shè)置

文件的特殊屬性

image

如截圖所示漩氨,權(quán)限中多了一個(gè)特殊的 “s”西壮。這表示為 SUID 權(quán)限,這個(gè)權(quán)限只能用于二進(jìn)制文件叫惊。

給一個(gè)二進(jìn)制文件添加 SUID 權(quán)限的命令:

chmod u+s FileName

如果某個(gè)二進(jìn)制文件的用戶組被設(shè)置了 s 權(quán)限款青,則該文件的用戶組中所有的用戶都能以該文件的用戶身份去運(yùn)行這個(gè)命令,一般來(lái)說(shuō)SGID 命令在系統(tǒng)中用的很少霍狰,給一個(gè)二進(jìn)制文件添加 SGID 權(quán)限的命令:

chmod g+s FileName

Sticky 權(quán)限只能用于設(shè)置在目錄上抡草,設(shè)置了這種權(quán)限的目錄,任何用戶都可以在該目錄中創(chuàng)建或修改文件蔗坯,但是只有該文件的創(chuàng)建者和 root 可以刪除自己的文件渠牲。

chmod o+t DirName
image

默認(rèn)權(quán)限和umask

對(duì)于 root 用戶,文件的默認(rèn)權(quán)限是 644 步悠,目錄的默認(rèn)權(quán)限是 755 ;對(duì)于普通用戶瘫镇,文件的默認(rèn)權(quán)限是 664鼎兽,目錄的默認(rèn)權(quán)限是775.

那么這個(gè)值是如何計(jì)算出來(lái)的呢?

是通過(guò)遮罩(umask)來(lái)實(shí)現(xiàn)的铣除。首先看一下 /etc/profile 文件中谚咬,通過(guò)第51行道55行的一段代碼設(shè)置了不同用戶的遮罩值。

image

從上面的代碼中可以看出尚粘,UID大于99的用戶設(shè)置了umask為002择卦,否則為022。所以u(píng)mask值對(duì)于root用戶是022郎嫁,對(duì)于普通用戶是002秉继,這就造成了上面我們看到的root用戶和普通用戶創(chuàng)建出來(lái)的文件和目錄默認(rèn)權(quán)限是不一樣的。

如何使用遮罩計(jì)算權(quán)限泽铛?

777 用字符串表示為:rwxrwxrwx,如果遮罩值為022尚辑,用字符串表示為 ----w--w-,那么前者第五位和第八位的w被遮罩掉,權(quán)限變作rwxr-xr-x,用數(shù)字表示就是755盔腔。

不能通過(guò)同位相減的方法計(jì)算遮罩后的值杠茬,比如說(shuō)777-022同位相減得到755,666-022同位相減得到644,這種看似正確的結(jié)果其實(shí)只是一種巧合弛随,并不是了解遮罩的正確方式瓢喉。假設(shè)有個(gè)文件的權(quán)限為666,在遮罩值為011的情況下舀透,采用該方法計(jì)算得到的權(quán)限值為655栓票,但實(shí)際上正確的權(quán)限值為666。

查看文件類型

file PATH -name FileName
image
image

數(shù)據(jù)庫(kù)查找

與 find 不同盐杂,locate 命令依賴于一個(gè)數(shù)據(jù)庫(kù)文件逗载,Linux系統(tǒng)默認(rèn)每天會(huì)檢索一下系統(tǒng)中的所有文件哆窿,然后將檢索到的文件記錄到數(shù)據(jù)庫(kù)中。在運(yùn)行 lcoate 命令的時(shí)候可直接到數(shù)據(jù)庫(kù)中查找記錄并打印到屏幕上厉斟,所以使用 locate 命令要比 find 命令反饋更為迅速挚躯。

在執(zhí)行這個(gè)命令之前一般需要執(zhí)行 updatedb 命令(這不是必須的,因?yàn)橄到y(tǒng)每天會(huì)自動(dòng)檢索并更新數(shù)據(jù)庫(kù)信息擦秽,但有時(shí)候會(huì)因?yàn)槲募l(fā)了變化而系統(tǒng)還沒(méi)有再次更新而無(wú)法找到實(shí)際上存在的文件码荔。所以需要主動(dòng)運(yùn)行該命令,以創(chuàng)建新的文件列表數(shù)據(jù)庫(kù)),以及時(shí)更新數(shù)據(jù)庫(kù)記錄感挥。

image

查找執(zhí)行文件

which 用于從系統(tǒng)的PATH變量所定義的目錄中查找可執(zhí)行的絕對(duì)路徑缩搅。

image

使用 whereis 也能查到其路徑,但是和 which 不同的是触幼,它不但能找出其二進(jìn)制文件硼瓣,還能找出相關(guān)的 man 文件。

文件壓縮和打包

gizp/gunzip

gzip/gunzip 是用來(lái)壓縮和解壓縮單個(gè)文件的工具置谦,使用方法比較簡(jiǎn)單堂鲤。

gzip FileName
gunzip FileName
image

tar

tar 不但可以打包文件,還可以將整個(gè)目錄中的全部文件整合成一個(gè)包媒峡,整合包的同時(shí)還能使用 gzip 的功能進(jìn)行壓縮瘟栖,比如說(shuō)把整個(gè) /boot 目錄整合并壓縮成一個(gè)文件。

一般來(lái)說(shuō)谅阿,整合后的包習(xí)慣使用 .tar 作為其后綴名半哟,使用 gzip 壓縮后的文件則使用 .gz 作為其后綴名。因?yàn)?tar 有同時(shí)整合和壓縮的功能,所以可使用 .tar.gz 作為后綴名,或者簡(jiǎn)寫為 .tgz唠帝。

tar -zcvf boot.tgz /boot

這里 -z 的含義是使用 gzip 壓縮翁脆,-c 是創(chuàng)建壓縮文件,-v 是顯示當(dāng)前被壓縮的文件,-f 是指使用文件名

解壓命令如下:

tar -zxvf boot.tgz -C DirName

后面可以使用 -C 來(lái)指定壓縮后文件的存放目錄

bzip2

使用 bzip2 壓縮文件時(shí),默認(rèn)會(huì)產(chǎn)生以 .bz2 擴(kuò)展名結(jié)尾的文件,這里使用 -z 參數(shù)進(jìn)行壓縮蔬墩,使用 -d 參數(shù)進(jìn)行解壓縮。

image

cpio

該命令一般是不單獨(dú)使用的耗拓,需要和find命令一同使用拇颅。當(dāng)由find按照條件找出需要備份的文件列表后,可通過(guò)管道的方式傳遞給 cpio 進(jìn)行備份乔询,生成 /tmp/conf.cpio 文件樟插,然后再將生成的 /tmp/conf.cpio 文件中包含的文件列表完全還原回去。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市黄锤,隨后出現(xiàn)的幾起案子搪缨,更是在濱河造成了極大的恐慌,老刑警劉巖鸵熟,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件副编,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡流强,警方通過(guò)查閱死者的電腦和手機(jī)痹届,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)打月,“玉大人队腐,你說(shuō)我怎么就攤上這事∽喔荩” “怎么了柴淘?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)秘通。 經(jīng)常有香客問(wèn)我悠就,道長(zhǎng),這世上最難降的妖魔是什么充易? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮荸型,結(jié)果婚禮上盹靴,老公的妹妹穿的比我還像新娘。我一直安慰自己瑞妇,他們只是感情好稿静,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辕狰,像睡著了一般改备。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蔓倍,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天悬钳,我揣著相機(jī)與錄音,去河邊找鬼偶翅。 笑死默勾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的聚谁。 我是一名探鬼主播母剥,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了环疼?” 一聲冷哼從身側(cè)響起习霹,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炫隶,沒(méi)想到半個(gè)月后淋叶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡等限,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年爸吮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片望门。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡形娇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出筹误,到底是詐尸還是另有隱情桐早,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布厨剪,位于F島的核電站哄酝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏祷膳。R本人自食惡果不足惜陶衅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望直晨。 院中可真熱鬧搀军,春花似錦勇皇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)兄淫。三九已至,卻和暖如春捕虽,著一層夾襖步出監(jiān)牢的瞬間氓润,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工咖气, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挨措,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓浅役,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親伶唯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu符欠,源于非洲祖魯人和科薩人的語(yǔ)言,發(fā)作 oo-boon-too 的音瓶埋。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,260評(píng)論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,160評(píng)論 2 33
  • 1希柿、第八章 Samba服務(wù)器2、第八章 NFS服務(wù)器3养筒、第十章 Linux下DNS服務(wù)器配站點(diǎn)曾撤,域名解析概念命令:...
    哈熝少主閱讀 3,732評(píng)論 0 10
  • 人們往往會(huì)說(shuō)一件事如果沒(méi)有好的計(jì)劃,那么做起來(lái)晕粪,或者完成是否挤悉,就會(huì)受挫,但是卻忽略了最重要的是是否有能力去完成巫湘,這...
    Xudongyao閱讀 125評(píng)論 0 0
  • 概念:沉沒(méi)成本 人們?cè)跊Q定是否做一件事情的時(shí)候尖啡,不僅僅是看這件事情未來(lái)對(duì)他是不是有好處,同時(shí)也會(huì)注意自己是不是在過(guò)...
    洋_蔥頭閱讀 374評(píng)論 5 5