Apa perbedaan antara .profile dan .bash_profile, dan kapan Anda mengkonfigurasi yang mana? (Mac) [duplikat]

23

Kemungkinan Duplikat:
Perbedaan antara .bashrc dan .bash_profile

Apa perbedaan antara .profiledan .bash_profile, dan kapan Anda mengkonfigurasi yang mana?

Yaitu jika saya mengkonfigurasi .bash_profile, apakah saya masih perlu mengkonfigurasi .profile?

Imran
sumber

Jawaban:

12

Dengan asumsi bashadalah shell default Anda, perbedaannya dijelaskan di bashhalaman manual ( man bash):

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

Ada lebih detail di halaman manual yang mencakup mode kompatibilitas POSIX-shell, dari mana .profileasalnya. Baca seluruh halaman manual untuk semua detailnya.


sumber
di Ubuntu 18.04 membuka jendela Terminal baru tidak .profilehanya memanggil .bashrc:(
CpILL
5

Jika Anda mengonfigurasi .bash_profile, Anda juga tidak perlu mengonfigurasi .profile.

Saya suka menyimpan alias dan perintah saya sendiri .profilesehingga jika saya mengacaukan sesuatu, saya tahu bahwa saya selalu dapat menghapus .profiletanpa mempengaruhi sistem pada aplikasi besar atau lainnya yang memodifikasi .bash_profile(seperti MacPorts).

Untuk menggunakan a .profile, Anda mungkin perlu memasukkan baris source ~/.profiledi .bash_profiledalam .profilefile Anda agar dibaca (lihat jawaban Ned Deily).

speedofmac
sumber
3

.profile dijalankan oleh bash ketika Anda mendapatkan proses shell yang normal - misalnya Anda membuka alat terminal. .bash_profile dijalankan oleh bash untuk shell login - jadi ini adalah saat Anda telnet / ssh ke mesin Anda dari jarak jauh misalnya. Sebagai contoh jika Anda ssh jarak jauh ke dalam mesin (katakanlah Anda membuka Terminal X) Anda akan mendapatkan awalnya .bash_profile dieksekusi. Jika dalam XTerminal Anda mengetik "xterm" dan menelurkan Terminal X lain, maka. Profil akan dieksekusi untuk instance kedua XTerminal. File-file tersebut berada di direktori home Anda (~). Jika saya tidak salah secara default mereka menjalankan ~ / .bashrc sehingga Anda dapat mengeditnya untuk mengonfigurasi pengaturan / variabel umum untuk shell login maupun non login (mis. Pengaturan PATH, beberapa alias / pintasan, dll.).


sumber
di Ubuntu 18.04 membuka jendela Terminal baru tidak menelepon .profile?
CpILL
1

untuk konfigurasi cepat dan sederhana (di mana Anda tidak ingin hal-hal rumit) cukup konfigurasikan semuanya di profil ~ /. Anda. Hanya ketika Anda mengalami beberapa masalah (tapi mungkin tidak akan pernah) mempelajari lebih lanjut tentang .bash_login atau .bash_profile;)

Saya menggunakan OS X juga, dan tidak pernah membutuhkan .bash_profile atau .bash_login dan hanya menggunakan .profile, tetapi jarak tempuh Anda mungkin berbeda ...

jm666
sumber