全棧必備Linux基礎

2022-04-05 16:24:39 字數 2700 閱讀 4885

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系統能支援多種目前流行的檔案系統,推薦用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 程式設計了。shell,perl和python 是linux 上最常用的指令碼語言,我還是推薦使用python。

標準的linux系統一般都有一套都有稱為應用程式的程式集,它包括文字編輯器、程式語言、x window、internet工具和資料庫等。

就應用的管理而言,ubantu 需熟知apt命令,centos 則是yum命令。當然了,源**編譯安裝是必須的,makefile的寫法,configure/autoconfig/make 的用法要手到擒來才好。

全棧必備Linux 基礎

linux 幾乎無處不在,不論是伺服器構建,還是客戶端開發,作業系統的基礎技能對全棧來說都是必備的。linux發行版本可以大體分為兩類,一類是商業公司維護的發行版本,一類是社群組織維護的發行版本,前者以著名的redhat rhel 為代表,後者以debian為代表。redhat,應該稱為redhat...

全棧工程師必備開發利器

團隊協作軟體 筆記備忘 遠端 思維導圖與原型設計 mindmanager mockplus 更快 更簡單的原型設計 svngit 學習資源 git 與 svn 區別 git託管平台 碼雲 國內比較大的git託管平台。碼雲專為開發者提供穩定 高效 安全的雲端軟體開發協作平台。無論是個人 團隊 或是企業...

前端必備Linux基礎

利用 cmder ssh root 192.168.x.x第一次登入 記得儲存指紋檔案 代表 home目錄 之前是當前登入使用者名稱 之後是伺服器名字 作業系統核心提供的api 排程 程序和執行緒 乙個程序裡面至少有乙個執行緒 非對稱加密 生成金鑰對ssh keygen t rsa c 你自己的名字...