La Terminal de Unix: Instructor Notes

En general

Muchas personas han cuestionado si todavía debemos enseñar la terminal. Después de todo, cualquiera que quiera renombrar varios miles de archivos de datos puede hacerlo de manera interactiva en el intérprete de Python, y cualquiera que esté haciendo un análisis de datos serio probablemente haga la mayor parte de su trabajo dentro del IPython Notebook o RStudio. Entonces, ¿por qué enseñar la terminal?

La primera respuesta es “Porque mucho más depende de eso”. Instalación de software, configurando su editor predeterminado, y el control de máquinas remotas frecuentemente asume una familiaridad básica con la terminal, y con ideas relacionadas como entrada y salida estándar. Muchas herramientas también usan su terminología (por ejemplo, los comandos mágicos % ls y% cd en IPython).

La segunda respuesta es “Porque es una manera fácil de presentar algunas ideas fundamentales sobre cómo usar computadoras”. A medida que enseñamos a la gente a usar la terminal de Unix, les enseñamos que deben hacer que la computadora repita las cosas (a través de la terminación de la pestaña, ! seguido de un número de comando, y for loops) en lugar de repetir las cosas por sí mismos. También les enseñamos a tomar cosas que descubrieron que hacen con frecuencia y guardarlos para su posterior reutilización (a través de scripts de terminal), dar nombres sensatos a las cosas, y escribir un poco de documentación (como un comentario en la parte superior de los scripts de terminal) para mejorar la vida de sus futuros seres.

La tercera respuesta es “Porque permite el uso de muchas herramientas específicas de dominio y recursos informáticos a los que los investigadores no pueden acceder de otra manera”. La familiaridad con la terminal es muy útil para las máquinas de acceso remoto, utilizando la infraestructura informática de alto rendimiento, y ejecutar nuevas herramientas especializadas en muchas disciplinas. No enseñamos HPC o habilidades específicas de dominio aquí pero sienta las bases para un mayor desarrollo de estas habilidades. En particular, comprender la sintaxis de comandos, indicadores y sistemas de ayuda es útil para herramientas específicas de dominio y comprender el sistema de archivos (y cómo navegarlo) es útil para el acceso remoto.

Finalmente, y quizás lo más importante, enseñando a las personas la terminal nos permite enseñarles pensar en la programación en términos de composición de funciones. En el caso del terminal, esto toma la forma de pipelines en lugar de llamadas a funciones anidadas, pero la idea central de “piezas pequeñas, unidas libremente” es la misma.

Todo este material puede ser cubierto en tres horas siempre que los alumnos que usen Windows no se encuentren con obstáculos como:

Preparando para enseñar

Haga que un alumno muestre la solución?     Haga que cada grupo haga un ejercicio diferente y presente sus soluciones?

Notas de enseñanza

    ~~~     $ cd     $ cd Desktop     ~~~     {: .language-bash}

    siempre pondrá a alguien en su escritorio.     Pídales que creen el directorio de ejemplos para los ejercicios de terminal allí     para que puedan encontrarlo fácilmente     y mire cómo evoluciona.

Windows

Instalación de Bash y un conjunto razonable de comandos de Unix en Windows siempre implica algo de manipulación y frustración. Consulte el último conjunto de pautas de instalación para obtener asesoramiento, y pruébalo tú mismo * antes * enseñando una clase. Las opciones que hemos explorado incluyen:

  1. [msysGit] (http://msysgit.github.io/) (también llamado “Git Bash”),
  2. [Cygwin] (http://www.cygwin.com/),
  3. usando una máquina virtual de escritorio, y
  4. Hacer que los alumnos se conecten a una máquina Unix remota (generalmente una VM en la nube).

Cygwin fue la opción preferida hasta mediados de 2013, pero una vez que comenzamos a enseñar a Git, msysGit demostró funcionar mejor. Las máquinas virtuales de escritorio y las máquinas virtuales basadas en la nube funcionan bien para los estudiantes técnicamente sofisticados, y puede reducir la instalación y configuración al inicio del taller, pero:

  1. no funcionan bien en máquinas poco potentes,
  2. son confusos para los principiantes (porque las cosas simples como copiar y pegar funcionan de manera diferente),
  3. los alumnos abandonan el taller sin un entorno de trabajo en su sistema operativo de elección, y
  4. los estudiantes pueden aparecer sin haber descargado la VM o la conexión inalámbrica se reducirá (o se congestionará) durante la lección.

Lo que sea que uses, por favor * pruébelo usted mismo * en una máquina Windows * antes * de su taller: las cosas siempre pueden haber cambiado a tu espalda desde tu último taller. Y por favor también haz uso de nuestro Instalador de Windows de Software Carpentry.