Saya telah membaca di beberapa tempat bahwa PATH
diatur di /etc/profile
atau .profile
file yang ada di direktori home.
Apakah ini satu-satunya tempat di mana jalan itu diatur? Saya ingin pemahaman yang lebih baik tentangnya.
Dalam /etc/profile
file, seperti yang dikatakan komentar berikut "system-wide .profile file for the Bourne shell"
. Apakah itu berarti bahwa file profil adalah file konfigurasi utama untuk bash?
Dalam file itu saya tidak melihat PATH
var disetel sama sekali. Di .profile
file di direktori home ada baris ini:
PATH="$HOME/bin:$PATH"
Itu mengatur ulang PATH
dari tampilannya karena ini menggabungkan $PATH
yang sudah disetel string dengan $HOME/bin:
Baik? Tetapi jika etc/profile
dan ~/.profile
adalah satu-satunya pengaturan file PATH
dimana $PATH
berasal dari baris kode itu jika tidak didefinisikan dalam /etc/profile
?
Ada yang berpengalaman tolong kasih penjelasan yang luas dan detail tentang PATH
variabel? Terima kasih!
Jawaban yang Diterima:
Ada banyak tempat di mana PATH
dapat diatur.
login
program menyetelnya ke nilai default. Bagaimana nilai default ini dikonfigurasi bergantung pada sistem. Pada kebanyakan sistem Linux non-embedded, ini diambil dari /etc/login.defs
, dengan nilai yang berbeda untuk root dan untuk pengguna lain. Lihat login(1)
manual di sistem Anda untuk mengetahui fungsinya.
Pada sistem yang menggunakan PAM, khususnya pam_env
modul, variabel lingkungan dapat diatur dalam file sistem-lebar /etc/environment
dan file per pengguna ~/.pam_environment
.
Kemudian sebagian besar cara untuk masuk (tetapi bukan pekerjaan cron) menjalankan shell masuk yang membaca file konfigurasi seluruh sistem dan per pengguna. File-file ini dapat mengubah nilai PATH
, biasanya untuk menambahkan entri tetapi terkadang dengan cara lain. File mana yang dibaca tergantung pada shell login apa. Shell bergaya Bourne/POSIX membaca /etc/profile
dan ~/.profile
. Bash membaca /etc/profile
, tetapi untuk file per pengguna hanya membaca file pertama yang ada di antara ~/.bash_profile
, ~/.bash_login
dan ~/.profile
. Zsh membaca /etc/zshenv
, ~/.zshenv
, /etc/zprofile
, ~/.zprofile
, /etc/zlogin
dan ~/.zlogin
. Banyak sesi GUI mengatur untuk memuat /etc/profile
dan ~/.profile
, tetapi ini bergantung pada pengelola tampilan, pada lingkungan desktop atau skrip startup sesi lainnya, dan bagaimana setiap distribusi menyiapkannya.