Comprensión de la variable $ PATH
Contenido
- 1 Comprensión de la variable $ PATH
- 2 Usando bash_profile para establecer su RUTA
- 3 Usando bashrc para establecer su RUTA
- 4 Usando un archivo de perfil para configurar su RUTA
- 5 Configuración permanente de su PATH para otros shells como ZSH y KSH
- 6 Configuración permanente de PATH en todo el sistema para todos los usuarios
- 7 Solución de problemas de PATH
En este tutorial, le mostraremos cómo configurar permanentemente su PATH en Linux.
En primer lugar, ¿por qué debería importarle?
La variable $ PATH, o simplemente PATH, sin las variables $ indicadoras, especifica una lista de directorios que afecta la funcionalidad de su plataforma informática de manera crítica. Esto se debe a que $ PATH es la lista de directorios en los que el sistema busca programas, scripts o archivos ejecutables.
Imagínese tratando de ejecutar el ssh
comando, por ejemplo, para conectarse a un servidor. ¿Qué sucede si el sistema no puede encontrar el ssh
¿programa? No puede conectarse a servidores y ejecutar cálculos. Tiene una gran cantidad de programas útiles, ejemplos como python
, javac
, npm
, make
, chmod
, apt-get
y así sucesivamente, que su computadora necesita poder encontrar cuando los invoca en la línea de comando.
La variable $ PATH es la clave que hace posible encontrar el programa correcto y ejecutarlo en su comando sin necesidad de la ruta completa del directorio del ejecutable. Cuando su PATH está configurado incorrectamente, su shell no podrá encontrar programas y ciertos comandos fallarán.
Usando bash_profile para establecer su RUTA
Un error común con la variable $ PATH es establecerla solo en el shell actual, sin persistir el cambio. Cuando abre un nuevo shell, los cambios se pierden y, una vez más, no puede ejecutar ciertos comandos porque esos programas no se encuentran en el PATH.
La primera forma de configurar su $ PATH de forma permanente es modificar la variable $ PATH en su archivo de perfil Bash, ubicado en /home/<user>/.bash_profile
.
Por ejemplo, digamos que quiero agregar un nuevo directorio /home/tomahawk/tools/jdk1.8.0_92/bin
a mi RUTA. Puede reconocer esto como una instalación de Java Development Kit. Sin embargo, eso no viene al caso. Cualquiera que sea el directorio que contenga, puedo agregarlo a nuestra ruta y hacer que los programas que este bin
El directorio contiene accesible desde la línea de comando agregando la siguiente línea al final del archivo ~/.bash_profile
:
...
export PATH="$PATH:/home/tomahawk/tools/jdk1.8.0_92/bin"
Una buena forma de editar el archivo es usar nano
, vi
, vim
o emacs
. Puedes usar el comando sudo <editor> ~/.bash_profile
e ingrese su contraseña de administrador cuando se le solicite, luego agregue esa línea al final y guarde el archivo.
Para activar los cambios en el shell actual, debe «obtener» el actualizado bash_profile
archivo. Haz esto con el comando:
$ source ~/.bash_profile
Esto simplemente importa la configuración del archivo al shell actual. Ahora, cada vez que abres tu caparazón, tu bash_profile
será automáticamente «originado» y no necesitará ejecutar este comando cada vez.
Ahora podemos invocar comandos o programas en el nuevo directorio. /home/tomahawk/tools/jdk1.8.0_92/bin
, como javac
, situado en /home/tomahawk/tools/jdk1.8.0_92/bin/javac
simplemente escribiendo en el símbolo del sistema el nombre del programa. Podemos hacer esto ahora desde cualquier directorio, porque el PATH se ha actualizado para buscar programas ejecutables en nuestro nuevo directorio.
El comando:
$ javac --version
Ahora ejecuta el correcto javac
programa, imprimiendo algo como lo siguiente:
Java Compiler, version 1.8.0_92
bash_profile
es apropiado cuando desea establecer una variable PATH personalizada para un solo usuario del sistema. Si quisiera establecer PATH para todas usuarios de un sistema, existen mejores formas de hacerlo, que cubriremos más adelante en esta guía.
Usando bashrc para establecer su RUTA
En lugar de configurar el PATH en ~/.bash_profile
, también podemos agregar los directorios que queramos al PATH en ~/.bashrc
en lugar. Configurar el PATH en bashrc
parece idéntico a cómo lo configuramos bash_profile
.
Por ejemplo, para incluir el directorio /home/tomahawk/.rbenv/bin
en mi camino, edito o creo el archivo /home/tomahawk/.bashrc
, agregando la siguiente línea:
...
export PATH="$PATH:/home/tomahawk/.rbenv/bin"
Observe que, como la última vez, lo primero en nuestra nueva exportación PATH es la inclusión de la variable $ PATH existente. Esto asegura que preservamos el valor actual de PATH, y simplemente agregamos directorios adicionales a PATH, después de la variable $ PATH. Si no hace esto, sobrescribirá la variable PATH por completo y perderá los directorios críticos que el sistema necesita para estar en PATH. Como resultado, su sistema puede volverse inutilizable.
La diferencia entre usar bashrc
y bash_profile
es eso bash_profile
se utiliza para shells de inicio de sesión. Estos se ejecutan cuando inicia sesión a través de la consola o inicia sesión usando ssh
. Por el contrario, una vez que haya iniciado sesión y abra un shell de comandos o ejecute el bash
comando, el bashrc
el archivo se ejecutará. Su configuración de PATH de bashrc
entonces estará disponible.
El efecto de configurar PATH es similar. Además, debemos activar cualquier cambio en el bashrc
archivo en el shell actual la primera vez que hacemos este cambio, tal como lo hicimos para el bash_profile
archivo. Esta vez, corremos source ~/.bashrc
. Ahora podemos acceder a la nueva RUTA en la línea de comando. Se ha configurado de forma permanente y permanecerá igual entre varios inicios de sesión en el sistema.
Usando un archivo de perfil para configurar su RUTA
También podemos establecer la RUTA de forma permanente utilizando el archivo de perfil de un usuario. Esto es diferente de ~/.bash_profile
ya que está configurado no solo para shells, sino para todos los programas.
Los perfiles de usuario se cargan al iniciar sesión. La variable PATH se puede establecer en el ~/.profile
archivo.
Para configurar mi PATH para incluir todo lo que ya está en $ PATH, así como un nuevo directorio /home/tomahawk/.exenv/bin
, Edito el archivo en ~/.profile
y establezca la RUTA de la siguiente manera
export PATH="$PATH:/home/tomahawk/.exenv/bin"
Como en todos los ejemplos anteriores, necesitaremos obtener estos cambios para activarlos para el shell actual, pero los inicios de sesión posteriores conservarán los cambios.
Te puede interesar:Node.js Async Await en ES7Una vez hecho esto, puedo ejecutar el exenv
comando, que es uno de los programas disponibles en la carpeta que acabo de agregar a la RUTA, y obtengo la salida de mi exenv versión:
$ exenv version
1.3.4 (set by /home/tomahawk/.exenv/version)
Puede leer más sobre el exenv programa aquí, pero puede usar este proceso para configurar PATH permanentemente para incluir cualquier programa o directorio que desee.
Configuración permanente de su PATH para otros shells como ZSH y KSH
Si usa Shells alternativas como zsh, ksh y otros, puede establecer el PATH permanentemente usando la configuración de esos shells.
Me gusta intento, ambos zsh y ksh utilizar una zshrc y khsrc file, respectivamente, para establecer la ruta para shells sin inicio de sesión. Para los shells de inicio de sesión, utilizan los archivos de perfil de shell análogos zprofile y kprofile.
Te puede interesar:Automatización de confirmaciones de control de versionesPor lo tanto, puede establecer el PATH de forma permanente para estos shells de manera similar a lo que hicimos para Bash. Xa zsh, puede encontrar estos archivos o crearlos si no existen, en ~/.zshrc
y ~/.zprofile
.
Del mismo modo, puede establecer PATH de forma permanente para ksh en los archivos de configuración ubicados en ~/.kshrc
y ~/.kprofile
.
Hay muchas otras carcasas que puede usar, como la C Shell y el tcsh cáscara. Establecer el PATH permanentemente para ellos generalmente seguirá el patrón que hemos visto aquí.
Configuración permanente de PATH en todo el sistema para todos los usuarios
La configuración de todo el sistema para todos los usuarios se puede establecer en /etc/profile
. Existe una flexibilidad considerable y múltiples opciones para configurar el PATH de forma permanente en todo el sistema.
Su sistema Linux ejecutará todos los archivos de script que terminen en .sh en /etc/profile.d
siempre que se ingresa a un shell bash, así como cuando se carga la sesión de escritorio.
Por lo tanto, puede agregar un nuevo archivo, como env.sh
dentro del directorio /etc/profile.d
. En este archivo, podemos exportar la variable PATH, configurándola permanentemente en nuestra elección de directorios de ruta, por ejemplo:
export PATH="$PATH:/home/tomahawk/.rbenv/bin:/home/tomahawk/bin:/home/tomahawk/.local/bin"
Archivos en /etc/profile.d son adquiridos por / etc / profile, activando así nuestra RUTA en todo el sistema cada vez que un usuario inicia sesión.
También podemos establecer PATH para todos los usuarios en /etc/environment
, que toma pares clave-valor de la forma:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Solución de problemas de PATH
Como vimos, configurar PATH permanentemente en Linux tiene muchas opciones. Puede establecer la RUTA solo para un determinado usuario, para todos los usuarios o solo para ciertos tipos de shells de comandos. Sin embargo, es una buena idea no jugar con la configuración de PATH de todo el sistema a menos que realmente sepa lo que está haciendo.
Si encuentra problemas, un buen punto de partida es averiguar el valor actual de $ PATH, ejecutando el comando:
$ echo $PATH
Para obtener más consejos para la resolución de problemas, consulte este recurso.
Te puede interesar:Cómo obtener su dirección IP en Linux