Så det finns få ställen där terminal letar efter kommandon. Dessa platser lagras i din $PATH
variabel. Tänk på det som en global variabel där terminal itererar över för att leta upp efter vilket kommando som helst. Detta är vanligtvis binärer, se hur /bin-mappen vanligtvis refereras till.
/bin
mappen har massor av körbara filer inuti den. Det visar sig att detta är kommandon. Dessa olika mappplatser lagras i en global variabel, dvs $PATH
separerade med :
Nu brukar program vid installationen ta hand om att uppdatera PATH
&talar om för din terminal att jag kan vara alla kommandon i min bin
mapp.
Det visar sig att MySql inte gör det vid installationen så vi måste göra det manuellt.
Vi gör det genom att följa kommandot,
export PATH=$PATH:/usr/local/mysql/bin
Om du bryter ner det, export
är självförklarande. Se det som ett uppdrag. Så export
en variabel PATH
med värdet gammalt $PATH
concat med ny bin
dvs /usr/local/mysql/bin
På detta sätt efter att ha utfört det alla kommandon i /usr/local/mysql/bin
finns tillgängliga för oss.
Det finns en liten hake här. Tänk på ett terminalfönster som en instans av programmet och kanske något som $PATH
är klassvariabel (kanske ). Observera att detta är ett rent antagande. Så vid stängning förlorar vi det nya uppdraget. Och om vi öppnar terminalen igen kommer vi inte att ha tillgång till vårt kommando igen eftersom sist när vi exporterade, lagrades det i primärminnet som är flyktigt.
Nu måste vi ha våra mysql-binärer exporterade varje gång vi använder terminal. Så vi måste hålla fast vid vår väg.
Du kanske är medveten om att vår terminal använder något som heter dotfiles
för att ladda konfigurationen vid terminalinitiering. Jag tycker om att tänka på att det är som en uppsättning saker som skickas till konstruktören varje gång en ny instans av terminal skapas (Återigen ett antagande men nära vad den kan göra). Så ja vid det här laget förstår du poängen vad vi ska göra.
.bash_profile
är en av de primära kända dotfile
.
Så i följande kommando,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Det vi gör är att spara resultatet av echo
d.v.s. mata ut strängen till ~/.bash_profile
Så nu som vi noterade ovan varje gång vi öppnar terminal eller instans av terminal våra dotfiles
är laddade. Alltså .bash_profile
laddas respektive export
som vi har lagt till ovan körs och därmed vår globala $PATH
uppdateras och vi får alla kommandon inuti /usr/local/mysql/bin
.
P.s.
om du inte kör första kommandot export direkt utan bara kör andra för att fortsätta det? Än för nuvarande körande instans av terminal måste du,
source ~/.bash_profile
Detta säger åt vår terminal att ladda om just den filen.