Jest więc kilka miejsc, w których terminal szuka poleceń. Te miejsca są przechowywane w Twojej $PATH
zmienny. Pomyśl o tym jako o zmiennej globalnej, w której terminal iteruje w poszukiwaniu dowolnego polecenia. Są to zwykle pliki binarne, patrz, jak zwykle odwołuje się do folderu /bin.
/bin
folder zawiera wiele plików wykonywalnych. Okazuje się, że to rozkaz. Te różne lokalizacje folderów są przechowywane w jednej zmiennej globalnej, tj. $PATH
oddzielone :
Teraz zwykle programy po instalacji zajmują się aktualizacją PATH
i mówiąc terminalowi, że hej, mogę być wszystkimi poleceniami w moim bin
teczka.
Okazuje się, że MySql nie robi tego podczas instalacji, więc musimy to zrobić ręcznie.
Robimy to za pomocą polecenia
export PATH=$PATH:/usr/local/mysql/bin
Jeśli to zepsujesz, export
jest oczywiste. Potraktuj to jako zadanie. Więc export
zmienna PATH
o wartości stara $PATH
połącz z nowym bin
np. /usr/local/mysql/bin
W ten sposób po wykonaniu wszystkich poleceń wewnątrz /usr/local/mysql/bin
są dla nas dostępne.
Jest tu mały haczyk. Pomyśl o jednym oknie terminala jako o jednej instancji programu i może o czymś w rodzaju $PATH
jest zmienną klasy (być może). Zauważ, że to czyste założenie. Tak więc po zamknięciu tracimy nowe zadanie. A jeśli ponownie otworzymy terminal, nie będziemy mieli ponownie dostępu do naszego polecenia, ponieważ ostatnio podczas eksportu było ono przechowywane w pamięci podstawowej, która jest ulotna.
Teraz musimy eksportować nasze binaria mysql za każdym razem, gdy używamy terminala. Więc musimy wytrwać concat na naszej drodze.
Być może wiesz, że nasz terminal używa czegoś o nazwie dotfiles
aby załadować konfigurację podczas inicjalizacji terminala. Lubię myśleć o tym jako o zestawach rzeczy przekazywanych do konstruktora za każdym razem, gdy tworzona jest nowa instancja terminala (znowu założenie, ale bliskie temu, co może robić). Więc tak, teraz rozumiesz, co zamierzamy zrobić.
.bash_profile
jest jednym z podstawowych znanych dotfile
.
Tak więc w następującym poleceniu
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Zapisujemy wynik echo
np. wypisz ciąg do ~/.bash_profile
Więc teraz, jak zauważyliśmy powyżej, za każdym razem, gdy otwieramy terminal lub instancję terminala, nasze dotfiles
są załadowane. Więc .bash_profile
jest ładowany odpowiednio i export
dodany powyżej jest uruchamiany, a zatem nasza globalna $PATH
zostanie zaktualizowany i otrzymamy wszystkie polecenia wewnątrz /usr/local/mysql/bin
.
PS
jeśli nie uruchamiasz bezpośredniego eksportu pierwszego polecenia, ale po prostu uruchamiasz drugie, aby go utrwalić? Musisz to zrobić w przypadku aktualnie działającej instancji terminala,
source ~/.bash_profile
To każe naszemu terminalowi ponownie załadować ten konkretny plik.