Linux 爲何會流行?它和普通的RTOS有何區別?

關注、星標公衆,不錯過精彩內容

作者:arvin

轉載:CSDN(ID:CSDNnews)

知道哪個操作系統是世界上最受歡迎的操作系統嗎?是Linux!它一般運行於服務器和超級計算機上,我們日常訪問網站背後的數百萬臺服務器很有可能運行着的操作系統就是Linux。在本文中,我們將學習Linux是什麼以及它來自何處,常用的Linux知識以及想要在這個令人興奮的平臺上暢遊所需的命令。

一、什麼是Linux?

就像WindowsApplemac OS一樣,Linux也是一個操作系統。操作系統是管理計算機中不同設備和應用程序軟件的集合。舉例來說,其中的部分軟件負責着關閉、啓動計算機,有些軟件提供與鍵盤和鼠標等設備交互界面等功能。

學習使用Linux系統是熟悉命令行的絕佳機會,命令行是與計算機進行通信的最明確的方式。此外,當你嘗試不同的項目時,你將會學習軟件倉庫,程序包管理,文件權限,用戶管理等更多信息。如果你有使用npmGitHub的經驗,那麼程序包管理和軟件倉庫可能是你已經熟悉的概念。

二、爲什麼Linux如此流行?

Linux在企業計算,大數據和科學(聯想下超級計算機)世界中獨樹一幟。主要原因如下

  • Linux是免費的。你不需要爲使用Linux而付費,你可以自由查看,編輯和分發源代碼。當你購買裝有Windows或macOS的計算機時,這些操作系統的費用其實已包含在價格中。

  • Linux是靈活的。Linux被用於許多不同類型的計算機中,包括智能烤麪包機和冰箱,其他物聯網設備,互聯網路由器,Android智能手機等,簡直不勝枚舉。你現在可以立即在筆記本電腦或臺式機上安裝Linux,而無需進行任何設置即可啓動和運行!這種靈活性之所以成爲可能,是因爲Linux操作系統被設計爲既可以簡單地完成一項工作又能使用功能更完善的工具來完成工作。你可以組裝一個適用於你的設備並針對你的需求進行過優化的Linux版本。

三、Unix哲學

Linux是一個“類Unix”操作系統,這意味着它的大部分功能派生自Unix操作系統,並且通常遵循Unix的設計原則。理想的Unix程序是簡單,模塊化和可擴展的。Unix程序確實能很好地完成一些任務,並且被設計爲可以與其他程序很好地協同工作,而不必依賴太多其他程序。該系統通過利用程序的協作而變得強大,而不是因爲程序本身超級強大。

關於Linux,我最喜歡的一點是一切都是文件。你在終端中運行的命令和程序被抽象成文件。用來快速打開自己喜歡的應用程序的桌面圖標也被抽象成文件。系統檢查應用程序更新的代碼庫如何處理?當然也是寫在文件裏。所有可能導致混亂的都可以用文件解決。Linux就是這麼透明、富有動力和優雅。你可以想象一下,你可以隨心設置自己的Linux安裝程序,同時擁有對系統的完全控制權,只要你想要的,完全甩掉你不想要的,這非常酷炫!

這些原則如實地說明了Linux的靈活性。怪不得它被用於許多應用中。

四、一切都是文件,文件是一切的最終歸宿

接下來,我將向你展示Linux中的典型系統樹或文件系統層次結構。你可以在我的其他文章中(https://dev.to/emtes/learning-data-structures-trees-2p5g)閱讀有關樹狀數據結構的更多信息。如果你要在自己的Linux系統上進行操作,你的目錄可能跟我的不完全一樣,可能具有更多或更少的目錄。如果你想詳細瞭解這些目錄(文件夾),請在Linux終端中敲入man hier並運行該命令來閱讀手冊。我個人的習慣是,將喜歡的搜索引擎放在附近,以隨時查找我不知道含義的新名稱。

/ 這是根目錄(文件夾),文件系統樹(數據結構????)的根

/bin 包含二進制文件,系統啓動需要的可執行程序

/boot 包含機器啓動時所需的內核和文件

/dev包含設備節點,與連接到計算機的物理設備一起使用的指令/接口

/etc包含系統範圍的配置文件(發音爲etsy),大型軟件包(如gtk,python,X11)一般也在此處存儲配置文件。

/home 包含系統用戶的目錄(每個用戶的下載,圖片等)

/lib 包含啓動計算機的核心程序所必需的共享庫

/lost+found 包含由於系統崩潰或驅動器錯誤而放錯位置的數據

/media 包含用於USB,CD和DVD等媒體設備的安裝點

/mnt 是臨時文件系統的掛載點(例如用來安裝系統的內容)

/opt包含程序的其他程序包。在我的機器中,Google Chrome和Minecraft Launcher將文件保存在此處。

/proc 包含與內核和正在運行的進程有關的文件

/tmp 包含在執行程序時可能創建的臨時文件

/usr包含一個次要的只讀系統樹,用於與某些程序共享或用於安裝在其他Linux系統上。上面存在許多目錄也存在這裏,幷包含一些其他文件

/var 包含隨時間變化其大小發生變化的文件,例如日誌和備份

如果你經常使用Linux,可能偶爾會覺得需要在某個奇怪的目錄中編輯或寫入文件。我希望當你知道這些目錄名稱的通常含義後可以對你有所幫助!

五、命令行基礎

之前我說過“與Linux機器通信的最明確的方法是命令行”,我是認真的。接下來,讓我們開始學習一些基本的命令行或終端命令,這些命令將使你開始熟悉系統。如果你當前使用圖形用戶界面進行開發,當你熟悉命令行後,你可能會發現從終端執行操作會更加快捷和安全。

你和終端之間有一個名爲shell(可以理解爲操作系統內核外圍的殼)的程序。Shell是解釋文本命令並將其發送到操作系統以執行的程序。最常見的shell程序是Bash,大多數Linux發行版中都包含該程序。對於macOS用戶來說,Apple最近將macOS的Shell程序切換爲zsh。macOS實際上也是一個類似Unix的操作系統。當然你也可以隨意更改shell!

六、終端命令的結構

因爲文章已經論述的夠多了,所以我不會在這篇文章中分享太多命令,要注意的是學習模式更爲重要。通常,終端命令遵循非常相似且可預測的結構:

program_name [--optional flags] [optional arguments]

標誌(flag)可以出現在參數之後,並且通常縮短到一個字母和一個破折號,例如-f。標誌是更改程序行爲方式的選項。比如-h或者--help是常用的幫助性質的標誌,程序收到該標誌後會提供給你哪些標誌可供使用的信息。

參數通常是文件,但也可以是字符串和數字。

你可以從系統中任何目錄調用程序,也可以將系統中任何目錄的文件用作參數。你可以這麼做的原因是你可以在Linux中使用相對或絕對路徑來命名文件。相對路徑是相對於當前目錄的,你可以使用.表示當前目錄(下文會詳述)。絕對路徑從系統根目錄/開始,你需要指明每一級的目錄以獲取所需的文件。

七、命令索引

  • pwd 打印你當前所在的目錄(print working directory,即打印工作目錄)

  • cd將目錄更改爲你指定的參數(changes directory)。如果不提供任何參數,則默認進入用戶目錄,你也可以在路徑中使用~進行跳轉。.和.. 分別代表當前目錄和父目錄,並且也是cd命令的有效的參數。

  • ls列出指定參數目錄中的文件(list),默認參數爲當前目錄,即.。該-a標誌可以非常方便地查看隱藏文件。在linux中,你可以通過以.開頭的文件名稱來隱藏文件以減少混亂,示例如.gitignore。

ls -a ~/Documents

八、文件操作

  • mv 將文件或目錄移動到你指定的目錄(move)。

mv fun-letter.text ~/Documents/letters/

你還可以使用mv重命名文件和目錄:

mv fun-letter.txt hilarious-letter.txt

其含義就是將其移動到名爲新名稱的位置

  • cp在指定目錄中複製文件(copy)。使用-r標誌遞歸複製目錄,就像使用mv重命名文件一樣,你可以使用類似的方法來重命名文件和目錄。

  • mkdir創建新目錄,其中新目錄名稱作爲參數。你還可以使用-p標誌在尚不存在的目錄下建立新目錄。

mkdir -p code/web-stuff/html notes
  • touch 創建新文件,其中文件名稱作爲參數

你很快就會發現自己想要做更復雜的事情,因此請閱讀這些命令的更多信息並保留備忘單????。

九、日常使用的Linux

我不會說2020年將是Linux在臺式機世界的元年,但我要分享的是,有許多Linux發行版已經能夠做到開箱即用,我們可以使用非常簡單的方法進行安裝。如果你被Shell的功能所吸引,或者擔心使用其他操作系統帶來的隱私泄露風險,或者只是喜歡黑客攻擊等技術,那麼Linux很適合你。作爲開發人員,這也是一個很棒的平臺,因爲它是在考慮其他開發人員的情況下製作的。Linux發行版(例如Ubuntu,Linux Mint和Fedora)可以快速啓動並運行。這些發行版背後有着龐大的社區支持,社區成員很願意幫助他人。我最後想提醒的是,記住備份所有重要的文件!

免責聲明:本文來源CSDN,版權歸原作者所有。如涉及作品版權問題,請與我聯繫刪除。

推薦閱讀:

嵌入式軟件測試的10條祕訣

如何減少編碼、測試和調試三個階段的bug?

IAR進軍Linux,支持在Linux搭建編譯環境

關注微信公衆號『strongerHuang』,後臺回覆“1024”查看更多內容,回覆“加羣”按規則加入技術交流羣。

長按前往圖中包含的公衆號關注

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