Така че има малко места, където терминалът търси команди. Тези места се съхраняват във вашия $PATH
променлива. Мислете за това като за глобална променлива, при която терминалът пренасочва, за да търси всяка команда. Това обикновено са двоични файлове, вижте как папката /bin обикновено се препраща.
/bin
папката има много изпълними файлове вътре. Оказва се, че това е команда. Тези различни местоположения на папки се съхраняват в една глобална променлива, т.е. $PATH
разделени с :
Сега обикновено програмите при инсталиране се грижат за актуализирането на PATH
&казвайки на вашия терминал, че хей, мога да бъда всички команди в моя bin
папка.
Оказва се, че MySql не го прави при инсталиране, така че трябва да го направим ръчно.
Правим го със следната команда,
export PATH=$PATH:/usr/local/mysql/bin
Ако го разбиете, export
разбира се. Мислете за това като за задача. Така че export
променлива PATH
със стойност old $PATH
concat с нов bin
т.е. /usr/local/mysql/bin
По този начин, след като го изпълните, всички команди вътре в /usr/local/mysql/bin
са на разположение за нас.
Тук има малка уловка. Мислете за един терминален прозорец като един екземпляр на програма и може би нещо като $PATH
е променлива на класа (може би). Имайте предвид, че това е чисто предположение. Така че при затваряне губим новото задание. И ако отворим отново терминала, няма да имаме достъп до нашата команда отново, защото последно, когато експортирахме, тя беше запазена в първичната памет, която е непостоянна.
Сега трябва да експортираме двоичните файлове на mysql всеки път, когато използваме терминал. Така че трябва да упорстваме по пътя си.
Може би сте наясно, че нашият терминал използва нещо, наречено dotfiles
за зареждане на конфигурация при инициализация на терминала. Харесва ми да мисля за това като набори от неща, предавани на конструктора всеки път, когато се създаде нов екземпляр на терминал (Отново предположение, но близо до това, което може да прави). Така че да, вече разбирате какво ще правим.
.bash_profile
е един от основните известни dotfile
.
Така че в следната команда
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Това, което правим, е запазване на резултата от echo
т.е. извеждане на низ към ~/.bash_profile
Така че сега, както отбелязахме по-горе всеки път, когато отваряме терминал или екземпляр на терминала, нашите dotfiles
са заредени. Така че .bash_profile
се зарежда съответно и export
който добавихме по-горе се изпълнява и по този начин нашият глобален $PATH
се актуализира и получаваме всички команди в /usr/local/mysql/bin
.
P.s.
ако не стартирате директно експортиране на първата команда, а просто изпълнявате втора, за да я запазите? Отколкото за текущия работещ екземпляр на терминала трябва да,
source ~/.bash_profile
Това казва на нашия терминал да презареди този конкретен файл.