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

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?

Risposte (5)

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

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.

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

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:

  1. Il periodo davanti al file lo contrassegna come invisibile al Finder e il comando ls per default. Per elencare i file invisibili usando il comando ls dal terminale, usare il parametro -a come parametro: ls -a
  2. Il simbolo ~ 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.

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

Devi creare il tuo .bashrc. Potete semplicemente usare un editor di testo per creare un file chiamato .bashrc (senza estensione) con i contenuti desiderati e salvarlo nella vostra directory home (/Users/YourUserName/).

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

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!

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

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"