2010-05-30 21:03:42 +0000 2010-05-30 21:03:42 +0000
90
90

Waar vind je het .bashrc bestand op Mac OS X Snow Leopard en Lion?

Ik wil rvm installeren op mijn Snow Leopard machine.

Er staat dat ik een regel moet toevoegen aan mijn .bashrc bestand (ik gebruik bash) maar waar is mijn .bashrc bestand?

Antwoorden (5)

79
79
79
2010-06-01 17:26:31 +0000

Wat betreft het probleem met .bashrc hierboven:

Op de meeste systemen wordt ~/.bashrc alleen gebruikt bij het starten van een interactieve non-login shell. Echter, wanneer je een nieuwe shell opstart is het vaak een interactieve non-login shell. Aangezien dit een login shell is, wordt de .bashrc genegeerd. Om de omgeving consistent te houden tussen niet-login en login shells, moet u de .bashrc broncode van uw .profile of uw .bash_profile.

Zie de Bash-referentiehandleiding, sectie [ 6]. 2 Bash Startup Files ](http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files)

Oproepen als een interactieve login-shell, of met –login

Wanneer Bash wordt aangeroepen als een interactieve login-shell, of als een niet-interactieve shell met de –login optie, leest en voert het eerst commando’s uit vanuit het bestand /etc/profiel, als dat bestand bestaat. Na het lezen van dat bestand, zoekt het naar ~/.bash_profile, ~/.bash_login, en ~/.profile, in die volgorde, en leest en voert het commando’s uit van de eerste die bestaat en leesbaar is.

Geroepen als een interactieve niet-login shell

Wanneer een interactieve shell die geen login-shell is wordt gestart, leest Bash commando’s in en voert ze uit vanaf ~/. bashrc, als dat bestand bestaat.

Dus, meestal bevat je ~/.bash_profiel de regel

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

na (of voor) enige login-specifieke initialisaties.

Op mijn Mac (Running Leopard), was er geen regel naar bron ~/.bashrc. Ik moest deze functionaliteit zelf toevoegen.

Op sommige systemen en andere besturingssystemen is .bashrc afkomstig van het globale /etc/profile of /etc/bash_profile, of wordt gebruik gemaakt van de sjabloonbestanden van /etc/skel.

Om eerlijk te zijn wordt het onderscheid tussen .bashrc en .bash_profile niet goed begrepen door de gemeenschap. Wanneer veel ontwikkelaars zeggen “Voeg dit toe aan je .bashrc”, dan bedoelen ze eigenlijk “Voeg dit toe aan je .bash_profiel”. Ze willen dat de functionaliteit wordt toegevoegd aan uw loginshell (wat .bash_profile is), niet aan uw non-loginshell. In werkelijkheid maakt het meestal niet uit en het plaatsen van de configuratie in .bashrc is acceptabel.

61
61
61
2011-12-20 23:51:49 +0000

Het blijkt dus dat op zowel Mac OS X Snow Leopard als Mac OS X Lion het bestand dat geladen is .profile heet, niet .bashrc.

Wat je wilt doen is een bestand maken in ~/.profile en het .profile noemen (als het nog niet bestaat).

Zet de informatie die je nodig hebt om te laden bij elke instantie van bash daar (Bedankt, thepurplepixel).

Een paar kanttekeningen:

  1. De periode voor het bestand markeert het als onzichtbaar voor Finder en het ls commando is standaard. Om onzichtbare bestanden op te sommen met het ls commando van Terminal, gebruik je de parameter -a als zodanig: ls -a
  2. Het ~ symbool staat voor /Users/YourUserName waarbij YourUserName de korte naam van uw gebruikersnaam is.

Bewerken: Chris Page merkt (correct) op dat wat u ook in een .profile bestand plaatst, van toepassing is op welke shell u ook gebruikt (d.w.z. zhs, bash, et cetera). Als je wilt dat de inhoud alleen van toepassing is op de bash-shell, plaats dan de inhoud in een .bash_profile-bestand in plaats van een .profile-bestand.

4
4
4
2010-05-30 21:05:13 +0000

Je moet je eigen .bashrc maken. U kunt eenvoudigweg een tekstverwerker gebruiken om een bestand met de naam .bashrc (geen extensie) te maken met de inhoud die u wilt en deze op te slaan in uw home directory (/Users/YourUserName/).

3
3
3
2010-11-26 08:02:07 +0000

Ik vind dat in mijn OS 10.6.5 de bash-instellingen in “/etc/bashrc” staan. Ik denk dat dit de toplevel specificaties zijn voor shell.

Echter, je hebt een root account nodig om het aan te passen. De lokale per-gebruiker specificaties “~/.bashrc” zouden moeten beginnen met de volgende snippet, om de systeemniveau bash instellingen te lezen en te laden:

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

Ik voeg normaal gesproken aliassen toe in het systeemniveau bashrc zodat alle gebruikers er ook bij kunnen. Tenzij ze je snelkoppelingen en aliassen niet willen gebruiken.

Veel succes!

1
1
1
2010-06-01 18:18:27 +0000

Gebruik het .profile bestand om iets toe te voegen aan een linux .bashrc bestand.

bijvoorbeeld

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"