身為資訊界老骨頭,工作上使用Windows 之外,免不了要接觸或管理一些Unix 系列上運行的應用系統,例如: AIX, Linux ,還有更古骨董的Solaris 等,這些作業系統的共同點都是有Shell還有一些常用指令要使用及熟悉。說來說去,這些常手指令都存存在有三,四十年以上。只是跨不用系統有些微差異。例如: grep sort ls df top cat awk perl tar ... 等等。現在 Mac OS 雖然已經普及,但骨子裡也是 Unix 一脈,所以這些常用指令及工具都還是有,只是你有沒有習慣用終端機進入shell 環境去使用它。
但身處辦公電腦還是以Windows 為主的我們,若去學DOS .bat, PowerShell 那種不能跨平台使用的指令進行工作自動化真的很不方便,能不能只學Unix 系列一套就好。其實早就有Windows 上的 Mingw可用,但其實若你是有使用Git 做版本控管的開發人員。可以安裝Git Bash,它就是含有 Mingw 的環境,執行之後就內建一堆常用指令可用,只要注意你的 HOME目錄對應的就是Windows 使用者目錄。但好處是根目錄 / 下它可以像 Unix 下一樣,將你的 C, D 槽已經掛到 /c , /d 下是不是很方便?
接下來就可以使用常用指令在你的 Windows 環境,至於有那些呢? 可以 cd /usr/bin 去看看。基本上常用的都有,還有一堆git 工具。
個人在工作上最愛的就是使用 grep , vim 原因是常有一些log 檔太大,從系統上抓下來到Windows 下要找其中的一些內容很難用一般文字編輯軟體打開,就算打的開也幾乎拖不動。尤其是GB 等級的大型檔案。這時 grep , vim 就派上用場了。再搭配 awk, perl 等,你會覺得前人在三,四十年前就已經寫好這堆指令工具學一次可以用這麼久,還可以組合搭配,非常有彈性。最受不了,一些常常要開一些圖形介面的軟體,還要用Mouse , keyboard 一步步操作才能完成一堆重複動作。為何不用指令自動化。
題外話: 工作上系統管理及問題查找用順手的shell command 之外,有時寫 shell script 也有點類,剛好自己也在學習Python 入門一些AI基礎知識,但在公司的系統上不一定預設會有安裝Python,但Perl 都是預設安裝的必要軟體。所以最近又開始翻出Perl的舊書,重新複習了一下,雖說工作上已經沒有那麼多技術活要做,但工具備著,要用就有。特別是它的RegEx真的好用,幹技術活的人一定要學好,可以省下不少時間。