Para ser exactos Linux no es un sistema operativo (SO) per se, es un núcleo o kernel usado en muchos SOs. Sin embargo, de manera genérica los SOs que usan este kernel toman el nombre Linux. Un kernel es la base del SO que tiene control absoluto sobre todos los dispositivos o hardware de un computador (memoria, procesador, disco, etc.).
El kernel Linux fue creado por Linus Torvalds como una alternativa del SO Unix. Después de ser liberado en septiembre de 1991, el kernel Linux se convirtió rápidamente en la base del SO GNU, un proyecto que buscaba reemplazar al SO Unix. Dado que Linux tiene características parecidas al SO Unix, se considera como un sistema “similar a Unix” (Unix-like), también conocido como UN*X o *nix. Los SOs (o distribuciones) Linux empaquetan el kernel junto con otros componentes como bibliotecas, el sistema gráfico y de ventanas, y programas (editores de texto, ofimática, administrador de archivos, etc.). Se estima que actualmente existen más de 300 distribuciones Linux mantenidas activamente (SUSE 2021), entre las que se encuentran Ubuntu, Debian, Fedora, y Mint como algunas de las más populares.
2.1 Instalación entorno Linux
2.2 Instalación nativa
El entorno ideal Linux es aquel en donde se ejecuta de manera nativa en la máquina. La gran ventaja de ejecutar un SO nativamente es que tiene control exclusivo de todos los recursos del computador (memoria RAM, almacenamiento en disco, y núcleos de procesamiento), por lo que puede explotar al máximo las características de la máquina. La desventaja es que el usuario requiere tener destrezas informáticas medias o avanzadas para su instalación. Esto es válido para cualquier SO, bien sea Linux, Windows, o macOS, por ejemplo. Linux puede ser instalado como único SO o junto con otros SOs (por ejemplo Windows) en la máquina, pero en todo caso, solo un SO puede ser ejecutado a la vez.
Una opción para instalar Linux es usar una máquina virtual. Una máquina virtual es una instancia simulada de un computador con todos sus recursos. Para nuestros propósitos y suponiendo que usted cuenta con un computador con Windows, la instancia simulada o máquina virtual será Linux. Esta máquina virtual se ejecutará en su equipo físico con Windows a través de un programa de virtualización, que en este caso será VirtualBox1. En el Apéndice A se describe todo el proceso paso a paso para instalar Linux como una máquina virtual usando VirtualBox.
2.2.2 Windows WSL
Otra opción práctica es instalar el Subsistema de Windows para Linux (WSL del inglés Windows Subsystem for Linux) si se cuenta con una máquina con Windows 10/11. El WSL es una característica de Windows 10/11 que permite ejecutar programas de Linux en Windows de manera nativa (Microsoft 2021). Aunque esta instalación es práctica, puede dar problemas en algunos usos específicos. Sin embargo, para el objetivo de este manual la instalación de Windows WSL es perfectamente válida y funcional. Puede instalar Linux con WSL siguiendo el artículo “Instalación de Linux en Windows con WSL”.
2.3 La línea de comandos
La línea de comandos es una interfaz de solo texto que permite la comunicación del usuario con el computador. La comunicación se realiza a través de la entrada de órdenes llamadas “comandos”, las cuales son interpretadas por el shell. El shell es un programa que actúa como interfaz entre el usuario y el kernel, esto es, recibe los comandos, los pasa al kernel, recibe la respuesta del kernel, y finalmente la pasa al usuario.
La línea de comandos es la principal herramienta utilizada para hacer bioinformática en Linux, y se accede mediante el “emulador de la terminal” o simplemente “terminal”. La terminal es un programa que permite la entrada de comandos en un ambiente gráfico (una ventana), y su apariencia y características dependen del SO. En este manual se usará Ubuntu Linux 20.04 para todos los ejemplos presentados (ver Apéndice A para instalar Ubuntu).
Para abrir la terminal en Ubuntu basta con hacer clic en el botón Aplicaciones en el dash (barra lateral), y a continuación escribir “terminal” en la barra de búsqueda. La Figura 2.1 y Figura 2.2 muestran los pasos para abrir la terminal.
Figura 2.1. Escritorio de Ubuntu Linux 20.04. El botón Aplicaciones (recuadro rojo), ubicado en la parte inferior del dash (barra lateral) es parecido al botón Inicio de Windows, y permite buscar e iniciar programas.
Figura 2.2. Barra de búsqueda Ubuntu Linux 20.04. La barra de búsqueda permite buscar cualquier programa instalado en Ubuntu. En este caso se muestra el resultado después de buscar la terminal.
Al hacer clic en el ícono de la terminal, la ventana de la terminal se inicia (Figura 2.3).
Figura 2.3. La terminal de Ubuntu Linux 20.04.
Lo primero que verá en la línea de comandos de la terminal será una línea llamada el command prompt (también, solo prompt) o símbolo del sistema que luce parecido a esto:
hector@Ubuntu:~$
En el ejemplo anterior del símbolo del sistema, se pueden identificar los siguientes elementos:
hector: el nombre del usuario actual
Ubuntu: el nombre de la máquina
~: El directorio actual. En bash, el shell o intérprete de comandos por defecto, la virgulilla (~), es un carácter especial que equivale (o “expande”) a la ubicación del directorio home, en este caso /home/hector2.
En adelante, se asume que todos los comandos descritos en este texto serán ejecutados a través de la terminal de Ubuntu.
2.4 Los comandos
Los comandos son programas que realizan tareas específicas en el sistema. Así, existe un comando para cada acción que el usuario desea ejecutar en el SO: uno para listar los archivos en un directorio (ls) , uno para crear directorios (mkdir), uno para copiar archivos (cp), etc.
Cada comando se ejecuta en la terminal invocando el nombre respectivo, escrito todo en minúsculas, y a continuación presionando al tecla Enter. Por ejemplo, para conocer el directorio actual, digite el comando pwd y a continuación presione Enter. El resultado del comando pwd muy seguramente será algo como /home/NOMBRE_DE_USUARIO, en donde NOMBRE_DE_USUARIO corresponderá al usuario actual que está usando la terminal (Figura 2.4).
Figura 2.4. Ejecución del comando pwd.
2.4.1 Anatomía de los comandos
Los comandos se componen de tres partes: el nombre, las opciones, y los argumentos:
nombre_comando[OPCIONES] ARG_1 ... ARG_N
La linea anterior es una representación de la estructura de los comandos. Como se dijo, el nombre (nombre_comando) sirve para invocar el comando y siempre será estará ubicado en primer lugar.
Nota
En la estructura o sintaxis de los comandos, los corchetes [] significan que los argumentos son opcionales, por eso las opciones se presentaron como [OPCIONES]. Algunas veces, puede ver los argumentos obligatorios entre símbolos de mayor y menor que: <ARG_1>
Las opciones ([OPCIONES]) se pueden agregar (o no, pues son opcionales) para modificar el comportamiento de un comando. Las opciones consisten en palabras (una o más letras) que se escriben siempre después del nombre del comando y que van precedidas de uno o dos guiones (- o --), p. ej. comando -o o comando --opcion. En algunos casos, las opciones requieren valores, p. ej. comando --opcion valor.
Los argumentos (ARG_1 ... ARG_N) son valores (uno o más) que se pasan al comando y que, en algunos casos, son requeridos (obligatorios) para que el comando funcione.
2.4.2 Ayuda de los comandos
Un aspecto clave para el uso de los comando es la ayuda de cada uno. Aunque existen decenas de comandos en Linux y su uso depende en gran medida de la buena memoria del usuario para recordarlos, no es necesario recordar cada detalle acerca de los comandos. Solo basta con recordar el nombre del comando y siempre se podrá consultar su ayuda abreviada o extendida.
2.4.2.1 La ayuda
La ayuda es un mensaje que provee la información más básica a cerca del uso de un comando, por lo que se le conoce como ayuda corta o abreviada. El mensaje de ayuda generalmente describe la estructura o manera de usarlo (usage), la función que realiza el comando, y las opciones y argumentos disponibles.
En la mayoría de los casos la ayuda se consulta agregando la opción --help al comando. Por ejemplo, para consultar la ayuda del comando mkdir, basta con ejecutar:
mkdir--help
Modo de empleo: mkdir [OPCIÓN]... DIRECTORIO...
Crea los DIRECTORIO(s), si no existen ya.
Los argumentos obligatorios para las opciones largas son también obligatorios
para las opciones cortas.
-m, --mode=MODE establece los permisos (como en chmod), en lugar
de a=rwx - umask
-p, --parents no hay error si existen, crea los directorios padres en
caso necesario
-v, --verbose muestra un mensaje por cada directorio creado
-Z establece el contexto de seguridad SELinux de cada
directorio creado al tipo predeterminado
--context[=CTX] como -Z, o si se especifica CTX entonces establece el
contexto de seguridad SELinux o SMACK a CTX
--help muestra esta ayuda y finaliza
--version informa de la versión y finaliza
ayuda en línea sobre GNU coreutils: <https://www.gnu.org/software/coreutils/>
Report mkdir translation bugs to <https://translationproject.org/team/>
Full documentation at: <https://www.gnu.org/software/coreutils/mkdir>
or available locally via: info '(coreutils) mkdir invocation'
Advertencia
Si usa --help con el comando pwd en Ubuntu, tal vez obtendrá un error. Esto se debe a que Ubuntu usa por defecto una versión distinta del comando pwd, la cual no acepta esta opción. Para que funcione correctamente debe ejecutar /usr/bin/pwd --help.
2.4.2.2 El manual
Cuando se requiere ver todas las opciones y argumentos de un comando junto con información detallada de las características, uso, y ejemplos, se puede consultar el manual o ayuda extendida, siempre que esté disponible. El manual se consulta mediante el comando man seguido del nombre del comando de cual se desea conocer más información. Por ejemplo, para consultar el manual del comando mkdir, se ejecuta el la orden:
man mkdir
Figura 2.5. Manual del comando mkdir en la terminal, generado con la orden man mkdir.
El manual es desplegado en un modo especial que permite navegar a través del contenido usando las teclas de dirección (\(\textuparrow\)/\(\textdownarrow\)) o de avance página (RePág/AvPág o PageUp/PageDown en inglés). Como verá, el manual es mucho más extenso comparado con el mensaje de ayuda del comando (Figura 2.5).
Para salir de este modo y regresar a la línea de comandos se presiona la tecla Q.