สร้าง Bash script ไว้ในโฟลเดอร์หนึ่ง รันได้เฉพาะตอนอยู่ในโฟลเดอร์นั้น แต่คำสั่งอย่าง ls, imagemagick, apache, squid ติดตั้งคนละโฟลเดอร์ ทำไมถึงเรียกได้จากทุกที่? เพราะพาธของพวกมันอยู่ในตัวแปร PATH เพิ่มพาธโฟลเดอร์สคริปต์ของคุณเข้า PATH ก็จะรันได้จากทุกที่
เพิ่มพาธใน Bash (~/.bashrc)
ผลกระทบเฉพาะ Bash และสิ่งที่รันใน Bash (ไม่ส่งผลนอก Bash)
- สมมติเก็บสคริปต์ที่
/home/myname/scripts - แก้ไข
~/.bashrc(ไฟล์ซ่อนในโฮม) ด้วย text editor (gedit, nano, vim) - เพิ่มบรรทัดท้ายไฟล์:
export PATH="/home/myname/scripts:$PATH"
- เซฟไฟล์ ออกจาก editor แล้วรัน:
source ~/.bashrc
- ทดสอบ: cd ไปโฟลเดอร์อื่น รันสคริปต์ดู
เพิ่มพาธใน Profile (~/.profile หรือ ~/.pam_environment)
ต้องการให้เข้าถึงได้นอก Bash (เช่น GUI apps, คำสั่งที่ไม่ได้รันใน shell)
- ~/.profile (Umumi): เพิ่ม
export PATH="$PATH:$HOME/scripts"→ ต้อง logout/login ใหม่ - ~/.pam_environment (แนะนำสำหรับ Ubuntu): สร้างไฟล์หากไม่มี ใส่:
PATH DEFAULT=${PATH}:/home/${PAM_USER}/scriptsใช้ตัวแปร${PAM_USER}ทำให้แต่ละผู้ใช้ได้พาธของตัวเอง → logout/login ใหม่
เพิ่มพาธใน Environment (/etc/environment) — ระดับระบบ
เหมาะสำหรับหลายผู้ใช้ร่วมเครื่องเดียวกัน ต้องใช้ sudo
sudo nano /etc/environment- ไฟล์จะมีบรรทัด PATH="..." คั่นด้วย colon (:) เช่น:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
- เพิ่มพาธของคุณก่อนเครื่องหมาย " ปิดท้าย:
PATH="...:/home/YOUR_USERNAME/scripts"
- Logout/Login ใหม่
ด้วยวิธีเหล่านี้ สคริปต์ของคุณจะรันได้จากทุกที่ใน Linux
บทความเกี่ยวข้อง: Kmdr (อธิบายคำสั่งในเทอร์มินัล), ค้นหาประวัติคำสั่งดีขึ้น, คำสั่ง Bash พื้นฐานสำหรับมือใหม่