Tag Archive Shortcut

Byphunsanit

path ทางลัดใน MacOs, Linux, UNIX

ถ้าคุ้นกับ 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

  1. ดู Path ของ User ปัจจุบัน ($HOME):
    echo $HOME
    จะได้ประมาณว่า
    /Users/phunsanit
  2. เข้าถึงโฟลเดอร์เก็บข้อมูลแอป (เทียบเท่า %APPDATA% ของ windows): ใน macOS ข้อมูลเหล่านี้มักจะถูกเก็บไว้ใน Library ซึ่งถูกซ่อนไว้ โดยปกติจะเข้าถึงผ่าน Path:
    • User Level: ~/Library/Application Support/
    • System Level: /Library/Application Support/

สรุปการใช้งานหลัก ๆ

  • $HOME: เป็นตัวแปรสภาพแวดล้อม (Environment Variable) ที่เก็บ Path เต็มของ Home Directory ของ User คนนั้น (เช่น /Users/username บน Mac หรือ /home/username บน Linux)
  • ~ (Tilde): เป็นสัญลักษณ์ตัวย่อ (Shorthand) ที่ Shell (เช่น bash หรือ zsh) เข้าใจว่าหมายถึง $HOME มักใช้ในการพิมพ์คำสั่งเร็วๆ เช่น cd ~/Documents

เปรียบเทียบให้เห็นภาพกับ Windows

การอ้างอิงWindowsmacOS / Linux
โฟลเดอร์หลักของผู้ใช้ (เช่น /Users/username)%USERPROFILE%$HOME หรือ ~
เก็บข้อมูลการตั้งค่าโปรแกรมเฉพาะของ username นั้น ๆ%APPDATA%~/Library/Application Support
เก็บข้อมูลชั่วคราวหรือ Cache ของโปรแกรม%LOCALAPPDATA%~/Library/Caches
เก็บข้อมูลโปรแกรมที่ใช้ร่วมกัน ทุก User%ProgramData%/Library/Application Support
Root/DriveC:\/ (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 จะมีความปลอดภัยและเป็นมาตรฐานมากกว่าการใช้ ~ ในบางกรณีครับ

อ่านเพิ่มเติม