Linux課程知識點總結(一)

Linux課程知識點總結(一)

一、Linux系統的簡介

1.1 什麼是Linux

Linux是一個免費的多用戶、多任務的操作系統,其運行方式、功能和Unix系統很相似,但Linux系統的穩定性、安全性與網絡功能是許多商業操作系統所無法比擬的。Linux系統最大的特色是源代碼完全公開,在符合GNU/GPL(通用公共許可證)的原則下,任何人都可以自由取得、散布甚至修改源代碼。越來越多的大中型企業的服務器選擇了Linux作為其操作系統。近幾年來,Linux系統又以其友好的圖形界面、豐富的應用程序及低廉的價格,在桌面領域得到了較好的發展,受到了普通用戶的歡迎

1.2 產生

Linux系統的內核最早是由芬蘭大學生Linus Torvalds開發,並於1991年8月發佈。當時由於Unix系統的商業化,Andrew Tannebaum教授開發了Minix操作系統,該系統不受AT&T許可協議的約束,可以發佈在Internet上免費給全世界的學生使用,這為教學科研提供了一個操作系統。

1991年,Linus Torvalds為了給Minix系統用戶設計一個比較有效的Unix PC版本,自己動手寫了一個類Minix的操作系統,這就是Linux的雛形。

Linux的興起可以說是Internet創造的一個奇蹟。到1992年1月為止,全世界大約只有1000人在使用Linux系統,但由於它發佈在Internet上,互聯網上的任何人在任何地方都可以得到它。在這眾多熱心人的努力下,Linux系統在不到3年的時間裏成為了一個功能完善、穩定可靠的操作系統

1.3 特點

開放性

多用戶

多任務

良好的用戶界面

設備獨立性

豐富的網絡功能

可靠的系統安全

良好的可移植性

1.4 組成

內核 shell 文件系統 應用程序

1.5 Linux內核版本

內核是一個用來和硬件打交道並為用戶程序提供有限服務集的支撐軟件,是操作系統中最核心的功能框架部分。一個計算機系統是一個硬件和軟件的共生體,它們互相依賴,不可分割。

內核版本是Linux內核在歷次修改或增加相應的功能後的版本編號。內核版本號是由點分隔的3段數字組成,比如3.10.0-327

1.6 Linux發行版

一些組織和公司,將Linux系統的內核、應用軟件和文檔包裝起來,並提供一些系統安裝界面、系統配置設定管理工具,就構成了Linux發行版本。發行版本的版本號每一個發佈廠商都不一樣,與Linux系統內核的版本號是相對獨立的。根據GPL準則,這些發行版本雖然都源自一個內核,但都沒有自己的版權

二、Red Hat Linux

2.1 優點

1.支持和硬件平台多

2.優秀的安裝界面

3.獨特的RPM升級方式

4.豐富的軟件包

5.安全性能好

6.方便的系統管理界面

7.詳細而完整的在線文檔

三、安裝Linux

3.1 硬件要求

(1)CPU:主流計算機和服務器都能達到要求;

(2)內存:安裝Linux系統至少需要1GB內存(建議使用2GB甚至更高內存);

(3)硬盤空間:若要安裝所有軟件包至少需要10GB以上硬盤空間;

(4)顯示器和顯卡;

(5)4DVD光驅

硬件兼容性

硬件兼容性在老式電腦和組裝電腦上顯得特別重要。Linux系統與最近幾年廠家生產的多數硬件相兼容,然而硬件的技術規範每天都在改變,很難保證計算機的硬件會百分之百地兼容。

要查看Red Hat硬件兼容性可以訪問網址//hardware.redhat.com,查看眾多廠家的硬件產品

3.2 交換分區

直接從物理內存讀寫數據要比從硬盤讀寫數據快的多,而物理內存是有限的,這樣就使用到了虛擬內存。虛擬內存是為了滿足物理內存的不足而提出的一種策略,它是利用磁盤空間虛擬出的一塊邏輯內存,用作虛擬內存的磁盤空間被稱為交換分區(swap分區)。

內核會將暫時不用的內存塊信息寫到交換分區,這樣一來,物理內存得到了釋放,這塊內存就可以用於其它用途,當需要用到原始的內容時,這些信息會被重新從交換分區讀入物理內存。

Linux的內存管理採取的是分頁存取機制,為了保證物理內存能得到充分的利用,內核會在適當的時候將物理內存中不經常使用的數據塊自動交換到虛擬內存中,而將經常使用的信息保留到物理存。

Linux系統會不時的進行頁面交換操作,以保持儘可能多的空閑物理內存,即使並沒有什麼操作需要使用內存,Linux也會交換出暫時不用的內存頁面,這可以避免等待交換所需的時間。

Linux進行頁面交換是有條件的,不是所有頁面在不用時都交換到虛擬內存,

Linux內核根據「最近最常使用」算法,僅僅將一些不經常使用的頁面文件交換到虛擬內存

分區命名方案:

Linux系統使用字母和數字的組合來指代硬盤分區,使用一種更加靈活的分區命名方案,該命名方案是基於文件的,文件名的格式為/dev/xxyN(比如/dev/sda1分區)。

§/dev:這是Linux系統中所有設備文件所在的目錄名。因為分區位於硬盤上,而硬盤是設備,所以這些文件代表了在/dev上所有可能的分區;

§xx:分區名的前兩個字母表示分區所在設備的類型,通常是hd(IDE硬盤)或sd(SCSI硬盤)。

§y:這個字母表示分區所在的設備。例如,/dev/hda(第1個 IDE 硬盤)或/dev/sdb(第2個SCSI硬盤);

N:最後的數字N代表分區。前4個分區(主分區或擴展分區)用數字1~4表示,邏輯驅動器從5

開始。例如,/dev/hda3是第1個IDE 硬盤上的第3個主分區或擴展分區;/dev/sdb6是第2個SCSI硬盤上的第2個邏輯驅動器

3.3 系統硬盤知識

Linux系統中的每一個分區都是構成支持一組文件和目錄所必需的存儲區的一部分。它是通過掛載來實現的,掛載是將分區關聯到某一目錄的過程,掛載分區使起始於這個指定目錄(稱為掛載目錄)的存儲區能夠被使用。

例如,如果分區/dev/sda5被掛載在目錄/usr上,這意味着所有在/usr下的文件和目錄在物理上位於/dev/sda5。因此文件/usr/bin/cal被保存在分區/dev/sda5上,而文件/etc/passwd卻不是。

/usr目錄下的目錄還有可能是其它分區的掛載目錄。例如,某個分區(如/dev/sda7)可以被掛載到/usr/local目錄下,這意味着文件/usr/local/man/whatis將位於分區/dev/sda7上,而不是分區/dev/sda5上。

硬盤分區規劃

(1)最簡單的分區規劃

Øswap分區:即交換分區,實現虛擬內存,建議大小是物理內存的1~2倍;

Ø/boot分區:用來存放與Linux系統啟動有關的程序,比如引導裝載程序等,最少200MB;

Ø/分區:建議大小至少在10GB以上。

(2)合理的分區規劃

Øswap分區:實現虛擬內存,建議大小是物理內存的1~2倍。

Ø/boot分區:建議大小最少為200MB;

Ø/usr分區:用來存放Linux系統中的應用程序,其相關數據較多,建議大小最少為8GB;

Ø/var分區:用來存放Linux系統中經常變化的數據以及日誌文件,建議大小最少為1GB;

Ø/分區:Linux系統的根目錄,所有的目錄都掛在這個目錄下面,建議大小最少為1GB;

Ø/home分區:存放普通用戶的數據,是普通用戶的宿主目錄,建議大小為剩下的空間。

四、關閉和重啟Linux系統

1.shutdown命令

2.halt命令

3.reboot命令 eg: 立即關閉計算機系統 shutdown –h now 建議盡量不做該操作

在RHEL 7之前的版本,使用運行級別代表特定的操作模式。運行級別被定義為七個級別,用數字0到6表示,每個運行級別可以啟動特定的一些服務。RHEL 7使用目標(target)替換運行級別。目標使用目標單元文件描述,目標單位文件擴展名是.target,目標單元文件的唯一目標是將其他systemd單元文件通過一連串的依賴關係組織在一起。比如graphical.target單元,用於啟動一個圖形會話,systemd會啟動像GNOME顯示管理(gdm.service)、帳號服務(axxounts-daemon)這樣的服務,並且會激活multi-user.target單元。相似的multi-user.target單元,會啟動必不可少的NetworkManager.service、dbus.service服務,並激活basic.target單元。

每一個目標都有名字和獨特的功能,並且能夠同時啟用多個。一些目標繼承其他目標的服務,並啟動新服務。systemd提供了一些模仿System V init 啟動級別的目標,仍可以使用舊的 telinit 啟動級別命令切換

五、Shell簡介

AT&T工作的Dennis Ritchie和Ken Thompson兩人在設計Unix操作系統的時候,想要為用戶創建一種與Unix系統交流的方法。那時的操作系統帶有命令解釋器。命令解釋器接受用戶的命令,然後解釋它們,因而計算機可以使用這些命令

Ritchie和Thompson想要提供比當時的命令解釋器具備更優異功能的工具。這導致了Bourne Shell(通稱為sh)的開發,由S.R.Bourne創建。自從Bourne Shell出現以後,其它類型Shell也被一一開發,比如C Shell(csh)和Korn Shell(ksh)。

Shell接收用戶命令,然後調用相應的應用程序,同時它還是一種程序設計語言, 是系統管理維護時的重要工具。 作為命令語言,它交互式的解釋和執行用戶輸入的命令或者自動地解釋和執行預先設定好的一連串的命令。作為程序設計語言,它可以定義各種變量和參數,並提供了許多在高級語言中才具有的控制結構(循環和分支)。

Shell命令重新初始化用戶的登錄會話。當給出該命令時,就會重新設置進程的控制終端的端口特徵,並取消對端口的所有訪問。然後Shell命令為用戶把進程憑證和環境重新設置為缺省值,並執行用戶的初始程序。根據調用進程的登錄用戶標識建立所有的憑證和環境。

目前流行的Shell 有sh、csh 、ksh、tcsh 和bash等。大部分Linux系統的默認Shell類型為bash

六、bash簡介

bash(Bourne-Again Shell)最早是在1987年由布萊恩·福克斯開發的一個為GNU計劃編寫的Unix Shell。bash目前是大多數Linux系統默認的Shell,它還能運行於大多數Unix風格的操作系統上。

bash的命令語法是Bourne shell命令語法的超集。數量龐大的Bourne shell腳本大多不經過修改就可以在bash中執行,只有那些引用了Bourne特殊變量或使用了Bourne內置命令的腳本才需要修改。bash的命令語法很多來自ksh和csh,比如命令行編輯、命令歷史、目錄棧、$RANDOM變量、$PPID變量以及POSIX命令置換語法。