【深智書摘】開闢鴻蒙:從零架設互動列環境

閱讀時間約 9 分鐘
電影《駭客任務》中,人們生活在由電腦創造的虛擬世界Matrix 裡,這是個時尚光鮮、賞心悅目的現代化大都市,人們在這裡辛勤工作、努力奮鬥,上演自己的人生故事;而在真實世界,他們渾身插滿管子躺在吊艙中,靠營養液維持生命。少數人從吊艙中醒來,發現身處由機器控制的大工廠,人只是為機器提供能源的電池。這些醒來的人中,有些人選擇回到Matrix,忘掉真實世界,另一部分人則努力擺脫被機器控制的命運,奪回在陽光下自由生活的權利。
隨著資訊技術的快速發展,我們的資訊媒介從電報升級到電話,再升級到文字、語音、視訊流暢傳輸的網際網路,Matrix 與真實世界的差距越來越小—人們被外表可愛、使用貼心的各種應用包圍著,在演算法的悉心“照料”下,聽“想聽”的話、看“想看”的劇,沉浸在“作為世界主宰者”的感覺裡。
但這終究不是生活的全部,總有那麼一些時刻,我們希望能夠從塑膠感十足的“烏托邦”中抽身而出,回到真實世界,雖然辛苦,卻更有意義。
互動列就是我們從Matrix 回到真實世界的那部電話。它不是一張單程票,我們仍然可以繼續使用那些熟悉的圖形化使用者介面應用,它只是提供了對於未來的另一種選擇,或說一種更本質、更優雅的解決方案。對於數位世界的消費者,它外表古怪不討人喜歡,而對於真實世界中的創造者和探索者,它卻是日常工作不可或缺的可靠夥伴。
為什麼要學習互動列?
我們平時使用的“應用”大多是圖形化使用者介面應用*(以下簡稱“圖形應用”),例如我們在手機、Windows 筆記型電腦上用的聊天、購物、遊戲、音樂應用;偶爾你還會注意到一些人透過鍵盤在“黑色的視窗”裡輸入字元執行程式,這個黑色的視窗我們習慣上叫它“互動列”(command line,或console),那些執行在裡面的程式就叫“互動列介面應用”(以下簡稱“互動列應用”)。如果你覺得前面的Matrix 雖然很酷,但有點摸不著頭腦,那麼接下來,我們就分三點簡單直白地說說與圖形應用相比,互動列應用的主要特點。

學習曲線雖然先陡後平,但是掌握新工具的綜合成本很低

圖形應用用來娛樂和購物確實很方便,作為開發工具呢,一開始也是很方便的,但圖形化的展示方式和開發模式,導致不同應用之間協作工作的難度很大,使用者常常為了分析資料學習Excel,為了做Web 後端開發學習在PyCharm 裡寫Django 程式,為了開發Java 程式學習Eclipse、IntelliJ,為了管理程式學習Sourcetree⋯⋯好吧,那我們就拼命一個一個地學習,可是當我們終於熟悉了這些應用之後,發現大家又在用Python做資料分析,用VS Code 寫Java 程式了,之前學的Excel 幫不上忙不說,又冒出來個Anaconda 要學習⋯⋯工具層出不窮,跟著走學不勝學,不跟著走又怕落伍。互動列應用正好相反,一開始需要花點時間熟悉它的套路,一旦掌握之後你就會發現:所有互動列應用的使用方法基本一樣—一通百通,掌握新工具的成本接近於零。
* 編按:”圖形化使用者介面”的英文為 graphical user interface(GUI)。對於圖形化使用者介面應用,使用者使用圖形與之進行互動。“互動行介面”的英文為 command-lineinterface(CLI)。對於互動列介面應用,使用者使用文字互動與之進行互動

功能強大效率高,硬體設定要求低

一個互動列應用就像一塊積木,可以方便地與其他互動列應用組合在一起,進而完成高度複雜的工作。這就像只要掌握26 個字母,就可以組合出近乎無限的單字。
你輸入的每行指令都可以儲存到檔案裡,變成指令稿自動執行,還能透過自動補全功能將重複工作幾乎減少到零。
相較於互動列如此豐富、自動化的應用,它卻幾乎沒有“啟動”這個概念,按下確認鍵立刻開始工作。即使執行Windows、macOS 卡頓的老舊電腦,也能在互動列的世界裡重返青春。
開放原始碼、免費、開放
絕大多數互動列應用是開發者為了解決自己遇到的問題而撰寫的,而非專門為“使用者”開發的,因為這一點,互動列應用的豐富程度遠高於圖形應用。而且互動列應用多採用開放原始碼方式分發,免費使用。如果你對實現原理有興趣,可以方便地閱讀、偵錯程式,還可以提出問題,與作者互動,甚至傳送自己的改進,成為貢獻者(contributor)—像那些科學家、藝術大師一樣,在人類技術發展的長河裡留下自己的名字。
道理我都懂,但所以要怎麼架設互動列呢?
所有作業系統,不論是伺服器、個人電腦上執行的Windows、macOS、Linux,還是行動裝置上的Android、iOS 等,都能執行互動列,但不同系統上執行的方便程度、應用的選擇範圍有很大差別。其中Linux 系統由於功能強大、執行穩定、自由開放等特點,在伺服器和個人電腦上變得越來越流行,行動裝置上的Android 系統也使用了它的核心,所以我們使用Linux 作為主要示範環境。
嘗試Linux 系統的最佳方法是在一台舊電腦上安裝全新的Linux 發行版本,不必擔心電腦太舊、硬體規格太低無法執行,Linux 系統對硬體的要求非常低。
(1) 製作Linux 體驗隨身碟:用一台安裝Windows 系統的電腦將一個容量不小於8GB 的隨身碟做成體驗隨身碟。
(2) 用體驗隨身碟啟動待安裝Linux 系統的電腦,進入體驗系統。
(3) 驗證硬體相容性。
(4) 安裝正式的Linux 系統。
你看,這個過程並不複雜。下面我們就從製作Linux 體驗隨身碟開始。
製作Linux體驗隨身碟
大多數情況下,電腦啟動時從硬碟上載入作業系統。不過當我們想要試用新系統時,先把它安裝到硬碟上會比較麻煩,比較好的方法是把系統安裝到隨身碟上,讓電腦啟動時從隨身碟上載入系統,進入系統後,對各方面測試都滿意了再將其安裝到硬碟。這種安裝在隨身碟上的作業系統叫作“體驗隨身碟”(live USB)。製作體驗隨身碟的工具很多,本書使用YUMI 作為製作工具,它可以在一個隨身碟上安裝多個Linux 發行版本、Windows 或其他工具,而不必為每個發行版本準備一個隨身碟。
啟動Linux 體驗系統
現在我們有了一個能啟動Linux Mint 系統的隨身碟,接下來要做的是選擇一台執行體驗系統的電腦,既可以是剛才製作體驗系統的那台(安裝雙系統),也可以找一台幾年前購買的、已經不能流暢執行Windows 10、扔在角落裡吃灰的老舊機器。(是的,Linux 可以讓你的老夥計重新運轉如飛!)
怎麼讓電腦啟動時不載入硬碟上的作業系統,而是從隨身碟載入呢?理想情況下,把隨身碟插到電腦USB 通訊埠並按下電源鍵後,電腦會發現這個能作為開機磁碟的隨身碟的存在,並出現一個交談視窗:請問是否需要從隨身碟啟動系統?
你可能會覺得電腦哪有這麼聰明,其實大多數電腦具備這個功能,只不過需要手動開啟:在電腦剛啟動後,根據螢幕上的提示,按下開啟“啟動選單”(boot menu)的某個鍵,例如圖1中的 to Boot Menu 就提示我們按F12 鍵。
圖1 啟動介面上提示按F12鍵進入啟動選單
按下F12 鍵後,可以看到如圖2所示的啟動選項選單。
圖2 在啟動選單裡選擇啟動裝置
選擇“Removable Device”並按確認鍵後,就進入了YUMI 的系統選項選
單,如圖3所示。
圖3 YUMI 的系統選項選單
選擇“Linux Distributions”選項,按確認鍵後進入Linux 發行版本選項選
單,如圖4所示。
圖4 YUMI 的Linux 發行版本選項選單
選擇“linuxmint-20-cinnamon-64bit”並按確認鍵,Linux Mint 就啟動了!用同樣的方法下載其他發行版本的ISO 檔案,透過YUMI 安裝到隨身碟裡,你就擁有了一個Linux 發行版本合集。例如圖4 就包含了Linux Mint 19、Linux Mint 20、CentOS 8.2 等5 個不同類型、不同版本的發行版本體驗系統。
驗證硬體相容性
如果Mint 啟動過程沒有發生例外,你會看到如圖5所示的桌面環境。
圖5 Cinnamon 桌面環境
是不是很酷?它的使用方法和Windows 類似。點擊左下角的開始按鈕,選擇有興趣的應用執行一下,最重要的當然是瀏覽器Firefox、互動列Terminal 以及檔案瀏覽器Files,其他的還有相當於微軟Office 的辦公套件LibreOffice、相當於Windows 控制台System Settings 等。盡可以隨意開啟體驗一下,所有應用都與後面正式安裝的Linux Mint 完全一樣,可以確保你的使用體驗流暢順滑。
前面提到使用體驗系統的好處是快速靈活,其實還有一個重要原因:驗證硬體相容性。當我們在一台電腦上安裝並啟動作業系統後,之所以能使用電腦上的各種實體裝置,例如螢幕、鍵盤、觸控板、網路卡、音效卡,透過USB 通訊埠連接各種外部裝置,是因為作業系統的核心管理著這些裝置的驅動程式,每種裝置都可能來自不同的生產商,每個生產商會提供自己的驅動程式供作業系統使用。在理想的世界裡,每種作業系統都包含所有裝置的驅動程式,在任何電腦上安裝任何作業系統後,都能正確地載入驅動程式並管理這些裝置。
看完了以上的教學,是否對互動列有更深一層的瞭解了呢?
《你終究要學會Linux - Shell指令完整使用精解》/ 李超 王曉晨 著
為什麼會看到廣告
avatar-img
9會員
25內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
如果你所有東西都可以變成你的任何東西,那會怎麼樣? 你的電腦有能力做無限多的事情。因為你的電腦已經是「可程式物質」,可執行任何程式、顯示任何圖片、發出任何聲音,連接設備等。
程式語言在特定環境下就是魔法 現實世界也應該要有非大眾可以理解的規則與金手指才對 #因為架構太完整,這篇噗浪有用匿名發過 #故事取用前請簡單告知
Thumbnail
腦機連結技術是一種可以讓人類與電腦進行直接交互的技術,而遠端體感操控則是指使用者可以透過感應器來控制遠端的裝置。 如果將這兩種技術結合起來,就可以實現遠端體感操控的鋼鐵人了。 這種技術可以應用在很多領域,例如醫療、娛樂、運動等等。不過,目前這種技術還處於發展階段,需要更多的研究和實驗才能夠實現。
Thumbnail
如果實在找不到可用的替代軟體,或者就是要用指定的軟體不可,那麼虛擬機器可以作為在使用Linux時的一個應對方案。
在不需要認識01010就可以創造出網頁、網際網路、遊戲、應用程式的時代裡 下個時代可以不需要學程式碼就可以創造出「新文明」之建設條件,會是什麼? 本喵覺得,就是像01010轉變成程式碼那樣的"包裝技術" 以本喵的認知,只知道是模組化、容器化這類的內容有機會達到 每樣事物都是一個個的模
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
Thumbnail
電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
Thumbnail
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
如果你所有東西都可以變成你的任何東西,那會怎麼樣? 你的電腦有能力做無限多的事情。因為你的電腦已經是「可程式物質」,可執行任何程式、顯示任何圖片、發出任何聲音,連接設備等。
程式語言在特定環境下就是魔法 現實世界也應該要有非大眾可以理解的規則與金手指才對 #因為架構太完整,這篇噗浪有用匿名發過 #故事取用前請簡單告知
Thumbnail
腦機連結技術是一種可以讓人類與電腦進行直接交互的技術,而遠端體感操控則是指使用者可以透過感應器來控制遠端的裝置。 如果將這兩種技術結合起來,就可以實現遠端體感操控的鋼鐵人了。 這種技術可以應用在很多領域,例如醫療、娛樂、運動等等。不過,目前這種技術還處於發展階段,需要更多的研究和實驗才能夠實現。
Thumbnail
如果實在找不到可用的替代軟體,或者就是要用指定的軟體不可,那麼虛擬機器可以作為在使用Linux時的一個應對方案。
在不需要認識01010就可以創造出網頁、網際網路、遊戲、應用程式的時代裡 下個時代可以不需要學程式碼就可以創造出「新文明」之建設條件,會是什麼? 本喵覺得,就是像01010轉變成程式碼那樣的"包裝技術" 以本喵的認知,只知道是模組化、容器化這類的內容有機會達到 每樣事物都是一個個的模
※ 介面是什麼: 介面:人跟電腦互相溝通的管道。 使用者與電腦互相溝通的方式稱為使用者的介面。 ※ 使用者的介面類型: 文字使用者介面:CUI。使用純鍵盤來下指令溝通,對象是伺服器(SERVER)。 圖型使用者介面:GUI。使用圖像去做點擊或拖拉的方式。 ※ 命令列(Command li
Thumbnail
電腦的運作需要仰賴許多的硬體與軟體,統稱電腦系統 (computer system)。這篇文章會概略地介紹電腦系統中的重要角色,以及它們如何相互合作,來完成複雜的工作,比如說讓無所事事的宅宅如我,假日可以躲在房間玩一整天的遊戲。 電腦、程式、與使用者 說到電腦,你的腦中會浮現什麼呢? 是螢幕
Thumbnail
電腦只做一件事情: 運算。 我們所看到的任何酷酷的應用: 不論是網頁動畫、遊戲特效、甚至是 AI 說的話,全部都 是由電腦的運算結果組合而成的。 首先我們來梳理一下各個名詞之間的關聯: 1. 運算分成兩個部分: 運算子 (運算的名稱,如: 加法) 和運算元 (運算的對象,如: 8)。運算就是對資