導讀 | Linux 幾乎無所不在,不論是伺服器構建,還是客戶端開發,作業系統的基礎技能對全端來說都是必備的。 |
Linux發行版本可以大致分為兩類,一類是商業公司維護的發行版本,一類是社區組織維護的發行版本,前者以著名的Redhat(RHEL)為代表,後者以Debian為代表。
Redhat,應該稱為Redhat系列,包括RHEL、Fedora、CentOS(RHEL的社群複製版本,免費)。 Ubuntu嚴格來說不能算一個獨立的發行版本,Ubuntu是基於Debian加強而來,一個擁有Debian所有的優點,以及自己所加強的優點的近乎完美的Linux桌面系統。 Ubuntu社群認為實用性和創新性高於一切。
如果你需要一個比較穩定的伺服器系統而已,那麼最好的選擇就是CentOS了,安裝完成後,經過簡單的設定就能提供非常穩定的服務了。但對雲端環境而言,unbantu也許不錯,hadoop最早就是在ubantu上開發的。
體系結構了解體系結構,可以有較好的方向感。 Linux 有kernel和user兩種模式,核心、shell和檔案系統一起形成了基本的作業系統結構,Linux 核心由以下幾部分組成:記憶體管理、進程管理、裝置驅動程式、檔案系統和網路管理等。
了解linux內核,可以充分利用資源,在系統調優時有目標感。
Linux 將記憶體劃分為容易處理的“記憶體頁”,提供了 4KB 緩衝區的抽象,例如 slab 分配器。進程實際上是某特定應用程式的一個運行實體,進程調度控制進程對CPU的存取。 Linux 中常見的進程間通訊機制有訊號、管道、共享記憶體、訊號量和套接字等。核心透過 SCI 提供了一個API來創建一個新進程(fork、exec 或 POSⅨ),停止進程(kill、exit),並在它們之間進行通訊和同步(signal 或 POSⅨ 機制)。
Linux 作業系統將獨立的檔案系統組合成了一個層次化的樹狀結構,並且由一個單獨的實體代表這個檔案系統。由於Linux 支援許多不同的檔案系統,並且將它們組織成了一個統一的虛擬檔案系統.裝置驅動程式提供一組作業系統可理解的抽象介面完成和作業系統之間的交互,而與硬體相關的具體操作細節由裝置驅動程式完成。 Linux核心的網路部分由BSD套接字、網路協定層和網路裝置驅動程式所組成。網路設備驅動程式負責與硬體設備通訊,每種可能的硬體設備都有相應的設備驅動程式。
linux 檔案系統Linux系統能支援多種目前流行的檔案系統,推薦用EXT4。
Linux下面的檔案類型主要有:
1) 普通文件,分為純文字和二進位。
2) 目錄文件,儲存文件的地方。
3) 連結文件,指向同一個文件或目錄的文件。
4) 設備文件,分為區塊設備和字元設備。
5)管道文件,提供進程間通訊
6)套接字文件,與網路通訊有關
Linux使用標準的目錄結構,安裝程式就已經為使用者建立了檔案系統和完整而固定的目錄組成形式,並指定了每個目錄的作用和其中的檔案類型。
目錄名 | 簡要說明 |
---|---|
/bin | 二進位可執行指令 |
/dev | 設備特殊檔案 |
/etc | 系統管理和設定檔 |
/etc/rc.d | 啟動的設定檔和腳本 |
/home | 使用者主目錄的基點,例如使用者abc的主目錄就是/home/user,可以用~abc表示 |
/lib | 標準程式設計庫 |
/sbin | 系統管理指令,這裡存放的是系統管理員使用的管理程式 |
/tmp | 公用的暫存檔案點 |
/root | 系統管理員的主目錄 |
/mnt | 系統提供這個目錄是讓使用者暫時掛載其他的檔案系統。 |
/lost found | 這個目錄平常是空的,系統非正常關機而留下「無家可歸」的檔案 |
/proc | 虛擬的目錄,是系統記憶體的映射。可直接存取這個目錄來取得系統資訊。 |
/var | 某些大檔案的溢出區,比方說各種服務的日誌檔案 |
/usr | 最龐大的目錄,要用到的應用程式和檔案幾乎都在這個目錄。其中包含: /usr/X11R6 存放X window的目錄 /usr/bin 眾多的應用程式 /usr/sbin 超級使用者的一些管理程式 /usr/doc linux文檔 /usr/include linux下開發和編譯應用程式所需的頭檔 /usr/lib 常用的動態連結函式庫和軟體包的設定檔 /usr/man 幫助文件 /usr/src 原始碼,linux核心的原始碼就放在/usr/src/linux裡 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的函式庫 |
shell是系統的使用者介面,提供了使用者與核心互動操作的一種介面。它接收使用者輸入的命令並把它送入內核去執行,是一個命令解釋器。 shell 有很多類型,這裡推薦BASH。 BASH是GNU的Bourne Again Shell,是GNU作業系統上預設的shell,大部分linux的發行套件使用的都是這種shell。 Linux Shell 及指令
Linux 的指令很多,下面給了一個簡單的分類。
在shell 組織linux 的指令來完成一系列的任務,就是shell 程式設計了。 Shell,Perl和Python 是Linux 上最常用的腳本語言,我還是推薦使用Python。
標準的Linux系統一般都有一套都有一個稱為應用程式的組件,它包括文字編輯器、程式語言、X Window、Internet工具和資料庫等。
對於文字編輯而言,Emacs 和vim 各有千秋,透過插件配合甚至可以作為IDE使用。個人感覺,VIM 還應該是必備技能。 vim的命令也很多,整理如下:
就應用程式的管理而言,ubuntu需熟知apt指令,centos是yum指令。當然了,原始碼編譯安裝是必須的,makefile的寫法,configure/autoconfig/make 的用法要手到擒來才好。
以上是Linux 基礎:全端開發者的必備的詳細內容。更多資訊請關注PHP中文網其他相關文章!