1\. 初識 Linux
------------
**Linux**,全稱?**GNU/Linux**,是一套免費使用和自由傳播的類?**UNIX**?操作系統,其內核由林納斯·本納第克特·托瓦茲于 1991 年第一次釋出,它主要受到 MINIX 和 UNIX 思想的啟發,是一個基于 POSIX 和 UNIX 的多用戶、多任務、支持多線程和多 CPU 的**操作系統**。它能運行主要的 UNIX 工具軟件、應用程序和網絡協議。它支持 32 位和 64 位硬件。Linux 繼承了 UNIX 以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。Linux 有上百種不同的發行版,如基于社區開發的 Debian、Arch Linux,和基于商業開發的 Red Hat Enterprise Linux、SUSE、Oracle Linux 等。
2\. Linux 簡介
------------
Linux 操作系統性能穩定,并且是**開源的操作系統軟件**。它的防火墻相關的組件保證了系統的安全,且**配置簡單**、**性能高效**。Linux 在很多企業網絡中,追求速度和安全,它不僅僅是被網絡運維人員當作服務器使用,也可以作為網絡防火墻。Linux 開放源碼并且沒有版權,技術社區用戶多等特點 ,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網絡協議棧 ,經過適當的配置就可實現路由器的功能。這些特點使得 Linux 成為開發路由交換設備的理想開發平臺。
3\. Linux 發展史
-------------
* Linux 操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX 操作系統、MINIX 操作系統、GNU 計劃、POSIX 標準和 Internet 網絡。
* 20 世紀 80 年代,計算機硬件的性能不斷提高,PC 機的市場不斷擴大,UNIX、DOS、MacOS。UNIX 操作系統價格昂貴且不能在一般的 PC 機上面運行,DOS 操作系統相對來說比較簡陋,且源代碼被軟件廠商嚴格保密,MacOS 是一種專門用于蘋果計算機的操作系統。
* 因此,計算機應用領域需要更加完善、強大、價格低廉和開源的操作系統。由于供教學使用的典型操作系統很少,當時荷蘭一位美國人教授 AndrewS.Tanenbaum 編寫了一個操作系統,名為 MINIX,為了向學生講述操作系統內部工作原理。
* MINIX 雖然很好,但只是一個用于教學為目的的簡單操作系統,它最大的好處就是公開了源代碼。全球計算機領域的學生都可以通過鉆研 MINIX 源代碼來了解和學習 MINIX 操作系統,其中芬蘭赫爾辛基大學的學生 Linus Torvalds 就是其中一個,他在吸收了 MINIX 精華的基礎上,在 1991 年寫出了屬于自己的操作系統 Linux,并且版本為 Linux0.01,是 Linux 時代開始的標志。他利用 UNIX 的核心,去掉了那些復雜難處理的核心程序,把它改寫成適用于普通計算機的操作系統放在網絡上免費供其他學習者下載。
* 1994 年推出完整的核心 Version1.0,至此,Linux 逐漸成為功能完善、穩定的操作系統,并被廣泛使用。
4\. Linux 特性和優點
---------------
### 4.1 Linux 特性
##### 基本思想
Linux 的基本思想有兩點:第一,**一切都是文件**;第二,**每個文件都有確定的用途**。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬件和軟件設備、操作系統、進程等等對于操作系統內核而言,都被視為擁有各自特性或類型的文件。至于說 Linux 是基于 UNIX 的,很大程度上也是因為這兩者的基本思想十分相近。
##### 完全免費
Linux 是一款**免費的操作系統**,用戶可以通過網絡或其他途徑免費獲得,并可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由于這一點,來自全世界的無數程序員參與了 Linux 的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變,這讓 Linux 吸收了無數程序員的精華,不斷壯大。
##### 完全兼容 POSIX1.0 標準
這使得可以在 Linux 下通過相應的模擬器運行常見的 DOS、Windows 操作系統中的軟件程序。這為用戶從 Windows 轉到 Linux 奠定了基礎。許多用戶在考慮使用 Linux 時,就想到以前在 Windows 下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
##### 多用戶、多任務
Linux 支持多用戶,各個用戶對于自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在計算機最主要的一個特點,Linux 可以使多個程序同時并獨立地運行。
##### 良好的界面
Linux 同時具有字符界面和圖形界面。在字符界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似于 Windows 圖形界面的 X-Window 系統,用戶可以使用鼠標對其進行操作。在 X-Window 環境中就和在 Windows 中相似,可以說是一個 Linux 版的 Windows 操作系統。
##### 支持多種平臺
Linux 可以運行在多種硬件平臺上,如具有 x86、680x0、SPARC、Alpha 等處理器的平臺。此外 Linux 還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001 年 1 月份發布的 Linux 2.4 版內核已經能夠完全支持 Intel64 位芯片架構。同時 Linux 也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
### 4.2 Linux 優點
* Linux 由眾多微內核組成,其源代碼完全開源;
* Linux 繼承了 UNIX 的特性,具有非常強大的網絡功能,其支持所有的因特網協議,包括 TCP/IPv4、 TCP/IPv6 和鏈路層拓撲程序等,并且可以利用 UNIX 的網絡特性開發出新的協議棧;
* Linux 系統工具鏈完整,簡單操作就可以配置出合適的開發環境,可以簡化開發過程,減少開發中仿真工具的障礙,使系統具有較強的移植性;
5\. Linux 發行版本
--------------
由于最初 Linux 操作系統開源免費,所有的學習者都可以將 Linux 操作系統優化和拓展,所以 Linux 操作系統發展迅猛,當前發行版非常多,這里簡單介紹一下六種常見的 Linux 操作系統。
### 5.1 Debian
Debian 計劃是一個致力于創建一個自由操作系統的合作組織。我們所創建的這個操作系統名為 Debian。操作系統是使計算機運行的基本程序和工具的集合,其中最主要的部分稱為內核(kernel)。內核是計算機中最重要的程序,負責一切基本的調度工作,并讓您運行其他程序。Debian 系統目前采用 Linux 內核或者 FreeBSD 內核。
然而,讓 Debian 支持其他內核的工作也正在進行,最主要的就是 Hurd。Hurd 是一組在微內核(例如 Mach)上運行的、提供各種不同功能的守護進程。Hurd 是由 GNU 工程所設計的自由軟件。官方所創建的這個操作系統中的大部分基本工具來自于 GNU 工程;因此我們把它們命名為 GNU/Linux、GNU/kFreeBSD 和 GNU/Hurd。
這些工具同樣都是自由的,當然,人們真正需要的是應用軟件,也就是幫助他們完成工作的程序:**從文檔編輯,到電子商務,到游戲娛樂,到軟件開發。Debian 帶來了超過 51000 個軟件包**(為了能在您的機器上輕松地安裝,這些軟件包都已經被編譯包裝為一種方便的格式),一個軟件包管理器(APT),以及其他幫助您在上千臺計算機上管理數千個軟件包的工具,過程就如安裝一個應用程序那么簡單。而這些全都是自由軟件。這有點像一個高塔:**在最底層的是內核,在內核上面的是所有的基本工具,然后是所有您在計算機上運行的軟件**。
最后,在這個高塔頂端的就是 Debian 把每件事情謹慎地組織和配合在一起,使得它們能夠在一起和諧地運作。
### 5.2 RedHat
**紅帽在 2014 年 6 月發布了最新旗艦版企業操作系統,紅帽企業 Linux 7**。基于紅帽企業 Linux 7 操作系統,企業可整合裸機服務器、 虛擬機、基礎設施即服務(IaaS)和平臺即服務(PaaS),以構建一個強大穩健的數據中心環境,滿足不斷變化的業務需求。紅帽衛星是一個綜合性解決方案,它通過配置軟件分發、補丁和配置管理,以及物理、虛擬和云環境的訂閱管理為紅帽系統提供完整的生命周期管理,為管理構建、部署、運行和淘汰系統所需的工具提供了單獨的管理控制臺和方法論。
### 5.3 CentOs
CentOS(Community Enterprise Operating System,中文意思是社區企業操作系統)是 Linux 發行版之一,**它是來自于 Red Hat Enterprise Linux 依照開放源代碼規定釋出的源代碼所編譯而成**。由于出自同樣的源代碼,因此有些要求高度穩定性的服務器以 CentOS 替代商業版的 Red Hat Enterprise Linux 使用。兩者的不同,**在于 CentOS 完全開源**。
### 5.4 Slackware
Slackware Linux 是由 Patrick Volkerding 開發的 GNU/Linux 發行版。**與很多其他的發行版不同**,**它堅持 KISS(Keep It Simple Stupid) 原則**。一開始,配置系統會有一些困難,但是更有經驗的用戶會喜歡這種方式的透明性和靈活性。 Slackware 的很多特性體現出了 KISS 原則,最為有名的例子就是**不依賴圖形界面的文本化系統配置,傳統的服務管理方式和不解決依賴的包管理**。
### 5.6 Ubuntu
Ubuntu 是一個以桌面應用為主的 Linux 操作系統,其名稱來自非洲南部祖魯語或豪薩語的 “ubuntu” 一詞,意思是 “人性”、“我的存在是因為大家的存在”,是非洲傳統的一種價值觀。**Ubuntu 基于 Debian 發行版和 Gnome 桌面環境,而從 11.04 版起,Ubuntu 發行版放棄了 Gnome 桌面環境,改為 Unity**。從前人們認為?**Linux 的難以安裝、難以使用,在 Ubuntu 出現后這些都成為了歷史**。**Ubuntu 也擁有龐大的社區力量,用戶可以方便地從社區獲得幫助**。
GNU 項目簡介
========
1\. GNU 項目簡介
------------
GNU 項目計劃最開始是在 1984 年由美國著名的黑客理查德?斯托曼(Richard Matthew Stallman)發起的,GNU 獲得了自由軟件基金會(FSF)的資金支持一直是 GNU 的主要資金來源,該項目主要是為了建立免費的開源的 UNIX 類系統,其基本原則是程序源代碼開放和軟件思想共享。
GNU/Linux 是一種常見的并且廣泛用于商業環境的**免費開源操作系統**。由于 GNU 將要實現 UNIX 類各系統的接口標準,因此?**GNU 計劃并不局限于 Linux 系統也可以開發其他不同的操作系統**。GNU 計劃大量采用了當時已經可自由使用的軟件,例如 OpenOffice 排版系統和 X-Window 圖形界面系統等。**不過隨著 GNU 計劃的發展和壯大也開發了大批其他的自由軟件**,這些軟件中的經典也被移植到其他操作系統平臺上,例如 NC 工具就被移植到 Microsoft Windows、BSD 家族、Solaris 及 MacOS。
為了確保 GNU 系列軟件可以真正地自由地 “使用、復制、修改和發布”,**所有 GNU 軟件都包含有一份在禁止其他人添加任何限制的情況下,授權所有權利給任何人的協議框架**,GNU 通用公共許可證協議(GNU General Public License,GPL)。這個就是被大家稱為**公共版權**的含義。GNU 也針對不同場合,提供?**GNU 寬通用公共許可證**與?**GNU 自由文檔許可證**這兩種協議條款以便適用不同的使用場合。
2\. GNU 的特點
-----------
GNU/Linux 將可以兼容并能夠執行 UNIX 標準的程序,但是不會和 UNIX 系統完全一模一樣,最大的不同是?**GNU 計劃擁有支持長文件名、版本號、一個健壯穩定文件系統**,在某些情況下還有自動文件名補全、與使用終端無關的顯示支持、可能最后還要有一個基于 x-windows 的視窗系統,以使好幾個系統程序和普通的 UNIX 應用程序能共享同一屏幕。
C 語言將成為系統的程序語言。并且會想辦法支持 UUCP,MIT Chaosnet,及 Internet 的通訊交流協議。?**GNU 最初的目標是在有虛擬內存的 68000/16000 等系列機器上開發,因為這樣的環境是最容易開發程序來實現 GNU 的運行**。剩下來讓 GNU 能在其它較小的機器上運行的工作,將會留給那些希望能在這些機器上使用的人。
GNU 不是公共的,毫無約束的軟件(public domain)。**GNU 計劃允許每一個人修改及傳播 GNU,但是絕不允許傳播者對他傳播的程序再加進其他的限制**。也就是說,不允許將修改后的程序據為己有。**GNU 計劃希望能確保 GNU 所有的版本都能保持自由**,所以 GNU 的核心精神是自由與分享,這和真正的 Hacker 精神有異曲同工之妙,雖不能說 GNU 精神就是 Hacker 精神,不過很難把兩者清楚的分開,**實際上很多 Hacker 都為 GNU 做出了巨大的貢獻。對知識的渴求是支持他們探索的唯一動力**。當然這里的 Hacker 黑客不是那些破壞計算機系統牟取私利而臭名昭著的駭客。
3\. 發展歷程
--------
* 1985 年,著名美國黑客理查德?斯托曼創立了 GNU 項目計劃。 1985 年,同年查德?斯托曼創立了自由軟件基金會(Free Software Foundation)來為 GNU 計劃提供技術、法律以及資金支持。盡管 GNU 計劃大部分時候是由大家自愿無償貢獻的,但 FSF 還是會聘請程序員幫助編寫。當 GNU 計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之后被 Red Hat 紅帽兼并的 Cygnus Solutions。
* 1990 年,成熟的 GNU 計劃已經開發出的軟件包括了一個功能強大的文字編輯器 Emacs、C 語言編譯器 GCC 以及大部分 UNIX 系統的程序庫和工具。唯一依然沒有完成的重要組件,就是操作系統的內核。
* **1991 年**,**Linux 之父林納斯?托瓦茲編寫出了與 UNIX 兼容的 Linux 操作系統內核并在 GPL 條款下發布。Linux 之后在網上廣泛流傳,許多程序員參與了開發與修改**。
* **1992 年,林納斯的 Linux 與其他 GNU 軟件開始結合,完全自由的 Linux 操作系統正式誕生**。該操作系統往往被稱為 “GNU/Linux” 或簡稱 Linux。許多 UNIX 系統上也安裝了 GNU 軟件,因為 GNU 軟件的質量比之前 UNIX 的軟件還要好。GNU 工具還被廣泛地移植到 Windows 和蘋果 Mac OS 上。
* 現在,GNU 項目計劃十幾年以來已經成為一個對軟件開發主要的影響力量,創造了無數的重要的工具,例如:編譯器,文本編輯器,甚至一個全功能的操作系統。這個工程是從 1984 年麻省理工學院的程序員理查德?斯托曼的想法得來的,他想要創建一個自由的和 UNIX 類似的操作環境。從那時開始,許多程序員聚集起來開始開發一個自由的、高質量、易理解的軟件。
本課程的學習基礎
------------
* 對計算機網絡有基本的認識。
* 會在指定的網址上下載軟件包。
- Linux簡介
- 安裝Linux系統
- 虛擬機網絡配置
- ssh終端軟件介紹
- sshd服務詳解
- ls命令查看文件和目錄
- cd命令路徑操作
- 創建文件和目錄
- rm刪除文件和目錄
- cp命令:復制文件或目錄
- mv移動文件和目錄
- 文件壓縮與解壓
- 文件和目錄重命名
- find查找文件和目錄
- 查看文件內容
- grep命令:文本搜索
- curl命令:文件傳輸工具
- wget命令:下載網絡文件
- scp命令:文件上傳下載
- rsync命令:遠程數據同步工具
- top命令:系統運行狀態
- ifconfig命令:網絡相關
- yum命令-紅帽系統軟件包管理
- apt命令:debian系統軟件包管理
- vim編輯器
- nano編輯器
- Linux查看進程
- Linux 結束進程
- Linux磁盤空間
- Linux中的環境變量
- 查看環境變量
- 配置環境變量
- Linux用戶介紹
- Linux添加用戶
- Linux刪除用戶
- Linux修改用戶
- 用戶組介紹
- 添加用戶組
- 修改用戶組
- 刪除用戶組
- Linux文件權限介紹
- 修改文件權限
- 修改文件所屬關系
- 文件系統介紹
- 日志文件系統
- 修改服務器時間
- crontab詳解
- shell編程-shell介紹
- shell編程-變量和字符串
- shell編程-shell腳本的參數
- shell編程-流程控制
- shell編程-循環
- shell編程-數組
- shell編程-運算符
- shell編程-echo命令
- shell編程-printf命令
- shell編程-test命令
- shell編程-函數
- shell編程-輸出重定向
- shell編程-文件包含
- shell編程-sed
- shell編程-awk
- shell編程-常用命令補充
- shell編程實戰-拉git代碼
- 源碼安裝Nginx
- 安裝Apache
- 安裝Redis
- Docker介紹
- Docker基礎
- Docker鏡像
- Docker容器
- Docker容器互聯
- Docker 安裝 Nginx
- 阿里云域名介紹
- 阿里云域名解析
- 阿里云域名備案
- 阿里云服務器ECS上
- 阿里云服務器ECS下
- 阿里云之域名ssl證書
- AWS服務介紹
- AWS之EC2
- AWS之VPC
- AWS之Route53
- AWS之RDS
- AWS之S3
- AWS之SSL
- AWS之CloudWatch
- AWS之IAM
- AWS之WAF
- AWS之Lambda
- AWS之安全策略
- AWS認證證書