Mac OS X Snow Leopard ve Lion'daki .bashrc dosyasını nerede bulabilirim?


89

Snow Leopard makineme rvm kurmak istiyorum.

Dosyama bir satır eklemem gerektiğini söylüyor .bashrc(bash kullanıyorum) fakat dosyam nerede .bashrc?


1
Çözümünüzü bir cevaba koymalı ve kabul etmelisiniz (SU'nun yapmasına izin vermeden önce bir veya iki gün beklemeniz gerekecek) Bu şekilde aynı soruna sahip kişilerin, bir cevabı olduğunu görebiliyorlar.
Nifle,

1
Çözümü, en çok oylanan cevaptan farklı değil ..
David Cowden

Emin olmak için, bu "Linux = .bashrc vs. Mac OS =. (Bash_) profili" sorunu değildir, kabuk başlangıç ​​dosyaları Linux ve Mac'te aynı şekilde çalışır ve .bashrc dosyası Oturum için daha uygun bir yerdir belirli ayarlar Örneğin, tmux veya ekran kullanıyorsanız, oturum açma oturumunuz olmayabilir, ancak takma adınızı istemeniz gerekir. Mac'in farklı hissetmesinin nedeni, çoğu Linux dağıtımının zaten sistem kaynağı betiklerini veya zaten bashrc (kaynak) delegesi olan iskelet profillerini göndermesidir.
17'de

Yanıtlar:


78

.bashrcYukarıdaki sorunla ilgili olarak :

Çoğu sistemde, ~/.bashrcyalnızca etkileşimli bir giriş yapma kabuğunu başlatırken kullanılır . Ancak, yeni bir kabuk başlattığınızda genellikle etkileşimli bir giriş kabuğu olur . Bu bir giriş kabuğu olduğundan .bashrc, dikkate alınmaz. Ortamın, oturum açmayan ve oturum açma kabukları arasında tutarlı kalması için .bashrcsizden .profileveya kendinizden kaynak yapmanız gerekir .bash_profile.

Bash Referans Kılavuzuna bakınız, bölüm 6.2 Bash Başlangıç ​​Dosyaları

Etkileşimli bir giriş kabuğu olarak veya --login ile çağrıldı

Bash etkileşimli bir giriş kabuğu veya --login seçeneğiyle etkileşimli olmayan bir kabuk olarak çağrıldığında, ilk önce bu dosya varsa / etc / profile dosyasındaki komutları okur ve yürütür. Bu dosyayı okuduktan sonra, bu sırayla ~ / .bash_profile, ~ / .bash_login ve ~ / .profile ifadelerini arar ve var olan ve okunabilen ilk komuttan komutları okur ve yürütür.

Etkileşimli bir giriş yapmayan kabuk olarak çağrıldı

Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, Bash eğer varsa, ~ / .bashrc komutlarını okur ve yürütür.

Bu nedenle, genellikle, ~ / .bash_profile dosyanızın satırını içerir.

   if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

oturum açma işlemine özgü başlatmalardan sonra (veya öncesi).

Mac'imde (Running Leopard) kaynak yapacak bir hat yoktu ~/.bashrc. Bu işlevi kendi başıma eklemek zorunda kaldım.

Bazı sistemlerde ve diğer işletim sistemlerinde, .bashrcgenel kaynaklı /etc/profileya /etc/bash_profileda şablon dosyaları kullanılarak yapılır /etc/skel.

Dürüst olmak gerekirse , toplum arasındaki ayrım .bashrcve .bash_profileyeterince anlaşılmamış. Pek çok geliştirici "Bunu .bashrc'nize ekleyin" derken, gerçekten demek istedikleri "Bunu .bash_profile'inize ekleyin" dır. Onlar işlevselliği eklenecek istediğiniz giriş (bir kabuk .bash_profiledeğil için,) olmayan giriş kabuğu. Gerçekte, genellikle önemli değil ve konfigürasyonu yerleştirmek .bashrckabul edilebilir.


- Bu bağlantı, bir kabukları türleri iyi bir genel bakış ve başlangıç dosyaları yüklenir verir hacktux.com/bash/bashrc/bash_profile
studgeek

Burada "kaynaklı" ile ne kastedilmektedir?
elgrego

@elgrego, işte iyi bir açıklama: Bir dosya kaynaklandığında (komut satırına kaynak dosya adı veya. dosya adını yazarak), dosyadaki kod satırları komut satırında yazdırılıyormuş gibi yürütülür. Bkz tldp.org/HOWTO/Bash-Prompt-HOWTO/x237.html
Stefan Lasiewski

60

Bu yüzden Mac OS X Snow Leopard'ın yanı sıra Mac OS X Lion'da da yüklenen dosya .profiledeğil .bashrc.

Yapmak istediğiniz şey bir dosya oluşturmak ~/.profileve onu .profile (zaten yoksa) olarak adlandırmaktır.

Her bash örneğine yüklemek için gereken bilgileri oraya yazın (Teşekkürler, purplepixel).

Birkaç not:

  1. Dosyanın önündeki süre, varsayılan olarak Finder ve ls komutuna görünmez olarak işaret eder. Terminal'den ls komutunu kullanarak görünmez dosyaları listelemek için, aşağıdaki -agibi bir parametre olarak kullanın :ls -a
  2. Bu ~simge, /Users/YourUserNameKullanıcı Adınızın kullanıcı adınızın kısa adı olduğu anlamına gelir .

Düzenleme: Chris Page, bir .profile dosyasına yerleştirdiğiniz her şeyin, kullandığınız her bir kabuğa (örneğin, zhs, bash, et cetera) uygulanacağını not eder (doğru olarak). İçeriğin yalnızca bash kabuğunu etkilemesini istiyorsanız, içeriği .bash_profiledosya yerine bir .profiledosyaya yerleştirin.


5
Sorunuz 1 Haziran 2010'da [doğru] olarak cevaplandı - sizden bir gün sonra sordunuz. Bir yıl sonra, geri dönüp aynı cevabı veriyorsunuz ve kendi cevabınızı kabul ediyorsunuz ...
David Cowden

3
Aslında cevabı 1 Haziran 2010'da verilen cevaptan daha fazla ayrıntı katıyor. Özellikle Mac OS X'te yardımcı bulduğum konuyu ele alıyor.
webworm

3
Bir eğer unutmayın .bash_profilezaten ev dizininde bulunuyorsa, o zaman .profiledosya okunamaz olacaktır!
Phani

Mac Os El capitan'ın yeni bir kurulumunu yaptım. Profil dosyası yok . Sadece bir .profile dosyası oluşturun ve çalışır. Şahsen ben .bashrc'mi .profile olarak değiştirdim.
Nicolas Thery

4

Kendin yapmalısın .bashrc. İstediğiniz .bashrciçeriğe sahip bir dosya uzantısı (uzantısız) yapmak ve onu ana dizininize ( /Users/YourUserName/) kaydetmek için bir metin düzenleyicisini kullanabilirsiniz .


1
Aslında, bu işe yaramadı, ancak kendi dosyamı yapmamı söyleyerek beni doğru yöne gönderdiniz. Snow Leopard konfigürasyonunda çalışan dosya .profile, .bashrc değil (bu nedenle bu işletim sistemine yüklenmemiş). Soruya ayrıntılı talimatlar göndereceğim. Teşekkürler!
Yuval

@Yuval: Varsayılan olarak, bir .bashrcçalışacak, ancak yalnızca yoksa .profile. Sanırım ~/.profilevarsayılan olarak var. Yardımcı olduğuma sevindim! (Ve çözümünüzü bir cevaba koymalı ve bu sorunun gelecek okuyucuları için kabul etmelisiniz).
squircle

Sanırım sadece .profile yoksa yanlış yorumunuzu yapın. .bashrc etkileşimli bir oturum açmayan kabuk içinde çalışacaktır ya da .profile'den kaynaklanmışsa (.bash_profile .profile Bourne kabuğu için olduğu için muhtemelen daha iyi bir yer). .profile etkileşimli bir oturum açma dışı kabuk sırasında kullanılır.
Stefan Lasiewski

@Stefan O zaman doğru sesler. Ben bir uzman değilim :)
19'da squircle

2
Kimse;). Bu şeyler (.bashrc vs .profile vs. .bash_profile vs. .bash_login vs. etkileşimli giriş kabuğu vs etkileşimli giriş dışı kabuk vs etkileşimli olmayan kabuk) kafa karıştırıcıdır ve birçok Unix ve kabuk betiği tarafından kırılır ve geçersiz kılınır.
Stefan Lasiewski

3

OS 10.6.5’de bash ayarlarının "/ etc / bashrc" de olduğunu biliyorum. Bu kabuk için üst düzey özellikler olduğunu düşünüyorum.

Ancak, değiştirmek için bir kök hesaba ihtiyacınız var. Yerel kullanıcı başına teknik özellikler "~ / .bashrc", sistem düzeyinde bash ayarlarını okumak ve yüklemek için aşağıdaki pasajla başlamalıdır:

if [ -r /etc/bashrc ]; then
    . /etc/bashrc 
fi

Normalde bashrc sistem seviyesine takma ad eklerim, böylece tüm kullanıcılar da erişebilir. Kısayollarınızı ve takma adlarınızı kullanmak istemiyorlarsa.

İyi şanslar!


2
/ etc / profile (oturum açma kabukları tarafından çalıştırılır), tüm kullanıcılar için geçerli olan ve oturum açma kabukları için varsayılan davranışlar sağlayan genel bir bash başlangıç ​​komut dosyasıdır. Sırasıyla, hem oturum açma hem de oturum açma olmayan kabuklara uygulanan özelleştirmeleri içeren / etc / bashrc komutunu çalıştırır. Benzer şekilde, bireysel kullanıcılar, çoğu özelleştirmenin olduğu ~ / .bashrc çalıştıran bir ~ / .bash_profile dosyası oluşturmalı ve ~ / .bashrc oturum açma kabukları için varsayılan davranışları miras almak için / etc / bashrc komutunu çalıştırmalıdır.
Chris Sayfa,

1
Bireysel kullanıcılar için, adresinde ana dizine bu özelleştirmeleri eklemek en iyisidir ~/.bashrcdeğil, /etc/bashrc. /etc/bashrcSisteminizdeki tüm kullanıcılar için genel ayarlardır, muhtemelen istediğiniz şey bu değildir. Ayrıca, Apple gelip /etc/bashrcperiyodik olarak değişebilir ve kişiselleştirmelerinizi mahvedebilir.
Stefan Lasiewski

1

Bir linux .bashrc dosyasına ekleyeceğiniz herhangi bir şeyi eklemek için .profile dosyasını kullanın.

Örneğin

PATH=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/:/opt/local/bin:/opt/depot_tools/:~/bin:$PATH
alias t='/Users/<username>/.todo/todo.sh'
alias punch='python /Users/<username>/.todo/Punch.py'
alias clock='cat </dev/tcp/time.nist.gov/13'
alias sudotext="sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit" 

2
Özelleştirmelerinizin diğer kabuklarda etkili olmasını ve uyumlu olmalarını istemediğinizden emin değilseniz, ~ / .bash_profile (~ / .profile yerine) kullanmanızı öneririz.
Chris Sayfa

Emin olmak için, bu "Linux = .bashrc vs. Mac OS =. (Bash_) profili" sorunu değildir, kabuk başlangıç ​​dosyaları Linux ve Mac'te aynı şekilde çalışır ve .bashrc dosyası Oturum için daha uygun bir yerdir belirli ayarlar Örneğin, tmux veya ekran kullanıyorsanız, oturum açma oturumunuz olmayabilir, ancak takma adınızı istemeniz gerekir. Mac'in farklı hissetmesinin nedeni, çoğu Linux dağıtımının zaten sistem kaynağı betiklerini veya zaten bashrc (kaynak) delegesi olan iskelet profillerini göndermesidir.
17'de
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.