Hal-hal sederhana
PATH=$PATH:~/opt/bin
atau
PATH=~/opt/bin:$PATH
tergantung pada apakah Anda ingin menambahkan ~/opt/bindi akhir (akan dicari setelah semua direktori lain, jika ada program dengan nama yang sama di beberapa direktori) atau di awal (harus dicari sebelum semua direktori lain).
Anda dapat menambahkan beberapa entri sekaligus. PATH=$PATH:~/opt/bin:~/opt/node/binatau variasi pada pekerjaan pemesanan baik-baik saja. Jangan letakkan exportdi awal baris karena memiliki komplikasi tambahan (lihat di bawah "Catatan tentang cangkang selain bash").
Jika Anda PATHdibuat oleh banyak komponen berbeda, Anda mungkin berakhir dengan entri duplikat. Lihat Bagaimana cara menambahkan direktori home path untuk ditemukan oleh Unix perintah mana? dan Hapus entri $ PATH duplikat dengan perintah awk untuk menghindari menambahkan duplikat atau menghapusnya.
Beberapa distribusi secara otomatis dimasukkan ke ~/bindalam PATH Anda jika ada.
Di mana harus meletakkannya
Menempatkan baris untuk memodifikasi PATHdi ~/.profile, atau ~/.bash_profilejika itu yang Anda miliki.
Catatan yang ~/.bash_rctidak dibaca oleh program apa pun, dan ~/.bashrcmerupakan file konfigurasi instance interaktif bash. Anda seharusnya tidak mendefinisikan variabel lingkungan di ~/.bashrc. Tempat yang tepat untuk mendefinisikan variabel lingkungan seperti PATHadalah ~/.profile(atau ~/.bash_profilejika Anda tidak peduli dengan shell selain bash). Lihat Apa perbedaan antara mereka dan yang mana yang harus saya gunakan?
Jangan letakkan di /etc/environmentatau ~/.pam_environment: ini bukan file shell, Anda tidak dapat menggunakan substitusi seperti $PATHdi sana. Dalam file-file ini, Anda hanya bisa menimpa variabel, bukan menambahkannya.
Potensi komplikasi dalam beberapa skrip sistem
Anda tidak perlu exportjika variabel sudah ada di lingkungan: setiap perubahan nilai variabel tercermin di lingkungan. PATHPretty hampir selalu ada di lingkungan; semua sistem unix mengaturnya sangat awal (biasanya pada proses pertama, sebenarnya).
Pada saat login, Anda dapat mengandalkan PATHyang sudah ada di lingkungan, dan sudah mengandung beberapa direktori sistem. Jika Anda menulis skrip yang dapat dijalankan lebih awal saat menyiapkan beberapa jenis lingkungan virtual, Anda mungkin perlu memastikan bahwa PATHitu tidak kosong dan diekspor: jika PATHmasih tidak disetel, maka sesuatu seperti PATH=$PATH:/some/directoryakan diatur PATHke :/some/directory, dan komponen kosong di awal berarti direktori saat ini (seperti .:/some/directory).
if [ -z "${PATH-}" ]; then export PATH=/usr/local/bin:/usr/bin:/bin; fi
Catatan tentang kerang selain bash
Di bash, ksh dan zsh, exportadalah sintaks khusus, dan kedua PATH=~/opt/bin:$PATHdan export PATH=~/opt/bin:$PATHmelakukan hal yang benar bahkan. Dalam shell Bourne / POSIX-style lainnya seperti dash (yang ada /bin/shdi banyak sistem), exportdiurai sebagai perintah biasa, yang menyiratkan dua perbedaan:
Jadi di shell seperti dash, export PATH=~/opt/bin:$PATHset PATHke string literal ~/opt/bin/:diikuti oleh nilai PATHhingga ruang pertama.
PATH=~/opt/bin:$PATH(tugas kosong) tidak memerlukan penawaran dan melakukan hal yang benar. Jika Anda ingin menggunakan exportskrip portabel, Anda harus menulis export PATH="$HOME/opt/bin:$PATH", atau PATH=~/opt/bin:$PATH; export PATH(atau PATH=$HOME/opt/bin:$PATH; export PATHagar mudah dibawa ke shell Bourne yang tidak menerima export var=valuedan tidak melakukan ekspansi tilde).
¹ Ini tidak benar pada cangkang Bourne (seperti pada cangkang Bourne yang sebenarnya, bukan cangkang bergaya POSIX modern), tetapi Anda sangat tidak mungkin menemukan cangkang-cangkang tua seperti itu belakangan ini.