System Track
Linux Command
Linux Fundamentals
Terminal / Shell
เข้าใจบทบาทของ Terminal และ Shell: ส่วนไหนคือหน้าต่าง, ส่วนไหนคือตัวตีความคำสั่ง และทำไม shell จึงสำคัญกับงาน Linux
1. Core Idea: Terminal กับ Shell ไม่ใช่สิ่งเดียวกัน
Terminal คือหน้าต่างหรือโปรแกรมที่เราใช้พิมพ์คำสั่ง Shell คือโปรแกรมที่อ่านคำสั่ง, แปลความหมาย, แล้วส่งต่อให้ระบบปฏิบัติการทำงาน ดังนั้นผู้ใช้ไม่ได้คุยกับ kernel โดยตรง แต่คุยผ่าน shell
- Terminal = interface
- Shell = command interpreter
- Shell ยอดนิยม: bash, zsh, fish
2. Mental Model: Terminal คือโทรศัพท์, Shell คือพนักงานรับเรื่อง
ลองมองว่า Terminal คือโทรศัพท์ที่ใช้คุยกับระบบ ส่วน Shell คือพนักงานที่รับคำสั่งเราแล้วไปประสานงานต่อ เช่น อ่านไฟล์, สร้างโฟลเดอร์, หรือรันโปรแกรม
แยกบทบาทให้ชัด: Terminal เป็นหน้าต่าง, Shell เป็นสมองที่ตีความคำสั่ง
3. Rule/Definition: Prompt, Command, Argument
| องค์ประกอบ | ตัวอย่าง | ความหมาย |
|---|---|---|
| Prompt | user@host:~$ | ข้อความรอรับคำสั่ง |
| Command | ls | คำสั่งหลักที่ shell จะรัน |
| Argument | -la /etc | รายละเอียดเพิ่มเติมให้ command |
| Exit Status | 0 หรือ non-zero | ผลสำเร็จ/ล้มเหลวของคำสั่งล่าสุด |
4. Worked Example: อ่านและรันคำสั่งทีละส่วน
- 1) ดู prompt เพื่อยืนยันว่าอยู่ shell ไหน
- 2) พิมพ์ command หลัก เช่น ls
- 3) เพิ่ม argument เช่น -la เพื่อปรับรูปแบบผลลัพธ์
- 4) อ่าน output และตรวจสถานะด้วย echo $?
- 5) ถ้าผิดพลาด ให้กลับไปเช็ก command + argument
5. Command Example: ชุดเช็กสภาพแวดล้อม shell
ตรวจว่าเราใช้งาน shell อะไรอยู่bash
ใช้เพื่อดู shell ปัจจุบัน, process shell ที่รันอยู่, และตัวอย่างเช็ก exit status
echo $SHELL
ps -p $$
echo $?
help6. Recap + Common Mistakes
- Terminal กับ Shell ต่างหน้าที่กันแต่ทำงานร่วมกัน
- อ่าน command ให้ครบทั้งชื่อคำสั่งและ argument
- เช็ก exit status เป็นนิสัยเมื่อ debug
- ข้อผิดพลาดที่พบบ่อย: จำ syntax ได้แต่ไม่เข้าใจว่าคำสั่งส่งผลที่ไหน