Es gibt also nur wenige Orte, an denen das Terminal nach Befehlen sucht. Diese Orte werden in Ihrem $PATH
gespeichert Variable. Stellen Sie es sich als eine globale Variable vor, bei der das Terminal iteriert, um nach einem beliebigen Befehl zu suchen. Dies sind normalerweise Binärdateien, die so aussehen, wie der /bin-Ordner normalerweise referenziert wird.
/bin
Der Ordner enthält viele ausführbare Dateien. Es stellt sich heraus, dass dies ein Befehl ist. Diese verschiedenen Ordnerspeicherorte werden in einer globalen Variablen gespeichert, z. B. $PATH
getrennt durch :
Jetzt kümmern sich Programme normalerweise bei der Installation um die Aktualisierung von PATH
&sagen Sie Ihrem Terminal, dass ich alle Befehle in meinem bin
sein kann Mappe.
Es stellt sich heraus, dass MySql dies bei der Installation nicht tut, also müssen wir es manuell tun.
Wir tun dies mit dem folgenden Befehl,
export PATH=$PATH:/usr/local/mysql/bin
Wenn Sie es zerlegen, export
ist selbsterklärend. Betrachten Sie es als eine Aufgabe. Also export
eine Variable PATH
mit altem Wert $PATH
concat mit new bin
also /usr/local/mysql/bin
Auf diese Weise nach dem Ausführen aller Befehle in /usr/local/mysql/bin
stehen uns zur Verfügung.
Hier gibt es einen kleinen Haken. Stellen Sie sich ein Terminalfenster als eine Instanz eines Programms und vielleicht so etwas wie $PATH
vor ist Klassenvariable (vielleicht). Beachten Sie, dass dies eine reine Annahme ist. Beim Schließen verlieren wir also die neue Zuweisung. Und wenn wir das Terminal erneut öffnen, haben wir keinen Zugriff mehr auf unseren Befehl, da er beim letzten Export im primären Speicher gespeichert wurde, der flüchtig ist.
Jetzt müssen wir unsere MySQL-Binärdateien jedes Mal exportieren, wenn wir das Terminal verwenden. Also müssen wir concat auf unserem Weg beharren.
Sie wissen vielleicht, dass unser Terminal etwas namens dotfiles
verwendet
um die Konfiguration bei der Terminalinitialisierung zu laden. Ich stelle es mir gerne als Sätze von Dingen vor, die jedes Mal an den Konstrukteur übergeben werden, wenn eine neue Instanz von Terminal erstellt wird (wiederum eine Annahme, aber nahe an dem, was es tun könnte). Also ja, Sie haben jetzt verstanden, was wir tun werden.
.bash_profile
ist eines der wichtigsten bekannten dotfile
.
Also im folgenden Befehl,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Wir speichern das Ergebnis von echo
d.h. Ausgabestring an ~/.bash_profile
Wie wir oben bereits erwähnt haben, öffnen wir jedes Mal, wenn wir ein Terminal oder eine Terminalinstanz öffnen, unsere dotfiles
geladen sind. Also .bash_profile
geladen bzw. export
das wir oben angehängt haben, wird ausgeführt &somit unser globaler $PATH
wird aktualisiert und wir erhalten alle Befehle in /usr/local/mysql/bin
.
Ps.
wenn Sie den ersten Befehlsexport nicht direkt ausführen, sondern nur den zweiten ausführen, um ihn beizubehalten? Dann müssen Sie für die aktuell laufende Instanz des Terminals,
source ~/.bash_profile
Dies weist unser Terminal an, diese bestimmte Datei neu zu laden.