Lección 1: ¿Qué es la CLI de Unix?

Sistemas Operativos

Las computadoras son máquinas que pueden hacer tareas asombrozas para las personas, pero para hacerlo deben ser controladas por programas que les indiquen paso a paso qué deben hacer.Un programa especial llamado sistema operativo es el responsable del control y la administración de la computadora. Los Sistemas operativos cargan otros programas de la computadora, controlan el uso de la memoria, los dispositivos de entrada y de salida, y las unidades de procesamiento que hacen que la computadora funcione, ademas de administrar el almacenamiento y la recuperación de datos a través del sistema de archivos.

Interfaz de usuario

Para que los humanos interactúen directamente con las computadoras, debe existir algún tipo de tecnología que permita expresar sus intenciones de una manera que las computadoras puedan entender. Esta tecnología se denomina interfaz de usuario.

Interfaz gráfica del usuario

Si aprendiste a usar una computadora personal en los ultimos 25 años, lo mas probable es que hayas interactuado con ella utilizando una interfaz gráfica de usuario o GUI (por sus siglas en ingles: Graphical User Interface) interfaz grafica de usuario. Las interfaces gráficas de usuario de los sistemas operativos de escritorio actuales se caracterizan por utilizar ventanas, iconos, menus y puntero (raton) que los usuarios manipulan para controlar el inicio y el funcionamiento de los programas.

Interfaz de línea de comandos / CLI

Si bien las GUI hacen que las computadoras sean más fáciles de usar para el usuario promedio, tambien es cierto que estas introducen demandas mucho mayores en el sistema informático, así como mayores costos de seguridad y mantenimiento. En un computador personal esta compensación quizás valga la pena, pero en un servidor con frecuencia no lo vale. En cambio, muchos servidores utilizan una interfaz de línea de comandos, o CLI en lugar de una GUI. Las interfaces de línea de comandos usan comandos de texto que los usuarios escriben en un símbolo del sistema (que será un $ en los sistemas Ubuntu) para controlar y administrar archivos y aplicaciones.

El shell de Unix

Una CLI común para sitios web es el shell de Unix, que es la CLI que aprenderemos en este tutorial. Específicamente usaremos el shell Bash. Bash es el shell predeterminado en la mayoría de los sistemas GNU / Linux y macOS. Ahora también está disponible como complemento para los usuarios de Windows 10.

La shell de Unix es una interfaz de línea de comandos para el sistema operativo Unix. Muchos servicios de alojamiento web proporcionan a los clientes una shell de unix como herramienta de administracion de sus sitios web. Este tutorial ha sido desarrollado para usuarios de la distribucion Ubuntu del sistema operativo GNU/Linux pero tambien deberia resultar util para cualquier otra distribucion de Unix.

Iniciando en el shell de Unix

Para iniciar un shell de Unix desde un entorno de escritorio con GUI de Ubuntu, busca un programa llamado Terminal (a veces console o xterm en otros sistemas Unix). Al iniciar este programa, usted obtendrá una ventana de escritorio parecida a esta:

Terminal screenshot

Los colores pueden ser diferentes y es posible que vea un menú y una barra de desplazamiento, pero los elementos importantes del programa de terminal son:

prompt
El caracter $ es llamado simbolo del sistema. Este te dice que el intérprete de línea de comandos de Unix está listo para leer y procesar comandos.
cursor
El cuadrado parpadeante que sigue al prompt se llama cursor. Indica la posición en la que aparecerá el texto que escribe en el teclado.

Comandos

Comandos son dados a la CLI de Unix tipiando texto en el simbolo del sistema. Aqui un ejemplo del comando list (ls):

$ ls -la .bash*

Este comando tiene tres partes distintas:

comando
Inmediatamente después del indicador ($) está el comando a ejecutar, que aquí es el comando ls (list). Muestra una lista de archivos y directorios en el directorio actual.
opciones
Las opciones modifican el comportamiento de un comando. Comienzan con un guión (-) o con dos (--). En este ejemplo se especifican las opciones a, all, y l y long, por lo que una lista incluye archivos que comienzan con . , que normalmente no aparecerian en la lista, se mostraran detalladamente o en formato largo.
argumentos
Los argumentos incluyen uno o más objetivos específicos en los que debe operar el comando. En este caso el argumento .bash* significa: solo listar los archivos que comiencen con .bash

Ejercicios:

  1. Ejercicios: Busque el programa de terminal en su computadora. Registre en un cuaderno (del tipo antiguo, con papel y lápiz) cómo se llama este programa en su sistema y los pasos que sigues para ejecutarlo.
  2. En tus propias palabras, agrega definiciones en tu cuaderno para estos nuevos términos:
    • GUI
    • Computadora personal
    • Sistema operativo
    • WIMP
    • Servidor
    • CLI
    • Comando
    • Símbolo del sistema
    • Sitio web
    • Shell de Unix
    • Servicio de alojamiento web
    • Ubuntu
    • GNU/Linux
    Wikipedia tiene buenas entradas para cada uno de estos términos, pero usted deberia escribir cortas definiciones para resumir efectivamente los significados para su propio uso.
  3. Pruebe cada uno de los siguientes comandos en el símbolo del sistema de Bash, registrando en tu cuaderno el resultado de cada comando:
    • $ ls
    • $ ls -a
    • $ ls -la
    • $ pwd
    Explicaremos estos comandos en la próxima lección.