Er zijn dus maar weinig plaatsen waar de terminal naar opdrachten zoekt. Deze plaatsen worden opgeslagen in uw $PATH
variabel. Zie het als een globale variabele waar terminal itereert om een commando op te zoeken. Dit zijn meestal binaire bestanden, kijk hoe de /bin-map meestal wordt genoemd.
/bin
map bevat veel uitvoerbare bestanden. Blijkt dat dit een commando is. Deze verschillende maplocaties worden opgeslagen in één globale variabele, d.w.z. $PATH
gescheiden door :
Nu zorgen programma's na installatie meestal voor het bijwerken van PATH
&je terminal vertellen dat hey, ik kan alle opdrachten in mijn bin
zijn map.
Blijkt dat MySql het niet doet bij de installatie, dus we moeten het handmatig doen.
We doen het door het volgende commando te volgen,
export PATH=$PATH:/usr/local/mysql/bin
Als je het opsplitst, export
spreekt voor zich. Zie het als een opdracht. Dus export
een variabele PATH
met waarde oud $PATH
concat met nieuwe bin
bijv. /usr/local/mysql/bin
Op deze manier na het uitvoeren van alle commando's in /usr/local/mysql/bin
zijn voor ons beschikbaar.
Er is een kleine vangst hier. Beschouw één terminalvenster als één instantie van een programma en misschien iets als $PATH
is klasse variabele ( misschien ). Let op dit is pure aanname. Dus bij het sluiten verliezen we de nieuwe opdracht. En als we de terminal heropenen, hebben we geen toegang meer tot onze opdracht, want de laatste keer dat we exporteerden, werd deze opgeslagen in het primaire geheugen dat vluchtig is.
Nu moeten we onze mysql-binaries laten exporteren elke keer dat we terminal gebruiken. We moeten dus concat volhouden op ons pad.
U weet misschien dat onze terminal iets gebruikt genaamd dotfile
om de configuratie te laden bij de initialisatie van de terminal. Ik zie het graag als sets van dingen die aan de constructeur worden doorgegeven telkens wanneer een nieuwe instantie van terminal wordt gemaakt (wederom een aanname maar in de buurt van wat het zou kunnen doen). Dus ja, je begrijpt nu wel wat we gaan doen.
.bash_profile
is een van de primaire bekende dotfile
.
Dus in het volgende commando,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Wat we doen is het opslaan van het resultaat van echo
d.w.z. uitvoer string naar ~/.bash_profile
Dus zoals we hierboven hebben opgemerkt, elke keer dat we een terminal of instantie van een terminal openen, onze dotfile
zijn geladen. Dus .bash_profile
wordt respectievelijk geladen en export
die we hierboven hebben toegevoegd, wordt uitgevoerd en dus een onze wereldwijde $PATH
wordt bijgewerkt en we krijgen alle opdrachten binnen /usr/local/mysql/bin
.
P.s.
als u de eerste opdracht niet rechtstreeks exporteert, maar alleen de tweede uitvoert om deze te behouden? Dan moet u voor de huidige actieve instantie van de terminal,
source ~/.bash_profile
Dit vertelt onze terminal om dat specifieke bestand opnieuw te laden.