Skip to content

Latest commit

 

History

History
439 lines (308 loc) · 12.7 KB

File metadata and controls

439 lines (308 loc) · 12.7 KB

La terminal

La terminal o consola es el punto de entrada de las intarfaces de línea de comandos. Este tipo de interfaces presenta algunas ventajas en cuanto a productividad sobre las interfaces gráficas aunque el verdadero motivo de estudio tiene que ver con la ubicuidad de las mismas: son la interfaz por defecto de multitud de entornos. Muchas veces los servidores no incluyen entorno gráfico, y tendremos que manipularlos a través de una terminal.

La terminal será, en nuestro caso, parte central del entorno de desarrollo, junto con el editor de código y conviene personalizarla para que seamos más productivos y eficaces.

En Mac, podemos acceder a la terminal buscando "Terminal" entre las aplicaciones instaladas aunque durante este curso utilizaremos iTerm2. La instalarás en breves instantes, por el momento abre la terminal por defecto.

  1. Busca "Terminal" entre las aplicaciones instaladas en tu Mac y lanza la aplicación.

En este capítulo aprenderás a instalar y configurar un entorno de desarrollo para MacOS pero si ya tienes uno preferido (o con el que te sientas cómodo/a), úsalo. Tan sólo asegúrate de que tu entorno cubre las características que cubrimos de aquí al final del texto.

El shell

La terminal es el programa que se encarga de la gestión de texto por pantalla: entrada y salida. El shell corre dentro de la terminal y se encarga de gestionar la ejecución de los programas de línea de comandos, además suele ofrecer el lenguaje de programación integrado bash.

Configuración del sistema

Antes de comenzar a personalizar nuestro entorno de desarrollo, tendremos que configurar MacOS. Lo haremos a través de la interfaz de línea de comandos de XCode. Para ello...

  1. Abre una terminal y ejecuta el siguiente comando (ignora el símbolo de dólar)
$ xcode-select --install
  1. Observa el formato de la orden.

    1. El símbolo de dólar indica que el comando se debe lanzar desde una consola con permisos de usuario (este es el caso normal).
    2. A continuación del dólar va el comando xcode-select.
    3. Y a continuación, la opción en "formato largo" --install.

XCode incluye el conjunto de herramientas de desarrollo de MacOS. En particular, instala el compilador de C/C++ que utilizará el gestor de paquetes Homebrew para poder instalar otro software.

Homebrew

Los gestores de paquetes están presentes en muchos sistemas operativos, incluyendo Windows y su cometido es el de centralizar la instalación de otros programas. Es muy común que los gestores de paquetes tengan una interfaz de línea de comandos.

Homebrew es el gestor de paquetes de MacOS de facto, aunque si estás acostumbrado a usar otro, puedes usar el que te resulte más conveniente.

  1. Instala Homebrew corriendo el siguiente script.

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Observa el comando que has introducido y trata de explicar sus partes:

    1. De nuevo, el comando comienza por el símbolo de dólar.
    2. Le sigue el comando /usr/bin/ruby, que viene dado por la ruta completa hasta el programa ruby.
    3. A continuación viene la opción en "formato corto" -e (leído "menos e")
    4. Luego el texto, rodeado por comillas dobles $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install).

    Las comillas dobles permiten sustituir valores. En particular, un símbolo de dólar seguido de un comando entre paréntesis, será sustituido por el resultado del comando entre paréntesis.

    En este caso, el comando interno descarga de Internet un programa en Ruby que realiza la instalación de Homebrew.

  3. Con Hombrew en su sitio, ya podemos instalar el software que usaremos durante el curso. Abre una nueva sesión de consola (puedes cerrar esta) y ejecuta los siguientes comandos (cada línea es una orden distinta):

    $ brew install python3
    $ brew install git
    $ brew install zsh
    $ brew cask install iterm2
    $ brew cask install pycharm-ce

    Fíjate en lo que has instalado:

    • Python 3: la última versión del intérprete.
    • Git: el gestor de versiones de código fuente.
    • zsh: una shell configurable.
    • iTerm2: una nueva y mejorada terminal.
    • PyCharm: un entorno de desarrollo para Python.
  4. Observa el formato de las instrucciones. En este caso:

    1. La orden brew
    2. El subcomando cask o la jerarquía de subcomandos cask install
    3. Los parámetros python3, git, zsh...
  5. Abre PyCharm (haciendo comando+espacio y buscando "PyCharm").

    Pasa a través de las pantallas de configuración inicial sin saltártelas y presta especial atención a una donde te preguntará si quieres instalar el comando de consola. Marca la casilla para instalar la utilidad.

    Este editor es PyCharm. Indagaremos más en PyCharm en el siguiente capítulo.

  6. Comprueba que tienes la utilidad instalada escribiendo en la terminal:

    $ which charm

    La salida debería ser una ruta. Si no existe pondrá "charm not found".

ZSH

En lugar de bash, a lo largo del curso usaremos zsh, una alternativa compatible con bash y altamente personalizable que instalaste durante la ejecución de los comandos anteriores. Lo usaremos junto con antigen que es un gestor de plug-ins para zsh.

  1. Termina la instalación de zsh cambiando tu shell por defecto. Primero localiza la ruta completa de la shell. Copia esa ruta:

    $ which zsh
  2. Ahora abre (con permisos elevados gracias a sudo) el fichero etc/shells con PyCharm para autorizar la nueva shell:

    $ sudo charm /etc/shells

    Pega el resultado del comando anterior como última línea y guarda. Es importante que cierres PyCharm.

  1. Cambia la shell de tu usuario a zsh.

    $ chsh -s $(which zsh)

    Cierra la terminal y abre una nueva.

    ¿Podrías describir el formato de este comando?

Personalización de zsh

  1. Instala antigen, un gestor de plugins para zsh:

    $ brew install antigen

    Observa la salida de la instalación y localiza las líneas que empiezan por:

    To activate antigen, add the following to your ~/.zshrc:
    

    Copia la línea que comienza por source.

  2. Primero crea un archivo de configuración para zsh:

    $ touch ~/.zshrc
  3. Y utiliza PyCharm para editarlo:

    $ charm ~/.zshrc
  4. Añade el siguiente código bash:

    source ~/antigen.zsh
    
    # Load the oh-my-zsh's library.
    antigen use oh-my-zsh
    
    # Bundles from the default repo (robbyrussell's oh-my-zsh).
    antigen bundle git
    antigen bundle pip
    antigen bundle command-not-found
    antigen bundle osx
    antigen bundle virtualenvwrapper
    antigen bundle pyenv
    
    # Syntax highlighting bundle.
    antigen bundle zsh-users/zsh-syntax-highlighting
    
    # Load the theme.
    antigen theme amuse
    
    # Tell Antigen that you're done.
    antigen apply
  5. Reemplaza la primera línea por la línea que copiaste al portapapeles en el primer paso:

    source /usr/local/share/antigen/antigen.zsh
  6. Cierra todas las terminales y abre una nueva sesión para que la configuración haga efecto.

Con esto has terminado de configurar el entorno de desarrollo. La siguiente sección es una relación de comandos y combinaciones de teclas útiles para trabajar en tu nuevo entorno. También aprenderás a lanzar Python desde la línea de comandos.

Para que te familiarices aun más con tu entorno de desarrollo, aquí tienes algunos recursos con los atajos de teclado y las principales características de iTerm2 y zsh:

Comandos más frecuentes

Listar ficheros:

$ ls

Listar todos los ficheros (incluídos los ocultos):

$ ls -a

Listar todos los ficheros línea a línea:

$ ls -la

Cambiar de directorio:

$ cd otra/ruta

Ir a la carpeta padre:

$ cd ..

Ejecutar un script:

$ ruta/hasta/el/script argumentos

Crear una carpeta (la carpeta padre debe existir):

$ mkdir otra/carpeta/existente/nueva_carpeta

Crear un árbol de directorios (la carpeta padre no tiene por qué existir):

$ mkdir -p ruta/hasta/la/nueva/carpeta

Borrar un fichero:

$ rm ruta/hasta/el/fichero

Borrar una carpeta:

$ rm -r ruta/hasta/la/carpeta

Crear un fichero en blanco:

$ touch ruta/hasta/el/fichero

Copiar un fichero:

$ cp ruta/hasta/origen ruta/hasta/destino

Mover un fichero o directorio:

$ mv ruta/hasta/origen ruta/hasta/destino

Utiliza este comando para renombrar ficheros también.

Existen muchos más comandos y además toda una sintáxis pensada para redirecionar entrada y salida, ejecutar subcomandos e incluso programar. A lo largo del curso veremos algunos usos que no están aquí. Si quieres aprender a usar la terminal en profundidad, visita los siguientes recursos:

Python desde la terminal

Vamos a ejecutar nuestros primeros programas Python desde la terminal. No es imprescindible saber hacer esto pero sí conveniente.

  1. Comprueba la versión de Python utilizando el siguiente comando:

    $ python3 --version
  2. Lanza el intérprete interactivo (REPL por sus siglas en inglés) de Python escribiendo la siguiente orden:

    $ python3
  3. Prueba a escribir una expresión cualquiera como:

    6*7
  4. Observa el resultado. Luego sal del intérprete de Python escribiendo:

    exit()
  5. Puedes ejecutar pequeños programas desde la consola, sin tener que entrar en el intérprete:

    $ python3 -c "print(6*7)"
  6. Prueba el comando anterior eliminando la llamada a la función print. ¿Qué pasa?

  7. También puedes ejecutar módulos de Python como si fueran programas. Por ejemplo, crea un nuevo fichero index.html:

    $ touch index.html
  8. Ahora ejecuta el siguiente comando:

    $ echo '<h1>¡Hola, mundo!</h1>' >> index.html
  9. Por último ejecuta el módulo http.server de Python para crear un servidor estático:

    $ python3 -m http.server
  10. Con un navegador, visita http://localhost:8000

  11. Interrumpe el servidor pulsando la combinación Ctrl+C.

  12. Borra el archivo index.html desde la terminal.

  13. Por último, para ejecutar un programa de usuario, crea un fichero de ejemplo:

    $ touch ejemplo.py
  14. Vuelva los siguientes contenidos en el fichero:

    $ echo 'print(6*7)' >> ejemplo.py
  15. Ejecuta el programa o script mediante:

    $ python3 ejemplo.py
  16. Borra el programa de ejemplo desde la terminal.

El intérprete interactivo de Python es una herramienta fundamental en el desarrollo de software con Python. Sin embargo, el intérprete interactivo por defecto es algo limitado. PyCharm, el IDE que exploraremos en la siguiente lección, incluye un intérprete interactivo mucho más potente.