高薪全棧工程師必備 Linux 基礎
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核心,可以充分利用資源,在系統調優時有目標感。
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 應用
標準的Linux系統一般都有一套都有稱為應用程式的程式集,它包括文字編輯器、程式語言、X Window、Internet工具和資料庫等。
對於文字編輯而言,Emacs 和vim 各有千秋,通過外掛配合甚至可以作為IDE使用。 個人感覺,VIM 還應該是必備技能。vim的命令也很多,整理如下:
就應用的管理而言,ubuntu 需熟知apt命令,centos 則是yum命令。當然了,原始碼編譯安裝是必須的,makefile的寫法,configure/autoconfig/make 的用法要手到擒來才好。
來源:伯樂線上 - abel_cao
連結:http://blog.jobbole.com/106827/
雲端計算免費課程火熱開講中,5天運維經典課程免費學,會雲端計算的運維人才到底需要掌握哪些技術,未來前景發展怎麼樣?跟隨行業大咖一起剖根究底,點選文末“閱讀原文”或長按下方二維碼即可報名免費課程!抓住免費學習的機會,逆襲2019~~
PS:記得查收小編送你的免費大禮包呦~
福利 | 一萬多套PPT模板等你免費來拿!無條件領取!
免費送 | 1000多套簡歷模板免費拿,附贈簡歷製作教程!
免費領 | 《Shell指令碼 100例》電子書免費拿,運維必備乾貨~
▼▼點選【閱讀原文】,5天運維免費課程,開講在即!
相關文章
- PHP全棧工程師必備技能select2的使用PHP全棧工程師
- 全棧前端工程師必會的流,瞭解下。。。全棧前端工程師
- Linux運維工程師必備工具合集Linux運維工程師
- 怎麼做一名高薪前端工程師,必備哪些技術工具?高薪前端工程師
- 你想當全棧工程師嗎?全棧工程師
- [ 招聘 | 上海 ] 軟體工程師 / 全棧工程師 / 晶片設計工程師軟體工程工程師全棧晶片
- 前端&後端程式設計師必備的Linux基礎知識前端後端程式設計師Linux
- 怎麼做一名高薪前端工程師 需要必備哪些技術和工具高薪前端工程師
- 前端工程師必備資源前端工程師
- web前端工程師必備技能Web前端工程師
- 【引向】全棧開發工程師之路全棧工程師
- 全棧工程師學習路線全棧工程師
- 要不要做全棧工程師全棧工程師
- 程式猿必備的Linux基礎知識Linux
- typescript必備基礎TypeScript
- 2019前端工程師必備前端開發資源必備前端工程師
- 全棧工程師和架構師的區別全棧工程師架構
- 【杭州】【兼職】全棧開發工程師全棧工程師
- 2019年如何成為全棧工程師?全棧工程師
- 高薪崗位雲端計算面試題,雲端計算運維工程師必備高薪面試題運維工程師
- Python全棧指什麼?全棧工程師的意義是什麼?Python全棧工程師
- Web全棧工程師應該會什麼Web全棧工程師
- 軟體測試全棧工程師技能樹全棧工程師
- 迷茫的全棧工程師(我叫沈?兒)全棧工程師
- 全棧工程師的定義和價值全棧工程師
- 一文了解前端與全棧工程師!前端全棧工程師
- 全棧工程師為啥能夠逆襲?全棧工程師
- 為啥大公司只要全棧工程師?全棧工程師
- 成為Java全棧工程師的步驟Java全棧工程師
- 前後端必備Linux基礎知識大科普後端Linux
- Linux雲端計算-03_必備基礎命令Linux
- java全棧工程師:從java後端到全棧,高階電商全棧系統大課Java全棧工程師後端
- 運維工程師必備Linux常見安全策略與實踐運維工程師Linux
- Linux運維工程師必備的82個工具全集(上),速收!Linux運維工程師
- Linux運維工程師必備的82個工具全集(下),速收!Linux運維工程師
- 普通程式設計師該如何成為全棧工程師程式設計師全棧工程師
- [上海 -- EDA]招聘晶片設計工程師 | 全棧工程師 | 軟體工程師 // 年薪30W+起晶片工程師全棧軟體工程
- Ado.NET基礎必備