GNU/Linux >> Belajar Linux >  >> Linux

Apa perbedaan fungsional antara .profile .bash_profile dan .bashrc

Solusi 1:

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

Ide di balik ini adalah penyiapan satu kali dilakukan oleh .profile (atau versi khusus shellnya), dan hal-hal per-shell oleh .bashrc . Misalnya, Anda biasanya hanya ingin memuat variabel lingkungan satu kali per sesi alih-alih membuatnya dipukul setiap kali Anda meluncurkan subkulit dalam satu sesi, sedangkan Anda selalu menginginkan alias (yang tidak disebarkan secara otomatis seperti variabel lingkungan).

File konfigurasi shell penting lainnya:

/etc/bash_profile (pengganti /etc/profile ) dibaca sebelum .profile pengguna untuk konfigurasi seluruh sistem, dan juga /etc/bashrc dalam subkulit (tidak ada cadangan untuk yang ini). Banyak sistem termasuk Ubuntu juga menggunakan /etc/profile.d direktori yang berisi skrip shell, yaitu . (source )-ed dari /etc/profile; fragmen di sini adalah per-shell, dengan *.sh berlaku untuk semua shell yang kompatibel dengan Bourne/POSIX dan ekstensi lain yang berlaku untuk shell tersebut.

Solusi 2:

.profil

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

Misalnya, .profile juga harus dimuat saat memulai sesi desktop grafis.

.bashrc

.bashrc adalah untuk mengonfigurasi penggunaan Bash interaktif, seperti Bash aliases , menyetel editor favorit Anda , menyetel Bash prompt , dll.

.bash_profile

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

Misalnya, .bash_profile bisa jadi sesuatu yang sederhana seperti

. ~/.profile
. ~/.bashrc

Jika Anda menghilangkan .bashrc , hanya .profile akan dimuat.

Solusi 3:

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

Jadi, apa itu shell login atau non-login?

Saat Anda masuk (ketik nama pengguna dan kata sandi) melalui konsol, baik duduk di depan mesin, atau dari jarak jauh melalui ssh:.bash_profile dijalankan untuk mengonfigurasi shell Anda sebelum prompt perintah awal. Namun, jika Anda telah masuk ke mesin Anda dan membuka jendela terminal baru (xterm) di dalam Gnome atau KDE, maka .bashrc dijalankan sebelum prompt perintah jendela. .bashrc juga dijalankan saat Anda memulai instance bash baru dengan mengetikkan /bin/bash di terminal.

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

Selengkapnya di sini.


Linux
  1. Fedora vs Ubuntu:Apa perbedaan utama?

  2. Apa perbedaan antara `chattr +i FILE` dan` chmod -w FILE`?

  3. Apa perbedaan antara lsof dan netstat di linux?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Apa perbedaan antara rdesktop dan xfreerdp?

  3. Apa perbedaan antara unlink dan rm?

  1. Apa Perbedaan Mendasar Antara Kerang *nix Mainstream??

  2. Linux – Apa Perbedaan Utama Antara Sistem Operasi Berbasis Bsd dan Linux?

  3. Perbedaan Antara ~/.profile Dan ~/.bash_profile?