. profil tidak berjalan ketika saya memulai terminal bash


15

Ketika saya memulai terminal bash, profil saya tidak dieksekusi. Saya tidak punya ~ / .bash_profile atau ~ / .bash_login, jadi .profile seharusnya dijalankan, kan? Apa lagi yang bisa salah?

Jawaban:


23

Ini bukan shell login.

Jika shell adalah shell login, ia akan mencari .bash_profile jika ada, lalu .profile. Kerang lain mencari .bashrc

Jadi, Anda bisa meletakkan hal-hal yang Anda inginkan di setiap instance shell di .bashrc, dan mungkin memiliki referensi yang sumber .bashrc di .profile.

Jadi: .bashrc:

stuff you want

akhir profil.:

[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc

Jadi ketika saya menjalankan 'konsole' di KDE, itu adalah shell non-login, kan? Di komputer lain saya pasti memasukkan banyak hal. Profil dan membuatnya bekerja ketika saya membuka terminal seperti ini - saya kira saya tidak mengerti ketika Anda ingin sesuatu yang berbeda terjadi pada saat login vs ketika Anda membuka terminal?
David Doria

@ Davidvidoria itu tergantung, saya telah mengubah konfigurasi atau membuat alias untuk apa konsole berjalan, untuk membuatnya berjalan bash --login. Dalam kasus Anda tampaknya hanya menjalankan bash, yang secara default tidak akan memicu shell login
Rich Homolka

Jika Anda menggunakan LightDM, itu mungkin alasannya. Manajer tampilan lain seperti sumber GDM dan KDM. Profil saat login, tetapi LightDM tidak (sesuai desain). Lihat bugs.debian.org/cgi-bin/bugreport.cgi?bug=636108
WakiMiko

Saya menggunakan KDM.
David Doria

2
Jika Anda menggunakan Terminal Gnome, Anda dapat melakukan Edit-> Preferensi Profil, buka tab Judul dan Perintah, dan centang "Jalankan perintah sebagai shell login". Kemudian akan sumber .bash_profile atau .profile Anda setiap kali Anda membuka terminal, seperti yang diharapkan.
Lambart


1

Jika Anda menggunakan desktop grafis, .profile harus bersumber dari manajer desktop Anda. Lightdm tidak mencari .profile sekarang, setidaknya di Ubuntu. Lihat: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315

Dengan kdm, dan Kubuntu-12.04, file / etc / kde4 / kdm / Xsession diambil dari sumbernya, yang termasuk dalam file .profile. Kubuntu-12.10 mungkin akan menggunakan lightdm. Ubuntu 12.04 menggunakan lightdm sehingga / usr / sbin / lightdm-session sumber .profile.

Saya pikir cara untuk pergi adalah (1) mengatur / mengekspor pengaturan lingkungan di ~ / .profile dan (2) memiliki .profile yang bersumber dari .bash_profile:

[[ -f ~/.profile ]] && . ~/.profile

(dan tidak memiliki .bashrc yang bersumber dari .profile atau .bash_profile).

Lihat juga:


1
Ini menjelaskan cara mendapatkan .profilesumber Anda saat masuk, tetapi dia benar-benar bertanya-tanya tentang cara mendapatkan bashsumber saat ia meluncurkan terminal (bukan saat masuk)
cpast

Anda seharusnya tidak ingin memiliki .profile bersumber ketika Anda meluncurkan terminal baru (dari dalam KDE). Seluruh tujuan .profile adalah untuk membuatnya bersumber satu kali saat login, baik pada terminal grafis atau terminal teks; .profile seharusnya diambil saat Anda masuk ke KDE.
Freddy Vulto

. profil harus bersumber dari manajer desktop Anda. Yah ini tergantung pada pemahaman tujuan file. Dalam Debian, / etc / profile (dan ~ / .profile sebagai ekstensi) dimaksudkan untuk shell yang mirip bash .
Alois Mahdal

Anda tidak perlu sumber lagi JIKA bersumber saat login. bash Anda akan mewarisinya kecuali jika Anda melakukan sesuatu yang konyol seperti "export PATH = ~ / .bin" atau sesuatu yang menyebabkannya ditimpa.
RichieHH
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.