< Return to Video

Lecture 1: Course Overview + The Shell (2020)

  • 0:05 - 0:08
    Éste es el "Semestre Perdido"
    en Ciencias de la Computación.
  • 0:08 - 0:11
    Al menos así decidimos llamarle.
  • 0:11 - 0:14
    Si no estás aquí por ésto,
    estás en la habitación equivocada.
  • 0:14 - 0:16
    Estaremos aquí alrededor de una hora.
  • 0:18 - 0:20
    Primeramente, quiero hablarles un poco
  • 0:20 - 0:23
    sobre por qué creamos este curso.
  • 0:23 - 0:27
    Esta clase se extiende de una observación
    que Anish, José y yo hicimos cuando
  • 0:27 - 0:30
    fuimos profesores de apoyo en
    varias clases aquí en el MIT.
  • 0:30 - 0:35
    Básicamente, todos los científicos de la
    computación, sabemos
  • 0:35 - 0:38
    que las computadoras son excelentes en
    el desarrollo de tareas repetitivas
  • 0:38 - 0:42
    y automatizando. Sin embargo, se nos pasa que
    hay muchas herramientas que
  • 0:42 - 0:46
    mejoran nuestros procesos de desarrollo.
    Podemos ser mucho más eficientes en el uso
  • 0:46 - 0:50
    de nuestras computadoras ya que
    las empleamos
  • 0:50 - 0:54
    como una herramienta para nosotros,
    no sólo para crear páginas web o software
  • 0:54 - 0:58
    o ese tipo de cosas… y esta clase es
    un intento de abordar ésto.
  • 0:58 - 1:02
    Es un intento de mostrarles
    algunas de las herramientas
  • 1:02 - 1:05
    que pueden aprovechar enormemente
    en su día a día,
  • 1:05 - 1:10
    en sus investigaciones y en sus estudios.
  • 1:10 - 1:13
    Y será una clase donde
    les enseñaremos
  • 1:13 - 1:16
    tanto cómo sacar
    el mejor provecho
  • 1:16 - 1:18
    de las herramientas que ya usan
  • 1:18 - 1:19
    pero ojalá, enseñarles
  • 1:19 - 1:21
    herramientas que no conocían antes
  • 1:21 - 1:24
    y cómo juntarlas para producir cosas más poderosas
  • 1:21 - 1:25
    y cómo juntarlas para producir cosas más poderosas
  • 1:25 - 1:31
    que las que pudiesen coseguir con
    lo que conocen ahora.
  • 1:31 - 1:36
    Serán 11 clases, cada una de 1 hora
  • 1:36 - 1:38
    tocando un tema en particular.
  • 1:38 - 1:41
    Pueden ver el sitio web en la descripción
    (https://missing.csail.mit.edu/)
  • 1:41 - 1:43
    con la lista de temas y
    en qué fecha serán las clases.
  • 1:41 - 1:44
    En su mayoría,
    serán independientes.
  • 1:44 - 1:49
    Por lo tanto, pueden asistir a las
    que consideren interesantes.
  • 1:49 - 1:51
    Sin embargo, asumiremos que
    las tomaron una a una
  • 1:51 - 1:55
    a medida que progresemos,
    por lo que no se repetirán temas pasados.
  • 1:55 - 1:58
    Por ejemplo, no les estaré enseñando
    bash de nuevo.
  • 1:58 - 2:03
    También publicaremos las notas de la clase
    y las grabaciones en el sitio web.
  • 2:03 - 2:06
    No sabemos cuándo exactamente,
    pero lo haremos.
  • 2:06 - 2:10
    [Nota del traductor:]
    Obviamente ya están disponibles!
  • 2:10 - 2:12
    Si no no estaría viendo esto usted.
  • 2:12 - 2:19
    La clase la darán 3 maestros: su servidor
    John, Amish, quien está sentado por allá
  • 2:19 - 2:22
    y José quien no pudo estar hoy
    pero dará la clase de mañana.
  • 2:22 - 2:29
    Tengan en cuenta que abordamos
    demasiado para tan poco tiempo,
  • 2:29 - 2:32
    por lo que avanzaremos a pasos agigantados
  • 2:32 - 2:42
    pero en caso de que se atoren en algún
    tema, no duden en contactarnos.
  • 2:42 - 3:07
    (Concerniente a la clase presencial)
  • 3:07 - 3:14
    Debido a la carencia de tiempo
  • 3:14 - 3:17
    no será posible tocar
    todas las herramientas detalladamente.
  • 3:17 - 3:21
    Se mencionarán herramientas interesantes
    y maneras útiles.
  • 3:21 - 3:25
    No necesariamente profundizaremos
    en los detalles de cómo funcionan
  • 3:25 - 3:28
    o casos de uso más complejos
  • 3:28 - 3:42
    (Concerniente a la clase presencial)
  • 3:46 - 3:48
    Esta clase, en específico,
    cubrirá prinicipios básicos
  • 3:48 - 3:53
    que utilizaremos en las siguientes
    clases.
  • 3:53 - 3:56
    Por ejemplo, cómo usar el
    shell en su terminal.
  • 3:56 - 4:00
    Explicaré qué es para los
    que lo desconozcan,
  • 4:00 - 4:02
    y después avanzaremos a
    herramientas más avanzadas.
  • 4:02 - 4:06
    Probablemente, ya se pueden
    dar una idea de qué vendrá
  • 4:06 - 4:10
    basado en las notas
    de la clase.
  • 4:10 - 4:13
    Y eso nos trae a la clase de hoy.
    En esta clase hablaremos de el
  • 4:13 - 4:14
    Shell.
  • 4:14 - 4:17
    Será una de las principales maneras
    en las que interactuamos con
  • 4:17 - 4:19
    nuestra computadora.
  • 4:19 - 4:22
    cuando quieran empezar a hacer
    cosas que las interfaces gráficas
  • 4:22 - 4:25
    no les permite hacer.
  • 4:25 - 4:28
    Las interfaces visuales están,
    de alguna manera, limitadas
  • 4:28 - 4:31
    porque sólo se pueden hacer
    las cosas que tienen botones,
  • 4:31 - 4:33
    deslizadores o campos
    de entrada.
  • 4:33 - 4:35
    La mayoría del tiempo, estas
    herramientas de texto
  • 4:35 - 4:38
    están diseñadas para ser modulares
    y funcionar entre sí.
  • 4:38 - 4:43
    Y también tener muchísimas maneras
    de combinarse y programarse.
  • 4:43 - 4:47
    En esta clase nos estaremos centrando
    en herramientas de texto,
  • 4:47 - 4:50
    también conocidas como herramientas
    de la terminal. (command line utilities)
  • 4:50 - 4:51
    El shell será en donde
  • 4:51 - 4:53
    harán la mayoría
    de su trabajo.
  • 4:53 - 4:55
    Para los que no conozcan lo que
    es un shell,
  • 4:55 - 4:58
    la mayoría de las plataformas
    proveen un shell por defecto.
  • 4:58 - 5:01
    En Windows, es Powershell, pero
    también hay otros disponibles...
  • 5:01 - 5:04
    En Linux, encontrarán cientos de
    terminales, es decir, ventanas que
  • 5:04 - 5:07
    te permiten ver shells.
  • 5:07 - 5:10
    Asimismo, encontrarán diferentes
    tipos de shell, el más común
  • 5:10 - 5:13
    siendo bash.
    Conocido como el Shell Resusitado.
  • 5:13 - 5:16
    (Bourne-Again-SHell)
  • 5:16 - 5:20
    Como éste es un shell tan común,
    será el que utilizaremos en la clase.
  • 5:20 - 5:22
    Si están en MacOS, probablemente
    tendrán una versión de bash.
  • 5:22 - 5:24
    (Nota del traductor):
    Las nuevas versiones de MacOS Catalina (10.15)
  • 5:24 - 5:26
    usan zsh, bastante similar a bash.
    Se abre con la app conocida como
  • 5:26 - 5:27
    Terminal.
  • 5:27 - 5:31
    Tengan en cuenta que la mayoría
    de esto estará centrado en Linux
  • 5:31 - 5:34
    en términos de cómo lo enseñamos.
    Sin embargo, la mayoría de estas
  • 5:34 - 5:37
    herramientas funcionan con otros
    sistemas operativos.
  • 5:37 - 5:41
    Si quieren instalar una terminal y un
    shell, y no saben cómo hacerlo
  • 5:41 - 5:46
    les podemos ayudar a hacerlo en las
    horas de tutoreo. También pueden
  • 5:46 - 5:54
    simplemente buscarlo en google
    como su plataforma + terminal.
  • 5:54 - 6:01
    Entonces... cuando abrimos una terminal,
    usualmente se verá así. Tendremos
  • 6:01 - 6:07
    una línea hasta arriba. esto se conoce
    como el Shell Prompt, contiente mi
  • 6:07 - 6:12
    nombre de usuario, el nombre de
    mi computadora y el directorio
  • 6:12 - 6:16
    en donde estoy. Hablaremos de
    `paths` o directorios más tarde.
  • 6:16 - 6:20
    Y después sólo hay un cursor esperando
    a que reciba alguna entrada.
  • 6:20 - 6:24
    Y este es el shell en donde le
    decimos lo que queremos que haga.
  • 6:24 - 6:28
    Podemos personalizar este prompt, puede
    no necesariamente verse exactamente
  • 6:28 - 6:36
    como el mío pero se puede ver de
    diferentes maneras, así, así y así.
  • 6:36 - 6:42
    En esta clase no hablaremos mucho
    de cómo personalizarlo, eso lo haremos en otra clase.
  • 6:42 - 6:45
    Hoy hablaremos de cómo usamos un
  • 6:45 - 6:48
    shell para hacer cosas útiles.
  • 6:48 - 6:50
    Y esta es la interfaz de texto
    principal en donde
  • 6:48 - 6:51
    escribimos comandos de texto.
  • 6:51 - 6:53
    En el shell, escribimos comandos.
  • 6:53 - 6:56
    Estos comandos pueden ser
  • 6:56 - 6:58
    bastante simples, usualmente,
  • 6:58 - 7:02
    ejecutaremos programas con argumentos,
    bueno... y ¿cómo se ve eso?
  • 7:02 - 7:05
    Un programa que podemos ejecutar
    dentro del shell es `date`.
  • 7:05 - 7:09
    Escribimos "date" y presionamos Enter.
    Y, naturalmente, nos muestra la fecha
  • 7:09 - 7:13
    y la hora. Asimismo, podemos ejecutar
    un programa con argumentos, también
  • 7:13 - 7:16
    conocidos como parámetros. Existe un
    programa llamado `echo`,
  • 7:16 - 7:17
    el cual simplemente imprime los
    argumentos que le damos.
  • 7:17 - 7:17
    Los argumentos son "cosas" separadas
    por espacios que le damos al programa.
  • 7:17 - 7:17
    Entonces, podemos decirle "hola" y
    nos imprime hola.
  • 7:17 - 7:18
    Nuevamente, no del todo sorprendente,
    pero estos son los básicos de argumentos.
  • 7:18 - 7:22
    También, si se dieron cuenta, dije que
    los argumentos están separados por
  • 7:22 - 7:25
    espacios. Y podrían preguntarse, pero
    cómo le hago para que un argumento
  • 7:25 - 7:25
    tenga espacios. Bueno. pues también podemos
    ponerlo entre comillas y escribir
  • 7:25 - 7:27
    algo como "Hola mundo" en comillas y
    ahora contiente un argumento nuestro
  • 7:25 - 7:30
    programa que contiene espacios. También
    se pueden usar comillas simples en lugar
  • 7:27 - 7:31
    de dobles. Hablaremos de las diferencias
    cuando empecemos a hacer scripts
  • 7:30 - 7:33
    en bash. También podemos utilizar el
    caracter de escape para un sólo caracter.
  • 7:31 - 7:36
    Todas estas reglas las cubriremos más en
    específico después. Esperemos que no
  • 7:33 - 7:37
    les den contratiempos con esto. Por
    ejemplo, si quiero crear un directorio
  • 7:36 - 7:39
    llamado Mis Fotos se crearán 2 directorios,
    uno llamado Mis y otro, Fotos.
  • 7:37 - 7:40
    Y probablemente eso no es lo que queremos.
  • 7:39 - 7:42
    Ahora... una cosa que probablemente
    se preguntarán es cómo sabe a qué
  • 7:40 - 7:44
    programas me refiero y cómo sabe
    dónde están esos programas y qué
  • 7:42 - 7:47
    tienen que hacer? Y bueno, la respuesta
    es que su computadora tiene programas
  • 7:44 - 7:50
    que vienen instalados dentro de sus
    computadoras. Justo como podría
  • 7:47 - 7:53
    ir con Windows Explorer, la aplicación
    de la terminal, Windows Explorer,
  • 7:50 - 7:55
    etc. también viene con aplicaciones
    centradas a la terminal. Y, estas,
  • 7:53 - 7:58
    literalmente están en el sistema de
    archivos. Y, el shell, tiene una manera
  • 7:55 - 7:59
    de determinar dónde están esos
    programas. Báicamente, tiene una
  • 7:58 - 8:00
    manera de buscar en dónde está
    cada uno de estos programas.
  • 7:59 - 8:03
    Y lo hace con algo llamado, una
    variable de entorno (conocida en
  • 8:00 - 8:06
    inglés como ENVIRONMENT variable).
    Es simplemente como una variable
  • 8:03 - 8:09
    que podrían encontrarse en un lenguaje
    de programación. De hecho resulta que
  • 8:06 - 8:12
    el shell, y el BASH en particular,
    es un lenguaje de programación.
  • 8:09 - 8:16
    Este prompt que tenemos aquí también
    puede realizar bucles while, for,
  • 8:12 - 8:17
    condicionales. Podemos definir funciones,
    entre otras cosas. Esto lo hablaremos en
  • 8:16 - 8:20
    la siguiente clase.
    Mientras tanto, veamos esta variable de
  • 8:17 - 8:21
    entorno. Debo notar que las variables de
    entorno se asignan cada vez que iniciamos
  • 8:20 - 8:24
    nuestro shell en automático. No son
    variables que tenemos que cambiar
  • 8:21 - 8:26
    siempre que abrimos un shell.
    Hay variables de entorno que nos
  • 8:24 - 8:28
    dicen dónde esta nuestro directorio de
    HOME (casa), el nombre del usuario y
  • 8:26 - 8:30
    también, muy importante, la variable
    PATH (en español, camino).
  • 8:28 - 8:32
    Entonces, si imprimimos con `echo`
    la variable $PATH esto nos mostrará
  • 8:30 - 8:34
    todos los paths (caminos) en donde el
    shell buscará programas.
  • 8:32 - 8:36
    Se darán cuenta de que esto es una
    lista separada por dos puntos,
  • 8:34 - 8:40
    lo cual es bastante difícil de leer,
    pero lo esencial es que cada vez
  • 8:36 - 8:43
    que escribamos el nombre de un
    programa buscará dentro de esta
  • 8:40 - 8:46
    lista de paths, por un archivo
    ejecutable que tenga el mismo
  • 8:43 - 8:49
    nombre que escribimos.
    En mi caso, cuando escribo
  • 8:46 - 8:51
    `echo` buscará en cada uno de
    estos directorios hasta que
  • 8:49 - 8:53
    encuentre un programa llamado
    `echo` y lo correrá. SI queremos
  • 8:51 - 8:54
    saber dónde está el programa
    que corre podemos usar el
  • 8:53 - 8:55
    comando llamado `which`.
    podemos escribir `which echo`.
  • 8:54 - 8:57
    Esto quiere decir que si fuéramos
    a correr un programa llamado `echo`
  • 8:55 - 9:00
    lo correríamos de ese archivo en
    específico. Es imporante mencionar
  • 8:57 - 9:03
    lo que es un path (camino). Los paths
    son una manera de mencionar la
  • 9:00 - 9:05
    ubicación que tienen tus archivos
    en tu computadora. En Linux y MacOS
  • 9:03 - 9:08
    los paths están separados por diagonales,
    específicamente, diagonales para adelante.
  • 9:05 - 9:10
    En inglés conocidos como `forward slashes`:
    / Y verán aquí que estamos en el directorio
  • 9:08 - 9:12
    `root`, eso es lo que indica el primer slash
    (diagonal) y nos dice que nuestro
  • 9:10 - 9:15
    path empieza en la raíz del sistema de
    archivos (file system). Entonces nos
  • 9:12 - 9:18
    vamos al directorio llamado `usr`, después
    ve en el directorio `bin`y luego encuentra
  • 9:15 - 9:20
    el archivo llamado `echo`. En Windows,
    los paths se separan por diagonales hacia
  • 9:18 - 11:22
    atrás \\
  • 11:56 - 12:02
    En Windows, hay una raíz por cada
    partición. Puede que hayan visto
  • 12:00 - 12:05
    algo como `C:\` a diferencia de Linux
    o macOS que traen todo bajo la misma
  • 12:02 - 12:08
    'raíz'. Tal vez se dieron cuenta de que
    dije la palabra path absoluto (camino
  • 12:05 - 12:11
    absoluto). Los absolute paths son
    caminos que determinan completamente
  • 12:08 - 12:13
    la ubicación de un archivo. En este caso,
    estamos hablando de un archivo
  • 12:11 - 12:15
    llamado `echo` en específico. Y nos está
    dando el camino completo al archivo.
  • 12:13 - 12:19
    También tenemos caminos relativos. Y estos,
    como su nombre lo indica, están basados
  • 12:15 - 12:20
    en donde estamos al momento.
    Podemos obtener el path en donde estamos
  • 12:19 - 12:22
    con el comando `pwd`, el cual significa
    imprime el directorio de trabajo
  • 12:20 - 12:27
    (print working directory).
  • Not Synced
    Muy bien. Gracias a todos por venir.
Title:
Lecture 1: Course Overview + The Shell (2020)
Description:

more » « less
Video Language:
English
Duration:
48:17

Spanish subtitles

Incomplete

Revisions