Voglio installare rvm sulla mia macchina Snow Leopard.
Dice che devo aggiungere una riga al mio .bashrc
file (sto usando bash) ma dov'è il mio .bashrc
file?
Voglio installare rvm sulla mia macchina Snow Leopard.
Dice che devo aggiungere una riga al mio .bashrc
file (sto usando bash) ma dov'è il mio .bashrc
file?
Risposte:
Per quanto riguarda il problema con .bashrc
sopra:
Sulla maggior parte dei sistemi, ~/.bashrc
viene utilizzato solo quando si avvia una shell interattiva non di accesso . Tuttavia, quando si avvia una nuova shell è spesso una shell di accesso interattiva . Poiché si tratta di una shell di accesso , .bashrc
viene ignorata. Per mantenere l'ambiente coerente tra shell non di accesso e shell di accesso, è necessario procurarsi il .bashrc
proprio .profile
o il proprio .bash_profile
.
Vedere il Manuale di riferimento di Bash, sezione 6.2 File di avvio di Bash
Richiamato come shell di login interattiva o con --login
Quando Bash viene invocato come shell di login interattiva o come shell non interattiva con l'opzione --login, legge ed esegue prima i comandi dal file / etc / profile, se quel file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile, ~ / .bash_login e ~ / .profile, in quell'ordine, e legge ed esegue i comandi dal primo che esiste ed è leggibile.
Richiamato come shell interattiva non di accesso
Quando viene avviata una shell interattiva che non è una shell di accesso, Bash legge ed esegue i comandi da ~ / .bashrc, se quel file esiste.
Quindi, in genere, il tuo ~ / .bash_profile contiene la linea
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
dopo (o prima) qualsiasi inizializzazione specifica per il login.
Sul mio Mac (Running Leopard), non c'erano linee per la fonte ~/.bashrc
. Ho dovuto aggiungere questa funzionalità da solo.
Su alcuni sistemi e altri sistemi operativi, .bashrc
proviene dal globale /etc/profile
o /etc/bash_profile
oppure viene eseguito utilizzando i file modello da /etc/skel
.
Ad essere onesti, la distinzione tra .bashrc
e .bash_profile
non è ben compresa dalla comunità. Quando molti sviluppatori dicono "Aggiungi questo al tuo .bashrc", ciò che realmente significano è "Aggiungi questo al tuo .bash_profile". Vogliono che la funzionalità venga aggiunta alla shell di accesso (che è .bash_profile
), non alla shell non di accesso . In realtà, di solito non importa e inserire la configurazione .bashrc
è accettabile.
Così scopre che su Mac OS X Snow Leopard e Mac OS X Lion, il file che è caricato viene chiamato .profile
, non è .bashrc
.
Quello che vuoi fare è creare un file ~/.profile
e chiamarlo .profile (se non esiste già).
Inserisci tutte le informazioni necessarie per caricare lì ogni istanza di bash (Grazie, thepurplepixel).
Un paio di note collaterali:
-a
parametro as in quanto tale:ls -a
~
simbolo indica /Users/YourUserName
dove YourUserName è il nome breve del tuo nome utente.Modifica: Chris Page nota (correttamente) che qualunque cosa tu inserisca in un file .profile si applicherà a qualunque shell tu stia usando (es. Zhs, bash, eccetera). Se si desidera che il contenuto influisca solo sulla shell bash, posizionare il contenuto in un .bash_profile
file anziché in un .profile
file.
.bash_profile
esiste già un nella tua home directory, il .profile
file non verrà letto!
Devi crearne uno tuo .bashrc
. Puoi semplicemente usare un editor di testo per creare un file chiamato .bashrc
(senza estensione) con i contenuti che desideri e salvarlo nella tua home directory ( /Users/YourUserName/
).
.bashrc
funzionerà, ma solo se non c'è .profile
. Immagino che ~/.profile
esista di default, però. Sono contento di poterti aiutare! (E dovresti mettere la tua soluzione in una risposta e accettarla per i futuri lettori di questa domanda).
Trovo che nel mio OS 10.6.5 le impostazioni di bash siano in "/ etc / bashrc". Penso che queste siano le specifiche di livello superiore per la shell.
Tuttavia, è necessario un account di root per modificarlo. Le specifiche locali per utente "~ / .bashrc" dovrebbero iniziare con il frammento seguente, per leggere e caricare le impostazioni bash a livello di sistema:
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
Di solito aggiungo alias nel bashrc a livello di sistema in modo che anche tutti gli utenti possano accedervi. A meno che non vogliano usare scorciatoie e alias.
In bocca al lupo!
~/.bashrc
, non è /etc/bashrc
. /etc/bashrc
sono le impostazioni globali per tutti gli utenti del tuo sistema, che probabilmente non è quello che desideri. Inoltre, Apple potrebbe presentarsi e cambiare /etc/bashrc
periodicamente, il che potrebbe spazzare via le tue personalizzazioni.
Utilizzare il file .profile per aggiungere tutto ciò che si desidera aggiungere a un file .bashrc di Linux.
Per esempio
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"