Apa yang dilakukan “Jalankan perintah sebagai shell login”?


28

Saya memiliki beberapa program terpisah yang diinstal, beberapa di antaranya mengharuskan saya untuk masuk ke pengaturan terminal GUI saya dan mengaktifkan / menonaktifkan opsi "Jalankan perintah sebagai shell login" untuk membuat keduanya berfungsi.

Contoh:

Saya menginstal Ruby on Rails . Sayangnya saya harus masuk ke opsi terminal dan mengaktifkan "Jalankan perintah sebagai shell masuk" agar dapat berada di PATH saya.

Ini tidak terlalu menjadi masalah sampai saya menginstal sexy-bash-prompt , yang hanya berfungsi jika opsi ini dinonaktifkan.

Jadi pertanyaan saya pada dasarnya adalah: apa yang dilakukan "Jalankan perintah sebagai shell masuk"? Apakah ada cara untuk mendapatkan hal-hal yang berjalan ketika dinonaktifkan untuk dijalankan ketika Anda menjalankan sebagai shell login?

Jawaban:


31

Dengan asumsi bahwa shell Anda adalah Bash (default di Ubuntu), inilah perbedaannya:

  • Saat dijalankan sebagai shell login , Bash akan membaca ~/.bash_profile(atau, jika itu tidak ada, ~/.profile) pada saat startup. Dalam beberapa kasus, file ini membaca ~/.bashrcjuga.

  • Saat dijalankan sebagai shell non-login , Bash akan membaca ~/.bashrc.

Jadi, mengapa Anda melihat perilaku yang berbeda saat berjalan sebagai shell login / non-login? Karena Anda .bash_profile/ .profilemelakukan hal-hal yang berbeda dari Anda .bashrc.

Solusi yang saya sarankan dalam kasus Anda adalah menyalin kustomisasi yang dibuat ke .bash_profile/ .profile, menempelkannya ke dalam .bashrcdan menonaktifkan "Jalankan perintah sebagai shell login".


Ahh ok. Saya pikir itu ada hubungannya dengan profil login apa yang dibacanya (source'ing .bashrc memperbaiki beberapa masalah yang saya miliki). Saya akan mencobanya, maaf untuk pertanyaan mengerikan yang ditulis.
AlbertEngelB

Terima kasih atas penjelasan singkatnya. Ini tidak biasa untuk melihat orang hanya menyimpan kustomisasi mereka di .bashrc dan memiliki .bash_profile ke sumber .bashrc. Kustomisasi khusus masuk harus disimpan di .bash_profile saja.
MichaelZ

1
Mengapa tidak hanya sumber .bashrc ke .bash_profile dan biarkan shell login tetap? Apakah itu layak?
Dr. Nefario
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.