Resumen ejecutivo (TL; DR)
- Úselo
pwdpara saber dónde se encuentra (o mire entre el :y el $en su solicitud).
- Use
cdpara cambiar el directorio en otro lugar. A diferencia de Windows, siemprecd debe ir seguido de un espacio; comandos como y no funcionarán, pero y lo hará.cd/cd..cd /cd ..
Saber dónde estás
Camino 1: correr pwd.
El directorio en el que se encuentra actualmente es específico del shell (y, en general, específico de la aplicación). Podrías estar ejecutando un shell donde estás en un directorio y otro shell donde estás en otro directorio.
Para saber en qué directorio se encuentra actualmente, ejecute:
pwd
Por ejemplo (desde un shell que tengo abierto ahora, en mi máquina):
ek@Kip:~$ pwd
/home/ek
Esto me dice que estoy en el directorio /home/ek. /homees (algo confuso) el directorio que contiene los directorios de inicio de los usuarios humanos (no es en sí el directorio de inicio de ningún usuario). El usuario humano usernametiene directorio de inicio ./home/username
El rootusuario no tiene un directorio de inicio en /home. En cambio, rootel directorio de inicio es /root. Esto no debe confundirse con el directorio raíz , que es /.
Camino 2: Examina tu solicitud.
La configuración predeterminada para su solicitud es que le indica en qué directorio se encuentra actualmente. Su solicitud es el texto que parece notificarle que el shell está listo para aceptar un comando.
En el ejemplo que nos mostró en su pregunta, su mensaje es:
christy@ubuntu:~$
christyes tu nombre de usuario El @carácter lo separa ubuntudel nombre de host de su computadora. (Si está ejecutando un CD en vivo, su nombre de host será ubuntu, y algunas personas también lo eligen como el nombre de su computadora durante la instalación).
El :carácter lo separa del nombre del directorio en el que se encuentra actualmente. En este caso, eso está representado por ~. ~es la abreviatura de su directorio de inicio. Cuando no está en su directorio de inicio, debería ver un nombre de directorio completo. Por ejemplo:
ek@Kip:~$ cd /var/log
ek@Kip:/var/log$
(Para finalizar lo que significa cada parte de la solicitud: para las solicitudes que siguen esta convención, aparece $un #carácter o un . $, Como en este caso, significa que es un shell de usuario normal. Un #carácter significaría que es un rootshell).
Cambiando donde estás
Por qué su comando "cd" no funcionó.
Para cambiar el directorio, use el cdcomando.
Se ejecutó cd/. Esto no funciona porque en realidad no ejecutó el cdcomando. En Ubuntu y otros sistemas operativos similares a Unix (en realidad, en shells de estilo Unix como bash, el shell que está utilizando), el nombre de un comando se considera que termina solo en un espacio o al final de la línea.
Entonces, a diferencia del símbolo del sistema en Windows (donde cd\se interpreta igual cd \y cd..se interpreta igual que cd ..), en bash(el shell que está utilizando en Ubuntu), cd/no es un comando válido. Debes usar cd /.
cd/significa "la entrada en el directorio actual cuyo nombre es cdy que también es un directorio". Exista o no un subdirectorio tal, no se puede ejecutar como un comando, por lo que en cualquier caso, obtendrá un error (aunque lo error que se obtiene será diferente):
ek@Kip:~$ cd/
bash: cd/: No such file or directory
ek@Kip:~$ mkdir cd
ek@Kip:~$ cd/
bash: cd/: Is a directory
Mudarse a su directorio de inicio
Para ir a su directorio de inicio, ejecute cdsolo sin ningún argumento:
cd
Algunas personas prefieren nombrar su directorio de inicio explícitamente. Puedes usar su nombre completo o
cd ~
Pero cdpor sí solo es suficiente.
Subiendo un directorio
Para cambiar el directorio al directorio principal del directorio actual (es decir, el directorio que lo contiene), use:
cd ..
..representa el directorio principal del directorio actual. Si está en el directorio raíz ( /), hay una excepción: ..solo representa /. Entonces, ejecutar cd ..movimientos de un solo directorio cuando se ejecuta en cualquier lugar, pero /; cuando corres /, te quedas adentro /.
Cada directorio contiene una ..entrada. También contienen una .entrada que se refiere al directorio actual en sí. Sin cd .embargo , no es muy fácil correr . Siempre te quedas donde estás.
Caminos absolutos y relativos
Si hace cdalgo que no comienza con a /, entonces intenta ir a ese directorio dentro del directorio actual .
Por ejemplo, si corriste
cd var/log
Luego intentaría ir al varsubdirectorio de donde se encuentra actualmente, y al logsubdirectorio de eso. A menos que ambos existan, y en esos lugares, ese cdcomando fallará (y usted permanecerá donde estaba originalmente).
Si desea ir al logsubdirectorio del varsubdirectorio del directorio raíz , ejecute esto en su lugar:
cd /var/log
Solo si actualmente estás en /es cd var/logequivalente a cd /var/log.
Un camino que comienza /es absoluto. La forma en que se resuelve no depende de dónde se encuentre actualmente.
La ruta también ~es absoluta, porque es (esencialmente) una forma abreviada de $HOME. HOMEes una variable de entorno , y la expresión se $HOMEexpande a la ruta completa y absoluta del directorio de inicio del usuario actual.
~La notación también se puede utilizar para representar el directorio de inicio de otro usuario. Si escribe , esto representa el directorio de inicio de.~usernameusername
Volver a donde estabas antes
El directorio en el que se encuentra actualmente se almacena en la PWDvariable de entorno. El último directorio en el que estuvo se almacena en la OLDPWDvariable de entorno. Puede ver de OLDPWDla misma manera que vería cualquier variable de entorno:
echo $OLDPWD
Debido a que esta información se almacena, cdpuede tener una forma especial, rápida y fácil de volver a donde estaba antes. Como dice pst007x , para ir al último directorio en el que estaba, ejecute:
cd -
Si nunca hubo un directorio anterior en el que se encontraba en ese shell , entonces la OLDPWDvariable de entorno no se habrá configurado e intentar ejecutarla cd -dará como resultado un error (y permanecerá donde está):
ek@Kip:~$ cd -
bash: cd: OLDPWD not set
Cambiar dónde estás como un jefe
pushdy popd: la pila de directorios
Imagine una pila de nombres de directorio. Por una pila , me refiero a algo donde cuando agregas algo va en la parte superior, y solo puedes eliminar una cosa a la vez, y lo que eliminas es siempre lo que está actualmente en la parte superior.
Puede insertar cualquier directorio diren la pila ejecutando:
pushd dir
Si desea empujar el directorio actual a la parte superior de la pila, puede usar .(que, como se explicó anteriormente, siempre representa el directorio actual):
pushd .
Luego puede continuar con su negocio, cambiando los directorios tanto como desee. Cuando desee volver al último directorio que introdujo en la pila pushd, ejecute:
popd
Esto va a ese directorio, y también aparece fuera de la pila. Ahora la pila es un directorio más corto. Si ese era el único directorio en la pila, entonces la pila ahora está vacía.
Puede tener una pila de tamaño mayor que 1. Es decir, puede usar pushdcomandos separados para insertar múltiples directorios en la pila. Cada popdcomando subsiguiente irá (y emergerá, es decir, eliminará de la pila ) al directorio empujado más reciente que aún no ha aparecido.
Aquí hay un ejemplo:
ek@Kip:~$ cd /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd .
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ pushd /home/ek
~ /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:~$ cd /var/log/apt
ek@Kip:/var/log/apt$ pushd .
/var/log/apt /var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ cd
ek@Kip:~$ popd
/var/log/apt /etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/var/log/apt$ popd
/etc/apt/sources.list.d /etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ cd /
ek@Kip:/$ pushd usr
/usr / /etc/apt/sources.list.d
ek@Kip:/usr$ cd
ek@Kip:~$ popd
/ /etc/apt/sources.list.d
ek@Kip:/$ popd
/etc/apt/sources.list.d
ek@Kip:/etc/apt/sources.list.d$ popd
bash: popd: directory stack empty
ek@Kip:/etc/apt/sources.list.d$
pushdy popdse usan con mucha menos frecuencia que cd. También tienen otros usos, incluso más avanzados. Corre help pushdy help popdpara más detalles.
Aprender más y acceder a la documentación
cdy pwdtienen usos más avanzados también. Para aprender sobre ellos, corre help cdy man pwd.
helpes para conchas incorporadas . manes para comandos independientes: comandos que se ejecutan como procesos separados y existen como ejecutables separados. El typecomando revela si un comando es un shell integrado o no y, si no, dónde se encuentra el programa que ejecuta. Por ejemplo, usted podría funcionar type help, type typeo type man.