~ / .Profile, ~ / .bashrc, ~ / .bash_profile, ~ / .gnomerc, / etc / bash_bashrc, / etc / screenrc… arasındaki fark nedir?


68

SO ve askubuntu ile ilgili soruların yanıtları , alay konusu (ve başlıkları okurken) $HOMEve /etc/ortam değişkenlerini ayarlamak için kullanılabilecek bir dizi dosyayı belirtir.

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gnomerc
  • ~/.Rprofile
  • /etc/bash_bashrc
  • /etc/profile
  • /etc/screenrc

Bu dosyaları /etc/tüm kullanıcılar için çalışır halde toplarım, ancak içerisindeki dosyalar $HOMEkullanıcıya özeldir. Ayrıca .profileoturum açma .bashrcsırasında yüklenirken toplandığında da yüklenir /bin/bash. Ayrıca farklı programların farklı ayar dosyalarına sahip olduğunu da biliyorum (örneğin .RprofileR için). Ancak bazı açıklamaları takdir ediyorum:

  • Are *rcve *profiledosyalar temelde farklı?
  • Bu tür dosyaların kapsamı nedir (örneğin hangi dosyalar Linux ile birlikte kullanılır)
  • Bir hiyerarşi var mı (örneğin, .bashrcayarlanan değişkenlerin üzerine yazar .settings)
  • Bu dosya sınıfı için iyi bir referans nedir? Bu dosyalardaki seçenekler için?

Bağlantılı sorular


3
İçindeki INVOCATIONbölüme bakınız man bash. FHSLinux dosya sistemlerinde wiki makalesine bakın . Bu size iyi bir başlangıç ​​yapıp birkaç soruyu cevaplayacaktır. Öncesinde nokta ( .) bulunan dosyalar tipik olarak kullanıcıya özeldir - bunlar kullanıcı $HOMEdizininde bulunur.

3
Hepsi? Gerçekten mi?
Ignacio Vazquez-Abrams,

@ IgnacioVazquez-Abrams Ayrıntıları aramıyorum, ilişkilerinin nasıl olduğunu ve birinin diğerinde ne zaman kullanılması gerektiğini açıklayan genel bir açıklama.
Abe

Yanıtlar:


48

Konfigürasyon dosyalarının organizasyonu sorularınızın ima ettiğinden çok daha az aynıdır. "Sınıf" yok, "hiyerarşi" yok ve aradıklarınız gibi ortak bir sözdizimi veya diğer hoş genellemeler karar veren bir genel "yapılandırma çarmı" ya da komitesi yok. Sadece gibi ayrı çok sayıda uygulama vardır R, bash, screenher bir program herhangi bir cevap için size belgelerine bakmak gerekir bu yüzden ve şeyleri yapmanın kendi yolları var hepsi de GNOME masaüstü ortamı, belirli bir dosya hakkındaki soruları. Geçici görünüyorsa, bunun nedeni şudur: Unix / Linux yazılımının çoğu, hepsi farklı şekillerde konfigürasyona giren farklı kişiler tarafından geliştirilmiştir.

Diğer sorularınızı noktadan cevaplamak için:

  • *rcve *profileçok fazla bir şey ifade etmiyor, bu yüzden bu soru gerçekten cevaplanamıyor. "rc", yapılandırma dosyaları için yalnızca yaygın olarak kullanılan bir kısaltma veya sonektir. Etimolojisi eski zamanlara (bilgisayar yıllarında) döner ve muhtemelen run komutları ( runcom'dan ) anlamına gelir . Sadece uygulamaların aynı kelimeyi kullanması, sözleşmelerde hemfikir oldukları anlamına gelmez. "profil" çok daha az yaygın bir sonektir.

  • "Kapsam" ı tanımlayın. Çoğu uygulama, yapılandırma dosyalarını diğer ilişkili olmayan uygulamalarla paylaşmaz. Olası istisnalardan biri, /etc/profileve .profile(en azından shve en azından dahil), birden fazla farklı kabuk tarafından kullanılabilecek olanıdır bash. Her çalışan işlemle ilişkili, adı geçen işlemin davranışını etkileyebilecek değişkenler içerebilen bir çevre adı verilen bir şey vardır . Genel olarak, ortam değişkenleri uygun kabuk yapılandırma dosyaları veya belki de kullandığınız grafik masaüstü ortamının yapılandırma dosyaları tarafından belirlenir. Ayrıca, kitaplık kullanan her uygulamayı etkileyecek, .inputrcreadline ve .gtkrc*GTK için olduğu gibi "kütüphaneler" için konfigürasyon dosyaları da vardır .

  • Hayır, yapılandırma dosyaları için genel bir hiyerarşi yok. Yine, söz konusu programın belgelerine, örneğin bashkullanım kılavuzuna bakın bash. Genellikle güvenebileceğiniz genel bir kural, kullanıcı ayarlarının $HOMEsistem genelinde yapılandırmayı geçersiz kılmasıdır /etc. Bu genellikle, sistemden sonra kullanıcı dosyasının okunması ile gerçekleştirilir, böylece daha sonra ayarların daha eski ayarların üzerine yazılması sağlanır. Ancak, bu bir garanti değildir ve kesin cevaplar için kullandığınız programın belgelerine bakmalısınız.

  • "Sınıf" yok, en azından sorunuzda listelediğiniz tüm dosyaları kapsayacak kadar genel değil, bu yüzden böyle bir "sınıf" için bir başvuru sorusu tartışmalı. Yine, kullandığınız belirli programın belgelerine bakın.


5

Bence bu soru pek çok düzeyde çok geniş, örneğin bir soruda en az dört farklı program hakkında sorular soruyorsunuz . Sadece yapılandırma dosyalar arasındaki farka bakacağız /etcve $HOME.

UNIX Bu çok farklı kişiler birini kullanarak, bir sistem kullanmak anlamına gelir, bir çok kullanıcılı bir işletim sistemidir ssh, telnetveya Xorg. Kullanıcılarınız için standart bir konfigürasyon sağlamak için, sistem genelinde bir konfigürasyon sağlayabilirsiniz /etc/, bu tipik olarak Dağıtım bashveya Servisler tarafından örneğin global bir konfigürasyon sağlamak için de kullanılır screen.

Öte yandan, bazı kullanıcılar kendi programları için ayarları kendi anahtarlıklar, renkler veya görünümleriyle özelleştirmek istiyor. Bu, kendi yapılandırma dosyasında yapılır $HOME. Kısacası /etc/, sistem genelinde yapılandırma sağlarken $ HOME içindeki yapılandırma dosyaları, kullanıcıların sistem genelinde yapılandırmayı değiştirmesine / değiştirmesine izin verir.


3

Cevap kısmı geliyor bu yazı :

.bashrc Etkileşimli olarak başlatıldığında Bash'in çalıştığı bir kabuk betiğidir.

Kontrast .bash_profileve .profilehangileri yalnızca yeni bir giriş kabuğunun başlangıcında çalıştırılır? (bash-l)

Bir komutun , bir kez mi çalışacağına veya her etkileşimli kabuk başlangıcında mı çalışacağına bağlı olarak mı .bashrcgirileceğini seçersiniz .bash_profile.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.