iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

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

雖然大家都說不要重複造輪子,但這一系列偏偏要反其道而行!希望大家在從無到有實作出 Shell 的過程中,理解作業系統 Process、Standard IO、Signal 等等概念,同時也更了解 Go 語言能做到哪些事。不管你是想了解 Shell 原理、想更了解 Linux、還是想學 Go 都歡迎來看看這系列~

鐵人鍊成 | 共 30 篇文章 | 34 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day11-存取環境變數(二)

前言 昨天已經實作完 取(get) 環境變數的部分,今天來談談怎麼 存(set) 環境變數,也就是設置環境變數 export and unset 在 Linux...

DAY 12

Day12-alias 指令別名(一)

前言 常常有人問我說用 command line 下指令的方式到底比用滑鼠操作 GUI(Graphical User Interface) 圖形介面 好在哪裡,...

DAY 13

Day13-alias 指令別名(二)

前言 在 Day10 跟 Day11 中我們使用了 Go 提供的 os.Setenv 、 os.Unsetenv 跟 os.ExpandEnv 完成存取環境變數...

DAY 14

Day14-alias 指令別名(三)

前言 昨天跟前天已經寫好三個實用的 function,分別是 setAlias、unsetAlias 跟 expandAlias,今日目標是要用它們來完成 al...

DAY 15

Day15-alias 指令別名(四)

前言 今天是 alias 的最後一天,前兩天都寫了超多程式碼,今天的內容來點比較輕鬆的 不知道各位有沒有過這種困擾:如果我先把 ls 設定成 ls -l 的別名...

DAY 16

Day16-which 指令在哪兒

前言 不知道大家還記不記得有一個指令叫做 which,它可以用來找某個指令在哪裡,譬如說 which ls 可以找到 ls 是放在 /bin/ls 但如果是...

DAY 17

Day17-wildcard 萬用字元(一)

前言 接下來這兩天來講講 Linux 中的 Wildcard(萬用字元),在 Linux 裡面如果想要把目前資料夾下 .png 結尾的檔案都刪掉,或是要列出所有...

DAY 18

Day18-wildcard 萬用字元(二)

前言 昨天完成了 expandPattern 用來把 pattern 轉換成檔名字串,譬如說 expandPattern("m??go")...

DAY 19

Day19-.goshrc 設定檔(一)

前言 我們在 Day12 到 Day15 花了四天的篇幅把 alias 講完,但不知道大家有沒有想到,因為 alias 是記錄在 Shell 的 Alias T...

DAY 20

Day20-.goshrc 設定檔(二)

前言 昨天有提一下 rc 檔的使用情境和功能,簡單來說就是做初始化而已,今天我們要自己實作讀取 ~/.goshrc,話不多說馬上開始吧! 程式流程 開啟檔案 首...