Entonces, hay pocos lugares donde la terminal busca comandos. Estos lugares se almacenan en su $PATH
variable. Piense en ello como una variable global donde el terminal itera para buscar cualquier comando. Por lo general, estos son binarios, mira cómo se suele hacer referencia a la carpeta / bin.
/bin
carpeta tiene un montón de archivos ejecutables en su interior. Resulta que esto es comando. Estas diferentes ubicaciones de carpetas se almacenan dentro de una variable global, es decir, $PATH
separados por :
Ahora, por lo general, los programas al momento de la instalación se encargan de actualizar PATH
&decirle a tu terminal que hey, puedo ser todos los comandos dentro de mi bin
carpeta.
Resulta que MySql no lo hace durante la instalación, por lo que tenemos que hacerlo manualmente.
Lo hacemos siguiendo el comando,
export PATH=$PATH:/usr/local/mysql/bin
Si lo desglosa, export
se explica por sí mismo. Piense en ello como una tarea. Entonces export
una variable PATH
con valor antiguo $PATH
concat con el nuevo bin
es decir, /usr/local/mysql/bin
De esta manera, después de ejecutarlo, todos los comandos dentro de /usr/local/mysql/bin
están disponibles para nosotros.
Hay una pequeña trampa aquí. Piense en una ventana de terminal como una instancia de programa y tal vez algo como $PATH
es variable de clase (tal vez). Tenga en cuenta que esto es pura suposición. Así que al cerrar perdemos la nueva asignación. Y si volvemos a abrir la terminal, no tendremos acceso a nuestro comando nuevamente porque la última vez que exportamos, estaba almacenado en la memoria principal, que es volátil.
Ahora necesitamos exportar nuestros binarios mysql cada vez que usamos la terminal. Así que tenemos que persistir concat en nuestro camino.
Es posible que sepa que nuestro terminal usa algo llamado dotfiles
para cargar la configuración en la inicialización del terminal. Me gusta pensar que es como conjuntos de cosas que se pasan al constructor cada vez que se crea una nueva instancia de terminal (nuevamente una suposición pero cercana a lo que podría estar haciendo). Así que sí, ahora entiendes lo que vamos a hacer.
.bash_profile
es uno de los principales dotfile
conocidos .
Entonces, en el siguiente comando,
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
Lo que estamos haciendo es guardar el resultado de echo
es decir, cadena de salida a ~/.bash_profile
Ahora, como señalamos anteriormente, cada vez que abrimos una terminal o una instancia de la terminal, nuestros dotfiles
están cargados. Entonces .bash_profile
se carga respectivamente y export
que agregamos arriba se ejecuta y, por lo tanto, es nuestro $PATH
global se actualiza y obtenemos todos los comandos dentro de /usr/local/mysql/bin
.
PD.
si no está ejecutando el primer comando de exportación directamente sino simplemente ejecutando el segundo para persistir? Que para la instancia de ejecución actual de la terminal que tiene que,
source ~/.bash_profile
Esto le dice a nuestra terminal que vuelva a cargar ese archivo en particular.