Come installare / reinstallare i comandi nel terminale Mac?


0

Ho sempre avuto problemi con il mio terminale perché il comando che sto cercando di usare è "non trovato". Quindi quando provo a installare quel comando ho un altro comando che è anche "non trovato" che devo installare. Inoltre ogni volta che ottengo qualcosa come sudo funziona per quella sessione ma la prossima volta che apro il terminale devo reinstallare i comandi dappertutto. Se lo faccio

echo $PATH

Ritorna

/opt/local/bin:/opt/local/sbin:’/usr/local/bin:??

Ho ricevuto una soluzione temporanea che funziona in modo decente, ma devo rifare ogni volta che apro il terminale, quindi se qualcuno potrebbe spiegarmi come risolvere questo problema in modo permanente sarebbe fantastico. So che echo $ PATH non dovrebbe restituirlo.


fa echo $PATH davvero tornare /opt/local/bin:/opt/local/sbin:’/usr/local/bin:?? Significato che include quella citazione singola e i due punti interrogativi?
JakeGould

Sì, che viene copiato e incollato dal terminale
Tyler Bloom

Risposte:


1

Probabilmente non hai bisogno di disinstallare o reinstallare alcun comando, probabilmente hai solo bisogno di aggiustare ciò che sta causando il tuo PATH variabile per essere danneggiato.

Per impostarlo su valori predefiniti ragionevoli per la sessione shell corrente, digitare questo:

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

Si noti che questo lo risolve solo per la sessione di shell corrente e la successiva finestra di Terminale che si apre tornerà allo stato non funzionante.

Per ripararlo per la prossima volta, dovrai trovare dove si sta impostando in modo errato e correggerlo lì.

Nel macOS moderno, il percorso a livello di sistema è impostato in /etc/paths e /etc/paths.d/* (quelli sono file di configurazione basati su testo). Quindi controlla quelli prima e assicurati che sembrino sani.

Inoltre, ci sono script di avvio della shell a livello di sistema in /etc/, ad esempio /etc/profile e /etc/bashrc, tra gli altri. È abbastanza comune impostare o aggiungere al tuo PATH negli script di avvio della shell. Se tu, o qualche installer o gestore di pacchetti o script di installazione li hai modificati, potresti dover vedere cosa ha fatto e correggerlo (cioè, visualizzare quei file di script in un editor di testo e modificarli per correggerli se trovi errori) . Quali devono essere controllati dipendono da quali shell stai usando, da come le stai invocando e usandole (es. Come login, shell non interattive interattive o non interattive), e quali file di script di avvio della shell esistono (alcuni prendono la precedenza sugli altri, quindi la presenza di alcuni file potrebbe causare il mancato funzionamento di altri file). Dovrai controllare le pagine man per le shell che stai utilizzando per i dettagli su quali script di avvio della shell vengono eseguiti in quali situazioni.

Quindi è necessario controllare gli script di avvio della shell personali nella propria directory home. Anche in questo caso, quali script vengono eseguiti dipende dalla shell che si utilizza, dal modo in cui la si sta invocando e dai file di script esistenti, quindi è necessario controllare le pagine man. Probabilmente finirai per doverlo guardare ~/.profile e ~/.bashrc.

Un'ultima nota: supponendo di copiare / incollare quel testo in uscita, sembra che contenga una citazione ricurva, che suggerisce che uno degli script di avvio della shell contiene accidentalmente una citazione ricurva. Prestare attenzione a modificare gli script di shell e altri formati di file basati su testo leggibili dal computer (codice sorgente, HTML, CSS, JavaScript, JSON, XML, .plists, ecc.) In elaboratori di testo / editor di testo GUI. Assicurati di disattivare tutte le funzionalità di sostituzione del testo come "virgolette" e "trattini intelligenti" o finirai per ricevere accidentalmente virgolette ricurve in cui desideri un preventivo diretto o un trattino in cui desideri due trattini. La maggior parte dei formati leggibili dal computer considerano le citazioni semplici solo sintatticamente significative.


-bash: / etc / paths: autorizzazione negata -bash: /etc/paths.d/40-XQuartz: autorizzazione negata
Tyler Bloom

Ho appena digitato quelli in cui li hai digitati, ma dovrei eseguire un comando su di essi? Se lo faccio, restituiscono cose diverse
Tyler Bloom

ls / etc / percorsi / etc / percorsi
Tyler Bloom

@TylerBloom Quelli sono file di testo. Vuoi modificarli con un editor di testo con privilegi di root. Quindi per esempio se sai come usare vi, potresti sudo vi /etc/paths.
Spiff

scusa non sono sicuro di cosa sia un editor di testo. Se eseguo sudo vi ritorna / usr / local / bin / usr / bin / bin / usr / sbin / sbin ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~ "/ etc / paths" 5L, 45C ciascuno ~ su una linea separata però
Tyler Bloom
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.