Bir giriş kabuğu olarak bash başlatmak için gnome-terminalini yapılandırın, okur .bashrc

20

gnome terminali ile RVM'yi entegre etmeye çalışıyorum.

Varsayılan olarak gnome-terminal, giriş kabuğuna bash başlatmaz. RVM'yi oluşturan aynı konu hakkında bu yanıtta önerildiği gibi run command as a login shell özelliğini etkinleştirdim, ancak bunu yaptığımda .bashrc dosya okunmadı.

Örneğin, .bashrc cinsinden bir ortam değişkeni oluşturuyorum ve sonra yeni bir gnome terminalini başlattığımda okuyamıyorum. Dosyayı okumak için açıkça source .bashrc çalıştırmam gerekiyor.

Bu beklenen davranış mı?

    
sordu Arturo Herrero 05.05.2012 21:25

4 cevap

35

Evet, beklenen davranış budur.

Davranış kısaca şu şekildedir:

  • bash etkileşimli giriş kabuğu olarak başladı: ~/.profile değerini okur
  • bash, etkileşimli giriş yapmayan kabuk olarak başlatıldı: ~/.bashrc değerini okuyor

Daha fazla ayrıntı için başlangıç ​​dosyalarına ilişkin temel kullanım kılavuzunu okuyun.

Şahsen, bu davranışın garip olduğunu ve bu tasarım kararı için henüz bir rasyonelleşme bulamadığımı düşünüyorum.

Terminolojinin bazı açıklamaları:

  • Etkileşimli kabuk , etkileşimde bulunabileceğiniz bir kabuktur; bu, içine komut yazabileceğiniz anlamına gelir. Kullanacağınız kabukların çoğu etkileşimli kabuklardır.
  • Etkileşimli olmayan kabuk , etkileşim kuramayacağınız bir kabuktur. Kabuk betikleri etkileşimli olmayan kabukların içinde çalışır.
  • Sisteminize giriş yaptığınızda başlatılan kabuk giriş kabuğu .
  • oturum açma kabuğu, giriş işleminden sonra başlatılan bir kabuktur.

Gördüğünüz kabukların çoğu etkileşimli giriş yapmayan kabuklar . Bu özellikle gnome gibi bir grafik ortamı çalıştırıyorsanız doğrudur, çünkü gnome "giriş kabuğu" dır. Gnome içinde başlayan herhangi bir bash oturumu, giriş yapılmayan bir kabuktur. Gerçek bir interaktif giriş kabuğunu görmek istiyorsanız, sanal bir konsola gidin ( Ctrl+Alt+F1 kullanarak) ve ardından kullanıcı adınızı ve şifrenizi kullanarak giriş yapın. Bu gerçek bir interaktif giriş bash kabuğu. % Co_de% kullanarak grafik kabuğuna geri dönebilirsiniz.

Giriş yaptıktan sonra başlatılmış olsa bile bir giriş kabuğu gibi bir davranışı yapacak olan bir Ctrl+Alt+F7 seçeneği var. Giriş kabuğu olarak bas başlatmak için gnome-terminalinin yapılandırılması,% bas kullanarak bash başlatılacağı anlamına gelir % co_de seçeneği.

Genellikle, her zaman etkileşimli bir kabukta --login okuması için bash istersiniz. Bunu nasıl yapacağınızı tavsiye ederim:

--login dosyası oluşturun. Eğer bash bir giriş kabuğu olarak başlatılmışsa, ~/.bashrc değerini aramadan önce ~/.bash_profile değerini arar. Bash ~/.bash_profile bulursa ~/.profile okumaz.

Aşağıdaki satırları ~/.bash_profile dizinine koyun:

[ -f "$HOME/.profile" ] && source "$HOME/.profile"
[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

Şimdi bash etkileşimli giriş kabuğu olarak başlatılmışsa, aşağıdaki dosyaları okuyacaktır:

  1. ~/.profile
  2. ~/.bash_profile
  3. ~/.bash_profile

ve eğer bash, etkileşimli bir giriş-dışı kabuk olarak başlatılmışsa:

  1. ~/.profile

~/.bashrc 'de bash özel ve ~/.bashrc ' de bash özel olmayan şeyler koymalısınız. Örneğin, ~/.bashrc , ~/.profile ve PATH , ~/.profile dizinine girer.

HISTCONTROL 'nin belirli bir özel olmadığını unutmayın. Diğer metin tabanlı kabuklar (örneğin sh veya ksh) ve grafik kabuklar (gnome) da ~/.bashrc okuyor. Bu nedenle, belirli bir içeriği ~/.profile cinsinden vermemelisiniz.

    
verilen cevap lesmana 05.05.2012 22:44
7

Bu, kötü bir tasarım kararı, ne bir hata, ne de beklenen kabuk ve terminal davranışlarıdır

Bu, Gnome Terminalinde, kolayca düzeltebileceğiniz, profil başına bir yapılandırma seçeneğinin sadece talihsiz bir varsayılan değeridir.

  1. Düzenle -> & gt; Profil Tercihleri ​​

    .

  2. Başlık ve Komut sekmesini seçin.

  3. Giriş kapsayıcısı olarak komut çalıştır onay kutusunun işaretli olmadığına dikkat edin! Kontrol et.

İşte bu. Bunu Default profiline yaparsanız veya yeni terminaller oluştururken kullanılacak herhangi bir profil yapılandırılırsa, giriş kabuğuna sahip olursunuz.

Kaputun altında bu seçenek muhtemelen -l seçeneğini kabuğa geçirmesine neden oluyor.

    
verilen cevap Guest 18.03.2015 00:32
0

Aynı soruyu aldım ve bir çözüm buldum: Sadece gerçek bir giriş kabuğuna SSH kullanın!

1. Süper kullanıcı olarak, tam izolasyon için özel bir rvm sistemi kullanıcısı oluşturun ve bir şifre atayın:

sudo su

useradd -m rvmuser

passwd rvmuser

2. Bağımlılıkları, rvm süper kullanıcı şifresi istemeden rubiler oluşturabilecek şekilde kurun:

apt-get install curl gawk libreadline6-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake bison libffi-dev

3. Gerçek bir giriş kabuğu için localhost'a SSH ( apt-get install ssh 'ye sahip olabilirsiniz)

ssh [email protected]

4. Rvm'yi yükle

\curl -sSL https://get.rvm.io | bash -s stable

5. Tüm rvm işlevlerinin yüklenmesini sağlamak için çıkış yapın ve tekrar açın

exit

ssh [email protected]

6. Rvm kullanın:)

    
verilen cevap Michael Franzl 30.06.2014 08:15
0

.bash_profile konumuna yerleştirmenize izin verir.

Aşağıdakilerin kullanımı genellikle .profile 'de tanımlanmış takma adları çekmek için yapılır:

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
    
verilen cevap Rob Prentice 11.04.2016 02:56

Etiketlerdeki diğer soruları oku