Quindi ci sono pochi posti in cui il terminale cerca i comandi. Questi luoghi sono memorizzati nel tuo $PATH
variabile. Pensala come una variabile globale in cui il terminale esegue un'iterazione per cercare qualsiasi comando. Di solito sono binari, guarda come viene solitamente fatto riferimento alla cartella /bin.
/bin
cartella contiene molti file eseguibili al suo interno. Si scopre che questo è il comando. Queste diverse posizioni delle cartelle sono memorizzate all'interno di una variabile globale, ad esempio $PATH
separato da :
Ora di solito i programmi al momento dell'installazione si occupano dell'aggiornamento di PATH
e dicendo al tuo terminale che ehi, posso essere tutti i comandi all'interno del mio bin
cartella.
Si scopre che MySql non lo fa al momento dell'installazione, quindi dobbiamo farlo manualmente.
Lo facciamo seguendo il comando,
export PATH=$PATH:/usr/local/mysql/bin
Se lo scomponi, export
è autoesplicativo. Pensalo come un incarico. Quindi export
una variabile PATH
con valore vecchio $PATH
concat con il nuovo bin
cioè /usr/local/mysql/bin
In questo modo dopo aver eseguito tutti i comandi all'interno di /usr/local/mysql/bin
sono a nostra disposizione.
C'è un piccolo problema qui. Pensa a una finestra di terminale come a un'istanza del programma e forse qualcosa come $PATH
è una variabile di classe (forse). Nota che questa è una pura ipotesi. Quindi alla chiusura perdiamo il nuovo incarico. E se riapriremo il terminale non avremo più accesso al nostro comando perché l'ultima volta che abbiamo esportato, era archiviato nella memoria primaria che è volatile.
Ora dobbiamo esportare i nostri binari mysql ogni volta che utilizziamo il terminale. Quindi dobbiamo persistere nel nostro cammino.
Potresti essere consapevole del fatto che il nostro terminale utilizza qualcosa chiamato dotfiles
per caricare la configurazione all'inizializzazione del terminale. Mi piace pensare che siano insiemi di cose passati al costruttore ogni volta che viene creata una nuova istanza di terminale (di nuovo un presupposto ma vicino a ciò che potrebbe fare). Quindi sì, ora hai capito cosa faremo.
.bash_profile
è uno dei principali dotfile
conosciuti .
Quindi nel comando seguente,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Quello che stiamo facendo è salvare il risultato di echo
cioè la stringa di output in ~/.bash_profile
Quindi ora, come abbiamo notato sopra, ogni volta che apriamo il terminale o l'istanza del terminale i nostri dotfiles
sono caricati. Quindi .bash_profile
viene caricato rispettivamente e export
che abbiamo aggiunto sopra viene eseguito e quindi un nostro $PATH
globale viene aggiornato e riceviamo tutti i comandi all'interno di /usr/local/mysql/bin
.
P.s.
se non stai eseguendo direttamente il primo comando export ma stai solo eseguendo il secondo per mantenerlo persistente? Rispetto all'attuale istanza in esecuzione del terminale,
source ~/.bash_profile
Questo dice al nostro terminale di ricaricare quel particolare file.