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

更新 發佈閱讀 10 分鐘

電影《駭客任務》中,人們生活在由電腦創造的虛擬世界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中的<F12> to Boot Menu 就提示我們按F12 鍵。

raw-image


按下F12 鍵後,可以看到如圖2所示的啟動選項選單。

raw-image

選擇“Removable Device”並按確認鍵後,就進入了YUMI 的系統選項選

單,如圖3所示。

raw-image

選擇“Linux Distributions”選項,按確認鍵後進入Linux 發行版本選項選

單,如圖4所示。

raw-image

選擇“linuxmint-20-cinnamon-64bit”並按確認鍵,Linux Mint 就啟動了!用同樣的方法下載其他發行版本的ISO 檔案,透過YUMI 安裝到隨身碟裡,你就擁有了一個Linux 發行版本合集。例如圖4 就包含了Linux Mint 19、Linux Mint 20、CentOS 8.2 等5 個不同類型、不同版本的發行版本體驗系統。

驗證硬體相容性

如果Mint 啟動過程沒有發生例外,你會看到如圖5所示的桌面環境。

raw-image

是不是很酷?它的使用方法和Windows 類似。點擊左下角的開始按鈕,選擇有興趣的應用執行一下,最重要的當然是瀏覽器Firefox、互動列Terminal 以及檔案瀏覽器Files,其他的還有相當於微軟Office 的辦公套件LibreOffice、相當於Windows 控制台System Settings 等。盡可以隨意開啟體驗一下,所有應用都與後面正式安裝的Linux Mint 完全一樣,可以確保你的使用體驗流暢順滑。

前面提到使用體驗系統的好處是快速靈活,其實還有一個重要原因:驗證硬體相容性。當我們在一台電腦上安裝並啟動作業系統後,之所以能使用電腦上的各種實體裝置,例如螢幕、鍵盤、觸控板、網路卡、音效卡,透過USB 通訊埠連接各種外部裝置,是因為作業系統的核心管理著這些裝置的驅動程式,每種裝置都可能來自不同的生產商,每個生產商會提供自己的驅動程式供作業系統使用。在理想的世界裡,每種作業系統都包含所有裝置的驅動程式,在任何電腦上安裝任何作業系統後,都能正確地載入驅動程式並管理這些裝置。

看完了以上的教學,是否對互動列有更深一層的瞭解了呢?

raw-image

本文節錄自深智數位出版之《你終究要學會Linux Shell指令完整使用精解》

留言
avatar-img
留言分享你的想法!
avatar-img
深智數位的沙龍
10會員
25內容數
深智數位的沙龍的其他內容
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/08/02
在機器學習中,我們的目標是找到一種能夠最好地描述數據的模型。例如,在迴歸問題中,我們希望找到一種函數,該函數能以一種對我們的目標變數(例如:銷售量、股票價格等) 的最佳估計的方式,描述輸入特徵(例如:廣告支出、市場狀況等)。
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/07/21
  在程式設計中,變數(Variable)是一個代表內存位置的符號,用於存儲和操作數據。它是一個內存單元,可以存儲各種類型的數據,例如整數、浮點數、字符串等。變數的值可以在程式執行時改變,並在需要時被讀取。 變數是暫時存放資料用的,可以將變數想像成是一個箱子,箱子裡面可以是空的,
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
2023/05/17
新手在使用ChatGPT 時,對於ChatGPT的回答普遍印象是廢話連篇,而這通常是因為沒有給出足夠清晰的指示所導致,以下將介紹3個讓你跟ChatGPT溝通更有效的提示技巧,幫助讀者快速掌握提升回答品質的秘訣!
Thumbnail
看更多
你可能也想看
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
如果實在找不到可用的替代軟體,或者就是要用指定的軟體不可,那麼虛擬機器可以作為在使用Linux時的一個應對方案。
Thumbnail
如果實在找不到可用的替代軟體,或者就是要用指定的軟體不可,那麼虛擬機器可以作為在使用Linux時的一個應對方案。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
Thumbnail
與電腦溝通之方法說明 不須使用任何程式軟體工具,能與電腦溝通,使用Command line執行後,將依自己設定之條件,直接將結果選出,提供後續運用
Thumbnail
前言 很多人電腦使用久了,沒有整理,桌面會非常雜亂,這一個雜亂會在你不知不覺中,消磨掉你的時間。今天我會教你用“密語”重新定義你的桌面。 Demo影片 先附上影片,讓各位看看極簡桌面效果如何 接下來,讓我一步一步開始教你怎麼操作: 第一步 建立一個存放資料夾(路徑隨意,在此以桌面為例),名字依你喜好
Thumbnail
前言 很多人電腦使用久了,沒有整理,桌面會非常雜亂,這一個雜亂會在你不知不覺中,消磨掉你的時間。今天我會教你用“密語”重新定義你的桌面。 Demo影片 先附上影片,讓各位看看極簡桌面效果如何 接下來,讓我一步一步開始教你怎麼操作: 第一步 建立一個存放資料夾(路徑隨意,在此以桌面為例),名字依你喜好
Thumbnail
這一篇文章將會從Microsoft的.NET Class Library開始介紹,在介紹具狀態和不具狀態,以及物件和new關鍵字。
Thumbnail
這一篇文章將會從Microsoft的.NET Class Library開始介紹,在介紹具狀態和不具狀態,以及物件和new關鍵字。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News