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 ls
, find
, file
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.