Laboratorio de comandos de Linux de cada día: los treinta comandos que se escriben de memoria

Este laboratorio da a cada alumno una máquina Ubuntu propia y cinco lecciones breves sobre los comandos que conviene saber de memoria en vez de buscarlos: moverse por las carpetas, crear y leer archivos, buscar en un registro, parar un proceso, empaquetar archivos, descargar de la web y entrar en otra máquina. No se instala nada en el ordenador del alumno, y nada de lo que haga puede dañar otra cosa que su propia copia.

Qué aprenden los alumnos

A moverse con pwd, ls y cd, y a crear, copiar, mover y borrar archivos. A leer texto con cat, head y tail, a escribirlo con los signos que mandan la salida a un archivo y a buscar en él con grep y una tubería. Permisos: leer las columnas rwx de ls -l y dejar que un script se ejecute con chmod. Procesos: encontrar uno con ps, pararlo con kill, y por qué kill -9 se reserva para el que no se para. Disco y memoria con df, du y free. Archivos comprimidos con zip, gzip y tar. Descargas con wget y curl. Cambiar de usuario con su y sudo, entrar con ssh y copiar con scp, instalar un programa con apt y cuidar un servicio con systemctl, y editar un archivo en vi.

Los comandos raros y complicados se dejan fuera a propósito. Son más rápidos de encontrar con una búsqueda o con un asistente cuando hacen falta.

Qué hay en la máquina

Un registro en /var/log/test.log al que se escribe cada dos segundos, para que tail -f tenga algo que seguir. Un zip, un archivo para comprimir y un pequeño árbol de carpetas. Una carpeta llamada scratch de la que se puede borrar sin miedo. Un pequeño servidor web en localhost del que wget y curl pueden descargar, de modo que ninguna lección depende de internet. Dos procesos en segundo plano para encontrar y parar, uno de los cuales ignora un kill normal. Y una segunda cuenta, dev, a la que se llega con el nombre devbox.

La segunda máquina es la misma máquina virtual con otra cuenta, y las lecciones lo dicen. Los comandos son los de un servidor de verdad, y ya hay una clave preparada para que un botón pueda ejecutarlos sin pedir contraseña.

Ejecútalo en el navegador

Los laboratorios de máquina virtual se ponen como tarea de laboratorio en un módulo, y el ejemplo está en la página del laboratorio. La máquina es pequeña: una CPU, 1 GB de memoria y 10 GB de disco.

  1. Añade el laboratorio. En un módulo que impartes, añade una tarea y elige la tarjeta «Laboratorio de máquina virtual Ubuntu». La página muestra una breve descripción de la máquina en lugar de un archivo compose.
  2. Parte del ejemplo. La página ofrece laboratorios de ejemplo para empezar. Elige Everyday Linux commands. Usar un ejemplo sustituye el texto, y «Deshacer» recupera el tuyo.
  3. Publica e inicia tu propia copia. Publica y después pulsa «Iniciar». El script de preparación del laboratorio instala unos programas pequeños desde el archivo de Ubuntu y deja un registro, un archivo comprimido, un servidor web y dos procesos la primera vez que se inicia la máquina virtual, en menos de un minuto.
  4. Abre el terminal. Abre su terminal y lee README.md en la carpeta personal: enumera lo que hay en la máquina. Después abre la primera de las cinco lecciones.

A basic lesson on this lab

Hay cinco lecciones breves, todas hechas en este laboratorio: Everyday Linux 1: Move and make, Everyday Linux 2: Permissions and removing, Everyday Linux 3: Logs and processes, Everyday Linux 4: Archives, disk and the web y Everyday Linux 5: Users and other machines. Cada una se entiende sola, empieza yendo a la carpeta personal y trae una introducción, un resultado «Puedo», palabras clave, un repaso inicial, una comprobación tras cada idea y una comprobación final.

Un botón Ejecutar escribe su comando en el terminal de la máquina virtual y muestra lo que salió. Un comando que no termina solo, o que pregunta algo, como tail -f, su o vi, lleva la marca «Escribe esto» y el alumno lo escribe en el terminal. La última lección termina con una chuleta para guardar.

Cómo se usa en clase

El laboratorio no califica nada, así que sirve para una primera lección de Linux, para una sesión de repaso o para practicar antes de un laboratorio que sí se califica, como el de administración de Linux.

  1. Asígnalo. Asigna el laboratorio y las lecciones como cualquier tarea, con una fecha de entrega si quieres. Cada alumno recibe una máquina virtual propia, que se conserva de una sesión a otra.
  2. Míralos trabajar. El terminal junto a una lección es el del propio alumno, y puedes verlo o tomar el control desde la lista de la clase mientras escribe.
  3. Califícalo tú si quieres una nota. El laboratorio no tiene script de comprobación. Si quieres una entrega, pide algo pequeño, como la salida de un comando que ejecutaron o una captura del registro con la línea del error encontrada.

La definición en GitHub

El archivo es la definición completa del laboratorio, el mismo texto que ejecuta la plataforma: tamaño, script de preparación y README. Cópialo y añade un archivo o un servicio tuyo para hacer un laboratorio para tu propia clase.

Preguntas frecuentes

¿Hay una segunda máquina para ssh y scp?
Es la misma máquina virtual con una segunda cuenta, dev, a la que se llega como devbox con una clave ya puesta. Los comandos y lo que muestran son los mismos que en un servidor de verdad, y un laboratorio con dos máquinas es más grande de arrancar.
¿Pueden los alumnos dañar algo al borrar archivos?
Solo su propia copia. Las lecciones borran de una carpeta llamada scratch, y si un alumno estropea la máquina puede detener el laboratorio y volver a iniciarlo.
¿Necesita el laboratorio internet?
No. Las descargas vienen de un pequeño servidor web dentro del laboratorio. La máquina solo llega al archivo de Ubuntu, a PyPI, a npm y a GitHub, y a nada más de internet.
¿Se califica solo el laboratorio de comandos de Linux de cada día?
No. No tiene script de comprobación, porque las lecciones son la actividad. Pon una entrega pequeña tuya, o pasa al laboratorio de administración de Linux, que sí se califica.