按照前面的建議,你将Ubuntu系統在虛拟機中安裝好了,重新啟動虛拟機,這個新安裝的Ubuntu系統就會起來。
可以看到,在Windows系統上,通過虛拟機,又運作了一個Linux系統。這個Linux系統時全功能的,跟安裝在一個實際的電腦上的功能是一樣的。是以,你學習時,可以把這個Linux系統當做是安裝在一台實際的實體PC的是一個Linux系統。
那這個Ubuntu系統預設有哪些常用軟體可以用,這個我們下一個章節專門來進行介紹,這裡,先講接上一下Linux系統的主要目錄結構,從總體上簡單來了解一下Linux系統。
先來看一下Windows的目錄,通常,我們打開我的電腦,就可以看到C槽,D盤等等,C槽,D盤是硬碟的不同的分區,每個分區下就是存放各種檔案或者檔案夾,一層一層的。通常, windows系統是安裝在C槽,你打開C槽,就可以看到Windows的系統目錄,如Windows目錄,Program Files目錄等,在這些目錄中,安裝着Windows系統和軟體相關的檔案,我們一般也不會去動這些檔案,如果有些系統檔案不小心給删除了,可能系統就啟動不了了。
那在Linux下,其實也是類似的,也會有一堆目錄和檔案,有些目錄是系統相關的,有些目錄是安裝軟體的目錄,有些目錄是使用者使用的,當然,使用者也可以建立自己的目錄。
但Linux和Windows相比,也有一些不同,比如,你會發現,沒有C槽,D盤等,隻能看到目錄和檔案。
讓我們接下來詳細來分析和說明:
打開Ubuntu系統的檔案浏覽器,選擇我的電腦,就可以看到如下的目錄結構
Linux檔案浏覽器檢視Linux目錄和檔案
确定,Linux沒有C槽,D,在Linux上,有個頂層的目錄我們叫做根目錄,用斜杠/表示,整個檔案系統就是以/為根目錄的一個樹形結構,畫出來就類似下圖,不同的Linux發行版,可能會稍有不同,但都是大同小異:
Linux主要目錄結構
當然,Linux也是支援多分區的,但它都是用目錄來表示,所有的目錄可以是一個分區,但也可以将其中一個分區作為其中的一個目錄,不管是一個分區,還是多個分區,在Linux下看到的都是目錄,是以,有些Linux書上也有提到,Linux上,一切皆檔案和目錄。
我們以下是對這些目錄分别來進行一些解釋說明,如果暫時沒法完全了解,也沒關系,等學到後來,可以再傳回會來,反複看看,就會有越來越深刻的了解。要一個初學者,看了下面的介紹,完全了解和體會,其實也不太可能,先有個概念就好。另外,最重要的是,你不能光看底下的介紹文字,要實際在你的Ubuntu系統下去操作一下,看一下,裡面到底有哪些檔案,哪怕不了解,也比你光看文字要強,立刻行動起來,不要想着我等會再去操作,你大概現在就是這樣想的吧,哈哈。
-
/bin:
bin是Binary的縮寫, 這個目錄存放着最Linux經常使用的指令或者可執行程式。
-
/boot:
這裡存放的是啟動Linux時使用的一些核心檔案,比如最重要的Linux核心,啟動配置檔案等,一般都在這個目錄下。後面我們再講Linux啟動過程時,會再講到這個目錄下的相關檔案。
-
/dev :
dev是Device(裝置)的縮寫, 該目錄下存放的是Linux的外部裝置,在Linux中通路裝置的方式和通路檔案的方式是相同的。後面我們會再詳細講。這裡,你隻要了解,Linux下,一切皆檔案,一個U盤,一個磁盤,一個序列槽,都是檔案,要通路這個外設,就是去通路這個裝置檔案。
-
/etc:
這個目錄用來存放所有的系統管理所需要的配置檔案和相關子目錄,系統的很多啟動腳本,也是在這個目錄下。
-
/home:
使用者的主目錄,在Linux中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬号命名的。假設系統有個叫james的使用者,通常,就會存在一個/home/james的目錄,這個/home/james的目錄,就是james使用者的主目錄,我們也稱之james的home目錄。
-
/lib:
這個目錄裡存放着系統最基本的動态連接配接共享庫,其作用類似于Windows裡的DLL檔案。幾乎所有的應用程式都需要用這個目錄上的一些共享庫。
-
/lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。
- /media:linux 系統會自動識别一些裝置,例如U盤、光驅等等,當識别後,linux會把識别的裝置挂載到這個目錄下。
-
/mnt:
系統提供該目錄是為了讓使用者臨時挂載别的檔案系統的,我們可以将光驅挂載在/mnt/上,然後進入該目錄就可以檢視光驅裡的内容了。
-
/opt:
這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。
-
/proc:
這個目錄是一個虛拟的目錄,它是系統記憶體的映射,我們可以通過直接通路這個目錄來擷取系統資訊。這個目錄的内容不在硬碟上而是在記憶體裡,是系統啟動的時候動态生成的,我們也可以直接修改裡面的某些檔案配置,來改變系統的行為,比如可以通過下面的指令來屏蔽主機的ping指令,使别人無法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
當然,因為這個檔案是存在記憶體中的,是以這個配置是無法永久儲存的,當重新開機後,這個設定又恢複為之前的預設值。如果要每次啟動都改變這個值,通常可以修改啟動腳本,在啟動腳本中去修改這個配置,這樣系統每次啟動後,其配置就是你想要的配置的,在Linux中,很多初始化都是通過啟動腳本來進行的。
-
/root:
該目錄為系統管理者,我們通常稱之為root使用者或者Linux根使用者,這個目錄也就是root使用者的目錄,而其他非root使用者的主目錄,前面提到過,都在/home目錄下,root使用者是一個特例。
-
/sbin:
s就是Super User的意思,這裡存放的是系統管理者使用的系統管理程式。
-
/selinux:
這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似于windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。
- /sys:這個目錄和/proc目錄一樣,也是存在在記憶體中,sys檔案系統的主要作用,是對系統上的裝置與總線進行組織與管理,以形成分級的檔案。使用者空間可以通路或配置這些檔案,進而得知系統狀态或者控制系統。該檔案系統是核心裝置樹的一個直覺反映。當一個核心對象被建立的時候,對應的檔案和目錄也在核心對象子系統中被建立。對于上面的解釋,你現在可能還不懂,沒有關系。現在不懂是正常的,等看完本書,再回過頭來看看,就知道我說的是什麼意思了。
-
/tmp:
這個目錄是用來存放一些臨時檔案的。
-
/usr:
這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似于windows下的program files目錄。
-
/usr/bin:
系統使用者使用的應用程式。
-
/usr/sbin:
超級使用者使用的比較進階的管理程式和系統守護程式。
-
/usr/src:
核心頭檔案或者源代碼預設的放置目錄。一般編譯驅動程式,就需要使用到核心的頭檔案,我們後面見到驅動開發的時候,會再進行說明。
-
/var:
這個目錄中存放着在不斷擴充着的東西,我們習慣将那些經常被修改的目錄放在這個目錄下。包括各種日志檔案。
-
/run:
是一個臨時檔案系統,存儲系統啟動以來的資訊。當系統重新開機時,這個目錄下的檔案應該被删掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤删除或者随意更改内部檔案。
- /etc:上邊也提到了,這個是系統中的配置檔案,如果你更改了該目錄下的某個檔案可能會導緻系統不能啟動。
- /bin, /sbin, /usr/bin, /usr/sbin:這是系統預設的執行檔案的放置目錄,比如 ls 就是在/bin/ls 目錄下的。
值得提出的是,/bin, /usr/bin 是給系統使用者使用的指令(除root外的通使用者),而/sbin, /usr/sbin 則是給root使用的指令。
看到這裡,可能也有人有疑惑,哪些是系統的檔案,不能删除的,哪些是使用者的檔案,比如在Windows下,我們一般系統安裝在C,然後其他自己的檔案放在D:盤等其他盤上,在Linux下,對于新手來說,的确不太好區分,我們一般把自己的檔案放在home目錄下對應的使用者目錄下,比如目前你是以James這個使用者登入的,那你的問題一般就放在/home/james目錄下,安裝的一些軟體,通常會放在/usr/local/, /opt等目錄下,但linux下沒有絕對規定,你可以放到任何目錄下。至于系統啟動配置和啟動腳本,絕大部分是在/etc/目錄下存放着,當然這些啟動腳本,會用到一些指令,有些指令執行,又要用到一些系統的庫檔案,這些指令檔案,很可能就存在/sbin/,/bin,/usr/bin/, /usr/sbin/等目錄,而一些系統庫檔案,通常放在/lib/, /usr/lib/等目錄,後面我會我會專門一個小結,來詳細講述Linux啟動過程,等會看完那個小結,可以再回過頭來看看這個目錄結構的章節,可能有會有更多的了解了。