Pertanyaan Apa artinya "Jalankan perintah sebagai shell masuk"?


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

Contoh:

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

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

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


21
2017-08-16 16:53


asal




Jawaban:


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

  • Saat menjalankan sebagai a masuk shell, Bash akan membaca ~/.bash_profile (atau, jika itu tidak ada, ~/.profile) Pada mulanya. Dalam beberapa kasus, file ini terbaca ~/.bashrc demikian juga.

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

Jadi, mengapa Anda melihat perilaku yang berbeda ketika menjalankan sebagai shell login / non-login? Karena kamu .bash_profile/.profile melakukan hal yang berbeda dari Anda .bashrc.

Solusi yang saya sarankan dalam kasus Anda adalah untuk salinan penyesuaian dibuat untuk .bash_profile/.profile, pasta mereka menjadi .bashrc dan nonaktifkan "Jalankan perintah sebagai shell login".


26
2017-08-26 14:59



Ahh ok. Saya pikir itu harus dilakukan dengan profil login apa yang dibaca (source.ing .bashrc memperbaiki beberapa masalah yang saya miliki). Saya akan memberikannya, maaf untuk pertanyaan yang sangat tertulis. - Dropped.on.Caprica
Terima kasih atas penjelasan singkatnya. Tidak jarang melihat orang hanya menyimpan penyesuaian mereka di .bashrc dan memiliki .bash_profile ke source .bashrc. Kustomisasi khusus login harus disimpan di .bash_profile saja. - MichaelZ
Mengapa tidak hanya source .bashrc ke .bash_profile dan biarkan shell login aktif? Apakah itu layak? - Dr. Nefario