Il y a donc peu d'endroits où le terminal recherche des commandes. Ces lieux sont stockés dans votre $PATH
variable. Considérez-le comme une variable globale où le terminal itère pour rechercher n'importe quelle commande. Ce sont généralement des binaires qui regardent comment le dossier /bin est généralement référencé.
/bin
dossier contient de nombreux fichiers exécutables. Il s'avère que ce sont des commandes. Ces différents emplacements de dossier sont stockés dans une variable globale, c'est-à-dire $PATH
séparés par :
Désormais, les programmes lors de l'installation prennent généralement en charge la mise à jour de PATH
&dire à votre terminal que je peux être toutes les commandes dans mon bin
dossier.
Il s'avère que MySql ne le fait pas lors de l'installation, nous devons donc le faire manuellement.
Nous le faisons en suivant la commande,
export PATH=$PATH:/usr/local/mysql/bin
Si vous le décomposez, export
est explicite. Considérez cela comme une mission. Donc export
une variable PATH
avec l'ancienne valeur $PATH
concat avec le nouveau bin
c'est-à-dire /usr/local/mysql/bin
De cette façon, après avoir exécuté toutes les commandes dans /usr/local/mysql/bin
sont à notre disposition.
Il y a un petit hic ici. Considérez une fenêtre de terminal comme une instance de programme et peut-être quelque chose comme $PATH
est une variable de classe (peut-être). Notez qu'il s'agit d'une pure hypothèse. Ainsi, à la fermeture, nous perdons la nouvelle affectation. Et si nous rouvrons le terminal, nous n'aurons plus accès à notre commande car la dernière fois que nous avons exporté, elle était stockée dans la mémoire primaire qui est volatile.
Maintenant, nous devons exporter nos fichiers binaires mysql à chaque fois que nous utilisons le terminal. Nous devons donc persister sur notre chemin.
Vous savez peut-être que notre terminal utilise quelque chose appelé dotfiles
pour charger la configuration à l'initialisation du terminal. J'aime penser que c'est comme des ensembles de choses transmises au constructeur chaque fois qu'une nouvelle instance de terminal est créée (encore une hypothèse mais proche de ce qu'elle pourrait faire). Alors oui, vous comprenez maintenant ce que nous allons faire.
.bash_profile
est l'un des principaux dotfile
connus .
Donc dans la commande suivante,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Ce que nous faisons, c'est enregistrer le résultat de echo
c'est-à-dire la chaîne de sortie vers ~/.bash_profile
Alors maintenant, comme nous l'avons noté ci-dessus, chaque fois que nous ouvrons un terminal ou une instance de terminal, nos dotfiles
sont chargés. Donc .bash_profile
est chargé respectivement et export
que nous avons ajouté ci-dessus est exécuté et donc notre $PATH
global est mis à jour et nous obtenons toutes les commandes dans /usr/local/mysql/bin
.
PS
si vous n'exécutez pas directement la première commande d'exportation, mais que vous exécutez simplement la seconde afin de la conserver ? Que pour l'instance en cours d'exécution du terminal, vous devez,
source ~/.bash_profile
Cela indique à notre terminal de recharger ce fichier particulier.