Cómo agregar un directorio a $ ruta en Linux

toadmin. ru

$ Path es uno de los manipuladores tranquilos en el fondo de su computadora Linux. Afecta discretamente su experiencia de usuario, pero no hay nada cuestionable al respecto. Explicaremos lo que hace y cómo puede personalizarlo.

¿Qué es $ Path en Linux y cómo funciona?

Cuando escribe un comando en una ventana de terminal y presione Entrar, active bastantes acciones antes de que su comando se ejecute.

Bash es el shell predeterminado en la mayoría de las distribuciones de Linux. Interpreta la línea de texto que escribe e identifica los nombres de los comandos mezclados con parámetros, canales, redireccionamientos y cualquier otra cosa que haya. Luego encuentra los binarios ejecutables para esos comandos y los ejecuta con los parámetros que especifica.

El primer paso para que el shell encuentre el ejecutable es determinar si el binario está involucrado en absoluto. Si el comando que está utilizando está dentro del shell («shell incorporado») No se requiere más búsqueda.

Las funciones de concha incorporadas son las más fáciles de encontrar porque son una parte integral de la carcasa. Es como tenerlos en el cinturón de herramientas: siempre los tienes contigo.

Sin embargo, si necesita otra herramienta, tendrá que portar a través de su taller para encontrarla.¿En su banco de trabajo o en un estante de pared? Eso es lo que hace la variable de entorno de ruta $. Enumera las ubicaciones donde se realizan las búsquedas de shell y el orden en el que se ejecutarán.

Si desea saber si un comando es un shell incrustado, un alias, una función o un MV / trabajo / archivos binario independiente, puede usar el comando Tipo como se muestra a continuación:

tipo
tipo CD

Esto nos dice que Clear es un binario, y el primer archivo que se encuentra en la ruta está en / usr / bin. Es posible que tenga varias versiones de Clear Installed en su computadora, pero el shell intentará usar esta.

No es sorprendente que el CD sea un caparazón incorporado.

Listado de su ruta $

Es fácil ver qué hay en tu camino. Simplemente escriba lo siguiente para usar el comando echo e imprima el valor almacenado en la variable de ruta $:

Echo $ Path

В

El resultado es una lista de ubicaciones del sistema de archivos separadas por colons (: :). El shell busca de izquierda a derecha a lo largo de la ruta, verificando cada ubicación del sistema de archivos para un ejecutable adecuado para ejecutar su comando.

Cómo cambiar automáticamente el nombre de los archivos multimedia en Linux con FileBot

Podemos revisar la lista para ver las ubicaciones en el sistema de archivos que se buscarán y el orden en que se ejecutarán:

/usr/local/sbin/USR/local/ben/usr/sbin/usr/bin/sbin/bin/usr/juegos/usr/local/juegos/snap/bin

Lo que puede no ser inmediatamente obvio es que la búsqueda no comienza en el directorio de trabajo actual. Más bien, recorre los directorios enumerados y solo los directorios enumerados.

Si el directorio de trabajo actual no está en su ruta, no se buscará. Además, si tiene comandos almacenados en directorios que no figuran en la ruta, el shell no los encontrará.

Para demostrar esto, creamos un pequeño programa llamado rf. Cuando se ejecuta, rf muestra el nombre del directorio desde el que se ejecutó en una ventana de terminal. Se encuentra en /usr/local/bin. También tenemos una versión más reciente en el directorio /dave/work.

Escriba el siguiente comando para mostrarnos qué versión de nuestro programa encontrará y usará el shell:

que rf

В

El shell nos dice que la versión encontrada está en el directorio especificado en la ruta.

Escribimos lo siguiente para ejecutarlo:

В

La versión 1. 0 RF se ejecuta y confirma que se cumplen nuestras expectativas. La versión encontrada y en ejecución se encuentra en /usr/local/bin.

Para ejecutar cualquier otra versión de rf en esta computadora, necesitaremos usar la ruta al ejecutable en la línea de comando como se muestra a continuación:

./trabajo/rf.

В

Ahora que le hemos dicho al shell dónde encontrar la versión de rf que queremos ejecutar, usa la versión 1. 1. Si preferimos esta versión, podemos copiarla en el directorio /usr/local/bin y sobrescribir la anterior.

Digamos que estamos desarrollando una nueva versión de rf. Tendremos que ejecutarlo con frecuencia a medida que lo desarrollamos y lo probamos, pero no queremos copiar una compilación de desarrollo inédita en un entorno en vivo.

O tal vez hemos subido una nueva versión de rf y queremos hacer algunas pruebas de verificación con ella antes de ponerla a disposición del público.

Si agregamos nuestro directorio de trabajo a la ruta, obligamos al shell a encontrar nuestra versión. Y este cambio solo nos afectará a nosotros: otros seguirán usando la versión rf en /usr/local/bin.

Cómo mostrar páginas de manual en color en Linux

Agregar un directorio a su $ PATH

Puede usar el comando de exportación para agregar un directorio a $ ruta. Luego se incluye el directorio en la lista de ubicaciones del sistema de archivos que el shell busca. Cuando el shell encuentra el ejecutable apropiado, deja de buscar, por lo que debe asegurarse de que busque su directorio antes de / usr / local / bin.

Esto es fácil de hacer. En nuestro ejemplo, ingresamos lo siguiente para agregar nuestro directorio al comienzo de la ruta para que sea el primer lugar buscado:

exportación ruta =/home/dave/work: $ ruta

В

Este comando establece la ruta $ igual al directorio agregado, / home / dave / work, y luego toda la ruta actual.

La primera ruta no tiene un signo de dólar ($). Establecemos el valor para la ruta. La última ruta $ tiene un signo de dólar porque estamos haciendo referencia al contenido almacenado en la variable de ruta. Observe también el colon (: 🙂 entre el nuevo directorio y el nombre de la variable de ruta $.

Veamos cómo se ve el camino ahora:

Echo $ Path

В

Nuestro directorio / Home / Dave / Work se agrega al comienzo de la ruta. El colon que proporcionamos lo separa del resto del camino.

Ingresamos lo siguiente para asegurarnos de que nuestra versión de RF sea la primera encontrada:

que rf

В

La prueba en el pudín es RF, como se muestra a continuación:

В

El shell encuentra la versión 1. 1 y la ejecuta desde / home / dave / work.

Para agregar nuestro directorio al final de la ruta, simplemente lo movemos al final del comando, por ejemplo:

exportación ruta = $ ruta:/home/dave/work

Hacer que los cambios sean permanentes

En la forma de Beth Brooke-Marcignac dijo: «El éxito es bueno, pero el éxito es fugaz». En el momento en que cierre la ventana del terminal, desaparecen todos los cambios que realizó a $Para hacerlos permanentes, debe colocar el comando de exportación en el archivo de configuración.

Cuando coloca el comando de exportación en el archivo . bashrc, establece la ruta cada vez que abre una ventana de terminal. A diferencia de las sesiones SSH, que requieren que inicie sesión, se llaman sesiones «interactivas».

Solía poner el comando de exportación en el archivo . profile para establecer la ruta para iniciar sesión en sesiones de terminal.

Sin embargo, descubrimos que si colocamos el comando de exportación en los archivos . bashrc o . profile, establece correctamente la ruta para las sesiones de inicio de sesión interactivas y terminales. Tu experiencia puede ser diferente. Para manejar todos los casos posibles, le mostraremos cómo hacerlo en ambos archivos.

Cómo usar e instalar paquetes Snap en Linux

Use el siguiente comando en su directorio / Home para editar el archivo . bashrc:

GEDIT . BASHRC

В

El editor GEDIT se abre con el archivo . BASHRC cargado.

El editor de Gedit con

Desplácese hasta el final del archivo y agregue el siguiente comando de exportación que usamos anteriormente:

exportación ruta =/home/dave/work: $ ruta

Guarda el archivo. Luego, cierre y reabierta la ventana del terminal o use el comando DOT para leer el archivo . bashrc como se muestra a continuación:

Luego ingrese el siguiente comando ECHO para verificar la ruta:

Echo $ Path

В

Esto agrega el directorio / home / dave / trabajo al comienzo de la ruta.

El proceso de agregar el comando al archivo . profile es el mismo. Escriba el siguiente comando:

gedit . profile

В

El editor GEDIT comienza con el archivo . profile cargado.

El editor de Gedit con

Agregue el comando de exportación al final del archivo y luego guárdelo. Cerrar y abrir una nueva ventana de terminal no es suficiente para forzar una releer del archivo . profile. Para que la nueva configuración entre en vigencia, debe salir y volver a ingresar o usar el comando DOT como se muestra a continuación:

.. perfil

Camino para todos

Para especificar una ruta para todos los que usan el sistema, puede editar el archivo / etc / perfil.

Deberá usar sudo de la siguiente manera:

sudo gedit /etc /perfil

Cuando se ejecute el editor GEDIT, agregue el comando de exportación al final del archivo.

El editor de Gedit con

Guarde y cierre el archivo. Los cambios entrarán en vigencia para otros la próxima vez que inicie sesión.

Nota de seguridad

Asegúrese de no agregar accidentalmente un colon al comienzo de la ruta «:», como se muestra a continuación.

В

Si lo hace, se buscará primero el directorio actual, que es un riesgo de seguridad. Digamos que descarga un archivo de archivo y lo descompone en un directorio. Mira los archivos y ves otro archivo archivado. Vuelve a llamar a Unzip para extraer ese archivo.

Si el primer archivo contenía un ejecutable llamado Unzip que era un ejecutable malicioso, lo habría ejecutado accidentalmente en lugar del ejecutable de Unzip real. Esto podría suceder porque el shell buscaría primero el directorio actual.

Así que siempre tenga cuidado al ingresar comandos de exportación. Use el camino Echo $ para buscarlos y asegúrese de que sean lo que quiere que sean.