GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Seseorang Dapat Menambahkan ~/.profile Ke ~/.bash_profile?

Saat menginstal RVM yang mendapat pesan berikut:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

Saya khawatir karena file ~/.profile saya berisi xmodmap ~/.Xmodmap yang jelas tidak ingin saya jalankan (menukar kunci CapsLock dan ESC saya) setiap kali saya membuka shell baru.

Mengapa para pengembang RVM yang bijaksana menyarankan sumber .profile di .bash_profile ?

Jawaban yang Diterima:

.profile dan .bash_profile identik dalam hal kapan mereka dimaksudkan untuk dieksekusi:mereka dieksekusi ketika Anda masuk. Perbedaannya adalah bahwa hanya bash yang menjalankan .bash_profile; Shell bergaya Bourne (tanda hubung, ksh, dll.) menjalankan .profile . Bash sendiri menjalankan .profile jika .bash_profile tidak ada.

Bahkan jika Anda memiliki bash sebagai shell login Anda, .profile sering kali yang dijalankan saat Anda masuk dalam mode grafis — banyak distribusi menyiapkan skrip startup sesi X untuk dijalankan di bawah sh dan muat .profile .

Oleh karena itu saran untuk menggunakan .profile bukannya .bash_profile untuk melakukan hal-hal seperti mendefinisikan variabel lingkungan. Kecuali Anda benar-benar membutuhkan fitur khusus bash, cukup masukkan semuanya di .profile . Tetapi meskipun Anda melakukannya, ada alasan untuk menyimpan .bash_profile , yaitu ketika bash memuatnya, itu tidak memuat .bashrc , meskipun interaktif. Oleh karena itu, bagi kebanyakan orang, ~/.bash_profile harus terdiri dari dua baris berikut:

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

Anda tidak boleh menjalankan xmodmap dari .profile . Ini tidak dijalankan saat Anda membuka shell baru, tetapi dijalankan, misalnya, saat Anda masuk dari jarak jauh dengan SSH dengan penerusan X11. Sayangnya, tidak ada file standar yang dimuat saat Anda masuk dalam mode grafis. Debian memuat ~/.xsessionrc (Saya pikir ini berlaku untuk semua pengelola tampilan, kecuali Gdm yang memuat ~/.xprofile sebagai gantinya); distribusi lain memiliki setup yang berbeda. Jika Anda memerlukan portabilitas lintas distribusi, mungkin lebih mudah untuk mengonfigurasi lingkungan desktop Anda untuk menjalankan xmodmap ketika itu dimulai. Jika yang Anda lakukan hanyalah menukar CapsLock dan Ctrl, ini dapat dilakukan dengan pengaturan XKB yang sebagian besar lingkungan desktop modern menyediakan antarmuka.

Terkait:Bagaimana cara mengatur variabel yang sama dengan output dari perintah di GRUB2?
Linux
  1. Mengapa kita mentransmisikan sockaddr_in ke sockaddr saat memanggil bind()?

  2. Menyinkronkan profil bash antar komputer

  3. Mengapa saya mendapatkan Izin Ditolak saat menjalankan ssh-add?

  1. Apa itu TAM dan mengapa Anda ingin menjadi TAM?

  2. Mengapa seseorang harus menggunakan sudo?

  3. Bagaimana cara menambahkan ke grup ketika nama memiliki spasi?

  1. Mengapa ~/.bash_profile Tidak Berfungsi?

  2. Mengapa Sinkronisasi Sangat Penting Saat Membuat Stik Usb Linux yang Dapat Di-boot?

  3. Kapan dan Mengapa Menggunakan Docker