Linux第四節(jié)目錄結(jié)構(gòu)及文件基本操作

一韭脊、Linux目錄結(jié)構(gòu)

LinuxWindows的不同

一種不同是體現(xiàn)在目錄與存儲(chǔ)介質(zhì)(磁盤(pán)戳护,內(nèi)存,DVD等)的關(guān)系上侦啸,Windows一直是以存儲(chǔ)介質(zhì)為主的翎碑,主要以盤(pán)符(C盤(pán)谬返,D盤(pán)...)及分區(qū)來(lái)實(shí)現(xiàn)文件管理,然后之下才是目錄日杈,目錄就顯得不是那么重要遣铝,除系統(tǒng)文件之外的用戶文件放在任何地方任何目錄也是沒(méi)有多大關(guān)系。所以通常Windows在使用一段時(shí)間后达椰,磁盤(pán)上面的文件目錄會(huì)顯得雜亂無(wú)章(少數(shù)善于整理的用戶除外吧)翰蠢。然而UNIX/Linux恰好相反,UNIX是以目錄為主的啰劲,Linux也繼承了這一優(yōu)良特性梁沧。Linux是以樹(shù)形目錄結(jié)構(gòu)的形式來(lái)構(gòu)建整個(gè)系統(tǒng)的,可以理解為樹(shù)形目錄是一個(gè)用戶可操作系統(tǒng)的骨架蝇裤。雖然本質(zhì)上無(wú)論是目錄結(jié)構(gòu)還是操作系統(tǒng)內(nèi)核都是存儲(chǔ)在磁盤(pán)上的廷支,但從邏輯上來(lái)說(shuō)Linux的磁盤(pán)是“掛在”(掛載在)目錄上的,每一個(gè)目錄不僅能使用本地磁盤(pán)分區(qū)的文件系統(tǒng)栓辜,也可以使用網(wǎng)絡(luò)上的文件系統(tǒng)恋拍。舉例來(lái)說(shuō),可以利用網(wǎng)絡(luò)文件系統(tǒng)(Network File System藕甩,NFS)服務(wù)器載入某特定目錄等施敢。

1. FHS標(biāo)準(zhǔn)

Linux的目錄結(jié)構(gòu)復(fù)雜在于,系統(tǒng)的正常運(yùn)行是以目錄結(jié)構(gòu)為基礎(chǔ)的,初學(xué)者里面大部分目錄都不知道其作用僵娃,重要與否概作,對(duì)于那些重度Windows用戶,他們會(huì)糾結(jié)很長(zhǎng)時(shí)間默怨,關(guān)于我安裝的軟件在哪里這類(lèi)問(wèn)題讯榕。簡(jiǎn)單是因?yàn)椋渲写蟛糠帜夸浗Y(jié)構(gòu)是規(guī)定好了的(FHS標(biāo)準(zhǔn))匙睹,是不可更改的愚屁。

FHS(英文:Filesystem Hierarchy Standard中文:文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn)),多數(shù)Linux版本采用這種文件組織形式痕檬,F(xiàn)HS定義了系統(tǒng)中每個(gè)區(qū)域的用途霎槐、所需要的最小構(gòu)成的文件和目錄同時(shí)還給出了例外處理與矛盾處理。

FHS定義了兩層規(guī)范谆棺,第一層是栽燕,/下面的各個(gè)目錄應(yīng)該要放什么文件數(shù)據(jù),例如/etc應(yīng)該放置設(shè)置文件改淑,/bin與/sbin則應(yīng)該放置可執(zhí)行文件等等碍岔。

第二層則是針對(duì)/usr及/var這兩個(gè)目錄的子目錄來(lái)定義。例如/var/log放置系統(tǒng)登錄文件朵夏,/usr/share放置共享數(shù)據(jù)等等蔼啦。

FHS_2.3標(biāo)準(zhǔn)文檔

FHS是根據(jù)以往無(wú)數(shù)Linux用戶和開(kāi)發(fā)者的經(jīng)驗(yàn)總結(jié)出來(lái)的,并且會(huì)維持更新仰猖,F(xiàn)HS依據(jù)文件系統(tǒng)使用的頻繁與否以及是否允許用戶隨意改動(dòng)(注意捏肢,不是不能),將目錄定義為四種交互作用的形態(tài)饥侵,如下表所示:

2.目錄路徑

路徑

路徑就是要去哪兒的路線鸵赫。如果想進(jìn)入某個(gè)具體的目錄或者想獲得某個(gè)目錄的文件(目錄本身也是文件)就用路徑來(lái)找到。

使用cd命令可以切換目錄躏升,在Linux里面使用.表示當(dāng)前目錄辩棒,..表示上一級(jí)目錄(注意,.開(kāi)頭的文件都是隱藏文件膨疏,所以這兩個(gè)目錄必然也是隱藏的一睁,可以使用ls -a命令查看隱藏文件), -表示上一次所在目錄,~通常表示當(dāng)前用戶的home目錄佃却。使用pwd命令可以獲取當(dāng)前所在路徑(絕對(duì)路徑)者吁。

進(jìn)入上一級(jí)目錄:

$ cd ..

進(jìn)入你的home目錄:

$ cd ~

或者cd

/home/<你的用戶名>

使用pwd獲取當(dāng)前路徑:

$ pwd

絕對(duì)路徑

關(guān)于絕對(duì)路徑,簡(jiǎn)單地說(shuō)就是以根" / "目錄為起點(diǎn)的完整路徑饲帅,以要到的目錄為終點(diǎn)复凳,表現(xiàn)形式如:

/usr/local/bin瘤泪,表示根目錄下的usr目錄中的local目錄中的bin目錄。

相對(duì)路徑

相對(duì)路徑染坯,是以當(dāng)前目錄.為起點(diǎn)均芽,以要到的目錄為終點(diǎn),表現(xiàn)形式如:

usr/local/bin(這里假設(shè)當(dāng)前目錄為根目錄)单鹿。表示相對(duì)路徑并沒(méi)有加上表示當(dāng)前目錄的那個(gè).,而是直接以目錄名開(kāi)頭深纲,因?yàn)檫@個(gè)usr目錄為/目錄下的子目錄仲锄,可以省略這個(gè).;如果是當(dāng)前目錄的上一級(jí)目錄湃鹊,則需要使用..儒喊,比如當(dāng)前目錄為home目錄,根目錄就應(yīng)該表示為../../币呵,表示上一級(jí)目錄(home目錄)的上一級(jí)目錄(/目錄)怀愧。

以home目錄為起點(diǎn),分別以絕對(duì)路徑和相對(duì)路徑的方式進(jìn)入/usr/local/bin目錄:

絕對(duì)路徑

$ cd/usr/local/bin

相對(duì)路徑

$ cd../../usr/local/bin

進(jìn)入一個(gè)目錄余赢,可以使用絕對(duì)路徑也可以使用相對(duì)路徑芯义,選擇路徑,方便就好妻柒,看個(gè)人喜好扛拨。比如假設(shè)當(dāng)前在/usr/local/bin目錄,如果要進(jìn)入的是usr目錄举塔,那么cd /usr绑警,就比cd ../..方便一點(diǎn)。

提示:在進(jìn)行目錄切換的過(guò)程中請(qǐng)多使用Tab鍵自動(dòng)補(bǔ)全央渣,可避免輸入錯(cuò)誤计盒,連續(xù)按兩次Tab可以顯示全部候選結(jié)果。

二芽丹、Linux文件的基本操作

1.新建

新建空白文件

使用touch命令創(chuàng)建空白文件北启。touch命令,主要作用是來(lái)更改已有文件的時(shí)間戳的(e.g.最近訪問(wèn)時(shí)間志衍,最近修改時(shí)間)暖庄,但其在不加任何參數(shù)的情況下,只指定一個(gè)文件名楼肪,則可以創(chuàng)建一個(gè)指定文件名的空白文件(不會(huì)覆蓋已有同名文件)培廓,當(dāng)然也可以同時(shí)指定該文件的時(shí)間戳。

創(chuàng)建名為test的空白文件春叫,因?yàn)樵谄渌夸洓](méi)有權(quán)限肩钠,所以需要先cd ~切換回用戶的/home/shiyanlou目錄:

$ cd ~

$ touch test

新建目錄

使用mkdir(make

directories)命令可以創(chuàng)建一個(gè)空目錄泣港,也可同時(shí)指定創(chuàng)建目錄的權(quán)限屬性。

創(chuàng)建名為“ mydir ”的空目錄:

$ mkdir mydir

使用-p參數(shù)价匠,同時(shí)創(chuàng)建父目錄(如果不存在該父目錄)当纱,如下我們同時(shí)創(chuàng)建一個(gè)多級(jí)目錄(這在安裝軟件、配置安裝路徑時(shí)非常有用):

$ mkdir -pfather/son/grandson

后面的目錄路徑踩窖,也可以用絕對(duì)路徑的方式表示坡氯。

2.復(fù)制

復(fù)制文件

使用cp(copy)命令復(fù)制一個(gè)文件到指定目錄。

將之前創(chuàng)建的“ test ”文件復(fù)制到“

/home/shiyanlou/father/son/grandson ”目錄中:

$ cp testfather/son/grandson

復(fù)制目錄

如果直接使用cp命令復(fù)制一個(gè)目錄的話洋腮,會(huì)出現(xiàn)如下錯(cuò)誤:

要成功復(fù)制目錄需要加上-r或者-R參數(shù)箫柳,表示遞歸復(fù)制

3.刪除

刪除文件

使用rm(remove files

or directories)命令刪除一個(gè)文件:

$ rm test

想要?jiǎng)h除一些為只讀權(quán)限的文件,直接使用rm刪除會(huì)顯示一個(gè)提示啥供,如下:

如果想忽略這提示悯恍,直接刪除文件,可以使用-f參數(shù)強(qiáng)制刪除:

刪除目錄

要?jiǎng)h除一個(gè)目錄伙狐,也需要加上-r或-R參數(shù):

4.移動(dòng)文件與文件重命名

移動(dòng)文件

使用mv(move or

rename files)命令移動(dòng)文件(剪切)涮毫。將文件“ file1 ”移動(dòng)到Documents目錄:

mv源目錄文件目的目錄:

$ mkdirDocuments

$ mv file1Documents

重命名文件

將文件“ file1 ”重命名為“ myfile ”:

mv舊的文件名新的文件名:

$ mv file1myfile

批量重命名

使用命令rename來(lái)實(shí)現(xiàn)。不過(guò)它要用perl正則表達(dá)式來(lái)作為參數(shù)(正則表達(dá)式我們要在后面才會(huì)介紹到)贷屎,只要記得這個(gè)rename命令可以批量重命名就好了罢防。

使用通配符批量創(chuàng)建5個(gè)文件:

$ touchfile{1..5}.txt

批量將這5個(gè)后綴為.txt的文本文件重命名為以.c為后綴的文件:

$ rename's/.txt/.c/' *.txt

批量將這5個(gè)文件,文件名改為大寫(xiě):

$ rename'y/a-z/A-Z/'.c

rename是先使用第二個(gè)參數(shù)的通配符匹配所有后綴為.txt的文件豫尽,然后使用第一個(gè)參數(shù)提供的正則表達(dá)式將匹配的這些文件的.txt后綴替換為.c。

5.查看文件

使用cat美旧,tacnl命令查看文件

前兩個(gè)命令都是用來(lái)打印文件內(nèi)容到標(biāo)準(zhǔn)輸出(終端)渤滞,其中cat為正序顯示,tac為倒序顯示榴嗅。

標(biāo)準(zhǔn)輸入輸出:當(dāng)我們執(zhí)行一個(gè)shell命令行時(shí)通常會(huì)自動(dòng)打開(kāi)三個(gè)標(biāo)準(zhǔn)文件妄呕,即標(biāo)準(zhǔn)輸入文件(stdin),默認(rèn)對(duì)應(yīng)終端的鍵盤(pán)嗽测、標(biāo)準(zhǔn)輸出文件(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出文件(stderr)绪励,后兩個(gè)文件都對(duì)應(yīng)被重定向到終端的屏幕,以便我們能直接看到輸出內(nèi)容唠粥。進(jìn)程將從標(biāo)準(zhǔn)輸入文件中得到輸入數(shù)據(jù)疏魏,將正常輸出數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出文件,而將錯(cuò)誤信息送到標(biāo)準(zhǔn)錯(cuò)誤文件中晤愧。

比如要查看之前從/etc目錄下拷貝來(lái)的passwd文件:

$ cat passwd

可以加上-n參數(shù)顯示行號(hào):

$ cat -npasswd

nl命令大莫,添加行號(hào)并打印,是比cat -n更專(zhuān)業(yè)的行號(hào)打印命令官份。

簡(jiǎn)單列舉它的常用的幾個(gè)參數(shù):

-b :指定添加行號(hào)的方式只厘,主要有兩種:

-b a:表示無(wú)論是否為空行烙丛,同樣列出行號(hào)("cat

-n"就是這種方式)

-b t:只列出非空行的編號(hào)并列出(默認(rèn)為這種方式)

-n :設(shè)置行號(hào)的樣式,主要有三種:

-n ln:在行號(hào)字段最左端顯示

-n rn:在行號(hào)字段最右邊顯示羔味,且不加0

-n rz:在行號(hào)字段最右邊顯示河咽,且加0

-w :行號(hào)字段占用的位數(shù)(默認(rèn)為6位)

使用moreless命令分頁(yè)查看文件

more和less就是天生用來(lái)"閱讀"一個(gè)文件的內(nèi)容的,比如說(shuō)man手冊(cè)內(nèi)部就是使用的less來(lái)顯示內(nèi)容赋元。more命令比較簡(jiǎn)單忘蟹,只能向一個(gè)方向滾動(dòng),而less為基于more和vi(一個(gè)強(qiáng)大的編輯器)開(kāi)發(fā)们陆,功能更強(qiáng)大寒瓦。less的使用基本和more一致,具體使用請(qǐng)查看man手冊(cè)坪仇,這里只介紹more命令的使用。

使用more命令打開(kāi)passwd文件:

$ more passwd

打開(kāi)后默認(rèn)只顯示一屏內(nèi)容垃你,終端底部顯示當(dāng)前閱讀的進(jìn)度椅文。可以使用Enter鍵向下滾動(dòng)一行惜颇,使用Space鍵向下滾動(dòng)一屏皆刺,按下h顯示幫助,q退出凌摄。

使用headtail命令查看文件

它們一個(gè)是只查看文件的頭幾行(默認(rèn)為10行羡蛾,不足10行則顯示全部)和尾幾行。拿passwd文件舉例锨亏,比如當(dāng)我們想要查看最近新增加的用戶痴怨,那么我們可以查看這個(gè)/etc/passwd文件,因?yàn)橄到y(tǒng)新增加一個(gè)用戶器予,會(huì)將用戶的信息添加到passwd文件的最后浪藻,這時(shí)候使用tail命令:

$ tail/etc/passwd

甚至更直接的只看一行,加上-n參數(shù)乾翔,后面緊跟行數(shù):

$ tail -n 1/etc/passwd

6.查看文件類(lèi)型

在Linux中文件的類(lèi)型不是根據(jù)文件后綴來(lái)判斷的爱葵,通常使用file命令查看文件的類(lèi)型:

$ file/bin/ls

說(shuō)明這是一個(gè)可執(zhí)行文件,運(yùn)行在64位平臺(tái)反浓,并使用了動(dòng)態(tài)鏈接文件(共享庫(kù))萌丈。

7.編輯文件

在Linux下面編輯文件通常使用專(zhuān)門(mén)的命令行編輯器比如(emacs,vim雷则,nano)辆雾,可以直接使用Linux內(nèi)部的vim學(xué)習(xí)教程,輸入如下命令即可開(kāi)始:

$ vimtutor

三巧婶、召喚眼睛

$ xeyes

可以使用如下命令將它放到后臺(tái)運(yùn)行:

$ nohup xeyes&

*五乾颁、作業(yè)

圖片版詳見(jiàn)http://t.cn/RaWorGA

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涂乌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子英岭,更是在濱河造成了極大的恐慌湾盒,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诅妹,死亡現(xiàn)場(chǎng)離奇詭異罚勾,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)吭狡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)尖殃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人划煮,你說(shuō)我怎么就攤上這事送丰。” “怎么了弛秋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵器躏,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蟹略,道長(zhǎng)登失,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任挖炬,我火速辦了婚禮揽浙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘意敛。我一直安慰自己馅巷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布空闲。 她就那樣靜靜地躺著令杈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碴倾。 梳的紋絲不亂的頭發(fā)上逗噩,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音跌榔,去河邊找鬼异雁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛僧须,可吹牛的內(nèi)容都是我干的纲刀。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼担平,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼示绊!你這毒婦竟也來(lái)了锭部?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤面褐,失蹤者是張志新(化名)和其女友劉穎拌禾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體展哭,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湃窍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匪傍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片您市。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖役衡,靈堂內(nèi)的尸體忽然破棺而出茵休,到底是詐尸還是另有隱情,我是刑警寧澤手蝎,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布泽篮,位于F島的核電站,受9級(jí)特大地震影響柑船,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泼各,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一鞍时、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扣蜻,春花似錦逆巍、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至芳肌,卻和暖如春灵再,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背亿笤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工翎迁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人净薛。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓汪榔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親肃拜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子痴腌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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