破除迷思系列:用Command Line 的都是Hacker?
2018-11-13
大家如果有Programmer 的朋友,你應該早就發現他們使用的軟件與平常電腦使用者很不同,其中最引人注目的就是一個黑底淺色字、無任何圖案的軟件,而你的Programmer 朋友在上面飛速打字,然後密密麻麻的文字就慢慢向上褪出螢幕,大家總會忍唔住補上一句:「嘩!好似Matrix啊!」 或者「你係Hacker嚟架?」
https://www.indiewire.com/2017/10/the-matrix-code-digital-rain-meaning-1201891684/
這個軟件其實是Command Line Interface(命令列介面),,簡稱CLI。大家常用的界面是Graphical User Interface(圖形使用者介面),簡稱GUI。問題來了,為何時至2018年,在touchscreen都已經廣為使用的年代,programmers 還會使用CLI呢?
CLI同GUI 兩者本質上皆是為了向電腦下達命令,因而需要一個人機界面(Human-Computer-interface)而成的,CLI 出現年份較早,早於電腦出現初期已經發明。GUI 則約於上世紀八十年代開始廣泛使用。 使用難度方面,GUI 非常直覺好用:君不見現在五歲小孩用iphone比大人還熟手嗎?
https://www.guitricks.com/2015/07/how-to-download-or-get-windows-10.html
使用難度方面,CLI 則需要重新學習,很多我們的同學第一次使用CLI 都會有手足無措的感覺。但熟練的CLI使用者用起來卻如自然反應一樣。
箇中原因,其實在於GUI 其實是以圖案為基礎的使用者介面,CLI卻是以文字為基礎的使用者介面。 常言道:「一幅圖勝過千言萬語」,那麼使用GUI 一定比CLI方便敏捷吧? 其實不然。 圖案長於展示(Demonstration)的場合,拙於描述(Description)的場合; 相反文字長於描述,拙於展示。 試比較以下兩件事用文字或圖案的解答難度:
- 找出Tecky Academy 在香港地圖上的位置
- 由你的家往Tecky Academy 去,在Tecky Academy 上課兩小時,再完成兩個作業題目,六點正再由回家去
圖案解答
顯而易見的是,要解答 1.
,貼Google Map就可以了。
2.
則明顯困難得多,由你家往Tecky Academy 可以用路線代替,那如何要圖案表達「上課兩小時」呢? 就顯然不是那麼簡單了。
文字解答
相反文字在解答 1.
則是非常困難,可能要以在「有線電視大廈旁」等的提示才能準確表達海盛路11號到底是在那兒。 而2.
的解答,本身就是文
字啦。
GUI vs CLI
電腦方面亦有一樣的現象,要展示一個資料夾裏面有甚麼,使用檔案管理員的Tree view 就方便不過了。
但想像一下你有一堆檔案要重新改名,要由原本以tecky 開頭改為以teckyAcademy開頭
用GUI 的話,不使用額外的工具的話,需要逐一改名,有一百個檔案,就要自己改一百次。 但是使用CLI的話, 只需要打以下這段command 就一舉完成了。
find . -iname "tecky*" | awk -F'[/_]' '{print "mv",$1"/tecky_"$3,$1"/teckyAcademy_"$3}' | sh
當然大家如果未學過Command line的話,此段文字基本上是外星語言。但由描述的角度看,卻完全一步一步解釋了做甚麼:
- 找出所有以Tecky 開頭的檔案
- 將檔案名一一拆開,例如./tecky_1.txt 拆出 tecky ,然後將tecky 以teckyAcademy取代。
- 砌出很多句 改名的command,然後逐一運行。
總結
Programmer 工作中經常會遇到如上面一類大量描述的任務,如以GUI一一解決的話,除非安裝額外軟件,不然會相當費時失事。因此,很多Programmer都練就了一身良好的command line 技術,當遇到此類問題,自然迎刃而解。 而 Programming本身,每一行代碼也是對電腦描述想做的命令,因此就更需要大量的keyword或 method call 了。
講開又講, 雖然其實真正的Hacker都一定會是Command Line高手的,所以其實不知道你的programmer朋友是否真正的hacker 哦!
留言
閱讀更多
破除迷思系列:用Command Line 的都是Hacker?
2018-11-13
大家如果有Programmer 的朋友,你應該早就發現他們使用的軟件與平常電腦使用者很不同,其中最引人注目的就是一個黑底淺色字、無任何圖案的軟件,而你的Programmer 朋友在上面飛速打字,然後密密麻麻的文字就慢慢向上褪出螢幕,大家總會忍唔住補上一句:「嘩!好似Matrix啊!」 或者「你係Hacker嚟架?」
破除迷思系列:Programmer 做到三十歲就要轉行?
2018-11-15
有人看到這些故事,結論就是Programmer 做到30歲就好,要盡快升遷到不用再寫Code的位置,才會穩妥,不然一遇上經濟轉差,就會面臨裁員的可能性。其實不只香港,外國亦有人有類似看法,彷彿三十歲是一條無形死線。過了三十歲,還在前線寫Code,未來就會一片暗淡無光。
四個原因令Linux更適合作Server
2018-12-08
在Tecky Academy教學中,間中會有同學問:「點解唔用Microsoft Windows做Server?用Linux有咩好處?」 誠然,於消費者電腦(不計算智能電話) 市場中,Windows有七成市佔率,Mac佔了一成,Linux只有可憐的一個百分比。為何在伺服器的市場上,卻是反而Linux占有約六成,擁有最大的市場份額呢?