Come posso resettare la variabile $ PATH su Mac OS X?


17

Ho incasinato la mia variabile di percorso e ora alcune app che eseguo generano errori che dicono Comando non trovato (errore 127) per comandi come data e sospensione . Questi comandi funzionano bene se eseguiti direttamente nella shell.

Immagino che questo abbia qualcosa a che fare con una variabile $ PATH non valida e che debba sapere come ripristinarla. Ho eliminato i file ~ / .bashrc , ~ / .bash_profile , /etc/bash.bashrc e ~ / .bashrc e ~ / .profile .

Quali altri file potrebbero contenere il mio $ PATH ? C'è un modo più semplice per reimpostare il percorso che scavare nella miriade di file che potrebbero contenere il mio percorso?

Nota, questo problema di percorso è solo con il mio utente. Ho creato un utente test sul mio sistema e il percorso è andato bene, tornando alla normalità.

AGGIORNAMENTO: Grazie. Non so quale dei file che ho eliminato lo abbia fatto, ma le cose stanno funzionando di nuovo. Ragazzi, avete fatto ciò che gli "Esperti" non potevano. E sì, Chris, avevi ragione. Le personalizzazioni PATH che avevo fatto erano in bash_login. Ma in qualche modo ha funzionato senza di me eliminare quelle personalizzazioni. Penso che potrebbe essere stato perché stavo usando questo prefpane chiamato 'RCEnvironment', e avevo inserito un percorso con virgolette e: PATH in esso. Non so se accetta virgolette e non sostituisce: $ PATH, quindi probabilmente è la radice dell'errore. Ho dimenticato di avere anche quel prefpane!


1
Il profilo / etc / è il posto più probabile per i valori iniziali delle impostazioni per PATH, ma qualcosa potrebbe influenzare tutti gli utenti. C'è anche ~ / .bash_login, che non hai elencato (anche se potresti averlo già eliminato).
Chris Johnsen,

Risposte:


19

Se si dispone di un file ~ / .MacOSX / environment.plist, verificarlo per vedere se fornisce un valore PATH predefinito.

Se è in formato XML (le liste possono essere in molti formati), puoi modificarle con qualsiasi editor di testo. Controllalo con plutil -lint ~/.MacOSX/environment.plistse lo modifichi a mano.

In alternativa, è possibile utilizzare comandi come i valori predefiniti o PlistBuddy per apportare modifiche controllate ai file plist di formato XML o binario.


È sempre possibile impostare il proprio PERCORSO in uno qualsiasi dei file di inizializzazione della shell.

Inserisci qualcosa come il seguente nei tuoi file di avvio della tua shell ( .bashrc, o .bash_profile/ .bash_login/ .profile):

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

Ciò sovrascriverà qualunque PATH predefinito sia impostato all'avvio della shell (il primo PATH=non lo usa $PATH, quindi inizierà sempre con qualunque cosa tu gli dia).

Solo sarà mai essere utilizzato uno dei file del 'accesso' (il primo che esiste ed è leggibile su ~/.bash_profile, ~/.bash_logine ~/.profileverrà utilizzato). .profileserve per la retrocompatibilità con altre shell: se la usi, assicurati di tenerla libera dalla sintassi specifica per bash . Se vai con .bash_logino .bash_profile(sono funzionalmente equivalenti tranne che per i nomi), usa una linea come [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]]nella parte superiore in modo che anche le shell di login ottengano le personalizzazioni fatte nel tuo .bashrc.

Se vuoi che tutte le istanze di bash abbiano lo stesso PERCORSO, allora usa .bashrc. Se ti ritrovi spesso a modificare in modo interattivo il PERCORSO di una singola shell dalla riga di comando e desideri utilizzare quel PATH modificato in subshells (un caso che probabilmente non è terribilmente comune), devi invece inserire le istruzioni in uno dei file 'login' . Scegli solo uno dei file di accesso e usalo.


8

1.Aprire il terminale

2.Per prima cosa potresti semplicemente controllare il tuo $PATHtipo attuale

echo $ PATH

al terminale

3.Se il $PATHterminale restituito è il percorso desiderato, allora sei bravo; in caso contrario, digitare

export PATH = / usr / bin: / bin: / usr / sbin: / sbin

, quindi digitare

toccare ~ / .bash_profile

e quindi digitare

aprire ~ / .bash_profile

, troverai quindi un EditText aperto, ora digita il percorso che desideri in quel EditText; Ad esempio, digitare

PATH = / usr / bin: / bin: / usr / sbin: / sbin

(che è l'impostazione predefinita $PATHper mac, considerando che si desidera reimpostare il $PATHquindi probabilmente si dovrebbe digitare questo), salvarlo, quindi chiudere EditText, quindi chiudere Terminale.

4.Ora hai già modificato $PATHo ripristinato le impostazioni predefinite del Mac $PATH!


2
Sento che c'è molto sopra che non ha alcun effetto. Perché pensi touchsia richiesto? Inoltre, poiché chiudi comunque il Terminale, perché eseguire il exportcomando da riga di comando, invece di aggiungerlo solo a ~/.bash_profile(che ha bisogno exportanche di lui) e averlo fatto? (In alternativa, esegui source ~/.bash_profileper applicare le modifiche alla finestra corrente.)
Arjan

È vero, in parte è ridondante. Salvare qualunque valore PATH in .bash_profile dovrebbe fare.
ThinkCode

1

Anche le rc/profilemodifiche di Chris Johnson mostrate funzionano bene /etc/profile.

Ho appena aggiunto:

export PATH="/usr/local/mariadb/bin:$PATH"

al mio /etc/profilefile in Mac OS X 10.9 Mavericks per completare l'installazione di MariaDB (che funziona come un'ottima sostituzione drop-in per MySQL).


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.