Dove trovare il file .bashrc su Mac OS X Snow Leopard e Lion?
Voglio installare rvm sulla mia macchina Snow Leopard.
Dice che devo aggiungere una riga al mio file .bashrc
(sto usando bash) ma dov'è il mio file .bashrc
?
Voglio installare rvm sulla mia macchina Snow Leopard.
Dice che devo aggiungere una riga al mio file .bashrc
(sto usando bash) ma dov'è il mio file .bashrc
?
Per quanto riguarda il problema con .bashrc
di cui sopra:
Nella maggior parte dei sistemi, ~/.bashrc
viene utilizzato solo quando si avvia una shell interattiva non-login. Tuttavia, quando si avvia una nuova shell, spesso si tratta di una shell _interattiva non-login. Poiché si tratta di una shell login, .bashrc
viene ignorato. Per mantenere l'ambiente coerente tra le shell non-login e quelle di login, è necessario reperire il .bashrc
dal proprio .profile
o dal proprio `.bashprofile`.
Vedere il Manuale di riferimento di Bash, sezione 6. 2 Bash Startup Files
Invocato 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, prima legge ed esegue i comandi dal file /etc/profile, se quel file esiste. Dopo aver letto quel file, cerca ~/.bash_profile, ~/.bash_login, e ~/.profile, in quest'ordine, e legge ed esegue i comandi dal primo che esiste e che è leggibile.
Invocato come shell interattiva non-login
Quando viene avviata una shell interattiva che non è una shell di login, Bash legge ed esegue i comandi da ~/. bashrc, se quel file esiste.
Quindi, tipicamente, il vostro ~/.bash_profile contiene la linea
if [-f ~/.bashrc]; then . ~/.bashrc; fi
dopo (o prima) qualsiasi inizializzazione specifica di login.
Sul mio Mac (Running Leopard), non c'era una linea da cui partire ~/.bashrc
. Ho dovuto aggiungere questa funzionalità per conto mio.
Su alcuni sistemi e altri sistemi operativi, .bashrc
viene fornito dal global /etc/profile
o /etc/bash_profile
, o viene fatto utilizzando i file modello di /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 intendono veramente è “Aggiungi questo al tuo .bash_profilo”. Vogliono che la funzionalità venga aggiunta alla vostra login shell (che è .bash_profile
), non alla vostra non-login shell. In realtà, di solito non ha importanza e posizionare la configurazione in .bashrc
è accettabile.
Così si scopre che su Mac OS X Snow Leopard così come su Mac OS X Lion, il file che viene caricato si chiama .profile
, non .bashrc
.
Quello che si vuole fare è creare un file in ~/.profile
e chiamarlo .profile (se non esiste già).
Mettere tutte le informazioni necessarie per caricare con ogni istanza di bash lì (Grazie, thepurplepixel).
Un paio di note a margine:
-a
come parametro: ls -a
~
sta per /Users/YourUserName
dove YourUserName è il nome utente del vostro nome utente. Edit: Chris Page nota (correttamente) che qualsiasi cosa si inserisca in un file .profile si applica a qualsiasi shell si stia usando (ad esempio zhs, bash, ecc.). Se si desidera che il contenuto influisca solo sulla shell bash, inserire il contenuto in un file .bash_profile
invece che in un file .profile
.
Trovo che nel mio OS 10.6.5 le impostazioni di bash sono in “/etc/bashrc”. Penso che queste siano le specifiche di shell.
Tuttavia, è necessario un account di root per modificarlo. Le specifiche locali per utente “~/.bashrc” dovrebbero iniziare con il seguente snippet, per leggere e caricare le impostazioni bash a livello di sistema:
if [-r /etc/bashrc]; then
. /etc/bashrc
fi
Normalmente aggiungo degli alias nel bashrc a livello di sistema in modo che tutti gli utenti possano accedervi. A meno che non vogliano usare le scorciatoie e gli alias.
Buona fortuna!
Utilizzare il file .profile per aggiungere qualsiasi cosa si voglia aggiungere ad 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"