~/.bashrc
dan /etc/bash.bashrc
dijalankan setiap kali bash
shell interaktif dimulai.
Sebaliknya, ~/.profile
dan /etc/profile
dijalankan setiap kali shell login dimulai. Jadi itu tidak harus menjadi bash
shell, tetapi harus menjadi shell login (dan banyak bash
contoh shell bukan shell login ).
- Sebuah
bash
shell adalah shell di mana program shell yang menyediakan itu bash
, daripada program lain, seperti dash
.
- Shell login adalah shell yang dimulai secara otomatis sebagai konsekuensi dari login, untuk menyediakan antarmuka pengguna (grafis atau baris perintah) untuk login. Ketika shell login keluar, login berakhir.
Oleh karena itu, menempatkan pujian yang menambahkan entri ke PATH
dalam bashrc
file akan:
Tidak melakukan apa-apa ketika cangkang tidak bash
, yang sering terjadi. Misalnya, PATH
akan tidak dimodifikasi ketika Anda berada dalam sesi login grafis. Ingat, PATH
tidak hanya digunakan oleh program command-line.
Tambahkan berulang-ulang di hadapan bash
cangkang bersarang . Jadi, jika Anda memulai sebuah shell di dalam shell - yang sangat umum, karena berbagai alasan - maka Anda akan memiliki beberapa ~/bin
entri yang ditumpuk di PATH
. Ini membuat PATH
variabel lingkungan sulit dibaca, dan kadang-kadang juga menurunkan kinerja.
Ini tidak diinginkan. Dengan demikian akan salah untuk meletakkan ini dalam bashrc
file; itu benar-benar milik ~/.profile
. ~/.profile
adalah tempat yang tepat untuk:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Shell non-login memiliki shell login (atau sesuatu yang berperilaku seperti shell login) sebagai induknya, dan mewarisi sebagian besar variabel lingkungannya, termasuk PATH
dari shell login ini. Jadi, memasukkan perintah pengubah jalur ~/.profile
mengharuskan Anda logout dan kembali agar efektif, tetapi juga mempengaruhi lingkungan shell non-login (serta lingkungan untuk program yang bukan shell, karena setiap program mendapatkan set variabel lingkungan sendiri - disebut "lingkungan" - diwarisi dari proses induknya).