天天看點

初識Linux shell(學習Linux核心、GNU工具、Linux桌面環境)

1、什麼是Linux

在學習如何使用Linux指令行和shell之前,我們先來學習一下什麼是Linux。

Linux可劃分為以下四個部分:

  • Linux核心
  • GNU工具
  • 圖形化桌面環境
  • 應用軟體

說到Linux,不得不提的一個人——Linus Torvalds,Linus在赫爾辛基大學上學時就開發了第一版Linux核心。Linux系統的核心是核心,核心控制着計算機系統上所有軟體和硬體,在必要時配置設定硬體,并根據需要執行軟體。

初識Linux shell(學習Linux核心、GNU工具、Linux桌面環境)

2、Linux核心

核心的四種功能:

  • 系統記憶體管理
  • 軟體程式管理
  • 硬體裝置管理
  • 檔案系統管理

(1)系統記憶體管理

核心不僅管理伺服器上的可用實體記憶體,還可以建立和管理虛拟記憶體。核心通過硬碟上的存儲空間來實作虛拟記憶體,這塊區域成為交換空間(swap space),核心不斷地在交換空間和實體記憶體之間反複交換虛拟記憶體中的内容,這使得系統擁有更多的可用記憶體。

記憶體存儲單元劃分為許多塊,稱為頁,核心會維護記憶體頁面表,指明那些頁面位于實體記憶體,那些被換到了磁盤上。核心還會記錄那些頁面正在使用,并把一段時間未通路的頁面複制到交換空間,稱為換出。當程序要通路已被換出的記憶體頁面時,核心會從交換空間将請求的記憶體頁面換到實體記憶體,稱為換入。

(2)軟體程式管理

Linux系統将運作中的程式成為程序(程序可以看為程式的一次執行過程),程序可以在前台運作,将輸出顯示在螢幕上,也可以在背景運作,核心控制着Linux系統如何管理運作在系統上的所有程序。

核心建立了第一個程序(init程序)來啟動系統上所有其他程序。一些Linux發行版本使用一個表來管理系統在開機時要自啟動的程序,這個表通常位于/etc/inittab中。另一些則采用/etc/init.d目錄,将開機時啟動或停止的某個應用的腳本放在這個目錄下(筆者使用的是red hat linux)。這些腳本通過/etc/rcX.d目錄下的入口啟動,這裡X代表優先級。

初識Linux shell(學習Linux核心、GNU工具、Linux桌面環境)

(3)硬體裝置管理

任何Linux系統需要與之通信的裝置,都需要在核心代碼中加入其驅動程式代碼,驅動程式代碼相當于應用程式和硬體裝置的中間人,允許核心與裝置間交換資料。在Linux核心中有兩種方法用于插入裝置程式驅動代碼:

  • 編譯進核心的裝置驅動代碼
  • 可插入核心的裝置驅動子產品

以前,插入裝置驅動代碼的唯一途徑是重新編譯核心,其過程很低效,不過好在開發人員設計了更好的方法:核心子產品,它允許将驅動代碼插入到運作的核心而無需重新編譯核心,同時,裝置不用時也可以将核心子產品移走。

Linux将硬體裝置當成特殊的檔案,稱為裝置檔案,有三種分類:

  • 字元型裝置檔案
  • 塊裝置檔案
  • 網絡裝置檔案

(4)檔案系統管理

Linux核心支援通過不同類型的檔案系統從硬碟中讀寫資料。

初識Linux shell(學習Linux核心、GNU工具、Linux桌面環境)

Linux核心采用虛拟檔案系統(VFS)作為和每個檔案系統互動的接口。

3、GNU工具

GNU組織開發了一套完整的Unix工具,但沒有運作它們的核心系統,Linus将Linux核心和GNU作業系統工具整合起來,産生了一款完整的作業系統。

GNU/Linux shell是一種特殊的互動式工具,它為使用者提供了啟動程式、管理檔案系統中的檔案以及運作在Linux系統上的程序的途徑。shell的核心是指令行提示符,指令行提示符是shell負責互動的部分,它允許使用者輸入文本指令,然後解釋指令,并在核心中執行。shell包含了一組内部指令,如複制檔案、移動檔案、顯示和終止程序等。你也可以将多個shell指令放入檔案中作為程式執行,這些檔案被稱為shell腳本。

Linux系統上,通常有好幾種shell可用,預設的Shell是bash shell。

4、Linux桌面環境

Linux早期,隻有一個簡單的作業系統文本界面,但随着Microsoft Windows的普及,電腦使用者已經不再滿足對着文本界面工作了,這推動了更多的開發活動,Linux圖形化桌面環境應運而生。

GNOME(GNU網絡對象模型環境)便是一款流行的Linux桌面環境,其于1999年首次釋出,現已是許多Linux發行版本預設的桌面環境,如Red Hat Linux。