iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 1
1
Software Development

Gosh!原來用 Go 寫一個 Unix Shell 這麼簡單系列 第 1

Day01-系列文介紹、規劃

前言

哈囉大家好我是 Larry,這是我第二次參加鐵人賽了,我去年的主題是用 Go 寫一個通用的釣魚網站,比較偏 Go(Golang) 在網路方面的應用;今年則是要用 Go 寫一個 Shell,算是 Go 在系統方面的應用

目標

雖然這一系列會專注在 Shell 的實作上,最終做出一個真的可以用的 Shell,但目的並不是要做出一個超越古今、驚天地、泣鬼神的 Shell,而是希望讀者在跟著我實作的過程中認識 Shell 是怎麼運作的、學習 Linux 系統中 Process、Signal、Standard IO 等等重要觀念,同時也更了解 Go 這個程式語言

這系列文章適合哪些人

  • 用過 zshfish,想知道 Shell 到底幹了什麼的人

    我相信應該大多數人都用過 bash 以外的 Shell(如果沒有,建議你用用看 zsh,真的會發現新世界XD),但你知道那些強大的功能是怎麼做出來的嗎?不知道的話也沒關係,跟著文章做一次就知道了~

  • 有寫過 Go,想知道怎麼用 Go 寫系統應用的人

    Go 被譽為 21 世紀的 C 語言不是沒有原因的,除了效能接近 C/C++ 之外,Go 對於系統 API 的操作能力也是相當強,一起來看看怎麼用 Go 寫系統應用吧

  • 什麼都不懂XD,但很願意花時間學習 Go 跟 Linux 的人

    你什麼都不懂也沒關係,只要有一顆願意學習的心就沒有什麼是學不會的。俗話說「萬事起頭難」,雖然這一系列不會從頭開始教 Go 語法,但會附很多參考資料讓你讀,如果真的還是看不懂的話可以在文章底下留言,我會盡力解答你的問題~

文章規劃

整個系列文大概會分成這幾個部分,最終會完成一個堪用的 Shell 並且發佈出去

  • Shell 原理

    簡單介紹一下 Shell 的原理,讓你知道你的指令是怎麼被執行的,Shell 跟終端機的又分別扮演什麼角色

  • 實作基本功能

    根據前一部分說到的原理,把執行指令、切換資料夾、錯誤處理等等基本功能實作出來

  • 實作進階功能

    幫 Shell 加上一些進階功能,譬如說加上顏色、設定快捷鍵、顯示 git status 等等

  • 發佈

    把做好的 shell 發佈到 Homebrew 上,讓全世界都可以安裝我寫的 Shell(??請問誰想裝)

小結

沒問題的話明天就要正式開始了,希望大家會喜歡這個系列,如果對於內容有任何問題、或是覺得哪裡講解不夠清楚,也很歡迎各位在留言區跟我說,我會參考大家的建議進行調整,謝謝大家


下一篇
Day02-Shell 是什麼?
系列文
Gosh!原來用 Go 寫一個 Unix Shell 這麼簡單30

尚未有邦友留言

立即登入留言