Moverse en el sistema:cd

Cada vez que quiere moverse en el directorio, la único que tiene que teclear es:

cd
	  

Siga intentándolo desde una ventana Xterm.

No ha pasado mucho ¿verdad? Esto es porque no ha dicho al sistema donde quiere ir.

Cuando entra en el supermarcado o visita a su familia en el campo, tiene que saber como llegar de un punto a otro, tiene que conocer el camino correcto.

Como en cada caso de la vida, el recorrido -- o pathname -- es fundamental para elegir la dirección a tomar. En el caso de su sistema Linux (así como en el mundo DOS/Windows), necesitará saber el camino para desplazarse de un directorio a otro.

Inténtelo otra vez. Abra una ventana Xterm. Compruebe su posición con el comando pwd. Tecleando este comando en la ventana aparecerá:

[newuser@localhost newuser]$ pwd
/home/newuser
[newuser@localhost newuser]$
	  

Ahora que sabe donde se encuentra,

O casi

Intente teclear:

cd home
	  

¿Qué ha pasado? Sabe que hay un directorio nombrado home, y ha tecleado el recorrido. Entonces, ¿por qué visualiza no such file or directory ?

Significa que su recorrido está incompleto.

Inténtelo ahora tecleando:

cd /home
	  

Ahora ha cambiado los directorios de forma adecuada y se ha desplazado al interior de su directorio de login en el sub-directorio llamado home.

Figura 15-2. Pathname completos determinan recorridos absolutos

La diferencia está en el carácter slash (barra /).

Intentemos pensar en la razón por la que un solo carácter crea toda esta diferencia.

Cuando se ha enterado de que estaba en /home/newuser, estaba mirando el recorrido absoluto -- o el path entero del directorio de root. Esto quiere decir que en el directorio newuser se encuentra dos directorios "bajo" la raíz, que representa el primer nivel en la jerarquía de los directorios.

Por esto cuando teclea:

cd /home
	  

está diciendo al ordenador "ve al directorio root (raiz), luego entra en el directorio llamado home, que se encuentra en un nivel más bajo de root." Tiene que especificar un recorrido absoluto para ir al directorio home.

Ahora, si teclea:

cd /
	  

conseguirá un prompt parecido a esto:

[newuser@localhost /]$
	  

El carácter / le indica que se encuentra en el directorio root. Cuando está en root, no puede subir más en la jerarquía de su sistema (el mismo concepto vale para DOS/Windows).

Para volver atrás en su directorio de login desde el directorio de root, utilizando el recorrido absoluto, teclee:

cd /home/newuser
	  

Está en casa.

Usar el recorrido absoluto sólo es una manera de desplazarse entre los varios directorios. Un método alternativo de moverse de un directorio a otro es el de usar un recorrido relativo (como en Figura 15-3).

Volvamos en el directorio de root:

cd /
	  

Ahora vuelva atrás en su directorio de login usando un recorrido relativo:

cd home/newuser
	  

¿Ha notado que falta el carácter /? Esto es posible porque el directorio de root es la base del directorio home, lo cual quiere decir que el directorio home es paso atrás con respecto al directorio root. Hasta que home sea el padre del directorio newuser, estos dos directorios estarán partidos por el carácter /.

Si se encuentra en su directorio de login, puede desplazarse hacia el directorio home, tecleando:

cd ..
	  

El recorrido relativo describe el directorio en el que desea desplazarse en términos relativos con respecto a su directorio actual.

Figura 15-3. Los nombres de los recorridos son relativos a la posición actual

Cuando ha tecleado cd .., ha pedido al sistema "subete un directorio". El primer directorio superior, desde su directorio de login, es home.

Sugerencia¿Qué son los directorio padre?
 

Cuando se habla de un directorio que contiene otros, puede referirse al primero llamándolo parent directory (directorio padre). En nuestro caso, home es el directorio superior de newuser.

Utilizando dos puntos (..) cuando utiliza el comando cd, le permite desplazarse en el directorio padre. Inténtelo ahora insertando un solo punto. Teclee:

cd .
	  

¿Qué ha pasado? No mucho. Esto es porque usando un solo punto (.) está comunicando al sistema que quiere desplazarse en el directorio actual.

La diferencia entre recorrido absoluto y recorrido relativo a veces puede ser muy difícil de entender.

Volviendo al ejemplo del centro comercial, si quiere seguir las direcciones utilizando recorridos absolutos, hará algo parecido a:

"Coger las llaves. Montar en el coche. Arrancar el coche. Ponerse en camino. Conducir hasta la esquina…"

…y siguiendo así hasta que se encuentra finalmente dentro de su tienda de zapatos preferida en el centro comercial.

Cuando utiliza un recorrido relativo, está diciendo al sistema algo como:

"La tienda se halla a un par de kilometros de aquí en el centro comercial."

Es un ejemplo un poco exagerado, sin embargo da la idea de como funciona un sistema de directorios: en el momento en que sabe a dónde ir, puede utilizar un recorrido relativo para moverse.

Sugerencia¿El recorrido es absoluto o relativo?
 

Un recorrido es absoluto si el primer carácter es /; distinto, se trata de un recorrido relativo.

Ahora se encuentra en el directorio home, el directorio padre de su directorio de login. Teclee:

cd ..
	  

y se encontrará en el directorio root.

Utilizando un recorrido relativo, se desplazará en el directorio de login, tecleando:

cd home/newuser
	  

No parece muy distinto del recorrido absoluto ¿No cree? Ha visto que no aparece ninguna barra antes de home. En otras palabras es como si dijera: "baja un directorio, en home, luego ve a newuser, en el directorio home."

SugerenciaVuelva rápidamente a su directorio de login
 

Cada vez que desea volver rápidamente a su directorio de login, teclee cd y pulse Enter y, no dependiendo del sitio en que se encuentra en su sistema, acabará en su directorio de login.

Esta no quiere ser nada más que una demostración.

Desde su directorio de login, teclee:

cd ../../etc/X11
	  

Ahora se encuentra en el directorio X11, que contiene los directorios y los ficheros de configuración del sistema X Window.

NotaNota
 

Puede siempre teclear pwd para saber donde se encuentra. Y puede volver a su directorio de login con el comando cd.

Eche un vistazo al último comando que ha insertado cd. Lo que está diciendo a su sistema es, "sube al directorio superior, luego al directorio inmediatamente superior (que corresponde al directorio root), luego vaya al directorio etc y entonces pase al directorio X11."

Utilizando un recorrido absoluto, puede llegar rápidamente al directorio X11. Teclee:

cd /etc/X11
	  

¡Hecho!

NotaSaber donde está
 

Compruebe cuál es el directorio actual en el que se encuentra antes de moverse con un recorrido relativo hacia otro directorio o fichero. No tiene que preocuparse de su posición en el sistema de archivos, para desplazarse en otro directorio utilizando un recorrido absoluto.

Ahora que ha hecho un poco de práctica, mire que pasa cuando se desplaza en el directorio root.

cd /root
	  

Oops… no ha entrado en el sistema como root (superusuario), por ello no tiene los permisos necesarios para acceder a este directorio.

Impedir el acceso al directorio root o a otras cuentas usuario (o directorios de login) es una de las soluciones que su sistema Linux le ofrece para evitar errores casuales o acciones hechas por gente que no tiene el derecho a acceder a su sistema. Encontrará más información sobre las propiedades y los permisos más adelante en este capítulo.

¿Quiere de verdad acceder al sistema como superusuario? Entonces le hace falta el comando su. Teclee este conjunto de comandos:

[newuser@localhost newuser]$ su 
Password:your root password 
[root@localhost newuser]#cd /root 
[root@localhost /root]#
	  

Introducida la clave de root, verá los cambios en el prompt que le mostrará su nueva condición de root: la cuenta de superusuario tiene delante del prompt la palabra root y al final el carácter "#" (como se muestra en la figura Figura 15-4).

Figura 15-4. Empezar Root

Ahora puede desplazarse en el directorio de login de root, porque tiene los privilegios requeridos.

Para desconectarse, teclee simplemente exit en el prompt.

[root@localhost /root]# exit
exit
[newuser@localhost newuser]$
	  

SugerenciaResumen
 

Para cambiar los directorios utilizando un recorrido absoluto, teclee cd /directory/directory; para cambiar directorio utilizando un recorrido relativo, teclee cd directory para ir al directorio que se encuentra más abajo del actual, cd directory/directory para ir dos directorios más abajo, etc.; Para desplazarse desde cualquier punto del sistema de archivos a su directorio de login, teclee cd ; para ir al directorio anterior con respecto a donde se encuentra, teclee cd ... Utilice . para hacer referencia a su directorio actual.