PATH Anda adalah daftar lokasi yang diperiksa sistem operasi Anda saat dijalankan sebuah perintah, memungkinkan Anda menjalankan file yang dapat dieksekusi tanpa menentukan lokasi persisnya secara manual. Shell mencari executable di PATH dalam urutan tertentu, dimulai dengan shell bawaan, kemudian mencari melalui direktori yang terdaftar dari kiri ke kanan. Anda dapat menambahkan direktori ke PATH Anda menggunakan perintah ekspor, baik sementara atau permanen dengan mengedit file .bashrc atau .profile Anda. Berhati-hatilah untuk tidak menambahkan titik dua di depan untuk menghindari risiko keamanan.
PATH adalah salah satu manipulator senyap di latar belakang komputer Linux Anda. Ini secara diam-diam memengaruhi pengalaman pengguna Anda, tetapi tidak ada yang mencurigakan tentang hal itu. Kami akan menjelaskan fungsinya, dan bagaimana Anda dapat menyesuaikannya. Apa itu PATH di Linux, dan Bagaimana Cara Kerjanya?
Your PATH adalah daftar lokasi yang akan diperiksa sistem operasi Anda setiap kali Anda mencoba menjalankan perintah. Jika executable yang Anda coba jalankan terdapat dalam folder yang disertakan dalam PATH Anda, executable tersebut dapat dijalankan tanpa menentukan lokasi pastinya secara manual, karena sistem operasi Anda sudah mengetahui di mana letaknya.
Jadi, bagaimana cara kerjanya secara fungsional?
Kapan Anda mengetikkan perintah di jendela terminal dan menekan Enter, Anda memulai cukup banyak aktivitas bahkan sebelum perintah Anda dijalankan.
Bash adalah shell default di sebagian besar distribusi Linux. Ini menafsirkan baris teks yang Anda masukkan dan mengidentifikasi nama perintah yang bercampur dengan parameter, pipa, pengalihan, dan apa pun yang ada di sana. Ia kemudian menemukan biner yang dapat dieksekusi untuk perintah tersebut dan meluncurkannya dengan parameter yang Anda berikan.
Langkah pertama yang diambil shell untuk menemukan file yang dapat dieksekusi adalah mengidentifikasi apakah biner terlibat. Jika perintah yang Anda gunakan ada di dalam shell itu sendiri (“shell bawaan”) tidak diperlukan pencarian lebih lanjut. Nbsp
Shell bawaan adalah yang paling mudah ditemukan karena merupakan bagian integral dari shell. Ini seperti memilikinya di sabuk perkakas — mereka selalu bersama Anda. Namun, jika Anda memerlukan salah satu alat Anda yang lain, Anda harus mencari-cari di bengkel untuk menemukannya. Apakah itu ada di meja kerja Anda atau di gantungan dinding? Itulah yang dilakukan variabel lingkungan PATH. Ini menyimpan daftar tempat pencarian shell dan urutan pencariannya.
Jika Anda ingin melihat apakah suatu perintah adalah shell bawaan, alias, fungsi, atau biner mandiri mv /work/unfile, Anda dapat menggunakan perintah ketik seperti yang ditunjukkan di bawah ini:
type clear type cd
Ini memberitahu kita bahwa clear adalah file biner, dan yang pertama ditemukan di jalur terletak di /usr/bin. Anda mungkin memiliki lebih dari satu versi clear yang terinstal di komputer Anda, tetapi ini adalah versi yang akan coba digunakan oleh shell.
Tidak mengherankan, cd adalah shell bawaan.
Cara Mencantumkan PATH Anda
Sangat mudah untuk melihat apa yang ada di jalur Anda. Cukup ketik berikut ini untuk menggunakan perintah echo dan cetak nilai yang disimpan dalam variabel $PATH:
echo $PATH
Outputnya adalah daftar lokasi sistem file yang dibatasi titik dua (:). Shell mencari dari kiri ke kanan melalui jalur, memeriksa setiap lokasi sistem file untuk executable yang cocok untuk menjalankan perintah Anda.
Kita dapat memilih jalan melalui daftar untuk melihat lokasi sistem file yang akan dicari, dan urutannya akan dicari:
/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin/usr/games/usr/local/games/snap/bin
Sesuatu yang mungkin tidak langsung terlihat adalah pencarian tidak dimulai di direktori kerja saat ini. Sebaliknya, ia bekerja melalui direktori yang terdaftar, dan hanya direktori yang terdaftar.
Jika direktori kerja saat ini tidak ada di jalur Anda, maka direktori tersebut tidak akan dicari. Selain itu, jika Anda memiliki perintah yang disimpan di direktori yang tidak berada di jalurnya, shell tidak akan menemukannya.
Untuk mendemonstrasikan hal ini, kami membuat program kecil bernama rf. Saat dijalankan, rf mencetak nama direktori tempat peluncurannya di jendela terminal. Itu terletak di /usr/local/bin. Kami juga memiliki versi yang lebih baru di direktori /dave/work.
Kami mengetikkan perintah berikut yang menunjukkan kepada kami versi program mana yang akan ditemukan dan digunakan oleh shell:
rf
yang mana Shell melaporkan versi yang ditemukan adalah yang ada di direktori itu di jalur.
Kami mengetik yang berikut untuk menjalankannya:
rf
Versi 1.0 dari rf berjalan dan mengonfirmasi bahwa harapan kami benar. Versi yang ditemukan dan dieksekusi terletak di /usr/local/bin.
Untuk menjalankan versi rf lainnya di komputer ini, kita harus menggunakan jalur ke executable pada baris perintah, seperti yang ditunjukkan di bawah ini:
./work /rf
Sekarang kita telah memberi tahu shell di mana menemukan versi rf yang ingin kita jalankan, ia menggunakan versi 1.1. Jika kita lebih menyukai versi ini, kita dapat menyalinnya ke direktori /usr/local/bin dan menimpa yang lama.
Katakanlah kita sedang mengembangkan rf versi baru. Kami harus sering menjalankannya saat kami mengembangkan dan mengujinya, tetapi kami tidak ingin menyalin build pengembangan yang belum dirilis ke lingkungan langsung.
Atau, mungkin kami telah mengunduh rf versi baru dan ingin melakukan verifikasi mengujinya sebelum kami membuatnya tersedia untuk umum.
Jika kami menambahkan direktori kerja kami ke jalur tersebut, kami membuat shell menemukan versi kami. Dan perubahan ini hanya akan mempengaruhi kita — orang lain akan tetap menggunakan versi rf di /usr/local/bin .
Tambahkan Direktori ke PATH Anda
Anda dapat menggunakan perintah ekspor untuk menambahkan direktori ke PATH. Direktori tersebut kemudian dimasukkan dalam daftar lokasi sistem file yang dicari shell. Ketika shell menemukan executable yang cocok, ia berhenti mencari, jadi Anda ingin memastikan ia mencari direktori Anda terlebih dahulu, sebelum /usr/local/bin.
Ini mudah dilakukan. Sebagai contoh, kita mengetikkan perintah berikut untuk menambahkan direktori kita ke awal path sehingga menjadi lokasi pertama yang dicari:
export PATH=/home/dave/work:$PATH
Perintah ini menyetel $PATH agar sama dengan direktori tempat kita berada menambahkan, /home/dave/work, dan kemudian seluruh jalur saat ini.
PATH pertama tidak memiliki tanda dolar ($). Kami menetapkan nilai untuk PATH. $PATH terakhir memiliki tanda dolar karena kami mereferensikan konten yang disimpan dalam variabel PATH. Perhatikan juga titik dua (:) antara direktori baru dan nama variabel $PATH.
Mari kita lihat seperti apa jalurnya sekarang:
echo $PATH
Direktori /home/dave/work kami ditambahkan ke awal jalur. Titik dua yang kami sediakan memisahkannya dengan sisa jalur.
Kami mengetikkan yang berikut ini untuk memverifikasi versi rf kami adalah yang pertama ditemukan:
rf
yang mana Bukti di puding menjalankan rf, seperti yang ditunjukkan di bawah ini:
rf
Shell menemukan Versi 1.1 dan menjalankannya dari /home/dave/work.
Untuk menambahkan direktori kita ke ujung path, kita pindahkan saja ke akhir perintah, seperti:
export PATH=$PATH:/home/dave/work
Cara Menambahkan Sesuatu Secara Permanen ke PATH
Seperti yang dikatakan Beth Brooke-Marciniak, “Sukses itu baik, tetapi kesuksesan itu cepat berlalu.” Saat Anda menutup jendela terminal, perubahan apa pun yang Anda buat pada $PATH akan hilang. Untuk menjadikannya permanen, Anda harus memasukkan perintah ekspor ke file konfigurasi.
Saat Anda memasukkan perintah ekspor ke file .bashrc, perintah tersebut akan menentukan jalurnya setiap kali Anda membuka jendela terminal. Tidak seperti sesi SSH, di mana Anda harus login, ini disebut sesi “interaktif”.
Di masa lalu, Anda akan memasukkan perintah ekspor di file .profile Anda untuk mengatur jalur untuk sesi terminal login.
Namun, kami menemukan bahwa jika kita meletakkan perintah ekspor di file .bashrc atau .profile, itu akan mengatur jalur dengan benar untuk sesi terminal interaktif dan login. Pengalaman Anda mungkin berbeda. Untuk menangani semua kemungkinan, kami akan menunjukkan cara melakukannya di kedua file.
Gunakan perintah berikut di direktori /home Anda untuk mengedit file .bashrc:
gedit .bashrc
Editor gedit terbuka dengan file .bashrc dimuat.
Gulir ke bagian bawah file, lalu tambahkan perintah ekspor berikut yang kita gunakan sebelumnya:
export PATH=/home/dave/work:$PATH
Simpan file. Selanjutnya, tutup dan buka kembali jendela terminal atau gunakan perintah titik untuk membaca file .bashrc, sebagai berikut:
. .bashrcKemudian, ketik perintah echo berikut untuk memeriksa jalur:
echo $PATH
Ini menambahkan direktori /home/dave/work ke awal jalur.
Proses untuk menambahkan perintah ke file .profile juga sama. Ketik perintah berikut:
gedit .profile
Editor gedit diluncurkan dengan file .profile dimuat.
Tambahkan perintah ekspor ke bagian bawah file, lalu simpan. Menutup dan membuka jendela terminal baru tidak cukup untuk memaksa file .profile dibaca ulang. Agar pengaturan baru dapat diterapkan, Anda harus keluar dan masuk kembali atau menggunakan perintah titik seperti yang ditunjukkan di bawah ini:
. .profile
Mengatur Jalur untuk Semua Orang
Untuk menyetel jalur bagi semua orang yang menggunakan sistem, Anda dapat mengedit file /etc/profile.
Anda harus menggunakan sudo, sebagai berikut:
sudo gedit /etc/profile
Saat editor gedit diluncurkan, tambahkan perintah ekspor ke bagian bawah file.
Simpan dan tutup file. Perubahan akan berlaku untuk orang lain saat mereka masuk lagi.
Catatan tentang Keamanan
Pastikan Anda tidak secara tidak sengaja menambahkan titik dua “:” ke jalur, seperti yang ditunjukkan di bawah ini.
Jika Anda melakukannya, ini akan mencari direktori saat ini pertama, yang menimbulkan risiko keamanan. Katakanlah Anda mengunduh file arsip dan membuka ritsletingnya ke dalam direktori. Anda melihat file tersebut dan melihat file zip lainnya. Anda memanggil unzip sekali lagi untuk mengekstrak arsip itu.
Jika arsip pertama berisi file yang dapat dieksekusi bernama unzip yang merupakan file executable berbahaya, Anda secara tidak sengaja akan menjalankan file tersebut dan bukan executable unzip yang sebenarnya. Hal ini terjadi karena shell akan mencari di direktori saat ini terlebih dahulu.
Jadi, selalu berhati-hatilah saat Anda mengetikkan perintah ekspor. Gunakan echo $PATH untuk memeriksanya dan pastikan sesuai dengan yang Anda inginkan.