Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

ทำให้สคริปต์รันได้จากทุกที่ใน Linux ด้วย PATH Variable

สร้าง Bash script ไว้ในโฟลเดอร์หนึ่ง รันได้เฉพาะตอนอยู่ในโฟลเดอร์นั้น แต่คำสั่งอย่าง ls, imagemagick, apache, squid ติดตั้งคนละโฟลเดอร์ ทำไมถึงเรียกได้จากทุกที่? เพราะพาธของพวกมันอยู่ในตัวแปร PATH เพิ่มพาธโฟลเดอร์สคริปต์ของคุณเข้า PATH ก็จะรันได้จากทุกที่

เพิ่มพาธใน Bash (~/.bashrc)

ผลกระทบเฉพาะ Bash และสิ่งที่รันใน Bash (ไม่ส่งผลนอก Bash)

  1. สมมติเก็บสคริปต์ที่ /home/myname/scripts
  2. แก้ไข ~/.bashrc (ไฟล์ซ่อนในโฮม) ด้วย text editor (gedit, nano, vim)
  3. เพิ่มบรรทัดท้ายไฟล์:
    export PATH="/home/myname/scripts:$PATH"
  4. เซฟไฟล์ ออกจาก editor แล้วรัน:
    source ~/.bashrc
  5. ทดสอบ: 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

  1. sudo nano /etc/environment
  2. ไฟล์จะมีบรรทัด PATH="..." คั่นด้วย colon (:) เช่น:
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
  3. เพิ่มพาธของคุณก่อนเครื่องหมาย " ปิดท้าย:
    PATH="...:/home/YOUR_USERNAME/scripts"
  4. Logout/Login ใหม่

ด้วยวิธีเหล่านี้ สคริปต์ของคุณจะรันได้จากทุกที่ใน Linux

บทความเกี่ยวข้อง: Kmdr (อธิบายคำสั่งในเทอร์มินัล), ค้นหาประวัติคำสั่งดีขึ้น, คำสั่ง Bash พื้นฐานสำหรับมือใหม่