面向初學者的 Linux 編程資源

Linux.org 主頁

Linux 是在許多平台上使用的開源操作系統 (OS)。 它在服務器和超級計算機上很普遍。 但是,Linux 用途廣泛,可以在台式機、筆記本電腦、嵌入式設備、移動設備等設備上運行。 

該操作系統由 Linus Torvalds 首次推出,自 1991 年以來一直存在。它是其他系統的免費替代品,如 Unix的MINIX. 如今,多年來出現了許多不同風格的 Linux。 這些包括 紅帽企業 Linux (RHEL), Debian的, Ubuntu的, Gentoo的,還有更多的。

了解 Linux

當您聽到 Linux 一詞時,它可能會讓人聯想到一個留著長發和一件寫著“Linux 是我的宗教”的 T 恤的怪胎。 好吧,如果你想成為一名程序員或計算機科學家,那可能就是你。

如今,Linux 背後沒有單一的創造者或設計者。 相反,它是一個開源操作系統,由不同的程序員隨著時間的推移而修改和發布。 這個生態系統與微軟嚴格控制的 Windows 操作系統形成鮮明對比。

Linux 編程的基本概念

Linux 的所有發行版都圍繞內核進行。 內核是操作系統的核心,就像道路的基礎。 然而,雖然內核很重要,但您需要額外的軟件才能使其有用。 該軟件被稱為“覆蓋”。

Linux 內核包含一組命令和程序,可讓您從命令行控制設備。 Linux 命令的一些示例包括:

  • 打壞 – 大多數 Linux 發行版的默認 shell(命令界面)。
  • grep的 - 用於在文本文件中搜索模式的實用程序。
  • 須藤 – 前言操作系統應以管理員身份運行的命令。

多年來,大多數 Linux 命令都沒有太大變化。 雖然在不同的 Linux 發行版上存在一些變化,但大多數在概念上是相似的。 Linux 社區在包容性方面也享有盛譽,因此初學者很容易找到其他可以幫助他們學習編碼的人。

Linux 中的腳本

學習在 Linux 中編寫腳本對於任何系統管理員、開發人員或軟件工程師來說都是必不可少的。 這是自動化重複性任務並使您的生活更輕鬆的唯一方法。 然而,雖然您可以使用 Linux 腳本來自動執行任務,但必須了解它們都沒有真正的編程語言強大。

Linux shell 是一個命令行解釋器,使您能夠連續運行一個或多個命令。 它就像一種基本的編程語言,允許您創建 shell 腳本。 

Shell 腳本是包含命令列表的純文本文件。 您可以在任何文本編輯器中編寫這些腳本,例如 VIM or 納米, 然後通過將文件名作為參數傳遞給 shell 來執行它們。 當您運行腳本時,它將按順序執行每一行,就好像您在命令提示符下輸入了這些行一樣。

以下是 Linux 命令和腳本的一些初學者基礎知識;

  • Hackr.io 提供了前 25 名的列表 基本 Linux 命令 適合初學者。
  • 學習殼牌 提供了簡單的 Linux shell 教程,甚至提供了一個界面供您測試所掌握的技能。
  • 有關 shell 腳本的更全面的會議,請加入 學習 Bash 腳本 領英課程。

為什麼選擇 Linux 進行編程?

您可能想知道學習 Linux 編程的意義何在。 畢竟,您可以使用許多其他應用程序來構建您的應用程序。 首先要注意的是,Linux 是免費的開源軟件。 這使得任何人都可以免費獲得它。

除此之外,Linux 及其應用程序的特性使其在特定行業或用例中佔據重要空間。

Linux 支持許多不同的語言,因此如果您已經熟悉一種語言但想要額外的挑戰,那麼切換可能是正確的選擇。 其中一些語言具有相似的根源,因此進行轉換可能相對輕鬆。

此外,現在有一些工具,如 Docker 容器,開發人員可以使用他們想要的任何語言編寫代碼,而不管系統本身是否支持它。

備註: Linux 編程可能意味著不同的東西。 例如,您可以選擇在 Linux 內核上工作、創建內核模塊或構建基於 Linux 的應用程序。

Linux內核開發

Linux 內核是 Linux 操作系統的核心組件,它處理系統的所有任務。 它還處理輸入/輸出 (I/O) 請求、與硬盤驅動器和網卡等設備的通信、文件系統訪問、內存管理、進程調度等。

內核充當計算機上運行的應用程序和它們用來完成工作的硬件之間的中介。 它為這些不同部分之間的通信提供了一個接口,使它們能夠順利地協同工作。

開發 Linux 內核模塊

內核模塊是一種可以在運行時加載和卸載的內核擴展。 它們由執行特定任務的自包含代碼片段組成,例如訪問硬件設備或實現網絡協議。

一般來說,Linux內核模塊有兩類:靜態編譯和動態鏈接。 

在前一種情況下,模塊在從源代碼構建時被編譯到內核映像中; 在後一種情況下(與大多數應用程序一樣),僅包含一個目標文件作為內核構建過程的一部分。 但是,您必須針對給定版本的 Linux 編譯這兩種 應用程序二進制接口 (ABI) 正常工作。

為 Linux 開發應用程序

Linux 因其靈活性和可擴展性而成為開發應用程序的絕佳平台。 它適用於多種平台,例如台式機、筆記本電腦和服務器。 因此,如果您有一個想法或正在研究需要跨所有系統的可移植性,這是您最好的選擇。

Linux 在安全性和穩定性方面也是開發應用程序的絕佳平台。 它配備了高質量的開源軟件 (OSS),確保在基於 Linux 的系統(如 Android 手機和平板電腦或 Raspberry Pi 板)上運行時,很少有錯誤潛入您的程序。

Linux 編程職業 

大多數共享主機服務都由 Linux 服務器提供支持 – 包含 TMD Hosting.

由於它的流行,Linux 編程中有很多工作。 在某些行業和應用中,它是事實上的標準。 例如,大多數服務器將在 Linux 上運行。 但是,您是否知道即使是移動設備也高度依賴 Linux 作為基礎?

Linux 程序員在航空航天和國防、汽車、政府、金融、醫療保健等許多利基行業也至關重要。

如果您正在考慮從事 Linux 編程工作,這裡有一些可用的網站;

確實 – 該工作聚合網站涵蓋全球範圍內的安置職位。 您可以在許多公司找到合同、自由職業或全職職位。 您會找到專業的 Linux 角色,例如內核開發人員、JNet 程序員、DevOps 工程師,甚至是 Linux 服務器工程師。

骰子 – 該招聘平台偏向於IT行業,Linux程序員可以選擇的職位很多。 您可以加入尋找 Linux 軟件工程師、嵌入式 Linux 開發人員、Python/Perl 程序員等的公司。

Linux基金會 – 鐵桿 Linux 愛好者可以嘗試在 Linux 基金會申請工作。 他們一直在尋找有才華的人,目前需要首席軟件工程師、數據工程師、安全研究人員等。 對於 Linux 愛好者,還有相當多的非編程角色可供選擇。

Linux 和 Linux 編程資源

有許多資源可供您獲得幫助或了解有關 Linux、各種兼容編程語言的更多信息,甚至與社區成員討論問題。 這些可以涵蓋廣泛的範圍;

下載 Linux 發行版

Linux 文檔和新聞

  • Linux 文檔項目 致力於為 GNU 操作系統提供高質量的文檔。 它旨在幫助用戶在 GNU/Linux 或其任何變體(例如 BSD)下設置和維護他們的計算機。 
  • Linux 週報 (LWN) 是一份周刊,重點關注與自由軟件項目相關的主題,例如內核、實用程序、設備驅動程序等。 它涵蓋了從開發人員的角度構建和維護 Linux 項目的所有方面。
  • 9to5 Linux 是一個關於 Linux 的相對較新的博客。 它帶來了所有與 Linux 相關的最新更新,從發行版更新到 Linux 特定工具。

Linux 社區和論壇

正式的 Linux 和 Linux 編程課程

  • Udemy – 在這裡,您會發現許多特定於 Linux 的課程,包括 Python、Perl 等多種編程語言。 課程採用視頻格式,可按需提供,包括作業和結業證書。
  • Coursera – 與 Udemy 一樣,Coursera 為各種 Linux 弟子提供全面的學習課程。 您可以學習從 Linux 基礎知識到 Linux 私有云管理的所有內容。
  • EDX – 也許是最正式的學習選擇,edX 將來自 160 多所成員大學的課程整合到一個平台上。 著名的名字包括麻省理工學院、哈佛大學和波士頓大學。 您可以在 edX 上找到從專業證書到碩士學位的所有內容。

結論

編程是一種超越平台的技能,所以你對編程了解的越多越好。 當今使用的許多最流行的編程語言都是用於 Linux 的——其中許多是開源的。

當您可以將其置於上下文中並查看它解決了哪些問題時,學習編程的基礎知識通常更易於管理。 上面的許多資源都包括有關使用新獲得的知識的教程。

學習任何編程語言的最好方法是自己動手。 一開始你會犯錯誤,但隨著時間和練習,你的技能會提高。

閱讀更多

作者照片

Timothy Shim 的文章