Estoy tratando de instalar algo y entre los pasos estaba este:
"Ponlo en tu $PATH
"
¿Qué significa esto? ¿Que es eso?
He buscado en este sitio y en Google, ¡pero todos lo dan por sentado!
Estoy tratando de instalar algo y entre los pasos estaba este:
"Ponlo en tu $PATH
"
¿Qué significa esto? ¿Que es eso?
He buscado en este sitio y en Google, ¡pero todos lo dan por sentado!
Respuestas:
Ejecutar en una terminal:
echo $PATH
o
printf "%s\n" "$PATH"
lo que ves es una lista de directorios, que se ve así:
/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Si coloca un ejecutable en cualquiera de estos directorios, no necesita establecer la ruta al ejecutable / script, pero puede ejecutarlo por su nombre como un comando.
Los ejecutables en $PATH
no deberían tener una extensión de idioma por convención (aunque funcionarían)
Puede agregar (permanentemente) un directorio $PATH
agregando la siguiente línea a su ~/.profile
archivo (invisible de forma predeterminada, presione Ctrl+ Hen el administrador de archivos para que sea visible):
export PATH=$PATH:/path/to/dir
(como $PATH
) se puede encontrar aquí (gracias por las sugerencias @Letizia)
$PATH
es una variable de entorno relacionada con la ubicación del archivo .
Cuando uno escribe un comando para ejecutar, el sistema lo busca en los directorios especificados por PATH
en el orden especificado.
Puede ver los directorios especificados escribiendo echo $PATH
en el terminal.
Supongamos que hay un archivo ejecutable foobar01.sh
presente en el /home/user/foo1/foo2/foobar01.sh
que desea ejecutar de forma regular. escribir todo el "camino" llevaría mucho tiempo. Entonces agregamos el directorio a la $PATH
variable y podemos ejecutarlo foobar.sh
directamente sin siquiera especificar la ruta.
Puede agregarlo $PATH
escribiendo el siguiente comando
export PATH=$PATH:/home/user/foo1/foo2
Supongo que proviene de un fondo de Windows (disculpas si no es cierto). En términos simples, una ruta (o la ruta de búsqueda) es la lista de directorios en los que se buscará cualquier cosa que escriba en la línea de comando. Si escribe un comando incorporado como ls, buscará una lista específica de directorios. Puede buscar su camino escribiendo echo $ PATH. Aquí hay una diferencia entre Windows y * nix: de manera predeterminada, Windows siempre busca el archivo ejecutable en el directorio actual. Por ejemplo, si tiene un archivo llamado uptime.bat en c: \ myscripts, y cd c: \ myscripts y escribe uptime, se ejecutará. Sin embargo, en * nix, se consultará la ruta y se encontrará el ejecutable (si está disponible).
Si mantiene sus scripts en un directorio llamado / home / teresa / scripts, para ejecutar esos scripts, deberá especificar la ruta completa a ese directorio. Ejemplo: / hone / teresa / checkHost. Una variación sería cd / home / teresa y luego escriba ./checkHost (tenga en cuenta ./, lo que significa que está pidiendo explícitamente que el archivo se ejecute desde el directorio actual.
Para evitar esto, solo puede escribir
export PATH = $ PATH: / home / teresa / scripts
lo que significa que, además de la ruta que ya existe ahora, también busque en / hone / teresa / scripts. Sin embargo, el problema con esto es que una vez que cierre la sesión, esta configuración desaparecerá. Por lo tanto, debe editar el archivo oculto ~ / .bashrc, encontrar la línea PATH allí y agregarla en consecuencia. Supongo que usas bash. En el caso de otros shells, la sintaxis y el archivo son diferentes.
Como nuevo usuario, es muy tentador tenerlo. en la ruta de búsqueda, lo que básicamente significa que también busca en el directorio actual. Sin embargo, eso no se considera una buena práctica por razones discutidas en otra parte.
HTH