stringtranslate.com

RUTA (variable)

PATH es una variable de entorno en sistemas operativos tipo Unix , DOS , OS/2 y Microsoft Windows , que especifica un conjunto de directorios donde se ubican los programas ejecutables. En general, cada proceso en ejecución o sesión de usuario tiene su propia configuración de RUTA.

Historia

Multics originó la idea de una ruta de búsqueda. El primer shell de Unix solo buscaba nombres de programas en /bin, pero en la versión 3 de Unix el directorio era demasiado grande y /usr/bin, y una ruta de búsqueda, se convirtieron en parte del sistema operativo. [1]

Unix y similares a Unix

En sistemas operativos POSIX y tipo Unix, la $PATHvariable se especifica como una lista de uno o más nombres de directorio separados por dos puntos ( :). [2] [3] Los directorios en la PATHcadena -no deben tener caracteres de escape, lo que hace imposible tener directorios con :su nombre. [4]

Los directorios /bin, /usr/biny /usr/local/binnormalmente se incluyen en $PATHla configuración de la mayoría de los usuarios (aunque esto varía de una implementación a otra). El superusuario también suele tener /sbinentradas /usr/sbinpara ejecutar fácilmente comandos de administración del sistema . .A veces, los usuarios también incluyen el directorio actual ( ), lo que permite ejecutar directamente los programas que residen en el directorio de trabajo actual . Los administradores del sistema, por regla general, no lo incluyen para $PATHevitar la ejecución accidental de scripts que residen en el directorio actual, como los que puede colocar allí un tarbomb malicioso . En ese caso, ejecutar dicho programa requiere especificar una /home/userjoe/bin/script.shruta absoluta ( ) o relativa ( ./script.sh) en la línea de comando.

Cuando el usuario especifica un nombre de comando o se realiza una llamada ejecutiva$PATH desde un programa, el sistema busca en , examinando cada directorio de izquierda a derecha en la lista, buscando un nombre de archivo que coincida con el nombre del comando. Una vez encontrado, el programa se ejecuta como un proceso hijo del shell de comandos o del programa que emitió el comando.

DOS, OS/2 y Windows

En los sistemas operativos DOS, OS/2 y Windows, la %PATH%variable se especifica como una lista de uno o más nombres de directorio separados por ;caracteres de punto y coma (). [5]

El directorio del sistema de Windows (normalmente C:\WINDOWS\system32) suele ser el primer directorio de la ruta, seguido de muchos (pero no todos) los directorios de los paquetes de software instalados. Muchos programas no aparecen en la ruta porque no están diseñados para ejecutarse desde una ventana de comandos , sino desde una interfaz gráfica de usuario . Algunos programas pueden agregar su directorio al frente del contenido de la variable PATH durante la instalación, para acelerar el proceso de búsqueda y/o anular los comandos del sistema operativo. En la era DOS, era costumbre agregar una línea o a AUTOEXEC.BAT .PATH {program directory};%PATH%SET PATH={program directory};%PATH%

Cuando se ingresa un comando en un shell de comandos o un programa realiza una llamada al sistema para ejecutar un programa, el sistema primero busca el directorio de trabajo actual y luego busca la ruta, examinando cada directorio de izquierda a derecha, buscando un nombre de archivo ejecutable . que coincida con el nombre del comando dado. Los programas ejecutables tienen extensiones de nombre de archivo de EXEo COMy los scripts por lotes tienen extensiones de BATo CMD. También se pueden registrar otras extensiones de nombres de archivos ejecutables en el sistema.

Una vez que se encuentra un archivo ejecutable coincidente, el sistema genera un nuevo proceso que lo ejecuta.

La variable PATH facilita la ejecución de programas de uso común ubicados en sus propias carpetas. Sin embargo, si se usa imprudentemente, el valor de la variable PATH puede ralentizar el sistema operativo al buscar demasiadas ubicaciones o ubicaciones no válidas.

Las ubicaciones no válidas también pueden impedir que los servicios se ejecuten por completo, especialmente el servicio 'Servidor', que suele ser una dependencia de otros servicios dentro de un entorno de Windows Server.

Referencias

  1. ^ McIlroy, Doctor en Medicina (1987). Un lector de Research Unix: extractos comentados del Manual del programador, 1971-1986 (PDF) (Informe técnico). CSTR. Laboratorios Bell. 139.
  2. ^ Especificación de Unix de grupo abierto, variables de entorno
  3. ^ Especificación de Unix de grupo abierto, función execve ()
  4. ^ Dash exec.c como ejemplo de una implementación de un analizador de cadenas PATH
  5. ^ Microsoft.com, comando RUTA