<Anterior | Contenido | Siguiente>
3.2. Orientación en el sistema de archivos
3.2.1. El camino
Cuando desee que el sistema ejecute un comando, casi nunca tendrá que proporcionar la ruta completa a ese comando. Por ejemplo, sabemos que el ls el comando está en el /compartimiento directorio (consulte con lo cual -a ls), pero no tenemos que ingresar el comando / bin / ls para que la computadora muestre el contenido del directorio actual.
La TRAYECTORIA la variable de entorno se encarga de esto. Esta variable enumera los directorios del sistema donde se pueden encontrar archivos ejecutables y, por lo tanto, le ahorra al usuario mucho escribir y memorizar las ubicaciones de los comandos. Entonces, la ruta contiene naturalmente muchos directorios que contienen papelera en algún lugar de sus nombres, como lo demuestra el siguiente usuario. los echo El comando se usa para mostrar el contenido ("$") de la variable TRAYECTORIA:
rogier:> echo $ PATH
/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin
rogier:> echo $ PATH
/ opt / local / bin: / usr / X11R6 / bin: / usr / bin: / usr / sbin /: / bin
En este ejemplo, los directorios / opt / local / bin, / usr / X11R6 / bin, / usr / bin, / usr / sbin y
/compartimiento posteriormente se buscan el programa requerido. Tan pronto como se encuentra una coincidencia, la búsqueda se detiene, incluso si no se han buscado todos los directorios de la ruta. Esto puede provocar situaciones extrañas. En el primer ejemplo a continuación, el usuario sabe que hay un programa llamado enviar SMS para enviar un mensaje SMS, y otro usuario del mismo sistema puede usarlo, pero ella no. La diferencia está en la configuración del TRAYECTORIA variable:
[jenny @ blob jenny] $ enviar SMS bash: envíams: comando no encontrado [jenny @ blob jenny] $ echo $ PATH
/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony
Contraseña: tony: ~> que envía ms
envíams es / usr / local / bin / mandams
tony: ~> echo $ PATH
/inicio/tony/bin.Linux:/inicio/tony/bin:/usr/local/bin:/usr/local/sbin:
/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin
[jenny @ blob jenny] $ enviar SMS bash: envíams: comando no encontrado [jenny @ blob jenny] $ echo $ PATH
/ bin: / usr / bin: / usr / bin / X11: / usr / X11R6 / bin: / home / jenny / bin [jenny @ blob jenny] $ su - tony
Contraseña: tony: ~> que envía ms
envíams es / usr / local / bin / mandams
tony: ~> echo $ PATH
/inicio/tony/bin.Linux:/inicio/tony/bin:/usr/local/bin:/usr/local/sbin:
/ usr / X11R6 / bin: / usr / bin: / usr / sbin: / bin: / sbin
Tenga en cuenta el uso de la su (cambiar de usuario), que le permite ejecutar un shell en el entorno de otro usuario, con la condición de que sepa la contraseña del usuario.
Una barra invertida indica la continuación de una línea en la siguiente, sin un Acceder separando una línea de la otra.
En el siguiente ejemplo, un usuario quiere llamar al wc (recuento de palabras) para verificar el número de líneas en un archivo, pero no sucede nada y tiene que interrumpir su acción usando el Ctrl+C combinación:
puente: ~> prueba wc -l
(Ctrl-C)
puente: ~> cual wc
wc tiene hash (/ home / jumper / bin / wc)
puente: ~> echo $ PATH
/ inicio / puente / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin:
/ usr / bin: / usr / sbin: / bin: / sbin
puente: ~> prueba wc -l
(Ctrl-C)
puente: ~> cual wc
wc tiene hash (/ home / jumper / bin / wc)
puente: ~> echo $ PATH
/ inicio / puente / bin: / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin:
/ usr / bin: / usr / sbin: / bin: / sbin
El uso de la lo cual comando nos muestra que este usuario tiene un papelera-directorio en su directorio de inicio, que contiene un programa que también se llama wc. Dado que el programa en su directorio de inicio se encuentra primero al buscar el
caminos en una llamada para wc, este programa "hecho en casa" se ejecuta, con una entrada que probablemente no entiende, así que tenemos que detenerlo. Para resolver este problema hay varias formas (siempre hay varias formas de resolver un problema en UNIX / Linux): una respuesta podría ser cambiar el nombre del usuario wc programa, o el usuario puede dar la ruta completa al comando exacto que desea, que se puede encontrar usando el -a opción a la lo cual mando.
Si el usuario usa programas en los otros directorios con más frecuencia, puede cambiar su ruta para buscar en sus propios directorios al final:
puente: ~> export PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin:
/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin
puente: ~> export PATH = / usr / local / bin: / usr / local / sbin: / usr / X11R6 / bin:
/ usr / bin: / usr / sbin: / bin: / sbin: / home / jumper / bin