ถ้าคุ้นกับ command script ใน windows จะคุ้น ๆ กับ Environment_variable ที่จะเป็นตัวแปรที่จะบอกว่า folder ของแต่ละ user และระบบ อยู่ที่ path ไหน อย่าง %USERPROFILE% จะแปลว่า C:\Documents and Settings/{username} มันจะมีตัวแปรพวกนี้เยอะมากสามารถอ่านได้ใน ทางด่วนใน windows แต่ที่ต่างกันก็คือ ลูก ๆ ของ UNIX อย่าง Linux, UNIX กลับมีอยู่เพียง 1 หรือ 2 ตัวแปรเท่านั้นคือ $HOME และ ~ (ใช่ครับ ตัวที่คนไทยชอบเซ็ตไว้เปลี่ยนภาษาไทย / อังกฤษ กันนั่นละ) (Tilde) มันอ่านว่า ไทล ไทย นี่เองถึงเอามาใช้เป็นตัวเปลียนภาษาไทย ที่จะบอกว่า root folder / home directory ของ user ที่ใช้อยู่ มันอยู่ตรงไหน
วิธีการเรียกดูหรือใช้งานบน macOS
- ดู Path ของ User ปัจจุบัน ($HOME):
echo $HOME
จะได้ประมาณว่า/Users/phunsanit - เข้าถึงโฟลเดอร์เก็บข้อมูลแอป (เทียบเท่า %APPDATA% ของ windows): ใน macOS ข้อมูลเหล่านี้มักจะถูกเก็บไว้ใน
Libraryซึ่งถูกซ่อนไว้ โดยปกติจะเข้าถึงผ่าน Path:- User Level:
~/Library/Application Support/ - System Level:
/Library/Application Support/
- User Level:
สรุปการใช้งานหลัก ๆ
$HOME: เป็นตัวแปรสภาพแวดล้อม (Environment Variable) ที่เก็บ Path เต็มของ Home Directory ของ User คนนั้น (เช่น/Users/usernameบน Mac หรือ/home/usernameบน Linux)~(Tilde): เป็นสัญลักษณ์ตัวย่อ (Shorthand) ที่ Shell (เช่น bash หรือ zsh) เข้าใจว่าหมายถึง$HOMEมักใช้ในการพิมพ์คำสั่งเร็วๆ เช่นcd ~/Documents
เปรียบเทียบให้เห็นภาพกับ Windows
| การอ้างอิง | Windows | macOS / Linux |
|---|---|---|
โฟลเดอร์หลักของผู้ใช้ (เช่น /Users/username) | %USERPROFILE% | $HOME หรือ ~ |
เก็บข้อมูลการตั้งค่าโปรแกรมเฉพาะของ username นั้น ๆ | %APPDATA% | ~/Library/Application Support |
| เก็บข้อมูลชั่วคราวหรือ Cache ของโปรแกรม | %LOCALAPPDATA% | ~/Library/Caches |
| เก็บข้อมูลโปรแกรมที่ใช้ร่วมกัน ทุก User | %ProgramData% | /Library/Application Support |
| Root/Drive | C:\ | / (Root) |
| ตัวแยกโฟลเดอร์ | \ (Backslash) | / (Slash) |
ทำไมถึงนิยมใช้ ~ หรือ $HOME?
เนื่องจากในระบบ Unix-based ข้อมูลเกือบทุกอย่างของ User จะถูกรวมไว้ในที่เดียว ไม่กระจายเหมือน Windows
Application Data: บน Mac จะอยู่ที่ ~/Library/Application Support
ส่วนบน Linux มักจะอยู่ที่ ~/.local/share
Config Files: ไฟล์ตั้งค่าของโปรแกรม (Dotfiles) จะอยู่ใน ~/.config หรืออยู่ใน $HOME โดยตรง (เช่น .zshrc, .ssh)
เคล็ดลับเพิ่มเติมในการใช้งาน
- หากคุณพิมพ์แค่
cdเฉยๆ แล้วกด Enter ใน Terminal มันจะพาคุณกลับมาที่~ ($HOME)โดยอัตโนมัติ - เวลาเขียน Script แนะนำให้ใช้
$HOMEจะมีความปลอดภัยและเป็นมาตรฐานมากกว่าการใช้~ในบางกรณีครับ
อ่านเพิ่มเติม
