Pertanyaan Apa perbedaan fungsional antara .profile .bash_profile dan .bashrc


Apa perbedaan fungsional antara .profile, .bash_profile dan .bashrc file?


119
2018-04-20 15:42






Jawaban:


.bash_profile dan .bashrc spesifik untuk bash, sedangkan .profile dibaca oleh banyak shell tanpa adanya file konfigurasi khusus shell mereka. (.profile digunakan oleh shell Bourne asli.) .bash_profile atau .profile dibaca oleh shell login, bersama dengan .bashrc; subkulit hanya bisa dibaca .bashrc. (Antara kontrol pekerjaan dan sistem windowing modern, .bashrc dengan sendirinya tidak banyak digunakan. Jika Anda menggunakan screen atau tmux, layar / jendela biasanya menjalankan subkulit alih-alih cangkang login.)

Gagasan di balik ini adalah bahwa pengaturan satu kali dilakukan oleh .profile (atau versi khusus shell), dan per-shell stuff oleh .bashrc. Sebagai contoh, Anda biasanya hanya ingin memuat variabel lingkungan satu kali per sesi, alih-alih mengeluarkannya setiap kali Anda meluncurkan subkulit dalam sesi, sedangkan Anda selalu ingin alias Anda (yang tidak disebarkan secara otomatis seperti variabel lingkungan).

File konfigurasi shell terkenal lainnya:

/etc/bash_profile (mundur /etc/profile) dibaca sebelum pengguna .profile untuk konfigurasi sistem-lebar, dan juga /etc/bashrc dalam subkulit (tidak ada penggantian untuk yang ini). Banyak sistem termasuk Ubuntu juga menggunakan /etc/profile.d direktori yang mengandung shell scriptlets, yang . (source) -dari dari /etc/profile; fragmen di sini adalah per-shell, dengan *.sh berlaku untuk semua cangkang yang kompatibel dengan Bourne / POSIX dan ekstensi lain yang berlaku untuk cangkang khusus tersebut.


101
2018-04-20 15:51





.Profil

.profile adalah untuk hal-hal yang tidak terkait secara khusus Bash, seperti variabel lingkungan PATH dan teman-teman, dan harus tersedia kapan saja.

Sebagai contoh, .profile juga harus dimuat ketika memulai sesi desktop grafis.


.bashrc

.bashrc adalah untuk mengkonfigurasi penggunaan Bash interaktif, seperti Bash aliases, pengaturan favorit Anda editor, pengaturan Bash prompt, dll.


.bash_profile

.bash_profile adalah untuk memastikan bahwa kedua hal dalam .profile dan .bashrc dimuat untuk login shells.

Sebagai contoh, .bash_profile bisa menjadi sesuatu yang sederhana seperti

. ~/.profile
. ~/.bashrc

Jika Anda lupa .bash_profile, saja .profile akan dimuat.


31
2018-04-17 06:15



Ini menjawab pertanyaan saya untuk Mac OS X - Jake Toronto


Menurut halaman manual bash, .bash_profile dieksekusi untuk shell login, sementara .bashrc dijalankan untuk shell non-login interaktif.

Jadi, apa itu login atau shell non-login?

Ketika Anda masuk (ketik nama pengguna dan kata sandi) melalui konsol, baik duduk di mesin, atau dari jauh melalui ssh: .bash_profile dijalankan untuk mengkonfigurasi shell Anda sebelum prompt perintah awal. Namun, jika Anda sudah masuk ke komputer dan membuka jendela terminal baru (xterm) di dalam Gnome atau KDE, maka .bashrc dijalankan sebelum perintah jendela prompt. .bashrc juga dijalankan ketika Anda memulai instance bash baru dengan mengetik / bin / bash di terminal.

Pengecualian terhadap panduan jendela terminal adalah Mac OS X Terminal.app, yang menjalankan shell login secara default untuk setiap jendela terminal baru, memanggil .bash_profile sebagai ganti .bashrc. Emulator terminal GUI lainnya mungkin melakukan hal yang sama, tetapi kebanyakan cenderung tidak.

Lebih lanjut di sini http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html


21
2018-04-03 12:52