Saat Anda mengetik perintah pada baris perintah, pada dasarnya Anda memberi perintah pada shell untuk menjalankan file yang dapat dieksekusi dengan nama yang diberikan. Di Linux, program yang dapat dieksekusi ini seperti lsfindfile dan lainnya, biasanya berada di dalam beberapa direktori berbeda di sistem Anda.

File apa pun dengan izin yang dapat dieksekusi yang disimpan di direktori ini dapat dijalankan dari lokasi mana pun. Direktori yang paling umum yang menyimpan program yang dapat dieksekusi adalah /bin/sbin/usr/sbin/usr/local/bin  dan /usr/local/sbin.

Namun bagaimana shell bisa tahu?, direktori apa yang harus dicari?, bagaimana cara shell mencari program? atau apakah shell mencari melalui seluruh file sistem ?

Jawabannya… Saat Anda mengetik perintah, shell mencari semua direktori yang ditentukan dalam variabel $PATH user untuk file yang dapat dieksekusi dari nama itu.

Artikel ini menunjukkan cara menambahkan direktori ke $PATH di sistem Linux.

Apa itu $PATH di Linux

Environmental variable $PATH adalah daftar direktori yang dipisahkan oleh titik dua yang memberitahu shell direktori mana yang harus dicari untuk file yang dapat dieksekusi.

Untuk memeriksa direktori apa saja yang ada dalam $PATH, Anda bisa menggunakan perintah printenv atau echo:

echo $PATH

Outputnya akan terlihat seperti ini

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Jika Anda memiliki dua file yang dapat dieksekusi yang berbagi nama yang sama dan terletak di dua direktori yang berbeda, shell akan menjalankan file yang ada di dalam direktori yang muncul pertama kali dalam $PATH.

Menambahkan Direktori ke $PATH

Ada situasi di mana Anda mungkin ingin menambahkan direktori lain ke variabel $PATH. Sebagai contoh, beberapa program mungkin diinstal di lokasi yang berbeda atau Anda mungkin ingin memiliki direktori khusus untuk skrip pribadi, tetapi dapat menjalankannya tanpa menentukan jalur absolut ke file yang dapat dieksekusi. Untuk melakukan ini, Anda hanya perlu menambahkan direktori ke $PATH Anda.

Katakanlah Anda memiliki direktori bernama bin yang terletak di direktori Home tempat Anda menyimpan skrip shell. Untuk menambahkan direktori ke $PATH , cukup ketik:

export PATH="$HOME/bin:$PATH"

Perintah export akan mengekspor variabel yang dimodifikasi ke environments child process dari shell.

Anda sekarang dapat menjalankan skrip hanya dengan mengetikkan nama skrip yang dapat dieksekusi tanpa perlu menentukan path lengkap yang dapat dieksekusi.

Namun, perubahan ini hanya sementara dan hanya berlaku di sesi shell saat ini.

Untuk membuat perubahan permanen, Anda perlu mendefinisikan variabel $PATH dalam file konfigurasi shell. Di sebagian besar distribusi Linux ketika Anda memulai sesi baru, environment variables dibaca dari file berikut:

  • File konfigurasi shell global seperti /etc/environment dan /etc/profile. Gunakan file ini jika Anda ingin direktori baru ditambahkan ke semua pengguna sistem $PATH.
  • File konfigurasi shell per user. Sebagai contoh, jika Anda menggunakan Bash, Anda dapat mengatur variabel $PATH dalam file ~/.bashrc dan jika Anda menggunakan Zsh nama filenya adalah ~/.zshrc.

Dalam contoh ini, kita akan mengatur variabel dalam file ~/.bashrc. Buka file dengan teks editor Anda dan tambahkan baris berikut di akhir file:

nano ~/.bashrc
export PATH="$HOME/bin:$PATH"

Simpan file dan muat $PATH baru ke dalam sesi shell saat ini menggunakan perintah source :

source ~/.bashrc

Untuk mengonfirmasi bahwa direktori berhasil ditambahkan, cetak nilai $PATH Anda dengan mengetik:

echo $PATH

Kesimpulan

Menambahkan direktori baru ke user Anda atau variabel $PATH global cukup sederhana. Ini memungkinkan Anda menjalankan perintah dan skrip yang disimpan di lokasi yang tidak standar tanpa perlu mengetikkan path lengkap ke yang dapat dieksekusi.

Instruksi yang sama berlaku untuk distribusi Linux apa pun, termasuk Ubuntu, CentOS, RHEL, Debian, dan Linux Mint.