Basic Unix Architecture
ก่อนอื่นต้องขอพูดถึงเรื่อง Basic Unix Architecture ก่อน ซึ่งองค์ประกอบหลักของ Unix ประกอบด้วย 3 ส่วนหลักๆ คือ
- Kernel: เป็นเซ็ตของโปรแกรมที่ใช้สำหรับจัดการ และติดต่อกับอุปกรณ์ Hardware ต่างๆ
- Shell: เป็น Command interpreter ที่ทำหน้าที่เชื่อมต่อระหว่างผู้ใช้งานกับ Kernel ตัวอย่าง shell เช่น sh, ksh, csh, bash
- Utilities: เป็นคำสั่งที่ผู้ใช้งานสามารถเรียกใช้ได้บน Shell

สรุป Bourne SHell (sh) และ Bourne Again SHell (Bash) ก็คือ shell command-line interpreter ทั้งคู่
แล้ว sh กับ bash มันแตกต่างกันอย่างไร?
ถ้าว่ากันง่ายๆ เลย bash ก็คือ sh ที่ถูกใส่ฟีเจอร์เพิ่มเข้ามา เพื่อให้สามารถทำงานได้หลากหลายมากยิ่งขึ้น เช่น bash สามารถใช้ local variable ได้แต่ sh ทำไม่ได้
ในเมื่อ bash ดีว่า sh แล้วทำไมเรายังต้องใช้ sh อยู่อีกละ ?
เหตุผลที่ยังคงต้องใช้ sh อยู่ก็เพราะว่า:
- sh มันเป็น shell command-line interpreter ที่เป็นมาตรฐานสำหรับ POSIX system ซึ่งเราสามารถใช้ script ที่เขียนด้วย sh ไปรันบน OS ที่ compatible กับ POSIX system ได้
Reference:
- https://gist.github.com/mdeguzis/1d429ae8a8ccff78ea82
- https://ragavwrittings.home.blog/2019/05/10/unix-is-always-ultimate/
- https://medium.com/dolab/shell-script-eaff418b49a5
- https://en.wikipedia.org/wiki/POSIX




所有评论(0)