當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]RTOS與Linux的物聯(lián)網(wǎng)設(shè)備操作系統(tǒng)之爭已經(jīng)持續(xù)了很多年。Linux以其強(qiáng)大的計(jì)算能力和豐富的軟件生態(tài),在需要復(fù)雜處理和軟件支持的物聯(lián)網(wǎng)設(shè)備上占據(jù)一席之地;RTOS憑借實(shí)時(shí)響應(yīng)和資源節(jié)約的特性,在對(duì)實(shí)時(shí)性和資源占用有嚴(yán)格要求的場景中獨(dú)領(lǐng)風(fēng)騷。

你知道哪個(gè)操作系統(tǒng)是世界上最受歡迎的操作系統(tǒng)嗎?是Linux!它一般運(yùn)行于服務(wù)器和超級(jí)計(jì)算機(jī)上,我們?nèi)粘TL問網(wǎng)站背后的數(shù)百萬臺(tái)服務(wù)器很有可能運(yùn)行著的操作系統(tǒng)就是Linux。在本文中,我們將學(xué)習(xí)Linux是什么以及它來自何處,常用的Linux知識(shí)以及想要在這個(gè)令人興奮的平臺(tái)上暢游所需的命令。

RTOS與Linux的物聯(lián)網(wǎng)設(shè)備操作系統(tǒng)之爭已經(jīng)持續(xù)了很多年。Linux以其強(qiáng)大的計(jì)算能力和豐富的軟件生態(tài),在需要復(fù)雜處理和軟件支持的物聯(lián)網(wǎng)設(shè)備上占據(jù)一席之地;RTOS憑借實(shí)時(shí)響應(yīng)和資源節(jié)約的特性,在對(duì)實(shí)時(shí)性和資源占用有嚴(yán)格要求的場景中獨(dú)領(lǐng)風(fēng)騷。

一、什么是Linux?

就像Windows或Apple的mac OS一樣,Linux也是一個(gè)操作系統(tǒng)。操作系統(tǒng)是管理計(jì)算機(jī)中不同設(shè)備和應(yīng)用程序軟件的集合。舉例來說,其中的部分軟件負(fù)責(zé)著關(guān)閉、啟動(dòng)計(jì)算機(jī),有些軟件提供與鍵盤和鼠標(biāo)等設(shè)備交互界面等功能。

學(xué)習(xí)使用Linux系統(tǒng)是熟悉命令行的絕佳機(jī)會(huì),命令行是與計(jì)算機(jī)進(jìn)行通信的最明確的方式。此外,當(dāng)你嘗試不同的項(xiàng)目時(shí),你將會(huì)學(xué)習(xí)軟件倉庫,程序包管理,文件權(quán)限,用戶管理等更多信息。如果你有使用npm和GitHub的經(jīng)驗(yàn),那么程序包管理和軟件倉庫可能是你已經(jīng)熟悉的概念。

二、為什么Linux如此流行?

Linux在企業(yè)計(jì)算,大數(shù)據(jù)和科學(xué)(聯(lián)想下超級(jí)計(jì)算機(jī))世界中獨(dú)樹一幟。主要原因如下

Linux是免費(fèi)的。你不需要為使用Linux而付費(fèi),你可以自由查看,編輯和分發(fā)源代碼。當(dāng)你購買裝有Windows或macOS的計(jì)算機(jī)時(shí),這些操作系統(tǒng)的費(fèi)用其實(shí)已包含在價(jià)格中。

Linux是靈活的。Linux被用于許多不同類型的計(jì)算機(jī)中,包括智能烤面包機(jī)和冰箱,其他物聯(lián)網(wǎng)設(shè)備,互聯(lián)網(wǎng)路由器,Android智能手機(jī)等,簡直不勝枚舉。你現(xiàn)在可以立即在筆記本電腦或臺(tái)式機(jī)上安裝Linux,而無需進(jìn)行任何設(shè)置即可啟動(dòng)和運(yùn)行!這種靈活性之所以成為可能,是因?yàn)長inux操作系統(tǒng)被設(shè)計(jì)為既可以簡單地完成一項(xiàng)工作又能使用功能更完善的工具來完成工作。你可以組裝一個(gè)適用于你的設(shè)備并針對(duì)你的需求進(jìn)行過優(yōu)化的Linux版本。

三、Unix哲學(xué)

Linux是一個(gè)“類Unix”操作系統(tǒng),這意味著它的大部分功能派生自Unix操作系統(tǒng),并且通常遵循Unix的設(shè)計(jì)原則。理想的Unix程序是簡單,模塊化和可擴(kuò)展的。Unix程序確實(shí)能很好地完成一些任務(wù),并且被設(shè)計(jì)為可以與其他程序很好地協(xié)同工作,而不必依賴太多其他程序。該系統(tǒng)通過利用程序的協(xié)作而變得強(qiáng)大,而不是因?yàn)槌绦虮旧沓?jí)強(qiáng)大。

關(guān)于Linux,我最喜歡的一點(diǎn)是一切都是文件。你在終端中運(yùn)行的命令和程序被抽象成文件。用來快速打開自己喜歡的應(yīng)用程序的桌面圖標(biāo)也被抽象成文件。系統(tǒng)檢查應(yīng)用程序更新的代碼庫如何處理?當(dāng)然也是寫在文件里。所有可能導(dǎo)致混亂的都可以用文件解決。Linux就是這么透明、富有動(dòng)力和優(yōu)雅。你可以想象一下,你可以隨心設(shè)置自己的Linux安裝程序,同時(shí)擁有對(duì)系統(tǒng)的完全控制權(quán),只要你想要的,完全甩掉你不想要的,這非常酷炫!

這些原則如實(shí)地說明了Linux的靈活性。怪不得它被用于許多應(yīng)用中。

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

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

/ 這是根目錄(文件夾),文件系統(tǒng)樹(數(shù)據(jù)結(jié)構(gòu))的根

/bin 包含二進(jìn)制文件,系統(tǒng)啟動(dòng)需要的可執(zhí)行程序

/boot 包含機(jī)器啟動(dòng)時(shí)所需的內(nèi)核和文件

/dev包含設(shè)備節(jié)點(diǎn),與連接到計(jì)算機(jī)的物理設(shè)備一起使用的指令/接口

/etc包含系統(tǒng)范圍的配置文件(發(fā)音為etsy),大型軟件包(如gtk,python,X11)一般也在此處存儲(chǔ)配置文件。

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

/lib 包含啟動(dòng)計(jì)算機(jī)的核心程序所必需的共享庫

/lost+found 包含由于系統(tǒng)崩潰或驅(qū)動(dòng)器錯(cuò)誤而放錯(cuò)位置的數(shù)據(jù)

/media 包含用于USB,CD和DVD等媒體設(shè)備的安裝點(diǎn)

/mnt 是臨時(shí)文件系統(tǒng)的掛載點(diǎn)(例如用來安裝系統(tǒng)的內(nèi)容)

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

/proc 包含與內(nèi)核和正在運(yùn)行的進(jìn)程有關(guān)的文件

/tmp 包含在執(zhí)行程序時(shí)可能創(chuàng)建的臨時(shí)文件

/usr包含一個(gè)次要的只讀系統(tǒng)樹,用于與某些程序共享或用于安裝在其他Linux系統(tǒng)上。上面存在許多目錄也存在這里,并包含一些其他文件

/var 包含隨時(shí)間變化其大小發(fā)生變化的文件,例如日志和備份

如果你經(jīng)常使用Linux,可能偶爾會(huì)覺得需要在某個(gè)奇怪的目錄中編輯或?qū)懭胛募?。我希望?dāng)你知道這些目錄名稱的通常含義后可以對(duì)你有所幫助!

五、命令行基礎(chǔ)

之前我說過“與Linux機(jī)器通信的最明確的方法是命令行”,我是認(rèn)真的。接下來,讓我們開始學(xué)習(xí)一些基本的命令行或終端命令,這些命令將使你開始熟悉系統(tǒng)。如果你當(dāng)前使用圖形用戶界面進(jìn)行開發(fā),當(dāng)你熟悉命令行后,你可能會(huì)發(fā)現(xiàn)從終端執(zhí)行操作會(huì)更加快捷和安全。

你和終端之間有一個(gè)名為shell(可以理解為操作系統(tǒng)內(nèi)核外圍的殼)的程序。Shell是解釋文本命令并將其發(fā)送到操作系統(tǒng)以執(zhí)行的程序。最常見的shell程序是Bash,大多數(shù)Linux發(fā)行版中都包含該程序。對(duì)于macOS用戶來說,Apple最近將macOS的Shell程序切換為zsh。macOS實(shí)際上也是一個(gè)類似Unix的操作系統(tǒng)。當(dāng)然你也可以隨意更改shell!

六、終端命令的結(jié)構(gòu)

因?yàn)槲恼乱呀?jīng)論述的夠多了,所以我不會(huì)在這篇文章中分享太多命令,要注意的是學(xué)習(xí)模式更為重要。通常,終端命令遵循非常相似且可預(yù)測(cè)的結(jié)構(gòu):

program_name [--optional flags] [optional arguments]

標(biāo)志(flag)可以出現(xiàn)在參數(shù)之后,并且通??s短到一個(gè)字母和一個(gè)破折號(hào),例如-f。標(biāo)志是更改程序行為方式的選項(xiàng)。比如-h或者--help是常用的幫助性質(zhì)的標(biāo)志,程序收到該標(biāo)志后會(huì)提供給你哪些標(biāo)志可供使用的信息。

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

你可以從系統(tǒng)中任何目錄調(diào)用程序,也可以將系統(tǒng)中任何目錄的文件用作參數(shù)。你可以這么做的原因是你可以在Linux中使用相對(duì)或絕對(duì)路徑來命名文件。相對(duì)路徑是相對(duì)于當(dāng)前目錄的,你可以使用.表示當(dāng)前目錄(下文會(huì)詳述)。絕對(duì)路徑從系統(tǒng)根目錄/開始,你需要指明每一級(jí)的目錄以獲取所需的文件。

七、命令索引

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

cd將目錄更改為你指定的參數(shù)(changes directory)。如果不提供任何參數(shù),則默認(rèn)進(jìn)入用戶目錄,你也可以在路徑中使用~進(jìn)行跳轉(zhuǎn)。.和.. 分別代表當(dāng)前目錄和父目錄,并且也是cd命令的有效的參數(shù)。

ls列出指定參數(shù)目錄中的文件(list),默認(rèn)參數(shù)為當(dāng)前目錄,即.。該-a標(biāo)志可以非常方便地查看隱藏文件。在linux中,你可以通過以.開頭的文件名稱來隱藏文件以減少混亂,示例如.gitignore。

ls-a ~/Documents

八、文件操作

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

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

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

mv fun-letter.txt hilarious-letter.txt

其含義就是將其移動(dòng)到名為新名稱的位置

cp在指定目錄中復(fù)制文件(copy)。使用-r標(biāo)志遞歸復(fù)制目錄,就像使用mv重命名文件一樣,你可以使用類似的方法來重命名文件和目錄。

mkdir創(chuàng)建新目錄,其中新目錄名稱作為參數(shù)。你還可以使用-p標(biāo)志在尚不存在的目錄下建立新目錄。

mkdir-p code/web-stuff/html notes

touch 創(chuàng)建新文件,其中文件名稱作為參數(shù) 。

你很快就會(huì)發(fā)現(xiàn)自己想要做更復(fù)雜的事情,因此請(qǐng)閱讀這些命令的更多信息并保留備忘單。

九、日常使用的Linux

我不會(huì)說2020年將是Linux在臺(tái)式機(jī)世界的元年,但我要分享的是,有許多Linux發(fā)行版已經(jīng)能夠做到開箱即用,我們可以使用非常簡單的方法進(jìn)行安裝。如果你被Shell的功能所吸引,或者擔(dān)心使用其他操作系統(tǒng)帶來的隱私泄露風(fēng)險(xiǎn),或者只是喜歡黑客攻擊等技術(shù),那么Linux很適合你。作為開發(fā)人員,這也是一個(gè)很棒的平臺(tái),因?yàn)樗窃诳紤]其他開發(fā)人員的情況下制作的。Linux發(fā)行版(例如Ubuntu,Linux Mint和Fedora)可以快速啟動(dòng)并運(yùn)行。這些發(fā)行版背后有著龐大的社區(qū)支持,社區(qū)成員很愿意幫助他人。我最后想提醒的是,記住備份所有重要的文件!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉