Una factura perdida en el servidor
La tienda online de un cliente guarda miles de archivos en un servidor. Te piden la factura de un pedido de marzo.
El servidor no tiene escritorio ni ratón. Solo ves una ventana negra con un cursor.
La mayoría de los servidores funcionan así. Te mueves por ellos escribiendo órdenes cortas.
Al final de esta lección
Nota
Puedo trabajar con archivos y carpetas desde una terminal.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Terminal | la ventana donde escribes órdenes | |
| Ruta | la dirección de un archivo o de una carpeta | /home/student/projects |
| Directorio actual | la carpeta en la que estás ahora | |
| Redirección | enviar la respuesta de una orden a un archivo | >> |
| Tubería | pasar la respuesta de una orden a la siguiente | | |
| Modo | las letras que dicen quién lee, escribe o ejecuta un archivo | rw-r--r-- |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una ruta es la dirección de un archivo
La terminal siempre está "dentro" de una carpeta. Es el directorio actual. Las órdenes actúan sobre él si no dices otra cosa.
Una ruta que empieza por / es una ruta absoluta. Sirve desde cualquier sitio.
Una ruta sin / al principio es relativa. Se busca dentro del directorio actual. Dos puntos, .., son la carpeta de arriba.
Ejemplo: adónde te lleva cd
| Estás en | Escribes | Acabas en |
|---|---|---|
| /home/student | cd projects | /home/student/projects |
| /home/student/projects | cd app | /home/student/projects/app |
| /home/student/projects/app | cd .. | /home/student/projects |
| /home/student/projects | cd /var/log | /var/log |
| /var/log | cd projects | Un error: esa carpeta no existe |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
¿Dónde estoy?
pwdSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
¿Qué hay aquí?
lsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Baja dos carpetas de golpe
cd projects/appSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira dentro
lsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Vuelve a tu carpeta personal
cdSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Un error frecuente
Advertencia
Mucha gente cree que cd projects funciona desde cualquier carpeta. Solo busca dentro de la carpeta donde estás. Ejecuta pwd antes, o escribe una ruta completa que empiece por /.
mkdir, cp y mv cambian cosas
mkdir crea una carpeta. cp copia un archivo y el original se queda donde estaba. mv mueve un archivo. Si le das otro nombre en la misma carpeta, lo renombra.
rm borra un archivo. En un servidor no hay papelera: lo borrado no vuelve.
Ejecuta las cuatro siguientes en orden.
Crea una carpeta
mkdir -p pedidosSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Copia un archivo dentro
cp projects/docs/notes.txt pedidos/notes.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Cambia el nombre de la copia
mv pedidos/notes.txt pedidos/pendiente.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira la carpeta
ls pedidosSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Redirecciones y tuberías unen órdenes
Una orden escribe su respuesta en pantalla. Una redirección la manda a un archivo. > sustituye el contenido. >> añade al final.
Una tubería, |, pasa la respuesta a otra orden. Con ls | wc -l, ls da los nombres y wc -l cuenta las líneas.
Añade una línea al archivo
echo "Pedido 2043 enviado" >> pedidos/pendiente.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Lee el archivo
cat pedidos/pendiente.txtSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Cuenta los archivos de una carpeta
ls projects/app | wc -lSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Otro error frecuente
Advertencia
Mucha gente cree que > y >> hacen lo mismo. > tira lo que había en el archivo y empieza de cero. >> lo conserva y añade al final. Usa >> salvo que quieras empezar de nuevo.
Ejemplo: un modo como tres cifras
| Letras | Dueño | Grupo | Resto | Cifras |
|---|---|---|---|---|
| rw-r--r-- | rw- = 4+2 = 6 | r-- = 4 | r-- = 4 | 644 |
| rwxr-xr-- | rwx = 4+2+1 = 7 | r-x = 4+1 = 5 | r-- = 4 | 754 |
| rwx------ | rwx = 7 | --- = 0 | --- = 0 | 700 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un grupo de letras como número
# Un grupo de tres letras, convertido en un número.
grupo = "r-x"
total = 0
if grupo[0] == "r":
total = total + 4
if grupo[1] == "w":
total = total + 2
if grupo[2] == "x":
total = total + 1
print(total)
# Cambia grupo por "rw-" y pulsa Ejecutar otra vez.
Para ir más lejos
Escríbelo tú, sin botones. Crea una carpeta facturas dentro de pedidos. Crea en ella tres archivos vacíos con una sola orden: touch acepta varios nombres.
Después cuéntalos con una tubería y usa > para guardar la cifra en pedidos/total.txt. Di qué imprimirá cat pedidos/total.txt antes de ejecutarlo.