linux入門前奏

01. linux 簡介

1.1 從Unix談起

1965 年之前的時候,電腦並不像現在一樣普遍,它可不是一般人能碰的起的,除非是軍事或者學院的研究機構,而且當時大型主機至多能提供30臺終端(30個鍵盤、顯示器),連接一臺電腦。
爲了解決數量不夠用的問題
1965 年左後由 貝爾實驗室 加入了 麻省理工學院 以及 通用電氣 合作的計劃 —— 該計劃要建立一套 多使用者(multi-user)、多任務(multi-processor)、多層次(multi-level) 的 MULTICS 操作系統,想讓大型主機支持 300 臺終端。
1969 年前後這個項目進度緩慢,資金短缺,貝爾實驗室退出了研究。
1969 年從這個項目中退出的 Ken Thompson 當時在實驗室無聊時,爲了讓一臺空閒的電腦上能夠運行 “星際旅行(Space Travel)” 遊行,在 8 月份左右趁着其妻子探親的時間,用了 1 個月的時間,使用匯編寫出了 Unix 操作系統的原型。
1970 年,美國貝爾實驗室的 Ken Thompson,以 BCPL 語言爲基礎,設計出很簡單且很接近硬件的 B 語言(取BCPL的首字母),並且他用 B 語言 寫了第一個 UNIX 操作系統。
1971 年,同樣酷愛 “星際旅行(Space Travel)” 的 Dennis M.Ritchie 爲了能早點兒玩上游戲,加入了 Thompson 的開發項目,合作開發 UNIX,他的主要工作是改造 B 語言,因爲B 語言 的跨平臺性較差。
1972 年,Dennis M.Ritchie 在 B 語言 的基礎上最終設計出了一種新的語言,他取了 BCPL 的第二個字母作爲這種語言的名字,這就是 C 語言。
1973 年初,C 語言的主體完成,Thompson 和 Ritchie 迫不及待地開始用它完全重寫了現在大名鼎鼎的 Unix 操作系統。

1.2 C 語言

在把 UNIX 移植到其他類型的計算機上使用時,C 語言強大的移植性(Portability)在此顯現。
機器語言和彙編語言都不具有移植性,爲 x86 開發的程序,不可能在 Alpha,SPARC 和 ARM 等機器上運行。
而 C 語言程序則可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的 C 語言編譯器和庫,然後將 C 源代碼編譯、連接成目標二進制文件之後即可運行。

1.3 Linux

1991 年 林納斯(Linus) 就讀於赫爾辛基大學期間,對 Unix 產生濃厚興趣,嘗試着在Minix 上做一些開發工作。因爲 Minix 只是教學使用,因此功能並不強,林納斯 經常要用他的終端 仿真器(Terminal Emulator) 去訪問大學主機上的新聞組和郵件,爲了方便讀寫和下載文件,他自己編寫了磁盤驅動程序和文件系統,這些在後來成爲了 Linux 第一個內核的雛形,當時,他年僅 21 歲!林納斯利用GNU 的 bash 當做開發環境,gcc 當做編譯工具,編寫了 Linux 內核,一開始 Linux 並不能兼容 Unix。即 Unix 上跑的應用程序不能在 Linux 上跑,即應用程序與內核之間的接口不一致。一開始 Linux 只適用於 386,後來經過全世界的網友的幫助,最終能夠兼容多種硬件。林納斯(Linus)

02. Linux 內核及發行版

內核(kernel是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序,它提供了一個在裸設備與應用程序間的抽象層。
在這裏插入圖片描述
Linux 內核版本又分爲 穩定版和開發版,兩種版本是相互關聯,相互循環。
穩定版具有工業級強度,可以廣泛地應用和部署。新的穩定版相對於較舊的只是修正一些 bug 或加入一些新的驅動程序。
開發版由於要試驗各種解決方案,所以變化很快。
內核源碼網址:內核源碼網址鏈接
所有來自全世界的對 Linux 源碼的修改最終都會彙總到這個網站,由 Linus 領導的開源社區對其進行甄別和修改最終決定是否進入到 Linux 主線內核源碼中。
目前市面上較知名的發行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

03. Linux 應用領域

3.1 服務器領域

Linux 在服務器領域的應用是其重要分支。
Linux 免費、穩定、高效等特點在這裏得到了很好的體現。
早期因爲維護、運行等原因同樣受到了很大的限制。
近些年來 Linux 服務器市場得到了飛速的提升,尤其在一些高端領域尤爲廣泛。

3.2 嵌入式領域

近些年來 Linux 在嵌入式領域的應用得到了飛速的提高。
Linux 運行穩定、對網絡的良好支持性、低成本,且可以根據需要進行軟件裁剪,內核最小可以達到幾百 KB 等特點,使其近些年來在嵌入式領域的應用得到非常大的提高。
主要應用:機頂盒、數字電視、網絡電話、程控交換機、手機、PDA、等都是其應用領域,得到了 Google、三星、摩托羅拉、NEC 等公司的大力推廣。

3.3 個人桌面領域

此領域是傳統 Linux 應用最薄弱的環節。
傳統 Linux 由於界面簡單、操作複雜、應用軟件少的缺點,一直被 Windows 所壓制。
近些年來隨着 Ubuntu、Fedora 等優秀桌面環境的興起,同時各大硬件廠商對其支持的加大,Linux 在個人桌面領域的佔有率在逐漸的提高。

3.4 Linux vs Windows

目前國內 Linux 更多的是應用於服務器上,而桌面操作系統更多使用的是 Windows。主要區別如下:
在這裏插入圖片描述

04. 進入正題

4.1 理解Linux的文件目錄和結構

登錄系統後,在當前命令窗口下輸入命令:ls /
你會看到如下圖所示:
在這裏插入圖片描述
以下是對這些目錄的解釋:
1.bin:
bin是Binary的縮寫, 這個目錄存放着最經常使用的命令。
2.boot:
這裏存放的是啓動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
3.dev :
dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
4.etc:
這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。

5.home:
用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

6.lib
這個目錄裏存放着系統最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。

7.lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件。

8.media:
linux系統會自動識別一些設備,例如U盤、光驅等等,當識別後,linux會把識別的設備掛載到這個目錄下。
9.mnt:
系統提供該目錄是爲了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然後進入該目錄就可以查看光驅裏的內容了。
10.opt:
這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。

11.proc:
這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
這個目錄的內容不在硬盤上而是在內存裏,我們也可以直接修改裏面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:

**12.root:**系統管理員root的家目錄
**13./sbin、/usr/sbin、/usr/local/sbin:**放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能"查看"而不能設置和使用
**14./tmp:**一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下
**15./srv:**服務啓動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內
**16./usr:**應用程序存放目錄
**17.var:**放置系統執行過程中經常變化的文件
/var/log:隨時更改的日誌文件
/var/spool/mail:郵件存放的目錄
/var/run:程序或服務啓動後,其 PID 存放在該目錄下

4.2 常用 Linux 命令的基本使用

4.2.1 學習 Linux 終端命令的原因

Linux 剛面世時並沒有圖形界面,所有的操作全靠命令完成,如 磁盤操作、文件存取、目錄操作、進程管理、文件權限設定等。在職場中,大量的服務器維護工作都是在遠程通過 SSH 客戶端 來完成的,並沒有圖形界面,所有的維護工作都需要通過命令來完成。
在職場中,作爲後端程序員,必須要或多或少的掌握一些 Linux 常用的終端命令。
Linux 發行版本的命令大概有 200 多個,但是常用的命令只有一二十個而已。
學習終端命令的技巧:
不需要死記硬背,對於常用命令,用的多了,自然就記住了。
不要嘗試一次學會所有的命令,有些命令是非常不常用的,臨時遇到,臨時百度就可以。

4.2.2 常用 Linux 命令的基本使用

在這裏插入圖片描述
實用小技巧:

1.ctrl + shift + = 放大終端窗口的字體顯示.
2.ctrl + - 縮小終端窗口的字體顯示.
3.在敲出 文件/目錄/命令 的前幾個字母之後,按下 tab 鍵,如果輸入的沒有歧義,系統會自動補全,如果還存在其他 文件/目錄/命令,再按一下 tab 鍵,系統會提示可能存在的命令.
4.按 上/下 光標鍵可以在曾經使用過的命令之間來回切換。
5.如果想要退出選擇,並且不想執行當前選中的命令,可以按 ctrl + c。

4.2.3 Linux 終端命令格式

  1. 終端命令格式:command [-options] [parameter]
    說明:
    command:命令名,相應功能的英文單詞或單詞的縮寫;
    [ ] 代表可選;
    [-options]:選項,可用來對命令進行控制,也可以省略;
    parameter:傳給命令的參數,可以是 零個、一個 或者 多個。

4.2.4. 查閱命令幫助信息(知道)

1 --help
command --help
說明:顯示 command 命令的幫助信息。
2 man
man command
man 是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的命令、函數的詳細使用說明。
在這裏插入圖片描述
先寫到這裏,後期會繼續更新Linux相關基礎知識,學習在路上,一路走來,初心不改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章