Teclas de atajo

Pulse o para navegar entre capítulos

Pulse S o / para hacer búsquedas

Pulse ? para mostrar esta ayuda

Pulse Esc para ocultar esta ayuda

Actualizado a Linux Ubuntu 26.04

Mi guía personal para instalar y usar Linux en un Mac
(sin romper nada)


De vez en cuando me gusta “trastear” con el sistema operativo Linux, pero sin que eso afecte a la configuración de mi ordenador ni modificar el software que viene de fábrica o perder contenidos. A fin de cuentas, nuestra computadora es una inversión que debemos cuidar.

Mi solución particular consiste en crear una máquina virtual. Para los no iniciados, y dicho de una forma gráfica, se trata de instalar un programa especial que simule un ordenador, visualizando el escritorio virtual en una ventana de la pantalla, y utilizando un enorme archivo de datos como disco duro virtual. Ahí encerraremos todos nuestros experimentos y crearemos un espacio de trabajo aislado, evitando contaminar la máquina física. Llegado el momento, basta con suprimir ese archivo para hacer limpieza general y dejarlo todo como el día que adquirimos la computadora.

En este cuaderno describiré todo el proceso de instalación en mi ordenador Mac. Es una colección de apuntes personales basados en mi experiencia en tareas domésticas, y en mis lecturas. No soy administrador de grandes sistemas ni nunca he configurado un ordenador como servidor web. Comparto mis notas con quienes quieren acompañarme en mi exploración del mundo de las computadoras.




© El taller de Félix
Cuaderno desarrollado con mdBook
Fecha de actualización: 02 de mayo de 2026

Índice de cuadernos

Sistemas operativos

Ya que vamos a instalar Linux, comencemos por explorar algunos conceptos. ¿Que es un sistema operativo? ¿Y un kernel? ¿Que es un shell?

¿Que es un sistema operativo?

Cuando adquirimos un nuevo ordenador, la compra suele incluir una colección de programas preinstalados que podemos ampliar con nuevos paquetes de software. A grandes rasgos, y sin ánimo de ser dogmáticos, este conjunto de programas básicos es conocido como sistema operativo. Se divide en cinco grandes piezas:

  • Un programa de arranque, que es lo primero que se ejecuta cuando encendemos la computadora. El ordenador lo buscará automáticamente en el disco duro, aunque podemos configurar la máquina para que se busque prioritariamente en un pendrive, si tenemos uno conectado, o en otro dispositivo de almacenamiento.

  • Un conjunto de programas básicos de gestión de recursos y procesos, conocido como el “kernel” o núcleo del sistema. Los pone en marcha el programa de arranque y se mantienen ejecutándose “en la sombra” hasta que apaguemos la computadora.

  • Un programa que nos permita interaccionar con la máquina, llamado “escritorio”, también conocido como “shell”. Esta palabra significa, en inglés, caparazón, y se llama así porque es la parte “visible” del sistema operativo, algo así como el envoltorio.

    Ambos paquetes, el kernel y el shell, se ponen en marcha de forma automática con la ayuda del proceso de arranque.

  • Varios programas de utilidad para configurar accesos, usuarios, contraseñas, y todo el sistema en general.

  • Todo ello va acompañado del una colección de aplicaciones de uso común: navegador web, explorador de ficheros, gestor de correo, etcétera.

Siendo puristas, la definición de sistema operativo se limita al kernel y al shell, considerando todo lo demás como complementos. En este cuaderno dejaremos ese debate aparte.

Monitorizando procesos

Supongamos un escritorio con el siguiente aspecto:

En este ejemplo tenemos dos programas en sendas ventanas, el navegador web y una calculadora. Pero si nos fijamos bien, hay un tercer programa, el escritorio.

De hecho hay otros programas ejecutándose en la sombra, sin visualizar nada. Son los programas de gestión interna de recursos. Por ejemplo:

  • El programa que gestiona las conexiones de red.
  • El programa para controlar los accesos a disco que llevan a cabo las aplicaciones (procesador de textos, editor de imágenes, etc), evitando conflictos entre ellas al reclamar espacio para almacenar datos.
  • El portapapeles, que permite copiar y pegar de una aplicación a otra.
  • Y un largo etcétera.

¿Como podemos averiguar cuales son esas tareas de intendencia que se ejecutan en segundo plano? Muchos sistemas suelen contar con algún programa de utilidad que muestra la lista de procesos en ejecución. Este programa suele tener diferentes nombres, monitor del sistema, administrador de tareas… En Windows, por ejemplo, se inicia pulsando la combinación de teclas mayúsculas +control+esc.

En la siguiente imagen tenemos un monitor del sistema ejecutándose en una ventana sobre un escritorio de Linux. Podemos ver la lista de procesos, los recursos consumidos por cada uno, y en caso de que la máquina se quede bloqueada, detectar cual es el programa que está acaparando el tiempo de la CPU.

Buena parte de estos procesos forman el kernel. ¿Quien ha dado la orden de ejecutarlos? Se ponen en marcha automáticamente al iniciar la computadora.

El Shell

La parte visible de cualquier sistema operativo suele ser el escritorio, es decir, el programa que usamos para interaccionar con la máquina. Este tipo de programas son conocidos como “shell”. y han ido evolucionando desde la prehistoria de la informática. En los primeros tiempos, los ordenadores no contaban con pantallas. Los puestos de trabajo consistían en un teclado y una impresora:

El usuario tecleaba comandos a ejecutar, y el ordenador respondía mostrando las respuestas en papel. El shell era el programa que gestionaba este diálogo.

Con el paso de los años, estas primitivas consolas fueron sustituidas por pantallas donde la información se mostraba en forma de texto, que se iba desplazando hacia arriba a medida que se llenaba la pantalla:

La década de 1980 fue testigo de la aparición de los primeros escritorios gráficos. En lugar de teclear comandos, había que pulsar con el ratón sobre los elementos de la pantalla:

A partir de ese momento se fue imponiendo el uso de shells cada vez más sofisticados. Actualmente se distingue entre shells gráficos y shells de texto. Los sistemas operativos modernos suelen incluir un programa llamado “Terminal”, que simula un shell de texto en una ventana:

¿Como funciona? Tecleamos comandos en la ventana de trabajo y observamos las respuestas del ordenador. En un capítulo posterior haremos un repaso básico de los comandos que son propios del sistema operativo Linux.

¿Para que sirve el Terminal? El usuario medio de un ordenador doméstico lo utilizará en contadas ocasiones, pero hay situaciones en las que resulta de gran utilidad, especialmente para tareas de administración y configuración del sistema.

Sistemas operativos más populares

En resumen, un sistema operativo es un software formado por un Kernel, un Shell (gráfico, de texto, o ambos) y otros programas de utilidad. En los primeros años de la informática, cada fabricante de ordenadores tenía su propio sistema operativo. Esto era un planteamiento bastante ineficiente, porque los programas que utilizamos se apoyan en los servicios proporcionados por el kernel, como ya hemos visto. Un editor de textos, pongamos por caso, requiere que haya un gestor de almacenamiento en disco ejecutándose en la sombra. En aquellos primeros años, esto suponía que si una empresa cambiaba de computadora y adquiría un nuevo modelo más avanzado de otra marca, tenía que prescindir de todos sus programas, por ser incompatibles con el kernel de la nueva máquina. Había que volver a comenzar desde cero.

En la década de 1960 comenzaron a surgir algunas iniciativas para crear sistemas operativos universales, algo que, en la actualidad se encuentra bastante extendido. Hoy en día, dos de los sistemas más populares son “Windows” y “Android”. Las ordenadores de la marca Apple tienen su propio sistema operativo, “MacOS”.

En el mundo de los servidores corporativos, el sistema de referencia es “UNIX”, que se remonta a la década de 1970. En los años noventa surgió una versión para ordenadores personales denominada “Linux”, que hoy en día es desarrollada de forma comunitaria, y es el sistema preferido por los defensores del software libre. Incluso ha ido sustituyendo de forma progresiva a su antecesor Unix en muchos servidores.

Otra alternativa es “ChromeOS”, diseñado por Google y orientado a máquinas donde las aplicaciones y los datos de los usuarios residen en la nube.

MS-DOS fue el sistema operativo de Microsoft en la década de 1980, superado en 1992 por el lanzamiento de Windows 3, y aparcado definitivamente en 1995 tras la presentación de Windows 95.

¿Cuantos sistemas operativos existen? Considerando los de cierta relevancia, cientos. Véase lista en la wikipedia.

En este cuaderno describiremos la instalación de un sistema operativo Linux.

El sistema operativo Linux

Comencemos por dejar algo muy claro. Linux no es un sistema operativo completo, sino un kernel.

Se trata de un proyecto iniciado en 1991 por un programador finlandés, Linus Torvalds, y se mantiene como desarrollo comunitario. Véase el repositorio oficial del proyecto en este enlace, o los archivos de trabajo en plataformas como GitHub o GitLab.

Para utilizarlo en nuestro ordenador, tenemos que instalarlo complementándolo con el resto de programas. De hecho, en la actualidad existen multitud de sistemas operativos que incorporan Linux como núcleo. Android o Chrome OS, por ejemplo, forman parte de la lista. Y no solo ordenadores, sino también otros dispositivos como es el caso de televisores, teléfonos, y toda clase de dispositivos inteligentes.

Los orígenes

Linux es un kernel inspirado en UNIX, un sistema operativo ideado a finales de los años sesenta del pasado siglo, que ha llegado a convertirse en una especie de estándar en el mundo de la informática y ha sido muy popular en grandes instalaciones y servidores corporativos.

Antes de UNIX, los sistemas operativos eran un software concebido a la medida de cada fabricante y de cada modelo de ordenador. A mediados de la década de 1960 el Massachusetts Institute of Technology (MIT) puso en marcha un proyecto para crear un sistema operativo universal. En esta iniciativa participaron los Laboratorios Bell, una empresa dedicada a la investigación que por aquella época era subsidiaria de la multinacional de comunicaciones AT&T.

El proyecto fue bautizado con el nombre de Multics (Multiplexed Information and Computing Service) y pronto surgieron las primeras dificultades y desacuerdos debido a que los resultados obtenidos no iban en la línea deseada. Bell Labs abandonó en 1969.

Era una época en la que no existían los ordenadores domésticos, y los profesionales tenían que dedicar parte de su tiempo libre a la tarea de aprender practicando con las máquinas de la empresa. Uno de los ingenieros de Bell Labs, Ken Thompson, había estado desarrollando varios programas en los ordenadores utilizados en el proyecto Multics, y para seguir con sus experimentos, pidió a la empresa que le prestaran un viejo DEC PDP-7 que estaba en desuso. Allí había que desarrollarlo todo, empezando por un sistema operativo en miniatura, y Thompson convirtió este reto en una especie de proyecto personal basado en su experiencia en el proyecto Multics.

Poco a poco y con la ayuda de otros colegas, el nuevo sistema operativo fue evolucionando, siendo trasladado a otras máquinas más potentes para comprobar su portabilidad, y convirtiéndose finalmente en un software corporativo, bautizado inicialmente con el nombre de Unics (por oposición a Multics), y definitivamente como Unix.

En principio, los Laboratorios Bell no tenían la idea de comercializar el software, aunque lo patentaron y pusieron a disposición de varias universidades y otros organismos públicos, lo que hizo que muchas personas empezaran a utilizarlo y se implicaran en el desarrollo de Unix. Poco a poco su uso se extendió a la empresa privada, y en 1975 AT&T retiró el permiso para que Unix fuera utilizado libremente, creando una división corporativa denominada Unix Systems Laboratories, para explotar comercialmente el software bajo el nombre de Unix System V. Mantuvo el negocio hasta 1993 cuando se lo vendió a Novell.

Todo esto dió lugar a una situación bastante incómoda, ya que había universidades que se habían implicado en el desarrollo de Unix. Varios científicos de la Universidad de Berkeley California se pusieron de acuerdo para recopilar el material y presentar un clon llamado Unix BSD (Berkeley Software Distribution).

Además de Unix System V y UNIX BSD, con el paso del tiempo aparecieron otras versiones, todas ellas basadas en el mismo estándar. IBM, por ejemplo, lanzó AIX en 1986. Sun Microsystems (posteriormente adquirida por Oracle) hizo lo mismo con Solaris, e incluso Microsoft hizo un tímido intento de comercializar un sistema operativo llamado Xenix, aunque con el tiempo descartó el proyecto y prefirió desarrollar Windows. Los ordenadores Apple, por su parte, también apostaron por Unix y en la actualidad los Mac utilizan un derivado de UNIX BSD denominado Darwin, y comercializado como MacOS.

Para luchar contra todos estos intereses comerciales, un grupo de ingenieros del MIT liderados por Richard Stallmann crearon a principios de los años ochenta la Free Software Foundation, una organización sin ánimo de lucro cuyo propósito es promocionar la libertad en el uso del software, más allá de patentes y restricciones.

Uno de los proyectos más notables de esta organización fue impulsar la creación de un sistema operativo libre. Estaba inspirado en el estándar UNIX y fue bautizado con el nombre de GNU, acrónimo de GNU is Not Unix. Su página web es https://www.gnu.org.

GNU se convirtió en un esfuerzo comunitario en el que muchos programadores aportaban sus colaboraciones. Hacia 1990 el proyecto estaba bastante avanzado, pero faltaba la pieza esencial, un kernel. En el proyecto se estaba utilizando uno llamado TRIX, desarrollado por el MIT, pero que no resultaba adecuado por no ser del todo compatible con los estándares UNIX. Hubo algunos intentos de buscar otra alternativa que no llegaron a cuajar, como es el caso del proyecto Hurd, creado en 1990, que no logró atraer suficiente esfuerzo de desarrollo, dejando a GNU incompleto.

En 1987, Andrew S. Tanenbaum, un profesor universitario holandés, escribió un libro llamado Operating Systems: Design and Implementation, explicando como crear un sistema operativo tipo Unix. Detallaba todo el proceso de creación de un kernel en miniatura, al que de bautizó como MINIX.

En 1991, Linus Torvalds utilizó MINIX como punto de partida para concebir un kernel que con el paso del tiempo se convirtió en un proyecto colaborativo al que han ido sumándose muchas personas. Originalmente fue conocido como “El Unix de Linus”, en inglés, Linus Unix, lo que finalmente se convirtió en la denominación oficial, “Linux”.

GNU adoptó Linux como kernel, pero Torvalds prefirió mantenerse al margen de esa comunidad, y su proyecto sigue desarrollándose como software independiente, presentando periódicamente nuevas versiones ampliadas que son utilizadas como núcleo de muchos dispositivos y sistemas operativos.

Existe una controversia acerca de la denominación de Linux como sistema operativo, que los defensores de GNU prefieren denominar GNU/Linux. Véase artículo en la wikipedia.

Acerca de Tux

La mascota oficial del proyecto Linux es un pingüino llamado Tux. Fue diseñado por Larry Ewing en 1996, aunque la idea de adoptar este animal como imagen oficial surgió del propio Linus Torvalds, quien tenía cierta fijación por estas aves tras haber sido mordido por una de ellas en el zoológico de Canberra, Australia.

Existen varias versiones sobre el origen del nombre. La más aceptada es que Tux sea una contracción de Torvalds’ Unix, es decir, “el Unix de Torvalds”.

Distribuciones

Si Linux solo es un kernel, ¿que necesitamos para usarlo en nuestro ordenador? Recopilar el resto de programas, añadir un shell y otras utilidades, instalar todo el conjunto en nuestro equipo, y configurarlo para que vaya bien. O bien conseguir una recopilación realizada y distribuida por algún colectivo o empresa.

En la actualidad existen multitud de “distribuciones” (familiarmente conocidas como “distros” en la jerga informática), unas de carácter comunitario y otras comerciales. Basta con apostar por cualquiera de ellas, acudir a su página web, descargar el paquete, e instalarlo en nuestro ordenador.

Una de las peculiaridades del software libre es que podemos utilizarlo a nuestro gusto, hacer copias, modificarlo y redistribuirlo. Podemos tomar una distribución ya existente, introducir algunos cambios, añadir nuestros programas favoritos, y de esta forma crear una nueva “distro” bautizada con nuestro nombre, si ese es nuestro deseo. De esta forma veremos que hay distribuciones que están basadas en otras. ¿Cuantas “distros” existen hoy en día? Cientos. Véase una lista de las más notables en la Wikipedia. Podemos consultar un ranking de popularidad en http://distrowatch.com/.

Sin ánimo de ser exhaustivos, veamos una pequeña selección de distros más o menos populares. Algunas son comerciales, lo que significa que tenemos que pagar por el esfuerzo de recopilación de software (aunque sean programas libres), las herramientas añadidas por la empresa, la documentación proporcionada o el servicio de soporte técnico.

Algunas distribuciones pueden incluir programas con licencia de uso y propiedad intelectual. Otras tratan de evitar este tipo de software.

GNU

slackware

Aunque es el pionero de los sistemas operativos Linux, en realidad, GNU no puede considerarse como una distribución, sino como una amplia colección de software que puede ser configurada para crear distribuciones. De hecho, el proyecto GNU da cobijo y avala a varias como Trisquel o PureOS, por ejemplo.

Slackware

slackware

Es la distribución más antigua de las que existen en activo. Fue creada en 1993, y su filosofía es lograr una réplica de UNIX, sin grandes alardes, sacrificando la vistosidad en beneficio de lograr un sistema estable y sólido. Es una distro popular entre administradores de servidores y grandes sistemas, aunque no deja de ser la “abuela”, y quizás no resulte tan atractiva como otras distribuciones más actuales.

Es un proyecto mantenido por la comunidad de usuarios. Su página web es http://www.slackware.com

SuSE

opensuse

De origen alemán, comenzó siendo una versión de slackware con algún software añadido. Más tarde se independizaron con el propósito de superar esa barrera de austeridad autoimpuesta y convertirse en una recopilación de software lo más completa posible.

Es una distribución comercial. La empresa patrocina una versión comunitaria de libre descarga, llamada openSUSE.

Página web de openSUSE: https://es.opensuse.org/

Red Hat

redhat

También es una de las pioneras, habiéndose convertido con el paso del tiempo en la distribución comercial por excelencia, orientada al mundo de la empresa. Su página web es https://www.redhat.com/.

La compañía que lo distribuye fue adquirida por IBM en julio de 2019.

fedora

De Red Hat se derivan otras muchas, e incluso hay una que patrocinan ellos mismos con el nombre de Fedora, que se mantiene como esfuerzo comunitario y sirve de campo de ensayo para las novedades que posteriormente se trasladarán a RedHat.

Página web de Fedora: https://fedoraproject.org

Debian

debian

Ante la proliferación de versiones comerciales, en 1993 se puso en marcha un proyecto para lograr un sistema operativo completamente ajeno a intereses de empresas, excluyendo todo software con licencias de uso restrictivas. Debian está considerada la distribución libre por excelencia y otras muchas distros están basadas en ella.

Es una distribución mantenida por la comunidad de usuarios. Su página web es: https://www.debian.org/

Ubuntu

ubuntu

Es una de las distribuciones más populares. Fue creada en 2004 por una empresa llamada Canonical, con sede en la Isla de Man y patrocinada por el multimillonario sudafricano Mark Shuttleworth. Su propósito es conseguir que todo el mundo tenga acceso a las tecnologías de la información, convirtiendo Linux en un producto con la calidad de otros sistemas operativos comerciales, fácil de usar, y extendido a otros tipos de dispositivos, televisores, teléfonos móviles, etc.

Es una distribución basada en Debian. Su página web es https://www.ubuntu.com

Mint

mint

Mint es una distribución derivada de Ubuntu. Hereda sus características de facilidad de uso, solidez y estabilidad, añadiendo un “lavado de cara” para solucionar algunos problemas y mejorar la experiencia de usuario. Desde su primera aparición, se ha convertido en una de las “distros” más apreciadas.

Es una distribución comunitaria. Su página web es https://linuxmint.com

Arch

arch

Las primeras distribuciones eran simples recopilaciones de software destinadas a usuarios con los suficientes conocimientos técnicos como para instalar y configurar su equipo. Con el paso de los años, la mayoría de las “distros” han evolucionado para convertirse en paquetes con una calidad similar a los sistemas comerciales, acercándose al usuario medio e incorporando toda clase de mecanismos automatizados para gestionar nuestro equipo e instalar nuevo software.

Pero muchos usuarios avanzados encuentran que se ha perdido cierta libertad en la configuración del sistema. Arch fue creada en 2002 como respuesta a esta inquietud. Su filosofía es presentar un entorno orientado a quienes les guste “trastear” y configurar el sistema a mano.

Página web: https://www.archlinux.org

Knoppix

arch

KNOPPIX es un sistema concebido para arrancar desde un CD, DVD o unidades flash USB. Su punto fuerte es la detección automática de hardware y el soporte para muchas tarjetas gráficas, tarjetas de sonido, dispositivos SCSI y USB y otros periféricos.

Es un derivado de Debian, y tiene una marcada vocación para ser utilizado como sistema de rescate cuando tenemos un disco duro deteriorado y necesitamos recuperar su contenido.

Página web: https://www.knopper.net/knoppix

Diferencias entre distribuciones

¿Que distribución escoger? La lista es muy extensa, y las mencionadas en el apartado anterior son solo una pequeña muestra. En líneas generales, el principal factor a tener en cuenta es la experiencia de usuario, ya que las aplicaciones que instalemos, tales como procesador de textos, visor de fotografía, videos, navegador de internet o gestor de correo suelen ser comunes a todas las distros.

En esta página podemos ver un análisis comparativo. Examinemos algunas diferencias:

  • La arquitectura.

    Todos los ordenadores llevan internamente un conjunto de chips, algo que se conoce como Unidad Central de Proceso, o CPU. Hoy en día, en el caso de ordenadores de escritorio, se encuentra muy extendido el uso de chips Intel de 64 bits, u otros modelos compatibles, a lo que se adaptan la mayoría de distribuciones Linux.

    Pero hay otros modelos de CPU. Si tenemos un ordenador Mac, como es mi caso, tendremos que buscar versiones de Linux para procesadores tipo ARM, lo que limita las opciones.

    Podemos consultar una lista de distribuciones según arquitectura en la Wikipedia.

    La arquitectura Apple


    El primer Mac, introducido en 1984, tenía una CPU basada en la serie de chips Motorola 68000. En 2005 se dió el salto a procesadores Intel, mejorando las posibilidades de compatibilidad con el software existente.

    A lo largo de la década de 2010, en Apple se fue desarrollando una cierta frustración por los pocos avances de Intel, por lo que en 2020 se inaguró una tercera generación de Macs, que incorporaba chips de fabricación propia, los Apple silicon.

    Los chips Apple, basados en arquitectura ARM, son incompatibles con el software desarrollado para Intel, por lo que al instalar Linux en una máquina virtual, como se explica en este cuaderno, tenemos que asegurarnos de que, tanto el software de virtualización, como la distribución Linux a instalar, sean versiones para la arquitectura ARM propia de Apple Silicon. Las versiones para chips de Intel (AMD/x86_64) no nos sirven.

  • El hardware contemplado.

    Las distribuciones suelen venir preparadas para detectar y configurar automáticamente el hardware de nuestro equipo, teclado, pantalla, tarjeta gráfica, etc. Si tenemos problemas con una distribución, porque no incluye los drivers necesarios, no reconoce una tarjeta de sonido demasiado novedosa, o no se ajusta a algún componente de nuestra máquina, podemos probar con otra “distro”.

  • La selección de software.

    Las distribuciones son recopilaciones de programas, y encontraremos varios alternativos para la misma tarea. Cada distribución puede apostar por unos u otros programas, aunque podemos instalar manualmente nuestros favoritos.

    Hay distribuciones que vienen configuradas con un propósito y dirigidas a cierto tipo de usuario, en función del software incluido. Algunas se dirigen a principiantes absolutos, y otras a usuarios avanzados. Las hay concebidas para llevar a cabo tareas específicas, apostando por una recopilación de programas de oficina, de edición de audio/video, o diseño gráfico, pongamos por caso. Hay distribuciones que se dirigen a quienes desean una amplia selección de juegos, y otras han sido concebidas para configurar un servidor web.

  • Las licencias de uso.

    Hay distribuciones que incluyen software con licencia comercial, aunque de libre uso. Otras, como es el caso de Debian, excluyen todo tipo de programas con licencia propietaria.

  • El programa de instalación y configuración del sistema operativo.

    Cada distribución tiene su propio programa instalador. Suele ser un asistente que nos va guiando durante el proceso de forma cómoda, aunque algunas distribuciones, como es el caso de Arch o Slackware, se basan en un entorno bastante austero y técnico.

    • Redhat, Fedora y derivados disponen de un programa instalador llamado Anaconda
    • Debian tiene su propio programa Debian Installer
    • Ubuntu y derivados tienen un instalador llamado Ubiquity.
    • SuSE y derivados utilizan el programa YaST, aunque en el momento de escribir esto, las nuevas versiones están apostando por un nuevo software de instalación.
  • El repositorio de software.

    Si queremos añadir nuevos programas, basta con acudir a un servidor proporcionado por la “distro”, donde encontraremos miles de paquetes. El proceso es cómodo; generalmente basta con seleccionar un paquete y pulsar sobre un botón para instalarlo.

    Los repositorios de RedHat, y Debian, están entre los más grandes. Otras distribuciones se benefician de estas colecciones, con añadidos propios. Es el caso de Ubuntu, quien basa sus repositorios en los de Debian, aunque mantiene en paralelo un repositorio propio llamado la tienda de Snaps.

    Una alternativa a los Snaps de Ubuntu es un repositorio llamado Flatpak, que es independiente de las distribuciones, y admitido por muchas de ellas.

    De todas formas, también podemos obtener programas descargándolos directamente de su página web, con lo que nos aseguraremos de obtener la versión más reciente.

  • El escritorio.

    Ya hemos visto que el kernel es la pieza clave del sistema operativo, pero tenemos que complementarlo con un programa de escritorio, y en este apartado encontraremos varias alternativas.

    Cada distribución apuesta por un escritorio u otro. En el capítulo siguiente veremos algunos de los programas de escritorio más relevantes.

Versiones LTS

Las distribuciones suelen publicarse en forma de sucesivos lanzamientos (releases), incorporando novedades, nuevos paquetes de software, actualización de los ya existentes, etcétera. Esto nos permitirá descargar cada cierto tiempo la última versión de la distribución, instalarla en nuestra computadora sustituyendo a la versión anterior, y ponernos al día.

Se suele incluir un programa que mantenga el sistema actualizado de forma permanente, ejecutándose en la sombra y descargando e instalando diariamente las actualizaciones, de forma manual o automática, según lo tengamos configurado. Las distribuciones suelen comprometerse a un período de mantenimiento, transcurrido el cual, dejan de proporcionar estas actualizaciones y esperan que sustituyamos nuestro sistema operativo por una versión más reciente.

Sin embargo, la incorporación de las últimas novedades no está exenta de riesgos. Los nuevos lanzamientos pueden incorporar software que todavía no ha pasado por un período de maduración, y quizás presente algunos fallos. Por este motivo, la política de muchas distribuciones suele ser proporcionar dos versiones del sistema operativo:

  • versión estándar, con las últimas novedades, y un compromiso de actualizaciones hasta que se lance la siguiente versión
  • versión LTS (long time support), con una selección de software no tan actual, pero sólida, contrastada, y con un período más largo de actualizaciones

Descargar e instalar una u otra versión es nuestra elección.

El escritorio de Linux

Al ser Linux una recopilación de software libre, con frecuencia tendremos varios programas alternativos para la misma tarea. Un claro ejemplo es el programa de escritorio.

Cada distribución hace su propia selección de programas, incluyendo su escritorio favorito. Los hay más populares que otros, no habiendo un ganador claro. De todas formas, muchas distribuciones nos permiten elegir entre uno u otro escritorio. Veamos cuales son los más populares

Los orígenes

Ya hemos visto que las primeras pantallas funcionaban en forma de consolas donde se mostraba texto, que se desplazaba hacia arriba a medida que el diálogo entre usuario y máquina se iba produciendo:

El concepto de escritorio gráfico fue inventado en 1970 por el fabricante de fotocopiadoras XEROX, quien fundó un centro de investigación llamado XEROX PARC, en Palo Alto, California, con la idea de desarrollar nuevas tecnologías e introducirse en el mercado de los ordenadores.

Aquellos primeros programas de escritorio se limitaban a imágenes de baja resolución, en blanco y negro, pero era un primer paso.

En 1979, un acuerdo de Xerox con Apple para intercambiar tecnologías inspiró el lanzamiento del popular Macintosh:

Microsoft copió la idea, y la década de los noventa fue testigo de la generalización de los escritorios gráficos, en buena parte gracias al lanzamiento de Windows 3.

Escritorios de Unix

Otra iniciativa de los años ochenta fue la del MIT (Instituto de Tecnología de Massachusetts) que desarrolló un sistema gráfico para UNIX, llamado “X Window System”. No era un escritorio, sino un software que permitía ejecutar varios programas a la vez en ventanas separadas:

Basándose en este estándar, surgieron varios programas de escritorio para Unix. Uno de los más populares fue CDE, abreviatura de Common Desktop Environment, creado en 1993 por un grupo de empresas formado por Hewlett-Packard, IBM, Novell y Sun Microsystems.

Escritorios para Linux

Las primeras versiones de Linux funcionaban solo con un shell de texto. En 1996, el programador alemán Matthias Ettrich se inspiró en el escritorio CDE para crear KDE, considerado en la actualidad como uno de los más potentes y completos. Incorpora multitud de herramientas complementarias, y tiene un comportamiento bastante similar a Windows.

KDE está desarrollado por una amplia comunidad de programadores, pero no está exento de polémica. En sus inicios, algunos de los componentes no eran software libre, cosa que se ha ido solucionando con el paso del tiempo.

Con el paso del tiempo, el proyecto KDE se ha dividido en varias ramas de desarrollo:

  • el escritorio ha pasado a llamarse Plasma
  • aplicaciones KDE que acompañan al escritorio, editor de textos, calculadora, etc.
  • Plasma Mobile, un escritorio para dispositivos móviles

Para hacer frente al problema de licencias de KDE, los mexicanos Miguel de Icaza y Federico Mena crearon en 1997​ el escritorio GNOME, como parte del proyecto GNU. El nombre es un acrónimo de “GNU Network Object Model Environment”.

En la actualidad GNOME parece ser el escritorio oficial de la mayoría de distribuciones.

Durante los primeros años del siglo actual, KDE y Gnome fueron los dos escritorios más populares. Pero el lanzamiento en 2011 de la versión 3 de GNOME produjo un gran aluvión de críticas por su usabilidad. Tenía como propósito proporcionar una experiencia parecida al comportamiento de las tablets, alejándose del concepto clásico de escritorio al que los usuarios estaban acostumbrados. Esto hizo que muchas personas prefirieran seguir usando GNOME 2, y que por otra parte surgiera un proyecto paralelo denominado MATE, derivado de GNOME 2 y orientado a proporcionar un escritorio con aspecto más tradicional.

MATE está concebido para usuarios que quieran un escritorio clásico con poco consumo de recursos, y sin tantos efectos especiales como pueden proporcionar las versiones actuales de GNOME.

Cuando GNOME 3 hizo su aparición, los responsables de Linux Mint descartaron incorporarlo a su distribución, y optaron por seguir con GNOME 2. Dado que este ya no iba a seguir evolucionando, incorporaron MATE y se involucraron en su desarrollo. Pero ante lo confuso de la situación, decidieron abordar en paralelo un proyecto de escritorio propio denominado Cinnamon. En la actualidad, Mint se distribuye con ambas alternativas, MATE y Cinnamon, siendo esta última la versión oficial.

Otra de las consecuencias de la polémica surgida en torno a GNOME 3 fue el anuncio por parte de Ubuntu de lanzar su propio escritorio denominado Unity.

Unity también se alejaba del concepto clásico de escritorio, estando concebido para todo tipo de dispositivos, ordenadores, tablets, TV, etcétera. Pero tampoco ha estado exento de polémica. Desde su lanzamiento, se vió que los requerimientos de hardware eran elevados, y que su rendimiento en ordenadores de gama baja era limitado, resultando muy lento en su funcionamiento. Con el tiempo se han ido resolviendo estos problemas, pero Unity no ha llegado a convertirse en una alternativa al resto de escritorios. En 2017, los responsables de Ubuntu anunciaron su apuesta por las versiones recientes de GNOME, dejando relegado a Unity.

Como alternativa a la guerra de escritorios y sus prestaciones gráficas, si buscamos un escritorio sencillo, vistoso y que consuma pocos recursos, probablemente la versión más popular sea Xfce, presente en muchas distribuciones como alternativa a otros escritorios más potentes. Xfce es una buena opción si tenemos un ordenador antiguo o si estamos trabajando con una máquina virtual y tenemos problemas de rendimiento.

Otra alternativa de escritorio ligero es lxde. De lxde se deriva el proyecto LxQt. Existen otros proyectos minoritarios, como es el caso de Budgie o Pantheon.

Seleccionar un escritorio

Hay distribuciones que se publican con un escritorio predeterminado, y otras que nos dan la opción de elegir entre uno u otro. ¿Cual elegir? Un resumen de pros y contras:

  • Xfce: si nuestro equipo es de recursos reducidos en cuanto a memoria RAM o capacidad de la CPU, la elección es clara; debemos decidirnos por un escritorio sencillo y sin grandes alardes gráficos, como Xfce.

    Inconvenientes: tiene un aspecto y funcionamiento algo anticuado.

  • KDE Plasma:

    • es el escritorio más completo y potente, con muchas funcionalidades
    • tiene un aspecto tradicional, parecido a Windows.

    Inconvenientes:

    • es algo complicado de utilizar, dada la cantidad de opciones que tiene
    • debido a su complejidad, las nuevas versiones pueden ser propensas a pequeños fallos en el caso de máquinas virtuales.
  • Cinnamon: tiene un aspecto tradicional, es amigable, fácil de usar e instalar.

    Inconvenientes:

    • es desarrollado por Linux Mint, una comunidad algo reducida
    • no todas las distribuciones lo incluyen
    • no hay versión para la arquitectura ARM de los Mac
  • Gnome:

    • es el escritorio oficial del proyecto GNU, y de alguna forma, es la referencia
    • muchas distribuciones optan por Gnome como escritorio por defecto, aunque admiten otras posibilidades
    • tiene un aspecto visual simple y agradable
    • es un escritorio minimalista y sencillo de usar

    Inconvenientes:

    • se sale del concepto de escritorio tradicional, con un aspecto más parecido al de las tablets. Para un usuario habituado a Windows, costará un poco adaptarse.

    • es tan minimalista que carece de muchas funcionalidades presentes en otros escritorios. Por poner algunos ejemplos, en el momento de escribir esto, no cuenta con un menú desplegable de aplicaciones. En su lugar, tenemos una rejilla de iconos en el escritorio, al estilo de los teléfonos móviles. Tampoco permite arrastrar iconos sobre el escritorio, pongamos por caso.

  • Gnome con extensiones

    Podemos solucionar las carencias de Gnome instalado alguna de las extensiones disponibles.

    Inconvenientes:

    • Muchas de esas extensiones son contribuciones de terceras personas, pudiendo coincidir en su propósito y competir entre sí. Esto nos obliga a probarlas para ver cual es la que más nos conviene.

    • Algunas extensiones pueden estar desactualizadas, no adaptándose a la versión más reciente del escritorio que tenemos instalado.

  • Versión Gnome de Ubuntu: Ubuntu proporciona un escritorio Gnome mejorado, con extensiones seleccionadas, configuradas y listas para su uso.

Obtener Linux

Una vez aclarado lo que es Linux y las diferentes alternativas, llega el momento de:

  1. optar por una distribución
  2. escoger un programa de escritorio
  3. acudir a la página web de la distribución y descargar el paquete de software
  4. instalarlo en nuestra computadora:
    • en la máquina física, sustituyendo al sistema operativo original
    • o bien, en una máquina virtual

Algunas distribuciones, como es el caso de OpenSuSE proporcionan la descarga de un paquete con varios escritorios. La elección de uno u otro se hace durante el proceso de instalación, una vez hecha la descarga.

Otras distribuciones proporcionan varias versiones alternativas a descargar, de forma que cada una de ellas incluye un escritorio en particular. La elección debe hacerse antes de la descarga.

Seleccionando una distribución

¿Que distribución escoger? Las alternativas son muchas. Podemos visitar la página web Distrowatch, que publica rankings y comparativas, y tener una visión de por donde van los tiros. Pero fijémonos que la lista de distribuciones es interminable. Si dedicáramos una semana a instalar y experimentar cada distribución, ¡tardaríamos más de 10 años en probarlas todas!

Para un usuario que viene del mundo Windows, o acostumbrado al sistema operativo de Apple, donde no hay que tomar estas decisiones, el proceso puede resultar un poco apabullante. Pero no debemos perder de vista algo muy importante. Linux es un sistema operativo libre de restricciones de licencias, que podemos instalar y desinstalar a nuestro gusto. Si no nos va bien con una distribución, podemos cambiarnos a otra libremente.

En resumen, la elección depende de nuestro perfil de usuario:

  • Lo primero es distinguir entre distribuciones concebidas para montar un servidor web, y las orientadas a ser usadas como ordenador de sobremesa. Estas son las versiones desktop.

  • Para quienes están huyendo de Windows y quieren algo parecido, sin grandes complicaciones, una de las elecciones más acertadas y populares es Linux Mint, con escritorio Cinnamon.

    Inconvenientes:

    • Lo mantiene una comunidad algo reducida.

    • Priorizan la estabilidad y buen funcionamiento contrastado, descartando a veces las versiones más recientes de cada paquete de software.

    • No hay versión para la arquitectura de procesadores arm, propia de los Mac. Solo se distribuye para chips compatibles con Intel. Mala suerte.

      Los chips de Apple

      ¿Cuales son las distribuciones que sirven para un Mac? Podemos hacer una búsqueda en Distrowatch y filtrar por arquitectura. Seleccionar arm64.

  • Para quienes buscan un sistema operativo con el respaldo de una empresa por detrás y una experiencia sólida, Ubuntu puede ser una buena opción. Pero es una elección no exenta de polémica. Ubuntu es algo consumidora de recursos, y su tienda de software (Snaps) no está muy bien vista por la comunidad Linux.

  • Para quienes quieren experimentar un poco y descubrir lo que hay detrás de Linux, yo elegiría Fedora. Un “hacker” apostará por Arch o similares.

En este cuaderno voy a instalar Linux Ubuntu con escritorio Gnome mejorado. Añadiremos algunas extensiones, para mejorar sus funcionalidades.

Páginas de descarga

Sea cual sea nuestra elección, veamos algunas páginas de descarga:

El proceso de instalación

Una vez descargado el paquete de software, podemos instalarlo de dos formas:

  • en nuestro disco duro físico, sustituyendo el sistema operativo original

  • o bien, creando una máquina y disco duro virtual, instalándolo allí y respetando lo que nuestra computadora trae de fábrica.

En el primer caso, tendremos que dar los siguientes pasos:

  1. Conseguir un pendrive USB

  2. Al acudir a la página web de nuestra distribución favorita hemos descargado un archivo de “imagen de disco” en formato ISO. Contiene una descripción binaria de lo que queremos poner en el pendrive.

  3. Usaremos algún programa especial (ver más adelante, en este capítulo) que prepare el pendrive volcando la información del archivo ISO. ¡Ojo! No se trata de copiar el fichero descargado al pendrive, sino de usar su contenido para formatear el dispositivo.

  4. Una vez preparado, conectar el pendrive y reiniciar el ordenador. La computadora arrancará con el sistema operativo que hay en el pendrive, ignorando el disco duro. A esto se le llama una sesión “Live”.

  5. Con la sesión Live en marcha, veremos el escritorio de este sistema operativo portátil. En algún lugar de dicho escritorio suele haber un programa de instalación que tenemos que ejecutar.

    Algunas distribuciones ponen en marcha este programa automáticamente, y otras nos obligan a hacerlo a mano, permitiendo que exploremos un poco el funcionamiento de Linux antes de instalarlo.

    Tras iniciar el programa de instalación, este reformateará el disco duro de nuestra máquina y copiará el software del pendrive al disco.

  6. Una vez completada la instalación, apagamos la computadora, extraemos el pendrive y reiniciamos el aparato. ¡Ya tenemos un nuevo sistema operativo!

¡Cuidado! Antes de realizar el proceso tenemos que hacer una copia de seguridad de todos los documentos que tenemos en el disco duro a formatear, ya que vamos a borrarlo completamente para instalar Linux.

Como en este cuaderno vamos a optar por la segunda opción, crear una máquina virtual, el proceso cambia en un par de aspectos:

  • podemos usar el archivo ISO descargado como pendrive virtual. No hace falta preparar un pendrive físico ni necesitamos de un programa que haga esa tarea.

  • lo que borraremos y reformatearemos no es el disco duro físico de la computadora, sino el disco duro virtual, un enorme fichero que el software de máquina virtual utiliza para este propósito.

En el siguiente capítulo de este cuaderno veremos como crear una máquina y disco duro virtual.

Archivos ISO vs Raw


Una imagen de disco es un archivo que describe, bit a bit, el contenido de un dispositivo de almacenamiento. El resultado es un fichero bastante voluminoso, por lo que generalmente se utilizan archivos comprimidos en diferentes formatos.

El formato ISO es una imagen comprimida. Es un formato muy utilizado en la descarga de distribuciones Linux. Alternativamente, podemos encontrar versiones en formato Raw, que son ficheros sin comprimir. Para preparar un pendrive, necesitaremos un software que admita diferentes formatos.

El uso de archivos ISO como pendrive virtual está muy aceptado por los programas de gestión de máquinas virtuales. El formato raw es menos frecuente de ver.

¿Pendrive o DVD?


Antes de la popularización de los pendrives, o memorias flash, se usaban discos extraíbles. Primero fueron los diskettes, luego los CD y finalmente los DVD. Actualmente, todos estos medios están en desuso, pero en muchos procesos de instalación veremos el término DVD para hacer referencia al dispositivo extraíble, aunque en realidad sea un pendrive.

Como preparar el medio de instalación

Si optamos por instalar Linux en la máquina física, descartando nuestro viejo sistema operativo, tenemos que preparar el pendrive de arranque (bootable USB stick) a partir del archivo ISO descargado. Para hacer este volcado de bits, necesitaremos de algún programa especial.

Dependiendo del sistema operativo de la máquina con la que hagamos la descarga, hay diferentes programas que hacen esta labor. Algunas distribuciones cuentan con un manual que explica como llevar a cabo esta tarea. Por ejemplo:

Descargando Ubuntu

La página de descargas es https://ubuntu.com/download/desktop

Podemos seleccionar la versión LTS (con soporte a largo plazo) o la más reciente, a nuestra elección. Tratándose de un Mac, necesitamos la versión para procesadores ARM-64 bits.

Los números de versión de Ubuntu reflejan el año y mes de lanzamiento, generalmente semestral, abril y octubre. Lo que obtenemos es un archivo .iso de imagen de disco con un nombre que puede ser algo así como:

ubuntu-26.04-desktop-arm64.iso

Lo que indica:

  • nombre de la distribución: Ubuntu
  • número de versión: 26.04 (abril de 2026)
  • versión desktop para ordenadores de escritorio. La versión server sería para instalar en un servidor
  • arquitectura: arm64 (la de los Mac)
  • formato del archivo: .iso

El siguiente paso es montar una máquina virtual y usar este archivo como pendrive virtual para instalar Linux en esa máquina.

Creando una máquina virtual

Una vez descargado el archivo ISO desde la página web de nuestra distribución favorita, vamos a utilizarlo para instalar Linux. Si lo hacemos en la máquina física, sustituyendo al antiguo sistema operativo, podemos saltarnos este capítulo y preparar el pendrive de instalación, como ya se ha explicado.

Aquí veremos como crear una máquina virtual en un Mac. La descripción es válida para ordenadores Windows, ya que el procedimiento es similar.

Máquinas virtuales

Dicho de una forma gráfica, y sin entrar en tecnicismos, una máquina virtual es un programa especial capaz de simular el funcionamiento de un ordenador ficticio, que podemos mostrar en una ventana del escritorio de nuestra computadora. Incluso podemos maximizar esa ventana para que ocupe toda la pantalla, de forma que el escritorio virtual “tape” al físico.

En la siguiente imagen tenemos una máquina virtual Linux sobre el escritorio de mi ordenador Mac:

En la imagen vemos:

  • Al fondo, el escritorio de la máquina física, un Mac
  • En una ventana, el escritorio de una máquina virtual con fondo rojizo.
  • En el escritorio de la máquina virtual tenemos un par de programas ejecutándose, el navegador web accediendo a la Wikipedia y una calculadora.

En la máquina física crearemos un gran archivo que representa el disco de la máquina virtual. Ahí se “empaquetarán” todos sus archivos y carpetas, como haríamos, por ejemplo, cuando creamos un archivo zip. De esta forma aislaremos los contenidos de la máquina virtual. A esto le llamaremos disco duro virtual. Cuando estemos trabajando con la máquina virtual, acudirá a este archivo especial y accederá a sus carpetas como lo haría con cualquier otro disco.

Dependiendo del software de virtualización, es posible arrastrar y soltar objetos de un escritorio a otro. También podremos compartir el portapapeles, copiando y pegando objetos de un ordenador a otro, el físico y el virtual

Aunque en principio la máquina virtual solo tiene acceso al disco duro virtual, podremos permitir que acceda a determinadas carpetas del disco físico, considerándolas como dispositivos externos, al igual que sucedería cuando insertamos un dispositivo USB.

A la máquina física se le llama Host, y a la virtual, Guest. Podemos tener varias máquinas virtuales Linux, Windows, Mac o cualquier otro sistema operativo contemplado por nuestro software de virtualización.

Ventajas de las máquinas virtuales

¿Tenemos un ordenador Mac y necesitamos ejecutar un programa para Windows? Lo podemos lograr creando una máquina virtual Windows, siempre que obtengamos un DVD de instalación descargándolo de la página web de Microsoft.

¿Queremos navegar por Internet sin miedo a los virus? Podemos crear una máquina virtual que solo tenga acceso al disco duro virtual. Periódicamente borramos ese disco duro, desechando su contenido, y creamos uno nuevo.

¿Queremos probar un sistema operativo diferente del instalado en nuestra máquina física? Hacerlo en una máquina virtual, sin miedo a desconfigurar nuestra computadora.

¿Queremos probar software nuevo sin instalarlo en la máquina física ni llenarla de programas que con el tiempo quedarán olvidados? Instalarlos en la máquina virtual.

Desventajas de las máquinas virtuales

No todo son ventajas en el uso de la virtualización; hay una desventaja importante que no debemos pasar por alto. Si los sistemas operativos son diferentes, tenemos que tener en cuenta que una máquina física Windows o Mac no es capaz de ejecutar programas Linux, pongamos por caso. El software que simula la máquina virtual debe hacer una traducción al vuelo de las instrucciones del programa durante su ejecución. El esfuerzo a realizar por la CPU física se multiplica y el sistema se ralentiza.

Por otra parte, cuando iniciamos la máquina virtual, esta reserva para su propio uso la parte de memoria RAM que le asignemos en su configuración, restándola de la RAM asignada a la máquina física. Si nuestro ordenador tiene poca memoria, tendremos que instalar en la máquina virtual un sistema operativo con poco consumo de recursos. Podemos comparar distintas distribuciones de Linux para ver cual es la “más ligera”.

Todo lo mencionado puede provocar una cierta disminución del rendimiento de la máquina virtual, sobre todo en el caso de algunos programas multimedia. De todas formas, esta posible ralentización resultará inapreciable si tenemos un ordenador de potencia media-alta.

Otra de las “pegas” con las que me he encontrado en mi experiencia personal se refiere a la posibilidad de permitir el acceso desde la máquina virtual a carpetas de la máquina física. Si desde la máquina virtual borramos algún archivo de una de esas carpetas, no hay una papelera de reciclaje compartida, por lo que la máquina virtual borra definitivamente el archivo. La máquina virtual solo tiene papelera de reciclaje para sus propios archivos, alojados en el disco duro virtual. En el caso de carpetas compartidas, el borrado de archivos conviene hacerlo desde el escritorio de la máquina física, para que vayan a su papelera.

Programas de virtualización

Para tener máquinas virtuales necesitaremos un programa especial para simularlas y administrarlas:

  • Si nuestro sistema operativo host es Windows, debemos saber que algunas versiones incluyen de serie un programa llamado Hyper V , que sirve para este propósito.

  • Microsoft también proporciona un entorno llamado WSL (Subsistema de Windows para Linux), que permite ejecutar programas Linux en una máquina funcionando con Windows. Véase documentación de Microsoft.

    WSL2 incluso permite integrar aplicaciones gráficas en el escritorio de Windows, ver guía. Pero no se trata de una máquina virtual aislada, sino de ejecutar programas Linux en la sesión de Windows. Ubuntu cuenta con una guía de integración en WSL.

    Ejecutar windows en máquinas Linux


    En el ecosistema Linux, encontraremos software que permite hacer la operación inversa, ejecutar programas Windows en máquinas Linux. El programa equivalente a WSL es Wine.

  • Si lo que tenemos es un Mac, como es mi caso, Apple distribuye un programa de pago para crear máquinas virtuales, llamado Parallels.

  • Si lo que buscamos son soluciones válidas para cualquier sistema operativo Host, una de las más populares es VirtualBox, suministrada por Oracle para su libre descarga y uso de forma gratuita.

  • Otra alternativa similar es VMWare. Es un producto comercial que tiene versiones gratuitas si el uso que le vamos a dar es personal. La versión para ordenadores host Macinstosh es VMWare Fusion , y la versión para host Windows y Linux se llama Workstation Player.

  • QEMU es otra posibilidad, pero está más dirigido a usuarios con perfil técnico. Las máquinas virtuales se gestionan mediante comandos, aunque existen programas complementarios que permiten ampliar las funcionalidades.

  • Xen es otro proyecto de software libre para desarrollar servicios de virtualización de escritorio, servidores, etc. Sirve de base al desarrollo de productos comerciales de varias empresas tecnológicas.

Yo he ensayado con VirtualBox y VMWare. El primero parece ser bastante popular, pero mi experiencia personal me ha demostrado un mejor rendimiento usando el segundo, resultando inapreciable la posible ralentización de la máquina.

Lo que he visto es que ambos productos tienen algunas lagunas en su versión para Apple. En el momento de escribir esto, suelo apostar por VMware, aunque es una opción personal. En líneas generales, va bastante bien, pero he detectado algunos fallos de sonido en el caso de las versiones de Linux más recientes. De todas formas, he encontrado una posible solución al problema. La describo más adelante, en el apartado dedicado a la configuración del sistema.

En este cuaderno trato de plasmar las notas recogidas a partir de mi experiencia particular. Como mi ordenador es un Mac, usaré VMWare Fusion. Si la máquina física fuera Windows, el funcionamiento de VMWare Workstation Player debería ser bastante parecido a lo aquí descrito.

Instalando VMWare Fusion

A finales de 2023, VMware fue adquirida por una empresa llamada Broadcom. Para descargar el producto de forma gratuita necesitamos registrarnos y crear una cuenta de usuario. El formulario de alta está en este enlace. Tras completar nuestros datos, recibiremos un email de verificación a nuestro correo.

La página de descargas de Broadcom está aquí. Seleccionamos “VMware Fusion“ y marcamos la casilla “I agree to Terms and Conditions” para descargarlo.

El archivo es una imagen de disco .dmg, típica de los Mac. Lo abrimos haciendo doble clic sobre el mismo y seguimos los pasos del proceso de instalación.

Iniciar VMWare

VMWare se ejecuta en múltiples ventanas, tantas como máquinas virtuales tengamos en ejecución. Hay una ventana adicional llamada “Biblioteca de máquinas virtuales” que muestra una lista de máquinas instaladas en nuestro equipo, y una imagen de la que tengamos seleccionada, en su estado actual. Si dicha máquina está apagada, veremos la imagen en negro.

En la siguiente imagen, tengo varias máquinas virtuales instaladas en mi ordenador:

Nota:


Aquí vemos una de las ventaja de la virtualización. Podemos usarla para probar otros sistemas operativos o una versión antigua de nuestro sistema, si tenemos necesidad de ello (y si contamos con el disco de instalación, naturalmente).

¡Cuidado!


Algunas de las máquinas virtuales que se muestran en la imagen son versiones para procesadores Intel. En realidad, es una instalación que yo hice en un Mac antiguo.

¡Cuidado!


Podría ser bastante tentador abrir varias máquinas virtuales simultáneamente, mostrándose cada una en la correspondiente ventana del escritorio físico. Pero no debemos olvidar que cada máquina, las virtuales y la física, consumen su parte de memoria RAM. Si la memoria de nuestro ordenador no tiene muchos gigas, el rendimiento se verá seriamente afectado.

Cada vez que iniciamos VMWare, dependiendo de como lo tengamos configurado, lo primero que veremos será la biblioteca de máquinas virtuales o la máquina virtual que tengamos configurada por defecto, si es el caso.

Si la ventana de “Biblioteca” está oculta, desde el menú de cualquier ventana de VMWare podemos visualizarla pulsando en la opción Ventana > Biblioteca de máquinas virtuales.

Configurar VMWare

Antes de crear máquinas virtuales, vamos a configurar el funcionamiento de VMWare. El menú Preferencias cuenta con opciones que afectan al comportamiento general de todas las máquinas virtuales:

Si tenemos problemas de visualización, conviene revisar el apartado Pantalla:

La resolución del escritorio virtual se ajustará al tamaño de la ventana, pero a veces esto no se comporta como a nosotros nos gustaría. Podemos configurar por separado el comportamiento en dos situaciones distintas, cuando el escritorio virtual se muestra en una ventana de la máquina física, o cuando ocupa toda la pantalla. En cada caso, tenemos dos opciones:

  • Que la imagen mostrada en la ventana se agrande o empequeñezca si modificamos el tamaño de la ventana

  • Que la resolución de la máquina virtual se modifique automáticamente cambiando su configuración. Para ello, tenemos que instalar en la máquina virtual un programa llamado VMware Tools (algunas distribuciones Linux lo traen de serie), que se ejecuta al arrancar la máquina virtual y está permanentemente en alerta para detectar cambios.

¿Que opción usar? Yo he tenido diferentes experiencias dependiendo del sistema operativo instalado, así que lo mejor es probar con ambas y escoger aquella con la que obtengamos mejores resultados. Personalmente me gusta más la primera opción, evitando volver loca a la máquina virtual y manteniendo su configuración sin estar cambiándola continuamente.

Crear una nueva máquina virtual

Tras configurar WMware, vamos a instalar nuestra primera máquina virtual. El primer paso es descargar el sistema operativo, como ya hemos visto. En este cuaderno será Linux Ubuntu en versión para arquitecturas ARM (los chips de Apple). Podemos descargar el archivo ISO desde:

https://ubuntu.com/download/desktop.

Iniciamos VMWare y pulsamos en el menú Archivo > Nuevo. Alternativamente, lo iniciamos desde la ventana de Biblioteca de máquinas virtuales, pulsando en el icono Nuevo en la barra de título de la ventana.

Al iniciarse el proceso, se mostrará la siguiente ventana:

Pulsamos en Crear máquina personalizada. Seleccionamos el sistema operativo, Ubuntu para arquitecturas ARM de 64 bits (los chips de Apple):

El siguiente paso es crear el archivo que va a servir de disco duro virtual. En principio se reserva un número de gigas sugerido por VMware, que podremos configurar más adelante.

Para terminar, si pulsamos en “Personalizar configuración”, podemos asignar un nombre y carpeta al disco duro virtual:

Pulsamos en el botón Finalizar. En el directorio seleccionado se creará un archivo que empaqueta las especificaciones de la máquina virtual, discos virtuales, estado de la máquina, etc.

Configurar la máquina virtual

Además de la configuración general de VMWare, cada máquina virtual tiene la suya propia. Antes de instalar el sistema operativo, abrimos la biblioteca de máquinas virtuales (menú de VMware, Opción “Ventana > Biblioteca de máquinas virtuales”), seleccionamos la máquina recién creada, y pulsamos en el menú Máquina Virtual > Configuración. Se muestra la siguiente ventana con las opciones de configuración:

¡Cuidado!


No confundir estas dos opciones del menú de VMware:

  • VMware > Ajustes. Afecta a todas las máquinas virtuales
  • Máquina Virtual > Configuración. Afecta a la máquina seleccionada

Veamos algunas opciones al configurar una máquina virtual:

  • En el apartado CD/DVD, marcar “Conectar DVD” y seleccionar el archivo que hemos descargado de la página de Ubuntu. Será considerado como pendrive virtual.

    Para volver a visualizar todas las opciones de configuración, pulsar en el botón Mostrar todo en la barra superior de la ventana.

  • En el apartado General podemos cambiar el nombre de la máquina y tipo de sistema operativo. También podemos configurar esta máquina virtual como aquella que se pone en marcha por defecto al arrancar VMWare. De todas formas, hasta que no esté instalada, conviene demorar esto.

  • En el apartado Compartir tenemos la lista de carpetas de la máquina física a las que tendremos acceso desde la virtual. Podemos pulsar en los iconos [+] y [-] para añadir o quitar carpetas de la lista.

  • El apartado Procesador y Memoria permite asignar más memoria RAM a la máquina virtual, que se restará de la utilizada por la máquina física. El rendimiento de cada máquina se verá afectado por la cantidad de memoria asignada. Consultar los requerimientos mínimos del sistema operativo descargado. Ubuntu los muestra en la página de descargas:

    System requirements:

    • 2 GHz dual-core processor or better
    • 6 GB system memory
    • 25 GB of free hard drive space
    • Either a USB port or a DVD drive for the installer media
    • Internet access is helpful
  • En el apartado adaptador de red, comprobar que la máquina virtual reconoce la conexión a Internet de la máquina física.

  • El apartado del disco duro permite asignar más gigas al disco virtual.

  • En el apartado pantalla podemos activar los gráficos 3D y establecer la cantidad de memoria asignada a la pantalla.

  • En el apartado disco de arranque podemos indicar el dispositivo al que acude la máquina virtual para cargar el sistema operativo. Típicamente suele ser el disco duro, pero durante la instalación necesitamos que vaya al DVD virtual.

  • En el apartado aislamiento comprobar que tenemos activado el uso de copiar y pegar portapapeles de una máquina a la otra.

Conexión a Internet en máquinas virtuales

Tratándose de una máquina virtual, la conexión a Internet, redes wifi, etc, queda resuelta en la máquina física. Todo lo que tenemos que hacer es asegurarnos de que hay una conexión activa en la máquina Host.

Supongamos, por ejemplo, que queremos buscar una red wifi. Lo haremos en la máquina física y la virtual se beneficiará de ello. En principio, todo se resuelve automáticamente.

Pero si tenemos problemas, VMWare puede proporcionar otras alternativas, que podemos ajustar en la configuración de la máquina virtual, apartado adaptador de red.

¡Cuidado! Si la máquina virtual se beneficia de la conexión wifi de la máquina física, la identificará como “conexión por cable”. No debemos hacer mucho caso a este detalle.

Espacio en el disco duro

En la máquina física se creará un enorme archivo como disco virtual, donde encerraremos toda la estructura de carpetas de la máquina virtual, pero también tenemos la opción de compartir determinadas carpetas de la máquina física, que en la máquina virtual se verán como si fueran dispositivos externos.

Para guardar documentos podemos utilizar una o varias carpetas compartidas, de forma que si desinstalamos la máquina virtual y todo su software, no perdamos esos archivos. Por este motivo, al configurar el disco virtual, no es necesario dedicarle un tamaño excesivo. Basta con lo necesario para instalar el software de la máquina virtual.

Iniciar la máquina virtual

El primer paso es asegurarnos de que el pendrive virtual de instalación de Ubuntu está siendo detectado por la máquina virtual. Para ello accedemos a la configuración, apartado CD/DVD, y nos aseguramos de ello, como vimos en el apartado anterior.

Al iniciar la máquina virtual se intentará cargar el sistema operativo a partir del disco duro virtual. Pâra el proceso de instalación tenemos que cambiar esto y asegurarnos de que el disco de arranque es el pendrive virtual. Acudimos a la configuración de la máquina virtual, apartado Disco de Arranque, y seleccionamos el DVD.

Ahora ya podemos poner en marcha la máquina virtual. Acudimos a la ventana de biblioteca de máquinas virtuales, seleccionamos la que hemos creado y pulsamos en el menú de VMWare “Máquina Virtual > Arrancar”. El sistema acude al DVD virtual, busca el programa de arranque, y lo ejecuta. Lo que se visualiza es lo siguiente (para un sistema Linux Ubuntu):

Con esto tenemos la máquina virtual configurada y el sistema operativo Linux preparado para instalarse. Podemos pulsar en el menú de VMWare Máquina Virtual > Apagar, si no vamos a hacer ahora la instalación. En el capítulo siguiente completaremos el proceso.

Probar e instalar Linux

Según lo visto, podemos instalar Linux en la máquina física, borrando el disco duro físico y sustituyendo el viejo sistema operativo, o en la máquina virtual que hemos creado en el capítulo anterior.

  • en el primer caso, arrancaremos el ordenador con el pendrive conectado
  • en el segundo, iniciaremos la máquina virtual, estableciendo el archivo ISO descargado como DVD virtual, sin necesidad de preparar un pendrive físico. Comprobar que está configurado como disco de arranque.

Pantalla inicial

Cuando ponemos en marcha un ordenador, ya sea físico o virtual, se busca automáticamente en el disco duro (o prioritariamente en el pendrive, si tenemos uno conectado) un programa que se conoce como “gestor de arranque”. En muchos sistemas operativos es un software que no muestra nada en pantalla y se ejecuta silenciosamente. Carga en la memoria RAM el sistema operativo, un proceso que dura unos segundos, y lo pone en marcha. Durante este procedo, veremos la pantalla en negro.

En el caso de Ubuntu, el programa cargador es uno llamado GRUB. Tratándose del DVD de instalación, GRUB viene configurado para mostrar un menú de arranque:

Cuando hayamos instalado el sistema operativo, el arranque se hará desde el disco duro virtual, y este menú dejará de visualizarse. Esto es importante, ya que, si vemos el menú de GRUB en pantalla, significa que estamos arrancando la máquina desde el pendrive de instalación (físico o virtual) y no desde el disco duro. Si no es lo que pretendemos, habrá que apagar la máquina virtual, reconfigurarla (apartado disco de arranque, seleccionar disco duro) y volver a iniciarla.

Como todavía no hemos iniciado Linux ni su escritorio, el menú de GRUB resulta bastante primitivo. Se ejecuta en forma de consola de texto, sin elementos gráficos, y aquí no funciona el ratón. Hay que usar las teclas de flechas para seleccionar una opción y, a continuación, pulsar enter para ejecutarla.

Ratón bloqueado


En el caso de las máquinas virtuales, cuando la ventana de VMWare es la que tiene el foco, se apropia del teclado y ratón, como sucede con todas las ventanas. Pero como en este menú de inicio no funciona el ratón, no podemos arrastrarlo fuera de la ventana, quedando el puntero atrapado y oculto.

Para liberarlo, VMWare tiene una combinación de teclas especial. En mi caso, siendo la máquina física un Mac, se trata de las teclas ctrl+cmd. Podemos consultarlo en la configuración general de VMWare, apartado “teclado y ratón”.

En este menú de arranque, seleccionamos la primera opción, “Try or Install Ubuntu” y pulsamos enter Se carga el sistema operativo desde el pendrive virtual:

Tras un cierto período de tiempo, se completa la carga y se muestra el escritorio de Gnome. Se ejecuta automáticamente el programa para instalar Ubuntu en el disco duro. Lo primero que vemos es una ventana para seleccionar el idioma:

Vamos pulsando en el botón Siguiente], paso a paso, y aceptamos las configuraciones por defecto. En lo referido a Internet, se nos sugiere como “conexión por cable”. Lo damos por bueno, ya que en realidad se trata de la conexión simulada por la máquina virtual, que se beneficia de lo que tengamos en la máquina física, wifi, cable, o lo que sea.

En uno de los pasos se nos da la opción de seguir con la instalación de Ubuntu en el disco duro virtual o explorar el sistema un poco antes de instalar nada. Vamos a optar por esta segunda opción, “probar Ubuntu”:

Por ahora tenemos un disco virtual vacío, y un sistema operativo cargado desde el pendrive virtual. A esto se le llama una sesión “Live”.

El aspecto de Ubuntu


Curiosamente, hay algo que siempre ha provocado cierta controversia; el esquema de colores tan chillón que tiene Ubuntu. Esos temas rojizos provocan una mezcla de amor y odio…

Pero como veremos más adelante, si no nos gusta, podemos configurarlo. Paciencia.

Los logotipos de Ubuntu


El logotipo principal de Ubuntu es conocido Circle of Friends (círculo de amigos). Los puntos son cabezas y las líneas curvas son los brazos y manos.

Cada nueva versión de Ubuntu lleva el nombre de un animal, cuyo diseño aparece en la documentación, fondo de escritorio y otros elementos gráficos.


Visualización de máquinas virtuales

VMware permite mostrar el escritorio virtual en una ventana, u ocupando la pantalla completa. Para cambiar de formato, pulsar sobre el menú “Vista” de VMware y seleccionar “single window” o “full screen”.

Cuando la máquina virtual ocupa toda la pantalla, dejaremos de ver el menú de VMWare. No hay problema. Basta con acercar el ratón al borde superior de la pantalla, y aparecerá el menú y la barra de título de la ventana:

La barra de título de la ventana VMware muestra el nombre de la máquina virtual y unos prácticos botones de control para gobernarla:

Al cambiar de “single window” a “full screen”, es posible que la resolución de la máquina virtual se reconfigure automáticamente. Si tenemos problemas con esto, tenemos dos opciones:

  • Acudir a la configuración de VMware, según vimos en el capítulo dedicado a la creación de máquinas virtuales, y hacer ajustes en el apartado Pantalla. La opción “ajustar máquina virtual a la pantalla” significa que los contenidos se verán más grandes o más pequeños, pero sin modificar la resolución de la máquina virtual. La opción “cambiar tamaño”, por el contrario, modifica la resolución en la máquina virtual cada vez que se modifica el tamaño de la ventana o pasamos a pantalla completa.

  • Alternativamente, en lugar de reconfigurar VMware podemos ajustar las preferencias de Ubuntu, cambiando a mano la resolución del escritorio. Acudir a la configuración de Gnome siguiendo el procedimiento que se describe al final de este capítulo, y en el apartado “Monitores”, seleccionar otra resolución y activarla pulsando en el botón Apply

Explorando Gnome

El escritorio de Ubuntu es una versión “tuneada” de Gnome. Añade una barra lateral (el Dock) con iconos de las aplicaciones favoritas. En la esquina inferior izquierda tenemos un icono con el logo de Ubuntu o con la imagen de una rejilla, dependiendo del juego de iconos que tengamos seleccionado (una vez instalado el sistema operativo, podemos cambiarlo):

Pulsando ahí, se despliega una lista de aplicaciones (la “parrilla”, o grid), con una caja de búsqueda del texto tecleado:

Si hay más iconos que espacio disponible, se agrupan en páginas. En la parte inferior de la parrilla tenemos unos puntos que se pueden pulsar para seleccionar la página siguiente o la anterior. También podemos pasar de página pulsando en los iconos < > en los márgenes izquierdo o derecho.

La parrilla de aplicaciones


¡Cuidado! No todos los programas instalados aparecen en la parrilla. Por ejemplo, si marcamos uno como favorito, se mostrará en el Dock y se retirará de la parrilla. De todas formas, la caja de búsquedas por texto muestra en sus resultados todas las aplicaciones encontradas.

En la barra superior del escritorio, en la esquina de la derecha, tenemos unos iconos de estado. Pulsando ahí, se despliega un menú de sistema que nos da acceso a dos iconos interesantes:

  • El de la rueda dentada nos da acceso a la configuración de Ubuntu
  • El icono de apagar nos permite finalizar la sesión

Dependiendo de la configuración de la máquina (en mi caso, una virtual), podemos ver más iconos en este menú:

  • bloquear pantalla
  • capturar imagen de la pantalla
  • control de sonido
  • estado de red
  • control de energía / estado de batería
  • seleccionar modo claro/oscuro
  • bluetooth, wifi
  • etc.

También podemos desplegar opciones de accesibilidad:

La ejecución de programas se puede hacer pulsando en la barra lateral del Dock, o desplegando la parrilla de aplicaciones. Vamos a probar a pulsar en el icono de Firefox, el navegador web:

Esto nos permitirá comprobar nuestra conexión a internet:

Iconos de control de ventanas

En el momento de escribir estas notas, las ventanas del escritorio Gnome no cuentan con los tradicionales iconos de minimizar, maximizar y restaurar ventana. El escritorio adaptado de Ubuntu los incluye en la esquina superior derecha;

                _ □ ✕

Menús en las aplicaciones

Muchas aplicaciones suelen mostrar la típica barra de menú en la parte superior de la ventana. Las utilidades Gnome son algo atípico. Se suele sustituir la barra de menú por un icono que es habitual en las tablets o teléfonos móviles:

      

Pulsando en ese icono, veremos las opciones de menú.

El manual de Ubuntu

Ubuntu proporciona un manual de uso al que podemos acceder iniciando la aplicación de Ayuda (icono (?) en el Dock):

Se trata de un texto con una traducción al español que a veces es incompleta. Pero nos puede servir como guía inicial.

Teclado

Antes de instalar nada, conviene dejar resueltos los posibles conflictos entre “atajos de teclado” de ambas máquinas, la física y la virtual, aunque esto se puede dejar para más adelante.

En el menú de VMware, seleccionamos Ajustes > Keyboard:

Apagar la máquina virtual

Tras explorar un poco el funcionamiento del escritorio de Ubuntu, vamos a instalar el sistema operativo en el disco duro, en nuestro caso, el virtual.

Lo primero es reiniciar la máquina virtual. En la barra superior del escritorio tenemos los iconos de estado en la esquina de la derecha, como ya hemos visto. Pulsamos ahí, y seguidamente en el icono de apagar.

Instalación en el disco duro

Antes de empezar el proceso de instalación, debemos asegurarnos de que tenemos el ordenador conectado a la red eléctrica y a Internet. Esto último es especialmente importante, porque permitirá detectar la conexión de red, configurarla automáticamente, y descargar contenidos no incluidos en el pendrive de instalación.

Reiniciamos la sesión Live, comprobando que tenemos el pendrive virtual conectado, como vimos anteriormente, y asegurándonos de que el disco de arranque siga siendo el DVD virtual.

Llegado el momento, optamos por completar la instalación:

Se nos irá guiando paso a paso. A las sucesivas preguntas optamos por:

  • Hacer una instalación interactiva guiada.
  • Selección ampliada de software, más allá de limitarnos a instalar solo lo esencial.
  • Incluir la instalación de programas privativos de terceros y compatibilidad con formatos multimedia.
  • Usar todo el disco duro (en nuestro caso, el virtual), borrando su contenido si lo hubiera.
  • ¿Cifrar el disco duro virtual? Tiene sus ventajas e inconvenientes. Yo no suelo hacerlo.
  • Al cumplimentar los datos de usuario, optamos por acceder sin contraseña, dado que se trata de una máquina virtual, y ya tenemos contraseña para la física (a menos que usemos la virtualización para esconder nuestros documentos secretos).
  • Seleccionar el uso horario.

¿Cifrar el disco duro?


El cifrado del disco duro impide que una persona con un pendrive de arranque pueda acceder a los contenidos de nuestra máquina sin necesidad de contraseña. Pero si queremos una máquina virtual solo para experimentar, no lo veo necesario. Y si la queremos para esconder documentos confidenciales, habrá que tener un buen sistema de copias de seguridad, porque el cifrado puede hacer que los documentos sean irrecuperables.

En cierta ocasión, examinando otra distribución distinta de Ubuntu, me encontré con que la reinstalación del sistema operativo generaba nuevas claves de cifrado, y los documentos antiguos no podían ser accedidos por estar cifrados con la clave de la instalación anterior. Desconozco como gestionará Ubuntu estas cosas en la actualidad.

Tras cumplimentar todo esto, pulsamos en el botón Instalar. Durante el proceso, se copian los contenidos del pendrive al disco duro, se bajan otros de Internet y se configura el software. Mientras tanto, se nos irá mostrando información sobre Ubuntu. Paciencia; el proceso dura unos minutos.

Finalmente, se muestra un mensaje “Ubuntu está instalado”. Pulsamos en el botón “Reiniciar`:

Antes de reiniciar la máquina virtual, acudimos a su configuración en VMWare, cambiamos la unidad de arranque y establecemos que sea el disco duro.

Primera sesión

Tras iniciar la máquina virtual y cargar el sistema que hemos instalado en el disco duro virtual, aparece la ventana de bienvenida:

Se establece un diálogo de configuración inicial. Vamos pulsando en el botón siguiente hasta completar todos los pasos.

Actualizar software

Ubuntu publica actualizaciones de software diariamente, y el DVD de instalación viene con los programas vigentes en el momento del lanzamiento de la versión que hemos instalado. El primer paso ha de ser actualizar ese software.

Desplegamos la parrilla de aplicaciones y, en la caja de búsqueda, introducimos el texto:

actualizaciones

con lo que veremos:

Seleccionamos el icono gris, Actualización de software.

Una vez completado el proceso, seguramente se nos pedirá que reiniciemos el sistema. Con esto, damos por terminada la instalación.

Añadamos un par de detalles.

La minibarra

Cuando la máquina virtual ocupa toda la pantalla, dejaremos de ver el menú de VMWare. Ya hemos visto que podemos solucionarlo arrimando el ratón al borde superior de la pantalla. Pero contamos con una alternativa muy interesante, la minibarra.

Consiste en un pequeño gadget, que se muestra en uno de los bordes de la pantalla, y al pulsar sobre el mismo muestra un menú con opciones que habitualmente encontraremos en el menú de VMWare o en su barra de herramientas.

Si la activamos (menú Vista > Minibarra) podemos hacer cosas tales como suspender/apagar la máquina virtual, entrar en la configuración, conectar o expulsar CDs, o simular combinaciones de teclas que son capturadas por el Host y necesitamos pulsar en la máquina Guest. También tenemos la opción de ponerla en cualquiera de los cuatro bordes de la pantalla.

En la siguiente imagen vemos la minibarra en el borde derecho del escritorio:

Podemos configurar la minibarra para que permanezca oculta y se muestre solo cuando acercamos el ratón al borde de la pantalla.

Máquina virtual por defecto

Podemos establecer que cuando iniciemos VMWare, arranque determinada máquina virtual sin que tengamos que hacerlo a mano. La seleccionamos, entramos en la configuración de la máquina, y en el apartado General, marcamos la opción Iniciar automáticamente.

La configuración de Gnome

En los próximos capítulos veremos como configurar el sistema Ubuntu para adaptarlo a nuestras necesidades y preferencias. Como paso final del proceso de instalación, echemos un vistazo al programa de configuración de Gnome:

Para saber más sobre este programa de utilidad, véase página web del proyecto.

Podemos acceder de varias formas:

  • pulsando en el icono de Ubuntu, en el extremo inferior del Dock:

    En la rejilla de aplicaciones, seleccionamos Configuración

  • pulsando en los iconos de estado, en la esquina superior derecha del escritorio. En el menú desplegable, pulsar en el icono de la rueda:

Con esto damos por finalizado el proceso de instalación. En los próximos capítulos veremos como utilizar Linux Ubuntu.

Carpetas en Linux

Una vez instalado Linux, antes de hacer nada conviene echar un vistazo al disco duro virtual, para entender como funcionan las carpetas. Si tenemos un Mac, veremos que hay cierta similitud, porque el sistema operativo de Apple, llamado Darwin, es un derivado de Unix BSD. Por el contrario, si venimos del mundo Windows, encontraremos bastantes diferencias.

¿Carpetas o directorios?

En la jerga informática, ambas cosas representan lo mismo. En los primeros sistemas operativos el término correcto era “directorio”, pero la popularidad de los escritorios gráficos introdujo la palabra “carpeta”, porque es la forma que se usa para representar gráficamente los directorios.

Yo suelo utilizar ambas denominaciones, aunque me gusta más “carpeta”.

Gestor de archivos

Cada programa de escritorio proporciona su propio explorador para navegar por la estructura de carpetas. El de Gnome es un programa Gestor de Archivos llamado Nautilus, aunque en el escritorio aparece bajo el nombre de Archivos:

Para abrirlo, en la barra lateral del escritorio (el Dock) encontraremos el icono del programa:

El funcionamiento es similar al que encontraremos en otros sistemas operativos, Windows, etcétera. En principio se muestra la carpeta principal del usuario, que puede contener archivos varios y otras carpetas como Documentos, Música, Descargas, Escritorio, etc.

En la barra superior de la ventana se muestra la ruta de la carpeta actual, y podemos acudir a otra carpeta tecleándola en esa barra. Para ir al directorio raíz de todo el sistema, introducir una barra “/” como ruta a buscar.

Podemos crear enlaces a nuestras carpetas favoritas en la barra lateral de la ventana. Para ello, basta con navegar por el sistema de archivos hasta encontrar la carpeta que nos interesa, y arrastrarla a la barra lateral, a la posición que se mostrará como “Marcador Nuevo”.

Nótese que el explorador de archivos no cuenta con una barra de menú, siguiendo el planteamiento típico de Gnome. En su lugar, hay que pulsar en los iconos desplegables de la barra superior de la ventana.

Si queremos más información sobre esta aplicación, visitar página web de Nautilus.

Archivos ocultos

En los sistemas operativos derivados de Unix, como es el caso de Linux y Mac, para marcar un archivo como oculto tenemos que modificar su nombre, anteponiendo un prefijo consistente en un punto. Por ejemplo, .miarchivo.txt se considerará como oculto.

En principio el gestor de archivos no muestra los elementos ocultos, salvo que activemos su visualización pulsando en el menú que hay a la derecha de la barra de cabecera de la ventana y seleccionemos Mostrar Archivos ocultos.

Permisos

Linux es un sistema operativo heredero de Unix, que fue concebido para grandes instalaciones con múltiples usuarios y grupos de usuarios compartiendo documentos. En un ordenador personal esto puede parecer algo excesivo, pero así es como funciona.

Cada usuario pueden pertenecer a uno o varios grupos. Todo archivo tiene:

  • un usuario propietario
  • un grupo propietario

A un archivo puede acceder:

  • su usuario propietario
  • los usuarios del grupo propietario
  • el resto de usuarios

Y cuando accedemos a un archivo podemos hacer tres cosas:

  • lectura: examinar su contenido
  • escritura: modificarlo
  • ejecutarlo como programa. Por ejemplo, un archivo de textos con comandos a ejecutar. A esto se le llama un script. Veremos los comandos en un capítulo próximo.

Combinando todo esto, tenemos nueve permisos para un mismo archivo:

  • Permisos de lectura, escritura y ejecución para el usuario propietario
  • Permisos de lectura, escritura y ejecución para los usuarios del grupo propietario
  • Permisos de lectura, escritura y ejecución para el resto de usuarios

Para cambiar los permisos, podemos abrir el explorador de archivos, seleccionar el fichero en cuestión, y pulsar sobre el mismo con el botón secundario del ratón. Seleccionar Propiedades y seguidamente en Permisos.

Los permisos tienen diferente significado cuando se trata de un archivo o de una carpeta:

  • Archivos

    • lectura: el fichero puede leerse y mostrarse en pantalla
    • escritura: el fichero puede modificarse
    • ejecución: el fichero puede ejecutarse como programa.
  • Directorio

    • lectura: el contenido puede examinarse
    • escritura: podemos añadir o suprimir ficheros
    • ejecución: podemos situarnos en ese directorio

La diferencia entre situarse en un directorio y examinar su contenido tiene más sentido cuando trabajemos con comandos de Terminal, como veremos en el capítulo siguiente.

Directorios

En Windows cada unidad de almacenamiento (disco duro, dvd, unidades USB, etc) tiene su propia estructura de directorios o carpetas, mientras que en los sistemas tipo UNIX, como Mac o Linux, existe un único árbol global de directorios. Cuando hacemos referencia a un archivo, no decimos en que disco está, sino en que carpeta. Por ejemplo:

  • en windows haríamos referencia a un archivo de la siguiente forma:

    c:\nombrecarpeta\archivo.doc

  • mientras que en sistemas tipo UNIX y derivados hacemos referencia al mismo archivo como:

    /nombrecarpeta/archivo.doc

La barra de Windows


Los sistemas operativos tipo UNIX usan una barra / para delimitar nombres de directorios. El uso de la barra invertida \ es propio de Windows y viene de ciertos problemas que tuvieron con el diseño de las primeras versiones del antiguo sistema operativo MS-DOS.

Lo que sucedió es que la versión original de MS-DOS estaba pensada para los primeros ordenadores personales de IBM, que no tenían disco duro. Los archivos se guardaban en diskettes extraíbles. Dada la poca capacidad de estos, no se había pensado en organizar los ficheros en carpetas.

Con la versión 2.0 de MS-DOS se pensó en añadir el mecanismo de directorios, pero la barra / ya estaba siendo utilizada para otros propósitos. Se usaba como prefijo de los parámetros de los comandos del sistema operativo. Microsoft consideró la posibilidad de usar un punto “.” como separador, pero ese carácter también estaba “pillado”. Se usaba para separar el nombre de un archivo de su extensión. Finalmente optaron por la barra invertida “\”. De ahí que Windows se haya convertido en “el rarito”. El resto de sistemas operativos usan la barra “/” como separador en una ruta de directorios.

¿En que unidad de disco se guarda la estructura de carpetas? Todo sistema tipo Unix tiene configurado un “disco principal”, que es donde se almacena el directorio raíz /. Los directorios y subdirectorios que “cuelgan” del raiz estarán ubicados en el mismo disco, a excepción de aquellas carpetas que asociemos explícitamente a otra unidad.

Si por ejemplo asociamos la carpeta /media/dvd a la unidad de DVDs, el directorio raiz del dvd se corresponderá con esa carpeta. Si en el DVD hay una carpeta misarchivos, que contiene un fichero llamado texto.doc, este será accesible:

  • en windows, mediante D:\misarchivos/texto.doc, suponiendo que la unidad lectora de DVD sea la D:
  • en linux, mediante /media/dvd/misarchivos/texto.doc

Cuando asociamos una unidad externa a una carpeta, a esta se le llama “punto de montaje”. En el ejemplo anterior, el punto de montaje de la unidad de DVD es la carpeta /media/dvd.

Al conectar una unidad a un puerto USB, el montaje suele ser automático, y tendremos acceso a los contenidos de forma inmediata. Dependiendo de la configuración del sistema, es posible cambiarlo para que el montaje sea manual, generalmente haciendo uso del terminal de comandos.

¡Cuidado!


Linux es case sensitive. Se distingue mayúsculas de minúsculas. Un directorio o un fichero debe escribirse tal y como lo hemos creado. Por ejemplo. Documentos y documentos serían dos carpetas diferentes.

Estructura

Veamos a continuación las principales carpetas de Linux. La estructura completa se conoce como filesystem. y está inspirada en el antiguo sistema operativo Unix, aunque cada distribución Linux hace su propia adaptación. En el caso de Ubuntu, por ejemplo, si instalamos cualquier paquete de Software a partir de la tienda de snaps, se ubicarán en una carpeta llamada /snap.

Directorio /

Toda la estructura de carpetas “cuelga” del directorio raíz, también llamado root, representado por una barra inclinada /. Todos los contenidos de las diferentes unidades de almacenamiento cuelgan de aquí.

El directorio / es el punto de montaje del disco principal del sistema.

Directorio /home

Es donde los usuarios guardan sus archivos: documentos, fotos, vídeos, música, etc. También incluye la configuración personal del usuario e incluso programas a los que solo él tiene acceso.

Dentro de /home cada usuario tiene su directorio:

  • /home/julia
  • /home/andres
  • /home/pedro

En nuestro día a día, esta es la carpeta con la que vamos a trabajar principalmente.

Nota:


Hay quien convierte /home en punto de montaje asociado a una partición de disco separada de la partición principal, dejando programas y documentos en particiones de disco diferentes.

Si queremos aplicar este planteamiento, al instalar el sistema operativo tenemos que establecer dos particiones, asociándoles dos puntos de montaje, la carpeta / para el sistema, y /home para los documentos.

Si vamos a crear una máquina virtual solo para experimentar, dejando los documentos en una carpeta compartida de la máquina física, podemos dejar /home en la unidad principal del sistema.

Sistema operativo MacOS


En los ordenadores Mac, que tienen un sistema operativo derivado de Unix, el directorio de documentos de usuario está en /Users, en lugar de /home.

Directorio /media

Representa el punto de montaje de las unidades extraibles, USB, dvds, etc. Tradicionalmente UNIX ha utilizado para este propósito la carpeta /mnt (abreviatura de puntos de montaje), pero en las distribuciones linux actuales está muy extendido el uso de /media.

Nosotros vamos a utilizar:

  • /media para las unidades extraibles
  • /mnt para acceder a las carpetas compartidas de la máquina física.

Directorio /usr

El directorio /usr (User System Resources) se usa para ubicar las aplicaciones que instalemos. Suele tener las siguientes subcarpetas:

  • /usr/bin
  • /usr/include
  • /usr/lib
  • /usr/local
  • /usr/sbin
  • /usr/share
  • /usr/src

Directorio /opt

Es complementario a /usr, almacenando sobre todo aplicaciones externas que se distribuyen en forma de paquete.

Ubuntu distribuye paquetes en un formato especial, el de la Snaps Store. En este caso se usa el directorio /snap

Directorio /bin

Es donde se almacenan los programas básicos de linux.

Directorio /sbin

Similar a /bin, pero aquí tenemos los programas relativos a tareas de administración del sistema, que suelen ejecutarse solo con permisos de administrador habilitados.

Directorio /lib

Aquí se ubican las bibliotecas necesarias para ejecutar los programas de los directorios /bin y /sbin, así como los módulos del kernel.

Las bibliotecas necesarias para las aplicaciones se guardan en /usr/lib.

Nota:


Una biblioteca (library) es un fragmento de software compartido por varios programas. Lo habitual es que estos hagan uso de las bibliotecas logrando un comportamiento homogéneo.

Directorio /boot

Es un directorio que almacena todo el software necesario para arrancar el ordenador.

Directorio /root

En los sistemas UNIX podemos tener una o varias cuentas de usuario, cada una con su carpeta /home/usuarioxxx, y una cuenta de administrador para tareas de administración del sistema, cuya carpeta es /root. Generalmente conviene trabajar en el día a día solo con permisos de usuario, por motivos de seguridad. Utilizaremos la cuenta de administrador para instalar nuevo software y realizar tareas de mantenimiento y configuración.

Directorio /etc

Aquí es donde se guardan los archivos de configuración del sistema operativo y de los programas y aplicaciones instaladas.

Directorio /dev

Los archivos de esta carpeta son en realidad accesos de bajo nivel a los dispositivos (devices) conectados: disco duro, teclado, unidad USB, etc.

Directorio /proc

Contiene información de los procesos y aplicaciones que se están ejecutando en el momento. Realmente no guarda información fisicamente, sino que es una forma de referirnos a los datos de esos procesos.

Directorio /sys

Similar a /proc, pero referido a procesos del kernel.

Directorio /tmp

Como indica su nombre, sirve para almacenar archivos temporales.

Directorio /var

Archivos varios con información de eventos del sistema.

Terminal de comandos

Ya hemos visto que los sistemas operativos modernos suelen incluir un programa llamado “Terminal”, que emula un shell de texto y permite trabajar introduciendo comandos para ejecutar programas y realizar operaciones de administración del sistema.

El funcionamiento es mediante una sesión de diálogo: vamos tecleando comandos, que al ejecutarse, llenan la consola de texto que se va desplazando hacia arriba. En la siguiente imagen vemos un Terminal de comandos sobre otras ventanas del escritorio.

El Terminal se puede configurar. Por ejemplo, para cambiarle los colores, pulsar en el icono que despliega el menú, opción Preferencias. Yo he escogido la paleta de colores de Gnome.

Iniciando el terminal

El terminal de comandos es un programa que suele estar presente en todas las distribuciones Linux. Cada una tiene su propio terminal, pero básicamente todos funcionan de forma similar. En el caso de Ubuntu, encontraremos el programa de Terminal en la barra lateral del escritorio de Ubuntu (el Dock) o acudiendo a la parrilla de aplicaciones.

Lo primero que veremos es una línea de texto que muestra cierta información seguida de un símbolo $. Suele ser algo así como:

usuario@maquina:carpeta $

A esto se le llama prompt. Termina con un carácter $, tras el cual, el cursor parpadeante nos invita a teclear algún comando.

En mi caso, se muestra:

usuario@vm:~$

Durante el proceso de instalación del sistema, al usuario le he llamado tal cual, “usuario”, y a la máquina virtual la he denominado “vm”.

El símbolo ~ es un alias que representa la carpeta principal del usuario. En este ejemplo, ~ equivale a /home/usuario. En todo momento, el prompt muestra cual es la carpeta de trabajo. Finalmente se muestra el símbolo $.

Ejecutando programas

En principio, los programas se ponen en marcha tecleando su nombre y pulsando enter. Por ejemplo, el editor de textos suministrado por el escritorio Gnome se llama gnome-text-editor:

$ gnome-text-editor

Nota:


En el texto de estos ejemplos mostramos el prompt $, pero no es algo que tengamos que teclear.

Tras introducir el comando, se abre el editor en una nueva ventana, que convivirá con la del Terminal:

Siempre que pongamos en marcha un programa mediante un comando, el terminal se queda a la espera de que dicho programa finalice y cierre su ventana, tras lo cual, se recupera el prompt para introducir más comandos. Podemos evitar este bloqueo añadiendo un carácter & al comando:

$ gnome-text-editor &

Esto hace que la ejecución del editor sea en paralelo a la del terminal, de forma que este recupere el prompt inmediatamente.

Una ventaja de ejecutar programas desde el terminal de comandos es la posibilidad de pasarle información adicional:

$ gnome-text-editor /home/usuario/documentos/miArchivo.txt

En este ejemplo, al editor le pasamos como argumento el nombre del fichero a editar. Los argumentos añadidos nos permiten personalizar la ejecución del programa. Otro beneficio del terminal es que visualizaremos los posibles mensajes de error en la consola, que sin ella, no serían visibles.

¿Como averiguar cual es el nombre de cada programa? Hay varias formas. Una de ellas es mantenerlo en ejecución y poner en marcha otro programa que se llama “Monitor del Sistema” y que nos permite visualizar el consumo de recursos y procesos que se están ejecutando.

Nota: A partir de Ubuntu 26.4, se sustituye el Monitor del sistema por un programa llamado Resources.

En la pestaña “procesos” tenemos los nombres de los programas que están ejecutándose y su consumo de recursos:

Programas de consola

En el ejemplo anterior, usábamos el terminal de comandos para iniciar el procesador de textos en una ventana aparte. Pero hay programas que se ejecutan en la misma ventana del terminal. Por ejemplo, si introducimos el comando:

$ date
dom 13 mar 2022 15:34:15 CET

vemos que, al ejecutarse, muestra la fecha y hora del sistema, y seguidamente recupera el prompt.

Utilidad de los comandos

¿Para que sirven los comandos? Seamos realistas. Muchos usuarios prescindirán de esta herramienta. Si lo que pretendemos es utilizar el ordenador solo para navegar por Internet, editar documentos, o guardar nuestras fotos, todas estas actividades se manejan mejor pulsando sobre un icono, en lugar de tener que interaccionar con la computadora al estilo prehistórico, tecleando comandos.

Sin embargo, el valor real del terminal se pone de manifiesto en la administración y configuración del equipo. Algunas actividades administrativas cuentan con más opciones usando comandos, y hay operaciones que requieren de su uso. Para un usuario avanzado, los comandos dan acceso a un mundo lleno de posibilidades.

Veamos un ejemplo. Supongamos que queremos instalar el conocido reproductor de video VLC. Ubuntu cuenta con un programa llamado App Center (Centro de Aplicaciones) para gestionar la descarga e instalación de software. Haciendo uso del mismo, podemos buscar el programa en cuestión, seleccionarlo, y pulsar en el botón Instalar:

Nótese que se nos mostrará la opción de buscar en el repositorio de Debian (heredado por Ubuntu) o en la tienda de Snaps de Ubuntu.

Como alternativa, podemos hacer la misma tarea de instalación abriendo la ventana del Terminal y tecleando un comando:

$ sudo apt install vlc

Lo que significa:

  • el símbolo $ es el prompt que nos invita a teclear algo.
  • la palabra sudo se antepone a todo comando que requiera ser ejecutado con permisos especiales. Hará que se nos pida nuestra contraseña. Es la abreviatura de “super user do.”
  • el comando a ejecutar es apt, abreviatura de Advanced Package Tool. Es el nombre del programa usado para instalar software de los repositorios tipo Debian .
  • install es la operación a realizar.
  • vlc es el programa a instalar.

Al pulsar la tecla enter se ejecutará todo el proceso de descarga e instalación de forma automática. La ventana del Terminal se llenará de mensajes, informando sobre el proceso de descarga, y ejecutando todo el proceso automáticamente.

Contraseña


Los comandos precedidos por la palabra sudo obligan a introducir la contraseña de usuario, pero esta se recuerda durante unos minutos. Sucesivos comandos sudo solo requieren teclear la contraseña la primera vez.

Comando apt


El comando apt es propio de Debian y derivados como Ubuntu. Otras distribuciones Linux utilizan comandos similares, como es el caso de dnf en Fedora o pacman en Linux Arch.

A la vista de esto se diría que, para instalar software, resulta más cómodo usar el App Center, evitando tener que teclear comandos. Pero, ¿que pasa si periódicamente queremos hacer limpieza de nuestro equipo y reinstalar una veintena de nuestras aplicaciones favoritas? La tarea de instalación una por una puede resultar pesada.

En su lugar, podemos crear un archivo de texto que contenga comandos de instalación:

apt install vlc
apt install otro_programa
apt install otro_programa_2

Este tipo de archivos de texto, con comandos a ejecutar, se llaman scripts. Lo guardamos con un nombre, por ejemplo “instalar”, y lo ejecutamos con el comando:

$ sudo instalar

Ejecutando este script de comandos como si fuera un programa, todas las instalaciones se llevarán a cabo de forma automatizada.

Ejecutar scripts


En realidad, este comando no funcionaría por dos razones:

  • para ejecutar un script, su nombre ha de ir precedido por la carpeta donde lo hemos guardado:

    $ sudo /home/usuario/instalar
    
  • todo script requiere que le asignemos permisos de ejecución.

En el siguiente capítulo veremos los comandos con más detenimiento, y un ejemplo práctico sobre como crear un script.

Errores

Si tecleamos mal un comando, se mostrará un mensaje de error:

$ gkghj
Orden «gkghj» no encontrada

UNIX distingue entre mayúsculas y minúsculas. Un comando, un nombre de archivo, de directorio o cualquier otra cosa donde no respetemos el uso de las letras, no será reconocido y lo más probable es que obtengamos un mensaje de error. Por ejemplo, si escribimos el comando date con la primera letra en mayúsculas, obtenemos:

$ Date
Orden «Date» no encontrada

Algunos sistemas son suficientemente inteligentes como para sugerirnos opciones:

~$ Date
Orden «Date» no encontrada. Quizá quiso decir:
  la orden «kate» del paquete snap «kate (23.08.4)»
  la orden «date» del paquete deb «coreutils (9.4-3.1ubuntu1)»
  la orden «late» del paquete deb «late (0.1.0-14)»
  la orden «kate» del paquete deb «kate (4:24.08.1-0ubuntu1)»

Los programas forman parte de paquetes de software, instalados o instalables.

Programas no instalados

La mayoría de comandos son en realidad pequeños programas. Los repositorios de las distribuciones son enormes, y es materialmente imposible que lo tengamos todo instalado en nuestra computadora.

Es posible que alguno de los ejemplos que aquí se muestran sean programas que no vienen de serie con Ubuntu. Por ejemplo, el editor de textos “kate”:

$ kate
No se ha encontrado la orden «kate», pero se puede instalar con:
sudo snap install kate  # version 23.08.4, or
sudo apt  install kate  # version 4:24.08.1-0ubuntu1

Si nos interesa ese programa, podemos hacer caso de la recomendación y ejecutar alguno de esos comandos:

$ sudo apt install kate

kate


Kate es un editor de textos que se suministra con el escritorio KDE. Aunque estemos usando Gnome, podemos instalar programas que acompañan a otros escritorios, si son de nuestro agrado.

Cerrar sesión interactiva

Podemos cerrar el terminal como cualquier otra ventana. También podemos hacerlo introduciendo el comando:

$ exit

Uso del ratón

Las antiguas consolas de texto funcionaban solo con el teclado. Las emulaciones de terminal contemplan el uso del ratón para poder seleccionar texto y realizar operaciones de cortar y pegar, pero no podemos utilizarlo para mover el cursor. Para desplazarnos en la edición de un comando tenemos que utilizar las teclas y .

Historial de comandos

Siempre que ejecutamos un comando, el terminal lo recuerda y mantiene un registro de los últimos comandos introducidos. Pulsando y , podemos recuperar comandos anteriores, navegando hacia arriba y hacia abajo en la lista, siendo el punto de partida el comando más reciente. Una vez que recuperemos el comando deseado, podemos editarlo y ejecutarlo de nuevo pulsando enter.

Uso del teclado

Originalmente, en sistemas tipo Unix se utilizan cinco teclas para editar comandos:

  • mueve el cursor una posición a la izquierda
  • mueve el cursor una posición a la derecha
  • borra carácter a la izquierda del cursor
  • del borra carácter a la derecha del cursor
  • enter ejecuta el comando

Dependiendo de la configuración de nuestro sistema, podemos tener otras combinaciones de teclas adicionales. Para mover el cursor:

  • ctrl+a va al inicio de la línea.
  • ctrl+e va al final de la línea.
  • ctrl+b mueve el cursor un carácter a la izquierda. Equivale a .
  • ctrl+f mueve el cursor un carácter a la derecha. Equivale a
  • alt+b mueve el cursor una palabra a la izquierda.
  • alt+f mueve el cursor una palabra a la derecha.

Para borrar texto:

  • ctrl+d borra el carácter a la derecha del cursor. Equivale a del
  • ctrl+h borra el carácter a la izquierda del cursor. Equivale a
  • ctrl+u borra todo el texto a la izquierda del cursor.
  • ctrl+k borra todo el texto tras el cursor.
  • alt+ borra palabra a la izquierda
  • ctrl+w borra palabra a la derecha
  • ctrl+_ deshacer

Detener un comando

Cuando ejecutamos un comando en el terminal, el sistema se queda a la espera de que termine, para volver a mostrar el prompt. Para desbloquearlo, tendremos que finalizar la ejecución del programa.

En el caso de programas de consola, podemos abortarlos pulsando las teclas ctrl+c, siempre que la ventana de Terminal sea la activa y tenga el foco del teclado.

Copiar y pegar

El uso de las teclas de flecha para recuperar comandos del historial es un recurso interesante, pero a veces querremos copiar y pegar comandos de algún ejemplo buscado en Internet, o de otras fuentes.

Aunque en los terminales antiguos no había portapapeles, el programa de terminal implementa la posibilidad de seleccionar texto con el ratón y copiarlo al portapapeles, así como pegar su contenido en la posición del cursor.

Sin embargo, la combinación de teclas ctrl+c que en otros programas se utiliza para copiar, aquí no funciona. Ya hemos visto que se usa para interrumpir programas en ejecución. En su lugar, se usa:

  • para copiar lo seleccionado con el ratón: may+ctrl+c
  • para pegar en la posición del cursor: may+ctrl+v

Estas teclas se pueden personalizar. En la ventana del Terminal, pulsar en el icono de menú, opción Preferencias > Atajos de teclado.

Terminal y shell

Podría pensarse que la aplicación Terminal sirve para introducir comandos, pero en realidad no es así. Lo que hace es simular una consola, y en ella se puede ejecutar cualquier programa en formato de texto.

El programa que acepta, y ejecuta comandos es uno más de los que se pueden ejecutar en el Terminal. Su función es mostrar el prompt, interpretar el texto tecleado por el usuario, y visualizar un mensaje de error o ejecutar el comando si es uno válido.

Por lo tanto, cuando introducimos un comando, tenemos dos programas en ejecución, el Terminal y el intérprete de comandos, o shell de texto. El primero se encarga de establecer el tipo de letra, maneja las teclas de copiar y pegar, proporciona una barra de desplazamiento para visualizar el texto que se va desplazando hacia arriba, etc. El shell se limita a gestionar la ejecución de los comandos.

De hecho, podemos utilizar diferentes programas Shell. El que suele utilizar Ubuntu (y la mayoría de distribuciones Linux) es uno llamado bash. Podemos averiguar cuales son los programas que se están ejecutando en el terminal con el comando ps (procces status):

$ ps
   PID TTY         TIME CMD
 2572 pts/0    00:00:00 bash
 3242 pts/0    00:00:00 ps

Esto muestra una lista de procesos. La primera columna indica el código interno que identifica el proceso. La última columna indica el nombre de programa que se está ejecutando, que en este caso es el shell bash y el propio comando ps.

¿Por que es importante aclarar todo esto? Porque si buscamos un manual de referencia de comandos de Linux, lo que encontraremos será la documentación de bash. Cada shell tiene su propio lenguaje de comandos, y su instalamos y utilizamos un shell alternativo, el manual de bash no nos sirve.

¿Cuantos interpretes existen? A lo largo de la historia de Unix y Linux han surgido varios programas intérpretes. Veamos una lista de los más relevantes:

  • El primer shell de la historia de UNIX fue creado por el inventor de este sistema operativo, Ken Thompson, y se llamaba sh. Hoy en día, muchas distribuciones de Linux tienen un programa sh, que en realidad es un alias que hace referencia al shell que tengamos instalado.

  • Hacia finales de los años setenta, Stephen Bourne, un colega de Thompson en los Bell Labs, creó una versión más avanzada llamada Bourne Shell. Típicamente también lleva el nombre de sh, dado que sustituyó al original.

  • Cuando AT&T convirtió UNIX en un producto comercial, como respuesta surgió UNIX BSD. Como alternativa al shell de Bourne, Kenneth Almquist creó un shell llamado ash (Almquist shell)

  • Cuando surgió el proyecto GNU, incorporaron un shell inspirado en el Bourne Shell al que llamaron Bourne-Again shell (bash). Actualmente suele ser el shell por defecto en muchas distribuciones de Linux.

  • Debian Almquist shell (dash) es una versión moderna de ash, presente en sistemas Debian y derivados.

  • Korn shell (ksh) fue escrito por David Korn basándose en el Bourne shell

  • Z shell (zsh) es una variante moderna de bash. Se utiliza, por ejemplo, en los ordenadores iMac a partir de la versión 10.15 de su sistema operativo

  • C shell (csh) fue creado por Bill Joy y se suele distribuir con UNIX BSD. Consiste en un lenguaje de comandos inspirado en el lenguaje de programación C.

Consolas

Como alternativa a la emulación de Terminal, podemos prescindir del escritorio gráfico y poner en marcha el ordenador (en nuestro caso la máquina virtual) al estilo antiguo, con el modo de texto a pantalla completa.

En la siguiente imagen vemos una máquina virtual Linux ejecutándose en modo consola dentro de una ventana de la máquina física.

Tendremos más limitaciones, ya que no hay ratón ni portapapeles, y tampoco podemos utilizar las aplicaciones gráficas como el navegador de Internet o cualquier otro programa gráfico. ¿Para que sirve entonces? Hay situaciones en las que puede resultar útil, por ejemplo, si el escritorio se queda bloqueado, o si tenemos problemas de arranque y no se llega a visualizar el modo gráfico. De hecho, ya hemos visto que el arranque inicial del sistema se ejecuta en modo de consola de texto.

A las consolas de un ordenador se les llama TTYs. Las primeras consolas de la historia no incluían una pantalla, sino que funcionaban como los terminales de teletipo, con un teclado donde escribir y una impresora de papel continuo. De ahí viene el nombre de TTY, acrónimo de teletype.

Los ordenadores anteriores a la época de la informática doméstica solían consistir en una CPU y varios puestos de trabajo conectados a ella, de forma que desde cada puesto se podía ejecutar un programa. Los ordenadores modernos son capaces de proporcionar varias TTYs en la pantalla, aunque solo se puede visualizar una de ellas a la vez.

Cada sistema operativo tiene su propio planteamiento. Es frecuente proporcionar media docena de TTYs, y dedicar alguna de ellas a mostrar el escritorio gráfico. De todas formas, esto puede cambiar de una distribución a otra. Ubuntu utiliza la TTY2 para la sesión gráfica de escritorio, la TTY1 para la pantalla de inicio de sesión, y deja las TTY3, TTY4, TTY5 y TTY6 como consolas de texto.

Vamos a probar este modo de consola de texto en Ubuntu, por ejemplo la TTY3. Tras iniciar la sesión de gráfica habitual y con el escritorio a la vista, pulsamos ctrl+alt+f3. En muchos teclados Mac, esto debe ir acompañado de la tecla fn.

Esto nos cambia a la consola de texto, donde veremos la pantalla en negro y un texto que puede ser algo así como:

Ubuntu tty3
login:

En cada consola tenemos que iniciar sesión con nuestro nombre de usuario y contraseña:

login:
Password:

Seguidamente se mostrará el prompt para introducir comandos:

usuario@maquina: ~$

Se cierra la sesión de usuario con el comando:

exit

Y se vuelve al escritorio gráfico seleccionando la tty correspondiente, que en el caso de Ubuntu es la TTY2. Pulsamos ctrl+alt+f2, con fn si es necesario.

Para pasar de una consola a otra, las combinaciones de teclas son:

  • para ver la TTY 1, ctrl+alt+f1
  • para ver la TTY 2, ctrl+alt+f2
  • para ver la TTY 3, ctrl+alt+f3
  • para ver la TTY 4, ctrl+alt+f4
  • para ver la TTY 5, ctrl+alt+f5
  • para ver la TTY 6, ctrl+alt+f6

Un repaso de los comandos de Linux

En el capítulo anterior veíamos como trabajar con la emulación de Terminal, y algunos comando básicos. Aquí veremos algunos más.

Referencia de comandos

Ya hemos visto que el programa gestor de comandos más popular en el mundo Linux es bash. Tiene su propio lenguaje de comandos, lo que da lugar a una bibliografía muy extensa. Lo explicado en este capítulo no pretende ir más allá de una introducción. Si queremos profundizar en la materia, encontraremos amplio material navegando por la red.

El recurso básico es el comando man. Por ejemplo, el comando apt permite gestionar la descarga e instalación de paquetes de software en formato Debian. Para consultar el manual básico, introducimos el comando:

$ man apt

lo que muestra un resumen del comando apt. Usando las teclas de flecha podemos desplazarnos por el texto. Pulsar q para abandonar (quit).

¡Ojo! El comando man no es un tutorial. Es más bien un manual de referencia, en líneas generales, bastante técnico. Existen varios proyectos para poner los manuales de Linux en la red. Por ejemplo:

Si buscamos tutoriales, aquí tenemos un par de ellos:

Argumentos

En el capítulo anterior, veíamos como iniciar el procesador de textos de Gnome desde el Terminal de comandos. Por ejemplo, para ejecutarlo con dos archivos abiertos:

$  gnome-text-editor archivo1.txt archivo2.txt

A la información añadida a un comando se le llama “argumentos”. Se delimitan mediante espacios separadores:

  • comando: gnome-text-editor
  • primer argumento: archivo1.txt
  • segundo argumento: archivo2.txt

¿Que pasa si el nombre de un archivo contiene espacios? Que obtendremos un error:

$  gnome-text-editor mi primer documento.txt

Esto será interpretado como tres argumentos. La solución es fácil; si un argumento contiene espacios, podemos entrecomillarlo para que sea considerado como un todo:

$  gnome-text-editor "mi primer documento.txt"

También podemos usar apóstrofos en lugar de comillas dobles:

$  gnome-text-editor 'mi primer documento.txt'

Opciones

Un caso especial de argumentos son las opciones. Son indicadores que modifican el comportamiento del comando. Por ejemplo:

$ date
sáb 27 abr 2024 10:51:48 CEST

$ date -u
sáb 27 abr 2024 08:51:48 UTC

Vemos que, por defecto, el comando date muestra la hora local, en este ejemplo, en horario CEST (Central European Summer Time). Con la opción -u, muestra la hora universal, sin desplazamiento de huso horario.

Típicamente, las opciones suelen ir precedidas de un guión. Suelen existir en dos versiones:

  • versión corta:

    $ date -u
    
  • versión larga:

    $ date --utc
    

Las opciones escritas en versión larga suelen ir precedidas de dos guiones. Su significado es más evidente y son más fáciles de interpretar, aunque requieren un mayor esfuerzo de tecleo, y si pasamos muchas opciones, el texto del comando puede resultar excesivamente largo.

¡Cuidado! Ya hemos visto que Linux diferencia mayúsculas de minúsculas. Una misma opción -u y -U podría ser válida en ambos casos, pero con diferente significado. En el caso del comando date, la opción -U en mayúsculas no existe, y mostrará un mensaje de error:

$ date -U
date: opción incorrecta -- «U»
Pruebe 'date --help' para más información.

La opción --help, y en ocasiones, su equivalente corto -h, suelen estar presentes en muchos comandos. Sirven para visualizar en la consola un texto de ayuda.

Dependiendo del comando, algunas opciones se pueden combinar en una sola. Por ejemplo, el comando cal muestra un calendario, y ncal es un comando similar, pero con más posibilidades:

$ ncal -b3

     Marzo 2024            Abril 2024            Mayo 2024        
lu ma mi ju vi sá do  lu ma mi ju vi sá do  lu ma mi ju vi sá do  
             1  2  3   1  2  3  4  5  6  7         1  2  3  4  5  
 4  5  6  7  8  9 10   8  9 10 11 12 13 14   6  7  8  9 10 11 12  
11 12 13 14 15 16 17  15 16 17 18 19 20 21  13 14 15 16 17 18 19  
18 19 20 21 22 23 24  22 23 24 25 26 27 28  20 21 22 23 24 25 26  
25 26 27 28 29 30 31  29 30                 27 28 29 30 31 

Aquí combinamos la opción -b (mostrar cada semana en una fila) con la opción -3 (mostrar tres meses, anterior, actual y siguiente). Equivale a:

$ ncal -b -3

Las combinaciones solo se pueden hacer con opciones cortas.

cal y ncal


Muchos comandos son en realidad pequeños programas. cal y ncal son dos comandos que a veces no vienen instalados de serie. Es fácil de solucionar. Por ejemplo, si necesitamos instalar ncal, usaríamos el comando:

sudo apt install ncal

Borrar pantalla

El funcionamiento del terminal es mediante flujo de caracteres. A medida que se va llenando la ventana, el texto se irá desplazando hacia arriba para dejar espacio. Los programas de terminal suelen proporcionar una barra lateral de desplazamiento que podemos arrastrar para visualizar el texto que ha quedado oculto (algo que no existía en los terminales antiguos).

Si el terminal se llena de texto y queremos hacer “limpieza” de la ventana, podemos ejecutar el comando:

$ clear

El directorio de trabajo

Supongamos que estamos visualizando el contenido de una carpeta en la ventana del gestor de archivos, por ejemplo, las imágenes de fondo de escritorio que se suministran con Ubuntu. Están en /usr/share/backgrounds/:

Mientras navegamos usando el gestor de archivos, en todo momento hay una carpeta “actual” cuyo contenido se muestra. Para ir a otra carpeta, tendremos que abrirla pulsando sobre ella, lo que la convierte en la nueva carpeta actual.

En el uso del terminal pasa lo mismo. En todo momento hay una carpeta de trabajo, conocida como working directory. Cuando abrimos una sesión de terminal, el directorio actual comenzará siendo la carpeta principal del usuario, ubicada generalmente en el directorio /home/usuario (cambiar “usuario” por el nombre que corresponda). A esta carpeta también podemos hacer referencia por su alias, formado por un único carácter ~.

Podemos ver cual es la carpeta actual en la información que se muestra en el prompt, antes del carácter $

~ $

Otra forma de averiguar cual es la carpeta actual es ejecutando el comando pwd (print working directory):

$ pwd
/home/antonio

Un detalle histórico:


En el mundo de los ordenadores, para mostrar algo en la pantalla se usa con frecuencia la palabra print, que significa imprimir. Es una herencia de los tiempos prehistóricos, cuando no había pantallas y todos los datos se mostraban en papel.

Ver el contenido de un directorio

Para mostrar la lista de los archivos que hay en un directorio, utilizar el comando ls (abreviatura de lista) seguido del directorio a mostrar:

$ ls /usr/share/backgrounds

con lo que veremos la lista de archivos:

Flash_and_Thunder_by_Julian_Tomasini.jpg        Quokka_Everywhere_by_Dilip.png
Lonely_Quokka_by_Dilip.png                      Schattenzug_by_OrbiteLambda.webp
Questing_Quokka_Full_Color_3840x2160.png        The_Web_by_nkhdiscovery.png
Questing_Quokka_Full_Dark_3840x2160.png         Ubuntu_with_Frutiger_Metro_by_lyk_lyk.png
Questing_Quokka_Full_Dimmed_3840x2160.png       
Questing_Quokka_Full_Light_3840x2160.png        ubuntu-default-greyscale-wallpaper.png
Questing_Quokka_Wallpaper_Dimmed_3840x2160.png  ubuntu-wallpaper-d.png
Questing_Quokka_Wallpaper_Light_3840x2160.png   warty-final-ubuntu.png

Si queremos mostrar el contenido de la carpeta actual, introducir el comando ls sin especificar ningún directorio:

$ ls

Por defecto los archivos se muestran uno a continuación de otro, y a llegar al extremo derecho de la ventana de Terminal, se sigue en la línea siguiente. Podemos mejorar la presentación mostrando los archivos en forma de una sola columna, añadiendo la opción -1 como argumento. ¡Ojo! Es un número uno, no la letra ele.

$ ls -1
Arizona_night_by_Orbite_Lambda.jpg
Einsamer_Raum_by_Orbite_Lambda.jpg
Oriole_3D_by_Dilip.png
Oriole_by_Julian_Tomasini.jpg
OrioleMascot_by_Vladimir_Moskalenko_dark.png
OrioleMascot_by_Vladimir_Moskalenko_light.png
Oriole_wallpaper_dimmed_3840x2160.png
Oriole_wallpaper_light_3840x2160.png
Sunset_by_Gabriele_Fontana.jpg
ubuntu-default-greyscale-wallpaper.png
Ubuntu_Legacy_by_Aaron_J_Prisk_dark.png
Ubuntu_Legacy_by_Aaron_J_Prisk_light.png
ubuntu-wallpaper-d.png
warty-final-ubuntu.png
Warty_remastered_by_Romactu.png

O bien, para obtener un directorio concreto en lugar del actual:

$ ls -1 /usr/share/backgrounds

Si queremos una lista detallada, usar la opción -l (letra ele minúscula) para mostrar los archivos en formato “largo”:

$ ls -l /usr/share/backgrounds

-rw-r--r-- 1 root root 10979580 Sep  3 06:48 Flash_and_Thunder_by_Julian_Tomasini.jpg
-rw-r--r-- 1 root root   219212 Sep  3 06:48 Lonely_Quokka_by_Dilip.png
-rw-r--r-- 1 root root  4013573 Sep  3 06:48 Questing_Quokka_Full_Color_3840x2160.png
-rw-r--r-- 1 root root  1320176 Sep  3 06:48 Questing_Quokka_Full_Dark_3840x2160.png
-rw-r--r-- 1 root root  1363529 Sep  3 06:48 Questing_Quokka_Full_Dimmed_3840x2160.png
-rw-r--r-- 1 root root  1541072 Sep  3 06:48 Questing_Quokka_Full_Light_3840x2160.png
-rw-r--r-- 1 root root  4546613 Sep  3 06:48 Questing_Quokka_Wallpaper_Dimmed_3840x2160.png
-rw-r--r-- 1 root root  5757248 Sep  3 06:48 Questing_Quokka_Wallpaper_Light_3840x2160.png
-rw-r--r-- 1 root root  3473785 Sep  3 06:48 Quokka_Everywhere_by_Dilip.png
-rw-r--r-- 1 root root  1798496 Sep  3 06:48 Schattenzug_by_OrbiteLambda.webp
-rw-r--r-- 1 root root  7600879 Sep  3 06:48 The_Web_by_nkhdiscovery.png
-rw-r--r-- 1 root root   931613 Sep  3 06:48 Ubuntu_with_Frutiger_Metro_by_lyk_lyk.png
drwxr-xr-x 2 root root     4096 Oct  7 04:44 contest
lrwxrwxrwx 1 root root       46 Sep  3 06:48 ubuntu-default-greyscale-wallpaper.png ->  Questing_Quokka_Wallpaper_Dimmed_3840x2160.png
-rw-r--r-- 1 root root  3678190 Sep  3 06:48 ubuntu-wallpaper-d.png
-rw-r--r-- 1 root root  4248111 Oct  7 04:46 warty-final-ubuntu.png

Cada entrada de la lista es un archivo. Veamos el significado de las columnas.

  • el primer carácter - indica que se trata de un archivo. Un directorio mostrará una d, y un enlace a otro fichero mostraría una letra l (abreviatura de “link”)

  • los nueve caracteres siguientes son los permisos que tiene el archivo. Puede
    ser:

    rwxrwxrwx
    

    los guiones indican permisos desactivados:

    rw-r--r--
    

    rwx significa read, write, execute, es decir, permiso para examinar el archivo, modificarlo o ejecutarlo. En la secuencia de nueve caracteres, los tres primeros, rw- indican los permisos que tiene el usuario “propietario” de ese archivo. Evidentemente, tratándose de un archivo .jpg, es decir, una imagen, el permiso para ejecutarlo está desactivado, ya que no es un programa.

    Los tres siguientes caracteres muestran los permisos para los usuarios que pertenezcan al grupo propietario. Todo archivo tiene un usuario y un grupo de usuarios. En este caso, se establece que los usuarios del grupo propietario no tienen permiso write. Es decir, no pueden modificar ni borrar el archivo.

    Los tres últimos caracteres muestran los permisos para el resto de usuarios.

  • la siguiente columna muestra el número de enlaces al fichero. Un 1 significa que esta es la única entrada de directorio que hace referencia a ese archivo.

  • seguidamente se muestran los nombres de usuario y grupo propietario. En el ejemplo vemos que solo podemos modificar o borrar el fichero si actuamos como usuario administrador del sistema (root).

  • en la siguiente columna vemos el tamaño del archivo en bytes

  • fecha de la última modificación

  • nombre del archivo. En el caso de los enlaces, va seguido del archivo enlazado.

Una opción interesante del comando ls es -F (en mayúsculas), que muestra un carácter añadido a los nombres de carpetas y archivos, indicando el tipo. Por ejemplo, las carpetas se señalan con un carácter /, y los programas ejecutables llevan un asterisco *.

$ ls ~ -lF

total 32
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Descargas/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Documentos/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Escritorio/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Imágenes/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Música/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Plantillas/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Público/
drwxr-xr-x 2 jf jf 4096 mar 11 12:05 Vídeos/

Véase que cuando combinamos varias opciones que estén limitadas a una letra y un guión, podemos escribirlas combinándolas en una sola, como -lF. A mí me gusta añadir también la opción -a, que muestra los archivos ocultos y las entradas correspondientes a la carpeta actual y la padre. Los archivos ocultos se distinguen porque el nombre lleva un punto como prefijo:

$ ls ~ -alF
total 80
drwxr-x--- 16 usuario usuario 4096 ene  8 16:45 ./
drwxr-xr-x  3 root    root    4096 ene  8 10:30 ../
-rw-------  1 usuario usuario   97 ene  8 17:09 .bash_history
-rw-r--r--  1 usuario usuario  220 ago 20 10:58 .bash_logout
-rw-r--r--  1 usuario usuario 3771 ago 20 10:58 .bashrc
drwx------ 15 usuario usuario 4096 ene  8 20:15 .cache/
drwx------ 14 usuario usuario 4096 ene  8 16:27 .config/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Descargas/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Documentos/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Escritorio/
drwx------  2 usuario usuario 4096 ene  8 13:07 .gnupg/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Imágenes/
drwx------  4 usuario usuario 4096 ene  8 10:30 .local/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Música/
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Plantillas/
-rw-r--r--  1 usuario usuario  807 ago 20 10:58 .profile
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Público/
drwx------  6 usuario usuario 4096 ene  8 16:13 snap/
drwx------  2 usuario usuario 4096 ene  8 10:30 .ssh/
-rw-r--r--  1 usuario usuario    0 ene  8 16:45 .sudo_as_admin_successful
drwxr-xr-x  2 usuario usuario 4096 ene  8 10:30 Vídeos/

Mostrar determinados archivos

Si no queremos ver el directorio completo, podemos especificar el nombre del archivo buscado. También podemos usar comodines:

ls -alF /home/teresa/doc*

este ejemplo muestra las entradas que hay en esa carpeta, cuyo nombre empiece por doc. El asterisco significa cualquier número de caracteres añadidos.

Cambiar de directorio

En comandos como ls, si no especificamos el directorio se utiliza la carpeta actual. Ya hemos visto que podemos saber cual es la carpeta de trabajo usando el comando pwd. Para establecer otra carpeta como tal, debemos usar el comando cd (change directory) seguido del directorio al que queremos cambiar. Por ejemplo:

cd /home/teresa/documentos

La ruta de carpetas indicada puede ser absoluta o relativa.

Una ruta absoluta es aquella que comienza con el carácter / (que representa el directorio raíz) o con el carácter ~, que representa el directorio de usuario. Por ejemplo, los programas del sistema suelen estar en /usr/bin.

$ cd /usr/bin
$ pwd
/usr/bin

Una ruta relativa puede ser de tres tipos:

  • Si se escribe ./carpeta hace referencia a una carpeta que cuelga de la actual, representada por el punto.

  • Si se escribe ../carpeta hace referencia a una carpeta que cuelga de la carpeta padre de la actual. La carpeta padre se representa con dos puntos.

  • Si la ruta comienza directamente con un nombre de carpeta, se trata de una que cuelga de la actual. Por ejemplo, carpeta1/carpeta2 equivale a ./carpeta1/carpeta2.

Nótese que podemos ir a una carpeta con varios comandos cd, paso a paso:

$ cd ~
$ cd carpeta1
$ cd carpeta2
$ pwd
/home/teresa/carpeta1/carpeta2

El primer comando nos deja en la carpeta raíz del usuario. El resto van descendiendo por la estructura de carpetas del usuario.

Para subir a la carpeta de la que cuelga la actual escribimos:

$ pwd
/home/teresa/carpeta1/carpeta2
$ cd ..
$ pwd
/home/teresa/carpeta1

Un comando cd sin indicar el directorio nos lleva a la carpeta raíz del usuario:

$ cd
$ pwd
/home/teresa/

Los siguientes cuatro comandos son equivalentes, suponiendo que tenemos un usuario llamado “usuario”:

cd
cd ~
cd /home/usuario
cd $HOME

La palabra $HOME representa la carpeta principal del usuario. HOME (sin el prefijo $) es una “variable” del sistema. Son los valores de configuración. Añadiendo el prefijo, obtenemos el valor asignado a esa variable.

No debemos olvidar que Linux es case sensitive. Una carpeta llamada /Documentos u otra /documentos son distintas, ya que el primer carácter difiere.

También hay que tener presente que un nombre de carpeta o archivo puede llevar espacios, y eso hará que actúen como separadores para identificar cada argumento del comando. Para evitarlo, podemos delimitar el texto de cada argumento entre comillas o entre apóstrofos, como hemos visto anteriormente:

cd "/mis documentos"

Abrir carpeta en Terminal

A veces, navegar por la estructura de carpetas a base de sucesivos comandos cd para cambiar de directorio, y ls para averiguar los nombres de las carpetas, puede ser farragoso. Podemos usar el gestor de archivos Nautilus, para navegar hasta la carpeta deseada, y abrir una ventana de terminal con la carpeta ya seleccionada.

Para ello, en el fondo de la ventana del gestor de arhivos, pulsar con el botón secundario del ratón para obtener un menú desplegable. Seleccionar Abrir en un terminal:

Permisos de administrador

Para ejecutar algunos comandos necesitamos permisos de administrador. En sistemas tipo UNIX, a los usuarios “de a pie” no se les permite realizar operaciones de configuración del sistema, instalación de nuevas aplicaciones, etcétera. Generalmente hay un usuario con permisos especiales denominado “root”, o superusuario.

Algunas distribuciones Linux, como es el caso de Ubuntu y derivados, no tienen habilitada la cuenta de superusuario. Podemos realizar tareas administrativas, de configuración, instalación de software, y cosas así, escribiendo los comandos precedidos por la palabra sudo (abreviatura de superuser do). Se nos pedirá la password de nuestro usuario.

Por ejemplo, si escribimos:

$ ls /root
ls: no se puede abrir el directorio '/root': Permiso denegado

es decir, no tenemos permiso para visualizar el contenido de la carpeta del administrador. Pero si escribimos:

$ sudo ls /root
[sudo] contraseña:    

se nos pide nuestra contraseña de usuario y seguidamente se ejecuta el comando.

Habilitar cuenta de administrador

En sistemas tipo Ubuntu, donde la cuenta de superusuario está deshabilitada, podemos activarla asignándole una contraseña al usuario “root”. Para ello usamos el comando passwd seguido del nombre de usuario:

$ sudo passwd root

lo que nos pide nuestra propia contraseña para permitirnos hacer el cambio:

[sudo] contraseña para usuario:        

Seguidamente nos pide la contraseña para el usuario root

Nueva contraseña: 
Vuelva a escribir la nueva contraseña: 
passwd: contraseña actualizada correctamente

Ahora ya podemos conectarnos como superusuario. En la sesión de shell, introducir el comando su (abreviatura de superuser):

$ su

Se nos pide la password del usuario root, y seguidamente el prompt cambia, para advertirnos que estamos trabajando en modo administrador:

#

Mientras estemos en esta sesión privilegiada, no hace falta anteponer la palabra sudo antes de cada comando. No debemos abusar de esta situación, ya que, aunque nos da más libertad, supone un peligro para el sistema. Podemos salir de la sesión de superusuario con el comando exit:

# exit
$

Véase que se recupera el prompt $ indicando que estamos trabajando con permisos normales. Para cerrar la sesión de Terminal, volver a introducir el comando exit nuevamente. Cada comando exit cierra solo la sesión en curso.

Existe otra forma de abrir una sesión de superusuario sin necesidad de activar la cuenta “root”. Se hace con el comando:

$ sudo -i

…lo que mostrará el prompt #. No olvidar finalizar con el comando exit.

Crear y editar archivos de texto

Para modificar archivos de configuración y otras labores varias, necesitaremos un editor de textos. Ubuntu proporciona uno gráfico, el de Gnome, pero también podemos usar editores que se ejecuten en la misma ventana del terminal.

Veamos un ejemplo. Comenzamos por situarnos en nuestra carpeta de documentos:

$ cd ~/Documentos

Vamos a crear un archivo de texto y editarlo. Para crear un nuevo archivo vacío en la carpeta actual, usamos el comando touch:

$ touch prueba.txt

El siguiente paso es abrirlo para su edición. El editor clásico en las antiguas consolas de texto es un programa llamado vi, pero su uso resulta una experiencia algo farragosa. Hay libros enteros dedicados a ello.

Optemos por algo más sencillo. Un editor de consola bastante popular es nano (véase wikipedia). Lo iniciamos introduciendo su nombre seguido del archivo a editar:

$ nano prueba.txt

Si quisiéramos modificar un archivo protegido, necesitaremos privilegios de administrador:

$ sudo nano prueba.txt

La ventana del terminal se convierte en editor de texto. Por ahora el contenido está en blanco. Podemos teclear texto, aunque aquí no funciona el ratón (en algunos sistemas se puede habilitar). Tenemos que desplazarnos con las teclas de flechas para introducir cambios en el contenido:

  GNU nano 8.1                       prueba.txt *                               









^G Ayuda     ^O Guardar   ^W Buscar    ^K Cortar    ^T Ejecutar  ^C Ubicación
^X Salir     ^R Leer fich.^\ Reemplazar^U Pegar     ^J Justificar^/ Ir a línea

Hemos introducido un texto:

  GNU nano 8.1                       prueba.txt *                               

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eget tortor 
non urna imperdiet vulputate. Nulla nisl lacus, accumsan sed nunc id, 
sollicitudin dignissim velit. Suspendisse aliquam lacus vitae enim maximus 
fermentum. Phasellus sodales leo in porttitor auctor. 

Aenean pretium quam ipsum, id porta erat dignissim tristique. 
Suspendisse ultricies feugiat ullamcorper. Phasellus vel sapien diam. 
Mauris id mi id augue condimentum ornare non nec massa. 
Cras in imperdiet erat. In venenatis lacus a metus fermentum, vel tincidunt 
neque tempor. Duis hendrerit ante vitae euismod pretium. 
Suspendisse in aliquam nulla.



^G Ayuda     ^O Guardar   ^W Buscar    ^K Cortar    ^T Ejecutar  ^C Ubicación
^X Salir     ^R Leer fich.^\ Reemplazar^U Pegar     ^J Justificar^/ Ir a línea

En la fila superior se muestra el nombre del programa y el del fichero en edición. Un asterisco significa que tenemos modificaciones en el texto pendientes de guardar:

GNU nano 8.1                       prueba.txt *                               

En las filas inferiores se muestran las combinaciones de teclas ligadas a alguna operación:

^G Ayuda     ^O Guardar   ^W Buscar    ^K Cortar    ^T Ejecutar  ^C Ubicación
^X Salir     ^R Leer fich.^\ Reemplazar^U Pegar     ^J Justificar^/ Ir a línea

El carácter ^ representa la tecla ctrl. Para guardar los cambios, pulsar ^O, es decir, ctrl+o (output). Para salir del editor, se teclea ctrl+x.

nano tiene muchas opciones que no están a la vista. Por ejemplo:

  • pulsando alt+m se activa el uso del ratón para posicionar el cursor (cuando el Terminal lo permite)
  • con alt+n se visualizan los números de línea en el margen izquierdo
  • con ctrl+g se accede a la ayuda (salir con ctrl+x)
  • con alt+u se deshace la última operación
  • con alt+x se muestra/oculta las dos líneas inferiores de ayuda, ganando espacio para el texto a editar

El manual de nano es algo técnico, pero tiene información interesante.

Operaciones con archivos y carpetas

Para crear una carpeta dentro de otra, nos situamos en esta:

$ cd micarpeta

y ejecutamos el comando mkdir (make directory):

$ mkdir nuevacarpeta

Para suprimir una carpeta, primero comprobamos si es la actual:

$ pwd

En caso afirmativo nos salimos de ella y nos situamos en otra carpeta (por ejemplo, la carpeta padre):

$ cd ..

Usamos el comando rm (remove):

$ rm -r nombrecarpeta

Sin la opción -r (borrado recursivo) solo podríamos suprimir carpetas vacías. Con -r se borran también los contenidos.

Para suprimir un archivo:

$ rm miarchivo

Para mover un archivo a otro directorio usamos el comando mv (move):

$ mv miarchivo nombredirectorio

Para renombrar un archivo:

$ mv miarchivo nombrenuevo

!Cuidado!


El uso de comandos para borrar carpetas y archivos no los envía a la carpeta de reciclaje. El borrado es definitivo. Este tipo de comandos deben teclearse con mucho cuidado.

Un truco interesante es que, si vamos a borrar un grupo de archivos:

$ rm arch*

…previamente comprobar cuales serán los afectados por el comando:

$ ls arch*

y comprobados los archivos, cambiar ls por rm

Buscando archivos

Si no sabemos donde se encuentra un archivo, podemos buscarlo con el comando locate:

$ locate miarchivo

locate es un comando muy potente, que se basa en el mantenimiento en la sombra de bases de datos para localizar cada archivo. Ubuntu no lo trae de serie, por lo que tendremos que instalarlo o usar en su lugar otros comandos tales como:

$ which miprograma
$ whereis miarchivo

Sin embargo, estos comandos son más limitados en sus posibilidades, y no valen para cualquier tipo de archivo. which busca programas, y whereis busca solo programas y texto en los manuales.

El comando find es el más potente y versátil. Básicamente, la sintaxis es:

$ find / -name miarchivo

El primer argumento / indica el directorio raíz del sistema como punto de partida. Podemos limitar la búsqueda a un directorio concreto y sus subdirectorios:

$ find /home/usuario -name miarchivo

El nombre del archivo a buscar debe ir precedido por la palabra -name.

Por ejemplo, vamos a buscar el archivo de configuración fstab, que indica
la lista de discos del sistema:

$ find / -name fstab

Esto plantea un problema, intentamos acceder a carpetas para las que no tenemos permiso. Obtendremos sucesivos mensajes de error:

$ find: ‘/carpeta’: Permiso denegado

Podemos añadir una opción especial 2>/dev/null para suprimir la visualización de estos mensajes:

$ find / -name fstab 2>/dev/null

lo que nos da la ubicación del archivo:

/etc/fstab

¿Que significa 2>/dev/null? Literalmente, enviar (el símbolo >) los mensajes de error (mesajes tipo 2, el texto ordinario sería el 1) al dispositivo (device) nulo (/dev/null).

Si no estamos seguros del nombre, podemos usar asteriscos como comodines:

$ find / -name fstab* 2>/dev/null

/etc/fstab
/usr/sbin/fstab-decode
/usr/share/doc/mount/examples/fstab
/usr/share/doc/m4/examples/fstab.m4
/usr/share/man/man8/fstab-decode.8.gz
/usr/share/man/man5/fstab.5.gz

Esto muestra todos los archivos cuyo nombre comienza por fstab.

Redireccionamiento

Si la salida del comando find es muy extensa, podemos beneficiarnos de la posibilidad que tienen los comandos de crear un archivo de texto en lugar de mostrar los resultados en pantalla:

$ find / -name fstab* 2>/dev/null  > archivo.txt

Esto reenvía el texto a un nuevo archivo, archivo.txt, que se creará en el directorio actual, salvo que especifiquemos otro:

$ find / -name fstab* 2>/dev/null  > ~/Documentos/archivo.txt

¡Ojo! Si el archivo ya existe, se sobreescribirá.

El redireccionamiento vale para cualquier comando:

$ ls -alf > lista.txt

Podemos examinar el fichero de texto que hemos creado:

$ nano archivo.txt

o con el comando less:

$ less archivo.txt

El comando less muestra en la pantalla el contenido del fichero indicado como argumento, sin posibilidad de edición. Permite desplazar el texto usando las teclas y . Salimos pulsando la tecla q (quit).

Un usuario avanzado combinará ambos comandos sin llegar a crear un archivo de trabajo:

$ find / -name fstab* 2>/dev/null | less

A esto se le llama un pipe. Encadenamos un comando tras otro, intercalando un símbolo |. La salida del primer comando sirve como entrada del siguiente, y lo que se ve en pantalla es la salida del último comando.

Variables de entorno

Para que cualquier programa (gráfico o de texto) se ejecute desde la línea de comandos, es necesario que esté ubicado en alguna de las carpetas estándar para alojar programas. Esta lista de carpetas está reflejada en la variable del sistema PATH.

Las variables del sistema son etiquetas asociadas a los valores de configuración del equipo. Podemos ver esos valores con el comando printenv. Por ejemplo:

$ printenv PATH

muestra algo así como:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Nota: una vez más, linux es case-sensitive. Una variable PATH y otra path son diferentes.

El valor de esta variable muestra las carpetas donde por defecto se buscarán los programas. Los elementos de la lista se separan entre ellos con dos puntos. En este ejemplo, los programas se buscarán, y por ese orden, en:

/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

¡Importante! Véase que solo podemos ejecutar programas ubicados en estas carpetas, a menos que los escribamos precedidos por el nombre de carpeta:

$ ./miPrograma

Aquí estamos ejecutando un programa ubicado en la carpeta actual, representada por un punto “ . “

Algunas variables interesantes:

  • La variable SHELL indica cual es el programa que se utiliza para imterpretar y ejecutar comandos:

    $ printenv SHELL
    /bin/bash
    
  • La variable HOME indica la carpeta raíz del usuario

    $ printenv HOME
    /home/Teresa
    
  • La variable USER indica el nombre del usuario

    $ printenv USER
    Teresa
    

Podemos utilizar las variables en los comandos. Su valor se obtiene anteponiendo un símbolo $ al nombre de la variable. Antes de la ejecución del comando, se sustituirá el nombre de la variable por su valor:

$ cd /home/$USER

equivale a:

$ cd /home/Teresa

o bien a:

$ cd $HOME

lo que equivale a:

$ cd ~

ya que el símbolo ~ es un alias de la carpeta de usuario.

Nótese que si olvidamos anteponer el símbolo $ al nombre de la variable:

$ cd HOME

no se sustituirá el nombre de la variable por su valor, y se buscará una carpeta llamada “HOME”.

Información del sistema

Existe un programa llamado Neofetch, disponible para distintos sistemas operativos, que sirve para mostrar información del sistema. Lo ejecutamos con el comando

$ neofetch

Ubuntu no incluye de serie neofetch. Tendremos que instalarlo con:

$ sudo apt install neofetch

De todas formas, el proyecto fue abandonado en 2024.

Alternativamente, tenemos información del sistema abriendo el programa de Configuración de Ubuntu, apartado Sistema > Acerca de.

Cambiar permisos

Recordemos que un archivo o carpeta tiene nueve permisos:

  • como usuario propietario: lectura, escritura y ejecución
  • como grupo propietario: lectura, escritura y ejecución
  • otros usuarios: lectura, escritura y ejecución

Para cambiar los permisos de un archivo o carpeta, se usa el comando chmod (change mode). El permiso puede ser:

  • r es el permiso de lectura (read)
  • w es el permiso de escritura (write)
  • x es el permiso de ejecución (execute)

Un permiso se puede otorgar añadiendo un símbolo +, y suprimir con -. Por ejemplo, para especificar un permiso de ejecución a un archivo de texto con comandos:

$ chmod u+x miarchivo

Para especificar a quien se otorga el permiso, añadimos:

  • u al usuario propietario (user)
  • g al grupo propietario (group)
  • o al resto de usuarios (others)
  • a a todos los usuarios (all)

Si no se indica nada, se considera “all”:

$ chmod +x miarchivo

Crear un script

Supongamos que actualizamos el sistema operativo periódicamente. Para ello, comenzamos por hacer copia de los documentos, borramos el disco duro, reinstalamos el sistema, recuperamos los archivos y reinstalamos nuestras aplicaciones favoritas de nuevo.

Imaginemos que queremos instalar el programa VLC, para visualizar vídeos . El comando sería:

$ sudo apt install vlc

Pero, ¿que pasa si tenemos una veintena de programas a instalar? La labor puede ser farragosa.

Existe un mecanismo consistente en poner una secuencia de comandos en un archivo de textos y usarlo como guión de trabajo, algo que se conoce como “script”. Lo podemos ejecutar como si fuera un programa.

Vamos a crear un script que haga esta labor. Imaginemos que queremos instalar tres aplicaciones:

  • VLC es un programa para visualizar vídeos
  • Chromium es un navegador web
  • Calibre es un lector de libros electrónicos

Comenzamos por asegurarnos de que estamos en la carpeta donde vamos a guardar nuestro script:

$ cd /home/luis/scripts

Creamos un archivo de texto vacío:

$ touch instalaciones.sh

El sufijo sh es típico para indicar un script del shell, pero no es obligatorio. Podemos editar el archivo con el comando:

$ nano instalaciones.sh

El texto del script podría ser algo asi como:

sudo apt install vls
sudo apt install chromium
sudo apt install calibre

Tenemos que indicarle cual es el programa shell que se va a encargar de ejecutar este script. Lo averiguamos con:

$ printenv SHELL
/bin/bash

Lo añadimos como primera línea del script:

#!/bin/bash
sudo apt install vls
sudo apt install chromium
sudo apt install calibre

Los caracteres #! indican que el resto de la línea es el programa encargado de ejecutar los comandos. El resto de líneas son los comandos en cuestión.

Una vez creado el archivo, que en nuestro ejemplo consiste en cuatro líneas de texto, tenemos que darle permisos de ejecución:

$ chmod +x instalaciones.sh

Ejecutamos el script introduciendo su nombre precedido por el directorio donde se ubica:

$ /home/luis/scripts/instalaciones.sh

O bien, tratándose del directorio actual:

$ ./instalaciones.sh

y con esto se descargarán e instalarán los tres paquetes de software. También podemos quitar la palabra sudo de los comandos y trasladarla a la orden de ejecución del script:

$ sudo ./instalaciones.sh

El lenguaje de comandos de bash es un mundo que daría lugar a un libro entero. En este cuaderno solo se pretende hacer una introducción, por lo que lo dejaremos aquí. Más adelante veremos un script para acceder a las carpetas compartidas con la máquina física en el caso de estar usando una máquina virtual.

Instalar software

Toda nueva instalación de Ubuntu deja en nuestra máquina una extensa colección de programas, que se puede ampliar acudiendo a los repositorios de la distribución para descargar e instalar todo tipo de paquetes de software. Para realizar esta labor contamos con varias herramientas que examinaremos en este capítulo.

Pero ¡cuidado! Es posible que, al añadir programas o hacer cambios en la configuración de nuestro ordenador, posteriormente queramos echar “marcha atrás”. Conviene guardar previamente una “instantánea” del sistema, algo que se conoce como un snapshot, y que nos permite recuperar el estado de la máquina.

Snapshots

Un snapshot es una “foto” del ordenador que refleja su estado en un momento determinado, la memoria RAM, procesos que se están ejecutando, contenido del disco, etcétera. Podemos usarlo en el futuro para descartar todos los cambios que se hayan producido durante el tiempo transcurrido. Resulta útil, por ejemplo, cuando vayamos a efectuar cambios que no sabemos como deshacer, o de cuyas consecuencias no estamos seguros.

VMware cuenta con una utilidad de snapshots, que guarda el estado completo de la máquina virtual en el momento de crearlo. Para mostrar la lista de snapshots, pulsar en el menú de VMware Máquina Virtual > Snapshots. Veremos todos los estados de la máquina que hemos ido guardando, y el estado actual. Para tomar un nuevo snapshot, seleccionar el estado actual, y en el menú emergente que se muestra tras pulsar con el botón secundario del ratón, pulsar sobre Realizar Snapshot:

Para recuperar un estado anterior de la máquina, volver a pulsar en el menú de VMware Máquina Virtual > Snapshots. Seleccionar el snapshot deseado y pulsar en Restablecer, en el menú emergente. Se nos dará la opción de guardar el estado actual de la máquina antes de restablecerla, creando un nuevo snapshot.

Cada snapshot consume espacio en nuestro disco, por lo que conviene no excedernos creando muchos de ellos. Se pueden eliminar siguiendo estos mismos procedimientos, y en lugat de la opción Restablecer, pulsar sobre Eliminar.

Dependencias

Una vez hecha una copia del estado de nuestra máquina virtual, podemos proceder a instalar los programas que deseemos. Pero la ejecución de muchos de estos programas puede depender de la existencia de otros complementos en nuestro equipo. La descarga de un paquete requiere, con frecuencia, que obtengamos otros necesarios, si no los tenemos ya.

Una de las fases de la instalación de una nueva aplicación es la comprobación de dependencias y la descarga de ese software complementario. Las herramientas que vamos a utilizar pueden resolver la instalación de dependencias de forma automática.

Formatos

La forma más simple de distribuir un paquete de software es reuniendo todos sus componentes en un archivo .zip. Tras su descarga, extraeremos los ficheros que lo integran y los dejaremos en alguna carpeta de nuestro equipo. Pero esto no resuelve dependencias ni configura el software. Las distribuciones Linux suelen contar con mecanismos para automatizar el proceso completo.

Una solución bastante potente, implementada por Debian, Ubuntu y otras distribuciones derivadas, consiste en “empaquetar” la aplicación y toda su información en un fichero .deb, gestionando la instalación con un programa que descargue, configurare el software, y controle las dependencias.

RedHat, Fedora y derivados siguen un planteamiento similar, utilizando un formato propio en forma de archivos .rpm (Red Hat Packaging Management).

Instalar paquetes desde el terminal de comandos

La forma más técnica de instalar software a partir de los repositorios heredados de Debian es usar el terminal de comandos. Supongamos, por ejemplo, que queremos instalar el reproductor de vídeo VLC. Vamos a utilizar el comando apt, Advanced Packaging Tool.

Cuando instalamos Linux, no se descarga todo el repositorio, pero sí un índice de lo que hay en él. Lo primero es actualizar esa base de datos que hay en nuestro equipo. El comando será:

$ sudo apt update

Véase que se necesita permisos de administrador, por lo que anteponemos la palabra sudo. Seguidamente hacemos la búsqueda con:

$ apt-cache search vlc

Este comando mostrará una lista de paquetes con ese texto en el nombre o en la descripción. Si la lista es muy extensa, podemos redirigir la salida al comando less:

$ apt-cache search vlc | less

El comando less visualiza el texto y permite desplazarlo por la pantalla con las teclas y . Se sale con la tecla q (abreviatura de quit).

Examinando la lista, veremos una entrada que dice:

vlc - reproductor multimedia y de flujo

y ese es el paquete a instalar:

$ sudo apt install vlc

Una vez completada la operación, ya tendremos VLC entre las aplicaciones. Esta forma de hacer las cosas automatiza todo el proceso, gestionando las dependencias. Pero está limitado a paquetes .deb.

El comando apt tiene una versión más antigua, llamada apt-get, con menos opciones de búsqueda y administración de paquetes. En cualquier caso, los dos comandos siguientes hacen lo mismo:

$ sudo apt-get install vlc
$ sudo apt install vlc

Sistemas derivados de RedHat


Aquí se describe el funcionamiento de Ubuntu, pero cada distribución tiene sus propias herramientas de configuración y administración. En sistemas tipo RedHat, como es el caso de Fedora, el comando equivalente a apt es dnf:

$ sudo dnf install vlc

Suprimir paquetes

El comando para eliminar una aplicación consiste en sustituir la palabra install por remove:

$ sudo apt remove vlc

Synaptic

Si no queremos depender del Terminal de comandos, Synaptic es un programa que nos proporciona la versión gráfica del comando apt. Como sucede con este, se limita a paquetes en formato .deb.

Lo encontraremos en el menú de aplicaciones, apartado Administración, con el nombre de Gestor de paquetes Synaptic. Si se da el caso de que nuestra distribución no lo incluye de serie, podemos instalarlo con:

$ sudo apt install synaptic

Al ejecutarlo, muestra un navegador de paquetes. Los marcados son los que ya tenemos instalados:

Pulsando en el menú Ayuda > Leyenda de iconos, obtenemos el significado de cada marca:

Pulsando en el botón Buscar, podemos filtrar los paquetes por nombre. Pulsando sobre un paquete, se muestra información del mismo. Pulsando sobre la casilla que hay a la izquierda de cada paquete, lo marcamos para instalar o desinstalar.

Una vez marcados los paquetes deseados, llevamos a cabo la instalación pulsando en el icono “Aplicar”. Si se da el caso, se nos preguntará si queremos instalar también las dependencias.

El gestor de software

La forma más simple de instalar software, reuniendo en un solo programa todos los repositorios de Ubuntu, es mediante un programa llamado Centro de aplicaciones. Lo encontraremos entre los programas que Ubuntu trae de serie:

Podemos navegar por una estructura de categorías, o hacer búsquedas por nombre. Una vez seleccionado un paquete, pulsamos sobre el mismo para obtener información e instalarlo.

Nótese que, al mostrar los resultados de búsqueda, se nos da opción a seleccionar la versión entre los paquetes del repositorio Debian, o los de la tienda de snaps.

La tienda de Snaps

Ubuntu tiene su propia versión de empaquetamiento, con el nombre de Snaps. Se trata de un sistema de gestión de paquetes universal, que pretende ser independiente de la distribución. Canonical, la empresa que distribuye Ubuntu, ha creado con este sistema una especie de Linux Store. Ver https://snapcraft.io

De todas formas, la “Tienda de Snaps” tiene sus detractores. Existe otra alternativa de empaquetamiento universal, popular en otras distribuciones, llamada Flatpack. Ver https://flathub.org

Ya hemos visto que, en el caso de paquetes Debian, podemos usar el comando apt para instalar software, como alternativa al uso del Centro de Aplicaciones. La tienda de Snaps también es accesible mediante comandos:

  • para ver las aplicaciones instaladas:

    $ snap list
    
  • para buscar aplicaciones a instalar:

    $ snap find texto
    
  • para obtener información sobre una aplicación:

    $ snap info nombre
    
  • para instalar una aplicación:

    $ snap install nombre
    
  • para desinstalar una aplicación;

    $ snap remove nombre
    

Instalar a partir de descargas

Programas como Synaptic, el Centro de aplicaciones o el comando apt nos dan acceso a los repositorios de Ubuntu, y resuelven automáticamente las dependencias, descargando el software complementario que pudiera ser necesario para el buen funcionamiento del paquete a instalar.

Pero si queremos obtener un programa cuya versión en los repositorios no es la más reciente, o que no está incluido, tenemos que acudir a la página web del programa en cuestión. Suele haber diferentes opciones de descarga:

  • un programa instalador que resuelva de forma automática todo el proceso
  • un archivo comprimido del que podemos extraer su contenido y copiarlo al disco duro. Pero esto no resuelve la gestión de dependencias
  • un archivo en formato .deb o .rpm cuya instalación permite resolver esas dependencias de forma automatizada.

Veamos un ejemplo de descarga manual. Abrimos el navegador web y acudimos a la página del editor de textos Visual Studio Code. Descargamos el archivo con extensión .deb, propio de sistemas tipo Debian.

¡Cuidado!


En este cuaderno estamos describiendo el uso de Linux en plataformas Apple con arquitectura ARM de 64 bits. No intentar descargar e instalar software para chips de Intel, ya que es incompatible.

En el caso de Visual Studio Code, hay que pulsar en el enlace other platforms y, si tenemos un MacBook ejecutando Ubuntu en una máquina virtual, seleccionar el formato .deb para plataformas ARM64

Tras la descarga, comprobamos que en la carpeta de descargas tenemos un archivo cuyo nombre es algo así como:

code_1.96.2-1734606918_arm64.deb

Para gestionar las instalaciones de paquetes descargados manualmente, nos va a venir muy bien un programa llamado Gdebi:

$ sudo apt install gdebi

Una vez instalado, lo ejecutamos con el comando:

$ gdebi-gtk

Se abre una ventana de trabajo. Con el menú “Archivo” seleccionamos el fichero descargado, y usamos el botón Instalar para proceder a la instalación manual, resolviendo dependencias.

Ajustes

Una vez instalado Linux, y tras explorarlo un poco, vamos a configurarlo a nuestro gusto.

VMWare Tools

El sistema operativo Linux no es consciente de estar ejecutándose en una máquina virtual, por lo que algunas características proporcionadas por VMWare no funcionarán, por falta de respuesta de la máquina Linux.

Para solucionar esto, tenemos que instalar en esa máquina virtual Linux un programa llamado “VMWare Tools”, que nos proporciona funciones tales como:

  • Carpetas compartidas entre el host y el guest
  • Copiar y pegar entre la máquina virtual y el escritorio del host
  • Sincronización del reloj de la máquina virtual con el reloj del escritorio del host o del cliente
  • Integración del ratón
  • Mejora del rendimiento

Muchas distribuciones Linux (incluyendo Ubunu) incorporan en sus repositorios de software un programa alternativo llamado Open-VM-Tools, que suele estar más adaptado a esa distribución en particular. Abrimos Synaptic, y buscamos el paquete Open-VM-Tools. Si ya viene instalado de serie, no hay que hacer nada. Si no es así, instalarlo desde Synaptic, o bien mediante el comando apt. Son dos paquetes:

$ sudo apt install open-vm-tools
$ sudo apt install open-vm-tools-desktop

Para que tenga efecto, habrá que reiniciar la máquina virtual.

Carpetas compartidas

Una vez comprobado que tenemos instalado VMWare Tools, podemos establecer determinadas carpetas a compartir entre ambas máquinas, la física y la virtual. Hay que que acudir a la configuración de la máquina virtual y seleccionar el apartado Compartir:

Podemos añadir o quitar carpetas de la lista pulsando los botones + o -. Podemos ponerlas como de solo lectura (para la máquina virtual) o bien, de lectura y escritura.

Para acceder desde la máquina Linux tenemos que asociar esa carpeta compartida a una carpeta en la estructura de directorios de Linux, lo que actuará como “punto de montaje”. Véase más información en el siguiente artículo:

https://kb.vmware.com/s/article/60262

La versión Open-VM-Tools no monta automáticamente las carpetas compartidas, y tenemos que hacerlo a mano cada vez que iniciamos la máquina virtual Linux. Esto resulta más seguro, ya que limita la exposición de nuestra máquina host, pero puede ser un incordio. Para automatizar el montaje de una carpeta, vamos a modificar el archivo de configuración de puntos de montaje, /etc/fstab.

Puntos de montaje


Todos los discos conectados se asocian a una carpeta dentro de la estructura general de directorios. El archivo /etc/fstab contiene la lista de puntos de montaje. Cada entrada de la lista representa un disco. En la máquina virtual, las carpetas compartidas de la máquina Host se visualizan como discos externos, accediendo como haríamos con un DVD, por ejemplo.

¡Cuidado!


Modificar manualmente la configuración del sistema tiene sus riesgos. En este caso, si cambiamos los puntos de montaje de los discos, puede que a máquina virtual deje de funcionar por no ser capaz de acceder a ningún disco.

Puede ser una buena idea hacer previamente un snapshot de la máquina virtual, como se explicaba en un capítulo anterior.

Abrimos el terminal de comandos e iniciamos el editor de textos con privilegios de administrador activados. El comando es:

$ sudo gnome-text-editor /etc/fstab

Al editor de textos le estamos pasando como argumento el fichero a modificar. El texto del fichero es algo así como:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p2 during curtin installation

/dev/disk/by-uuid/ef97ec66-b574-4c9f-ad26-7e6edbec7a9c / ext4 defaults 0 1

# /boot/efi was on /dev/nvme0n1p1 during curtin installation

/dev/disk/by-uuid/41F5-383E /boot/efi vfat defaults 0 1
/swap.img   none    swap    sw  0   0

Bien. Esto es un poco técnico. Cada línea de este archivo describe un punto de montaje, y las líneas que comienzan con # serán ignoradas. Se usan como documentación. Las líneas en blanco tampoco tienen efecto.

Añadimos la siguiente línea al final del texto del archivo:

vmhgfs-fuse    /mnt/compartidas    fuse    defaults,allow_other    0    0

Lo que estamos especificando con esta línea añadida es:

  • que tenemos un dispositivo llamado vmhgfs-fuse. Es el nombre que VMWare usa para referirse a las carpetas compartidas.
  • que lo queremos montar en el directorio /mnt/compartidas
  • que el tipo de disco es fuse, algo propio de VMWare
  • el resto de parámetros son opciones de montaje

Típicamente, el directorio /mnt se usa para montar dispositivos externos, aunque para DVDs y cosas así se utiliza /media.

Para que todo esto funcione, hay que reiniciar la máquina virtual. El sistema resolverá estos puntos de montaje y, la primera vez, creará automáticamente una nueva carpeta /mnt/compartidas, donde tendremos acceso a las carpetas compartidas con la máquina física.

Es decir, si compartimos dos carpetas de la máquina física, carpeta1 y carpeta2, el acceso será mediante:

/mnt/compartidas/carpeta1
/mnt/compartidas/carpeta2

Nota importante


Compartir carpetas con la máquina física no está exento de riesgos. Los cambios que hagamos en una máquina se reflejarán en la otra, pero puede haber interferencias. Por ejemplo, la papelera de reciclaje de la máquina física no es accesible para la máquina virtual. Si intentamos eliminar un archivo de una carpeta compartida desde la máquina virtual, el borrado será definitivo. Este tipo de operaciones conviene hacerlas desde la máquina física.

En el explorador de archivos Nautilus podemos crear un enlace en la barra lateral para acceder cómodamente a las carpetas compartidas.

Montar y desmontar carpetas compartidas

Configurar el archivo /etc/fstab para que las carpetas compartidas se monten automáticamente en el directorio /mnt/compartidas puede no ser lo ideal, ya que deja esas carpetas de la máquina física expuestas a las acciones de la máquina virtual.

Alternativamente, podemos montar y desmontar manualmente las carpetas, solo cuando necesitemos tener acceso a ellas. Para montar todas las carpetas configuradas para ser compartidas, escribimos el comando:

$ sudo /usr/bin/vmhgfs-fuse .host:/  /mnt/compartidas   -o subtype=vmhgfs-fuse,allow_other

Siendo:

  • sudo indica ejecutar con permisos de administrador del sistema
  • /usr/bin/vmhgfs-fuse es el programa que gestiona las carpetas compartidas. Forma parte del paquete VM-Tools.
  • ./host:/ indica todas las carpetas compartidas
  • /mnt/compartidas es el directorio de la máquina virtual donde vamos a acceder al contenido
  • el resto son opciones de configuración

Si queremos montar solo una carpeta física, añadir su nombre a ./host:/

$ sudo /usr/bin/vmhgfs-fuse .host:/micarpeta  /mnt/compartidas/micarpeta   -o subtype=vmhgfs-fuse,allow_other

para desmontar las carpetas y cortar el acceso a ellas:

$ sudo umount /mnt/compartidas

Si no queremos estar tecleando comandos continuamente, podemos crear un script de comandos, y un lanzador en el escritorio (un icono) para ejecutarlo. Lo veremos más adelante, en el capítulo dedicado al escritorio.

Bloqueo de pantalla

En el caso de inactividad, la pantalla se bloquea y nos obliga a introducir la contraseña para desbloquearla. Tratándose de una máquina virtual, esta opción ya la tenemos en la física. Para desactivar los bloqueos, en la configuración del sistema, ir a la configuración de Ubuntu, apartado Privacidad y Seguridad > Retardo para apagar la pantalla = Nunca.

Gestión de usuarios

Podemos cambiar nuestra password, crear y eliminar usuarios, o cambiar la forma de inicio de sesión (automático o con contraseña). Para estas labores, ir a la configuración de Ubuntu, apartado Sistema > Usuarios.

Algunas de estas opciones estarán bloqueadas hasta que pulsemos en el botón Desbloquear e introduzcamos nuestra contraseña.

Cambios en el Terminal

Cada escritorio proporciona su propia emulación de Terminal. La de Ubuntu muestra una ventana en cuya barra superior se muestra un icono para desplegar un menú. La opción Preferencias permite configurar el funcionamiento del terminal.

Modificando el prompt de comandos

Personalmente, hay una cosa que no me gusta del Terminal de comandos: el prompt.

Si por ejemplo estamos en una carpeta /home/usuario/documentos/archivos_recientes/, el prompt será algo así como:

nombreusuario@nombremaquina:/home/usuario/documentos/archivos_recientes$

Esto recorta bastante espacio para el comando a introducir, y es una información que generalmente no resulta necesario tenerla presente continuamente. Generalmente se muestra en la barra de título de la ventana, y de todas formas, podemos averiguar la información mediante comandos. La carpeta actual se obtiene con el comando print working directory:

$ pwd

El nombre de usuario se puede obtener con el comando who am i (sin espacios):

$ whoami

Podemos averiguar información del sistema con el comando uname seguido del parámetro -a (all):

$ uname -a

La información mostrada incluye el sistema operativo y el nombre de la máquina.

Podemos ahorrar espacio si cambiamos el aspecto del prompt. A mi me gusta que solo refleje la carpeta actual, eliminando el nombre de usuario y la máquina.

En Ubuntu, la configuración del prompt se establece en el archivo ~/.bashrc. Recordemos que el directorio ~ es la carpeta raíz del usuario. El archivo .bashrc lleva un punto como prefijo, lo que en sistemas tipo Unix indica un fichero oculto.

Comenzamos por abrir el explorador de Archivos, nos situamos en la carpeta raíz del usuario y pulsamos en la opción de menú Mostrar archivos ocultos. Aparecerá un archivo .bashrc. Con ese archivo seleccionado, pulsamos con el botón secundario del ratón, y en el menú desplegable seleccionamos Copiar. Hacemos una copia del archivo en la misma carpeta.

Ahora tenemos dos archivos, .bashrc y .bashrc (copia). Este segundo nos servirá de respaldo si rompemos algo. En caso de apuro, borraremos el .bashrc y renombraremos .bashrc (copia) para que vuelva a llamase .bashrc.

Hacemos doble clic sobre .bashrc. Es un archivo de texto que se abrirá en el editor de textos:

Esto resulta bastante técnico, pero ¿quien dijo miedo? Comenzamos por localizar las líneas de texto que configuran el prompt:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

La que tiene efecto es la segunda línea, ya que el terminal admite coloreado:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Esta secuencia de parámetros indican al Terminal los datos a mostrar en el prompt y los códigos de color a aplicar.

Anteponemos un carácter # a esa línea, para anularla, y escribimos debajo como queremos que quede:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\w\[\033[00m\]\$ '

Con lo que el bloque queda así:

if [ "$color_prompt" = yes ]; then
#   PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

Guardamos los cambios, cerramos la ventana del Terminal (si la teníamos abierta) y volvemos abrirla. El prompt debería mostrarse con la nueva configuración:

~$

Explicación del prompt

Si tenemos curiosidad por analizar los cambios introducidos en el prompt, vamos a “destripar” la línea:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

PS1 es una variable del sistema. Lo que estamos haciendo es asignarle un valor:

PS1='especificaciones'

Los parámetros que nos interesan son:

  • \u muestra el usuario (user). Va seguido de un carácter @ a mostrar tal cual. Es decir, si el usuario es Luis, \u@ se sustituirá por Luis@

  • \h muestra el nombre de máquina (host). Va seguido de un código de color [\033[00m\] y los dos puntos : a mostrar

  • \w muestra el directorio de trabajo (working directory)

  • \$ muestra el carácter $ a mostrar. Va seguido de un espacio en blanco, que también se mostrará.

Las secuencias intermedias como \[\033[01;33m\] establecen los colores de cada elemento del prompt:

  • la que precede a \u es este caso es \[\033[00;31m\], que indica un color verde. Cambiando 00 por 01 se muestra en verde intenso.

  • la secuencia que precede a \w es \[\033[01;34m\], que especifica un color azul.

  • para recuperar el color por defecto se usa la secuencia \[\033[00m\]

Los códigos de color son:

  • \033[0;30m\] - Black
  • \033[0;31m\] - Red
  • \033[0;32m\] - Green
  • \033[0;33m\] - Brown
  • \033[0;34m\] - Blue
  • \033[0;35m\] - Purple
  • \033[0;36m\] - Cyan
  • \033[0;37m\] - Light gray

Véase que los códigos van de 30 a 37. Cambiando el 0 por un 1, tendremos colores más intensos:

  • \033[1;30m\] - Dark gray
  • \033[1;31m\] - Light red
  • \033[1;32m\] - Light green
  • \033[1;33m\] - Yellow
  • \033[1;34m\] - Light blue
  • \033[1;35m\] - Light purple
  • \033[1;36m\] - Light cyan
  • \033[1;37m\] - White

La primera parte del prompt solo tiene efecto en situaciones muy especiales, y la dejaremos tal cual:

${debian_chroot:+($debian_chroot)}

Suprimimos la visualización del nombre de usuario, que va precedida por los códigos de color y muestra un @ añadido:

\[\033[01;32m\]\u@

También suprimimos el nombre de la máquina:

\h\[\033[00m\]:

Dejamos la visualización del directorio de trabajo:

\[\033[01;34m\]\w

Y el restaurado de color por defecto y símbolo $:

\[\033[00m\]\$

Con lo que la cosa queda así:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\w\[\033[00m\]\$ '

VMware y el sonido

Uno de los motivos por los que prefiero VMWare sobre VirtualBox es por su mejor rendimiento. Pero en las versiones más recientes de Linux, el sonido falla en ambas opciones. Suena entrecortado.

Supongo que, en algún momento, tanto VMWare como VirtualBox proporcionarán alguna solución a este problema. Mientras tanto, vamos a ver como podemos arreglarlo. Buscando en Internet he encontrado debates varios sobre el tema y, supuestas soluciones que a mi no me funcionan. Aun así, descubrí una forma de resolver el problema.

En resumen, parece que hay un software llamado PipeWire que gestiona el sonido en segundo plano, y que es el que da problemas. Nació en 2017 y ha ido sustituyendo a otro programa muy popular, PulseAudio.

Lo que podemos hacer si tenemos problemas es sustituir PipeWire por el viejo PulseAudio. Vamos a usar el Terminal de comandos:

  • Paso 1: Descargar PulseAudio con el comando:

    sudo apt install pulseaudio
    
  • Paso 2: Usar el comando systemctl, que sirve para gestionar los servicios del sistema, y desactivar pipewire a nivel de usuario. Son seis comandos a ejecutar:

    systemctl --user stop pipewire.socket
    systemctl --user stop pipewire.service
    systemctl --user disable pipewire.socket
    systemctl --user disable pipewire.service
    systemctl --user mask pipewire.socket
    systemctl --user mask pipewire
    
  • Paso 3: Con el mismo comando systemctl, activar pulseaudio como gestor de audio:

    systemctl --user unmask pulseaudio
    systemctl --user unmask pulseaudio.socket
    systemctl --user enable pulseaudio.service
    
  • Paso 4: Ahora que ya tenemos configurado pulseaudio como gestor, tenemos que ponerlo en marcha:

    systemctl --user start pulseaudio.service
    

    Esto tendremos que hacerlo cada vez que encendemos la máquina. Veremos a continuación como automatizar este paso.

  • Paso 5: Comprobar que pulseaudio está trabajando con el comando:

    pactl info
    
  • Paso 6: Probar el sonido con alguna aplicación, por ejemplo, entrando en Youtube con el navegador web Firefox.

Tenemos que ejecutar el paso 4 (comando start) cada vez que iniciemos la máquina virtual. Podemos establecer que ciertos comandos se ejecuten automáticamente al iniciar el sistema. Para ello, tenemos que editar el archivo .profile (fichero oculto) que hay en la carpeta principal del usuario. Abrimos el editor de textos con el comando:

gnome-text-editor ~/.profile

y al texto le añadimos el comando a ejecutar de forma automática:

systemctl --user start pulseaudio.service

El escritorio de Ubuntu

A lo largo de este cuaderno ya hemos ido explorando el funcionamiento del escritorio de Ubuntu. Ahora haremos un repaso de algunas de sus características.

Tenemos la guía de uso en este enlace.

El Dock

La barra lateral del escritorio se denomina Dock, y es un añadido de Ubuntu al escritorio de Gnome. Podemos pulsar en cualquier icono del Dock para iniciar la aplicación correspondiente o para seleccionar una de las ventanas abiertas.

El Dock muestra los iconos de las aplicaciones favoritas y las que están en ejecución. Si queremos incluir una aplicación entre las favoritas, el primer paso es ejecutarla. Esto hará que aparezca temporalmente en la barra. Pulsamos con el botón secundario del ratón sobre ese icono del Dock , y seleccionamos la opción Pin to Dock (fijar al Dock).

Una vez añadida cualquier aplicación al Dock, desaparecerá de la parrilla. Alternativamente, la operación Pin to Dock. También está disponible visualizando la parrilla de aplicaciones y pulsando sobre la elegida con el botón secundario del ratón, seleccionar Pin to Dock en el menú emergente.

Cuando un icono del Dock muestra uno o varios puntos, significa que hay abiertas una o varias ventanas de esa aplicación. Pulsando sobre el icono con el botón secundario del ratón, se muestra la lista de ventanas para seleccionar una de ellas o abrir una nueva.

Podemos reorganizar los iconos en el Dock. Basta con arrastrarlos a su nueva posición. Para quitar un icono del Dock, pulsar con el botón secundario del ratón y seleccionar “quitar”.

Para ocultar el Dock, acudir a la configuración del sistema, apartado Escritorio > Dock. Podemos hacer que se oculte o muestre cuando acercamos el puntero del ratón al borde de la pantalla. También podemos cambiar el tamaño de los iconos, o llevar el Dock al costado derecho o inferior del escritorio.

La papelera y los dispositivos externos conectados se incluyen automáticamente en el extremo de la barra. Su visualización se puede activar o desactivar acudiendo a la configuración del sistema, apartado Escritorio > Dock > Comportamiento.

La parrilla (grid)

La parrilla de aplicaciones es complementaria del Dock. Podemos organizar los iconos de la parrilla arrastrándolos para ordenarlos a nuestro gusto.

No todas las aplicaciones instaladas se muestran en la parrilla. Ubuntu selecciona solo las que considera más importantes, y de esa selección, excluye las incorporadas al Dock.

Podemos agrupar los iconos de la parrilla en forma de carpetas. Para crear una carpeta con dos iconos, arrastrar uno sobre el otro. Se unirán los dos en un grupo. Para añadir otros iconos al grupo, arrastrarlos a esa carpeta.

Para editar el nombre de un grupo, pulsar sobre el mismo y, una vez abierto su contenido, pulsar en el icono de editar la cabecera.

Para eliminar un grupo, arrastrar los iconos fuera del mismo.

Capturar pantalla

Pulsando la tecla prtsc podemos abrir la aplicación de Captura de Pantalla:

Teclados Mac


Como lo que tenemos en este cuaderno es un teclado Mac, nos encontraremos con que no hay tecla prtsc Podemos simular una pulsación de esta tecla mediante el menú de VMWare, máquina virtual > enviar tecla > Impr Pant. Tendremos un mejor acceso a esta función si activamos la visualización de la minibarra, como se explicó en el apartado dedicado a la instalación del sistema.

También podemos iniciar la Captura de Pantalla desde el menú desplegable del sistema, donde encontraremos un icono al lado del de configuración:

Al ejecutarse la captura de pantalla, muestra un recuadro con seis iconos:

cuyo significado de izquierda a derecha y de arriba abajo es:

  • capturar el área seleccionada con el ratón
  • capturar la pantalla completa
  • capturar la ventana activa
  • seleccionar entre capturar imagen o grabar video
  • botón para hacer la captura
  • mostrar puntero en la captura (si/no)

Al pulsar en el botón Capturar, se guarda una imagen en la carpeta /Imagenes/Capturas de pantalla.

Como alternativa de la aplicación de captura de pantalla, podemos instalar otros programas similares acudiendo al Centro de Aplicaciones. Por ejemplo, podemos instalar spectacle, que forma parte del escritorio Plasma de KDE.

Múltiples escritorios

Cuando tenemos varias ventanas de aplicaciones en ejecución, podemos seleccionar una u otra:

  • pulsando en la ventana correspondiente
  • pulsando en el icono de la aplicación en la barra lateral (el Dock)
  • recorriendo la lista de aplicaciones con la combinación de teclas alt+tab

Si tenemos muchas aplicaciones abiertas, podemos utilizar varios escritorios (áreas de trabajo), y poner las aplicaciones en uno u otro. De forma predeterminada, Gnome tiene dos espacios de trabajo disponibles, el original y uno adicional vacío. A medida que vayamos utilizándolos, se añadirá automáticamente uno vacío.

Si cerramos ventanas y vaciamos un escritorio, las áreas de trabajo sobrantes se suprimirán, manteniendo siempre un único escritorio vacío.

Para pasar de un escritorio a otro, pulsar ctrl+alt+ o, para hacerlo en sentido contrario, ctrl+alt+. Para utilizar un área de trabajo, desplazarse hacia ella y abrir allí las aplicaciones deseadas.

Podemos obtener una vista conjunta de todas las áreas, y navegar de una a otra. Para ello, pulsar en el icono “Actividades”, en la esquina superior izquierda del escritorio. Podemos arrastrar ventanas de un área a otra.

La barra Dash

El escritorio Gnome original, sin los añadidos de Ubuntu, no tiene una barra Dock de aplicaciones favoritas. En su lugar, al pulsar en el botón de Actividades, en la esquina superior izquierda, se visualizan las áreas de trabajo y una barra inferior de favoritos, llamada Dash, que incluye un icono para visualizar la parrilla de aplicaciones.

Tecla Super

En los teclados Mac hay una tecla cmd que Linux toma como tecla super. En otros teclados puede ser la tecla win u otra diferente. De todas formas, en máquinas virtuales depende de lo que tengamos configurado en WMware.

Una vez identificada la tecla que sirve como super podemos configurar su uso en el apartado de configuración del sistema, apartado Teclado.

En el escritorio, pulsando en super se muestra la vista general de ventanas y áreas de trabajo:

Avisos y agenda

En el centro de la barra superior del escritorio tenemos un reloj y fecha. Pulsando ahí, se abre una ventana de notificaciones y calendario. Pulsando en uno de los días, se abre una agenda que nos permite programar avisos.

Personalizar el escritorio

La configuración del sistema nos permite personalizar el aspecto que tiene el escritorio:

  • Para cambiar la imagen del fondo, descargamos algún fondo de escritorio que nos guste (por ejemplo, desde Pixabay o desde Pexels), y en la aplicación “Configuración del Sistema” buscamos el apartado Apariencia > Fondos de Escritorio > Añadir imagen. Tomamos la imagen de la carpeta de Descargas, añadiéndola a los fondos de escritorio, y la seleccionamos como fondo.

  • En el apartado Apariencia > Estilo seleccionar un color para iconos, ventanas, etc.

Mostrar icono de carpeta personal

Para ocultar o mostrar en el escritorio el acceso a la carpeta personal, ir a la Configuración > Iconos > Mostrar carpeta personal.

Gnome Tweaks

Más allá de las opciones estándar de personalización del escritorio, contamos con una utilidad llamada GNOME Tweaks (retoques de GNOME), que proporciona opciones añadidas de configuración, tipografías, cambiar el juego de iconos, las áreas de trabajo, el comportamiento del ratón, etc.

Esta aplicación se instala abriendo el terminal y ejecutando el comando:

$ sudo apt install gnome-tweaks 

Para ejecutarla, introducir el comando:

$ gnome-tweaks

o bien, en la rejilla de aplicaciones, buscar una llamada “retoques”.

Podemos usarlo, por ejemplo, para cambiar el juego de iconos (menú Apariencia > Estilos).

Extensiones

Gnome es un escritorio excesivamente minimalista, pero podemos ampliar sus funcionalidades con extensiones. El proyecto oficial da soporte a muchas de ellas en la página web https://extensions.gnome.org.

De hecho, Ubuntu trae de serie algunas de esas extensiones ya instaladas. Podemos hacer nuestros propios añadidos para personalizar la experiencia. Para descargar e instalar extensiones, tenemos que instalar el programa gestor de extensiones con el comando:

$ sudo apt install gnome-shell-extension-manager

lo que dejará en la rejilla de aplicaciones una nueva aplicación “Extensiones”.

Al ponerlo en marcha, vemos las que trae Ubuntu por defecto:

Veamos algunas extensiones para mejorar el escritorio de Ubuntu. Vamos a instalar:

  • Dash to panel. Sustituye la barra del Dock de Ubuntu por una barra Dash mejorada en el borde inferior del escritorio, con más funcionalidades. Integra la barra superior de Gnome:

    Como podemos ver, muestra un funcionamiento más cercano a los escritorios tradicionales. Pero no integra, por defecto, el botón de actividades que teníamos en la esquina superior izquierda. Podemos activar su visualización entrando en la configuración de la extensión.

    Configurar extensiones


    Las extensiones se configuran seleccionando cada una de ellas en el gestor de extensiones, y pulsando en el icono de configurar (rueda dentada ) si está disponible.

  • Apps Menu. Añade un menú desplegable de aplicaciones, que convive con la rejilla de Gnome:

  • Places Status Indicator. Añade un menú desplegable con las principales carpetas de usuario. En la barra Dash se muestra como “Lugares

Iconos en el escritorio

Gnome no proporciona la posibilidad de poner iconos de aplicaciones y archivos en el escritorio, pero Ubuntu añade esta opción mediante la extensión Desktop Icons.

Para arrastrar un documento o carpeta al escritorio, basta con hacerlo desde el Gestor de archivos. Si pulsamos la tecla ctrl al mismo tiempo, en lugar de arrastrar, haremos una copia del documento o carpeta.

El contenido del escritorio es en realidad un reflejo de la carpeta /home/usuario/Escritorio, por lo que si abrimos esta en el Gestor de Archivos, también podemos gestionar el contenido del escritorio añadiendo o suprimiendo elementos en la carpeta.

Lanzadores en el escritorio

En líneas generales, los programas se pueden ejecutar:

  • pulsando en los iconos de la barra lateral, el dock
  • buscando en los iconos de la parrilla de programas
  • desde el terminal de comandos, introduciendo el nombre del programa.

Una cuarta opción es crear “lanzadores” en el escritorio. Son iconos sobre los que podemos pulsar para ejecutar una acción.

Veamos un ejemplo. Vamos a crear un lanzador para la calculadora. Lo primero es ejecutarla y abrir el programa Resources. Descubrimos que la calculadora es en realidad un programa llamado gnome-calculator.

Cerramos la calculadora. Abrimos un terminal de comandos y comprobamos el comando a ejecutar:

$ gnome-calculator

Esto debería abrir la calculadora en otra ventana. La cerramos.

Lo siguiente es situarnos en la carpeta de escritorio:

$ cd ~/Escritorio

Los lanzadores son archivos de texto con la extensión .desktop. Creamos uno con:

$ touch calculadora.desktop

Con esto tenemos un fichero de texto vacío. Vamos a editar su contenido:

$ gnome-text-editor calculadora.desktop

El texto serán las especificaciones técnicas del lanzador:

[Desktop Entry]
Name=Calculadora
Comment=La calculadora de Gnome
Exec=gnome-calculator
Terminal=false
Icon=org.gnome.Calculator
Type=Application

Todo esto son las directrices que necesita un lanzador. En el ejemplo, vemos una línea con el comando a ejecutar para iniciar el programa:

Exec=gnome-calculator

El tipo de lanzador se indica en la línea:

Type=Application

El nombre que se mostrará bajo el icono:

Name=Calculadora

Guardamos el contenido del archivo. Seguidamente, tenemos que asignarle permisos de ejecución:

$ chmod +x ~/Escritorio/calculadora.desktop

Finalmente, tenemos que hacer que el lanzador sea “de confianza”. Pulsar con el botón secundario del ratón sobre el nuevo icono del escritorio y seleccionar la opción “permitir lanzar”.

En realidad hay una forma más cómoda de hacer todo esto. Podemos copiar los lanzadores ya existentes (los que se utilizan para ser mostrados en la parrilla de aplicaciones, por ejemplo). Para ello, examinar la carpeta /usr/share/applications. El lanzador de la calculadora es un archivo llamado org.gnome.Calculator.desktop. Podemos copiarlo a la carpeta ~/Escritorio, pero tendremos que repetir la maniobra de “permitir lanzar” en el icono del escritorio.

Especificaciones de los lanzadores


Los lanzadores son archivos de texto cuyo formato se corresponde con el proyecto Freedesktop.org. Ver especificaciones en la página web del proyecto.

Lanzadores en el grid

No todas las aplicaciones están incluidas en la parrilla. Los iconos de esta son en realidad lanzadores. Ya hemos visto que el icono que ejecuta la calculadora es en realidad el archivo org.gnome.Calculator.desktop guardado en la carpeta /usr/share/applications. Estos lanzadores se guardan en:

  • aplicaciones a nivel global:

    /usr/share/applications
    
  • aplicaciones particulares de usuario:

    ~/.local/share/applications
    

Paa añadir na aplicación a la parrilla, basta con crear un lanzador y ponerlo en alguna de estas carpetas.

Un lanzador para montar y desmontar carpetas compartidas

Vamos a crear en el escritorio un lanzador que ejecute un script para conectar y desconectar el acceso a carpetas compartidas de la máquina física, de forma que limitemos su visibilidad sin necesidad de tenerlas expuestas permanentemente.

Abrimos el Terminal y nos situamos en la carpeta principal del usuario:

$ cd

Creamos el scrip:

$ touch montar_compartidas.sh

Los scripts son pequeños programas consistentes en una lista de comandos a ejecutar. Lo de ponerles la extensión .sh es opcional. Es la abreviatura de “shell”.

Abrimos el archivo con el editor de textos:

$ gnome-text-editor montar_compartidas.sh

El texto del archivo puede ser algo así como:

#!/bin/bash

# Montar/desmontar carpetas de la máquina física
# compartidas con la virtual
#
# La variable RUTA hace referencia al punto de
# montaje en la máquina virtual
#
# Las carpetas a compartir se establecen en la
# configuración de VMware de la máquina virtual

RUTA=/mnt/compartidas

while true; do
    clear
    echo "Acceso a carpetas compartidas de la máquina host."
    echo
    echo "Carpetas actualmente montadas y accesibles:"
    echo
    ls /mnt/compartidas/* -d1 2> /dev/null
    estado=$?
    if [[ $estado != 0  ]]; then 
        echo "    no hay carpetas compartidas"
    fi
    echo
    echo "---------------------------------------------------"
    echo "Seleccione:"
    echo
    echo "   M. Montar carpetas"
    echo "   D. Desmontar carpetas"
    echo "   S. Salir"
    echo
    read -p "Introduzca opción M/D/S seguida de Intro: " opcion
    echo "---------------------------------------------------"
    echo
    if [[ "$opcion" =~ [Mm]$ ]]; then
            echo "Montar carpetas."
            echo "Se intentará con las establecidas en la configuración VMware de la máquina virtual"
            sudo /usr/bin/vmhgfs-fuse .host:/ $RUTA -o subtype=vmhgfs-fuse,allow_other 2>/dev/null
            estado=$?
            if [[ $estado != 0  ]]; then 
                read -p "Error montando carpetas. Pulse Intro para continuar."
            else
                read -p "Operación realizada. Pulse Intro para continuar"
            fi
            continue
    fi
 
    if [[ "$opcion" =~ [Dd]$ ]]; then
            echo "Desmontando carpetas"
            echo "Se intentará desmontar todas las carpetas en $RUTA"
            sudo umount $RUTA 2>/dev/null
            estado=$?
            if [[ $estado != 0  ]]; then 
                read -p "Error desmontando carpetas. Pulse Intro para continuar"
            else
                echo "Operación realizada."
                echo "Si observa que siguen montadas, probablemente se debe a que" 
                echo "el dispositivo está ocupado. Reintente la operación."
                read -p "Pulse Intro para continuar"                
            fi
            continue
    fi

    if [[ "$opcion" =~ [Ss]$  ]]; then
        break
    fi
    
    echo "Entrada inválida."
    read -p "Pulse Intro para volver a intentarlo."
    
done

Ya hemos hablado del intérprete de comando bash. Cuenta con todo lo necesario para convertirse en todo un lenguaje de programación, y a este tipo de archivos con comandos a ejecutar se les llama scripts.

En realidad, no hace falta que entendamos muy bien el texto de este archivo. Basta con copiar y pegarlo. Algunas observaciones:

  • las líneas que comienzan con # son “comentarios”. Se insertan en el script a efectos de documentación.

  • la primera línea ha de ser: #!/bin/bash, para que el sistema operativo lo identifique como script a ejecutar

  • tenemos que revisar la línea 12:

    RUTA=/mnt/compartidas
    

    sustituyendo la ruta /mnt/compartidas por la que corresponda. Debe tratarse de una carpeta ya existente, donde se van a montar las carpetas compartidas. Si no existe, podemos crearla con la siguiente secuencia de comandos:

    $ cd /mnt
    $ mkdir compartidas
    

    mkdir es el comando que crea nuevos directorios en la carpeta actual (“make directory”).

Guardamos el texto del archivo y cerramos el editor. Damos permisos de ejecución al script con el comando:

$ chmod +x ~/montar_compartidas.sh

Lo ejecutamos desde el terminal de comandos, para verificar su correcto funcionamiento:

$ cd
$ ./montar_compartidas.sh

Esto muestra las carpetas actualmente compartidas, y un menú de opciones:

Acceso a carpetas compartidas de la máquina host.

Carpetas actualmente montadas y accesibles:

    no hay carpetas compartidas

---------------------------------------------------
Seleccione:

   M. Montar carpetas
   D. Desmontar carpetas
   S. Salir

Introduzca opción M/D/S seguida de Intro: 


Pulsamos M para montar las carpetas, D para desmontarlas, o S para finalizar la ejecución del script, seguido de enter. La primera vez que montemos o desmontemos las carpetas, se nos pedirá la contraseña de usuario:

[sudo] contraseña para usuario: 

Al intentar desmontar una carpeta, se mostrará un mensaje de error si cualquier programa está haciendo uso de ella.

Este script puede ejecutarse desde el terminal de comandos, pero lo que nos interesa es crear un lanzador en el escritorio. Nos situamos en la carpeta ~/Escritorio:

$ cd ~/Escritorio

Creamos el lanzador:

$ touch montar_compartidas.desktop

Es un archivo de texto. Editamos su contenido:

[Desktop Entry]
Name=Montar compartidas
Comment=Montar/desmontar directorios compartidos
Exec=/home/usuario/montar_compartidas.sh
Terminal=true
Icon=/usr/share/icons/Humanity/actions/48/gtk-open.svg
Type=Application

Véase que en el apartado Exec ponemos el script a ejecutar. Como icono hemos seleccionado uno de la carpeta /usr/share/icons.

Tras pulsar sobre el icono en el escritorio y seleccionar la opción “permitir lanzar”, ahora tendremos una forma cómoda de desconectar las carpetas compartidas de la máquina física.

Enlaces a carpetas

Para poner en el escritorio un icono que muestre el contenido de una carpeta, podemos crear un lanzador que abra el gestor de archivos, Nautilus:

$ cd ~/Escritorio
$ touch carpetas_compartidas.desktop

Editamos el contenido del fichero:

[Desktop Entry]
Name=Compartida
Comment=Carpetas compartidas
Path=/mnt/compartidas/micarpeta
Exec=nautilus --new-window /mnt/compartidas/micarpeta
Icon=org.gnome.Nautilus
Terminal=false
Type=Application

El apartado Exec establece que se ejecute Nautilus, en una nueva ventana si ya está abierto, y mostrando la carpeta especificada. El apartado Path establece cual es la carpeta de trabajo. Si no está montada, la pulsación sobre el lanzador no tendrá efecto.

Dispositivos externos

Conexión USB

Hoy en día, la mayoría de dispositivos que podemos conectar a nuestro ordenador, discos duros externos, impresoras, etc, suelen enchufarse a un puerto USB. Si tenemos una máquina virtual en marcha, al conectar un dispositivo, VMWare nos preguntará a que máquina se debe asignar, si a la física o a la virtual:

Si por ejemplo conectamos un pendrive, su contenido será accesible desde la máquina seleccionada.

Unidades de almacenamiento

Tratándose de un disco duro externo, una unidad de almacenamiento pendrive o similar, una vez hecha la conexión tendremos acceso a sus carpetas y ficheros. Dependiendo de la distribución de Linux y la configuración que hayamos establecido, el montaje de la unidad suele ser automático.

Si abrimos el explorador de archivos, veremos un nuevo enlace en el apartado Dispositivos de la barra lateral (el Dock). Pulsando sobre ese enlace, accedemos a los contenidos como lo haríamos con cualquier otro directorio. Pulsando con el botón secundario del ratón, tenemos un menú emergente con varios operaciones que podemos realizar, entre ellas, la operación de Expulsar.

Haciendo doble clic sobre el icono en el Dock, se abrirá el contenido del pendrive en el Gestor de Archivos, y podremos ver la carpeta asociada. Dependiendo de la distribución, suele ser una subcarpeta montada en /media o en /mount.

¡Muy importante! Antes de extraer el dispositivo, pulsar sobre la opción “Expulsar”. Esto desmontará la unidad (deshará la asociación con el directorio asignado) y evitará que perdamos datos.

Expulsar los discos antes de extraerlos del puerto USB

Los ordenadores están diseñados para transferir datos entre dispositivos lo más rápido posible. Uno de los impedimentos a la velocidad del sistema son los dispositivos lentos.

Las impresoras son un buen ejemplo. Incluso la más rápida es extremadamente lenta para los estándares de cualquier computadora. En la prehistoria de la informática, esto era un problema, ya que si estabas imprimiendo un documento, el ordenador se bloqueaba hasta finalizar la impresión. Se solucionó reservando un espacio de la memoria RAM, denominado “buffer de impresora”. Los programas envían los datos a este buffer, y a continuación se desentienden de la impresión. El sistema operativo comprueba, en segundo plano, que hay datos en el buffer, y los envía a la impresora.

El concepto de buffer se ha generalizado para todos los dispositivos, incluso los aparentemente más rápidos. Con frecuencia, los datos destinados a ser guardados en disco se van acumulando en un buffer de memoria y, de vez en cuando, el sistema operativo escribirá dichos datos en el dispositivo físico.

La operación de desmontar/expulsar un dispositivo incluye completar todas las operaciones pendientes, liberando el buffer de su contenido, de forma que el aparato pueda ser retirado con seguridad. Si se retira sin desmontarlo, existe la posibilidad de que haya operaciones de almacenamiento de datos pendientes de ejecutar. En algunos casos, puede incluir actualizaciones críticas de directorios, lo que causará una corrupción de todo el sistema de archivos, una de las peores cosas que le puede ocurrir a un ordenador, ya que dejaría todo el disco irrecuperable.

Impresoras

Como sucede con los discos externos, al conectar una impresora a un puerto USB, esta será detectada en el momento de conectarla y encenderla. Se nos preguntará si queremos conectar la impresora como dispositivo de la máquina física o la virtual:

Pulsando en Configuración, apartado Impresoras, podemos ver el estado de la impresora, y desconectarla, llegado el caso.

Escanear documentos

Muchas impresoras son multifunción, e incorporan la posibilidad de escanear documentos. Si hemos conectado el dispositivo, para usarlo como escaner debemos iniciar el programa Escaner de documentos, en el menú de aplicaciones. Comienza detectando los dispositivos conectados, y seguidamente muestra el espacio de trabajo:

Pulsando en el botón Escanear se lleva a cabo el escaneo. Pulsando en el botón de la rueda, ajustamos las opciones.

Trabajando con Linux

Una vez instalada y configurada la máquina virtual, vamos a mencionar algunas de las cosas que podemos hacer con ella.

Office

Si necesitamos un procesador de textos, una hoja de cálculo, elaborar presentaciones, etc, Libre Office es una completa solución de oficina que proporciona todas estas herramientas. Es más o menos compatible con Microsoft Office. Véase https://es.libreoffice.org para más información.

Libre Office es un software que tiene sus orígenes en un programa comercial de la década de 1980, llamado Star Office. En 1999 fue adquirido por la compañía Sun Microsystems, quien deseaba incorporar a su gama de herramientas un software de proceso de textos y hoja de cálculo. Lo publicaron en dos versiones, una con soporte comercial y otra en formato libre, denominada Open Office, en cuyo desarrollo involucraron a una amplia comunidad de programadores.

En 2010, Sun Microsystems fue absorbida por Oracle, quien canceló la política open source, por lo que muchos de los que se habían implicado en el desarrollo de Open Office abandonaron y se pusieron de acuerdo para dar inicio a un nuevo proyecto. Crearon una organización sin fines de lucro, llamada The Document Foundation, y pusieron en marcha el diseño de Libre Office, tomando Open Office como punto de partida.

Libre Office viene instalado de serie en las distribuciones de Ubuntu, y consta de seis módulos:

  • Libre Office Writer es el procesador de textos.

  • Libre Office Calc. Hoja de cálculo compatible con Microsoft Excel.

  • Libre Office Impress. Presentaciones.

  • Libre Office Base. Bases de Datos. En algunas distribuciones Linux no suele venir por defecto, por lo que tendremos que instalarlo a mano.

  • Libre Office Math. Es un editor de ecuaciones científicas que luego podemos insertar en nuestros documentos.

  • Libre Office Draw. Editor de imágenes.

Tenemos la documentación del producto en:

https://documentation.libreoffice.org/

Ubuntu incluye de serie el navegador Mozilla Firefox. Su página web es https://www.mozilla.org/es-ES/firefox/.

El proyecto Mozilla nació en el año 1998, a raíz de la mala evolución y posterior desaparición de la empresa Netscape, comercializadora del programa Netscape Navigator. La Fundación Mozilla es una organización sin ánimo de lucro presentada en julio de 2003 para garantizar la continuidad del proyecto Mozilla más allá de la participación de voluntarios individuales.

Otra alternativa que podemos instalar es Chromium, el navegador web que utiliza Google como base para desarrollar Chrome. Opera es un navegador alternativo a Firefox, y Epiphany es un sencillo navegador que forma parte de las herramientas Gnome.

Correo electrónico

Ubuntu incluye el programa de correo electrónico de Mozilla, llamado Thunderbird. Al iniciarlo, basta con introducir nuestro correo y contraseña para que Thunderbird se encargue de verificar permanentemente si hay correos nuevos.

Como gestor de correo alternativo podemos instalar Evolution, un gestor de información personal que forma parte de las herramientas GNOME. Incluye correo electrónico, calendario, agenda y lista de tareas.

Fotos

Para visualizar nuestras fotografías, Gnome incluye un programa llamado Shotwell Photo Manager:

Otras alternativas son:

Photoshop

El equivalente es el célebre programa GIMP. Página web: https://www.gimp.org/

Autoedición

Para componer nuestras publicaciones y otros documentos profesionales, podemos usar Scribus.

Modelado 3D

Blender es un programa dedicado al modelado y animación tridimensional.

Programas de dibujo

Como herramienta de dibujo y gráficos vectoriales podemos usar Inkscape

Krita es otro programa de pintura digital e ilustración. Forma parte de las herramientas KDE:

Nótese que, aunque usemos el escritorio Gnome, no estamos limitados a sus complementos. También podemos usar las aplicaciones que forman parte del proyecto KDE, por ejemplo.

Otra alternativas de dibujo:

  • Drawing
  • Pinta es un programa de dibujo que emula el popular “Paint” de Microsoft.
  • MyPaint
  • KolourPaint es el programa de dibujo del escritorio KDE.

Multimedia

Mensajería

Desarrollo de juegos

Programas de utilidad

Además del Terminal y el editor de texto, Ubuntu incluye de serie pequeñas utilidades como:

  • Calculadora
  • Calendario
  • Escaner de documentos
  • Visor de documentos

Grabador de CDs y DVDs

  • Brasero - Graba CD/DVD
  • K3B - Otro grabador de CD/DVD

Tomar imágenes con la cámara integrada

Ubuntu incluye un programa para visualizar lo que capturamos con la cámara. En el caso de máquinas virtuales, tenemos que asegurarnos que tenemos configurado el acceso a este dispositivo. Hacerlo en configuración de Linux, apartado Privacidad.

Videoconferencia

Muchas aplicaciones de videoconferencia son a través de una página web, como es el caso de Google Meet. También hay aplicaciones que podemos instalar, como es el caso de Skype, pero de todas formas, estaremos condicionados por el software del resto de participantes en la reunión.

Lector de libros electrónicos

Uno de los programas más populares es Calibre.

Programas de transferencia de archivos

Ubuntu incluye de serie un programa llamado Transmission. Otras opciones que podemos instalar son:

  • FileZilla es un programa FTP. Podemos instalar la versión “Cliente” del repositorio, o la versión “Servidor” de la página web.
  • Deluge es un gestor de descargas bitTorrent.
  • Dropbox es un programa para gestionar el almacenamiento en la nube

Aplicaciones de Gnome

Ver Lista. De hecho, algunos de ellos vienen preinstalados en los sucesivas lanzamientos de Ubuntu.

La colección GNU

Ya hemos visto que GNU fue en sus inicios un proyecto de sistema operativo libre que ha ido evolucionando hasta convertirse en una amplia colección de software. Encontraremos la lista de programas en su página web.

Antivirus

Antes de instalar un antivirus, conviene hacer un análisis de los más populares. Los hay gratuitos y de pago. En este cuaderno mencionaré uno bastante popular, Clam AV.

Juegos

El ecosistema Linux cuenta con un repositorio de juegos de libre descarga que muchas veces nada tiene que envidiar a los juegos comerciales. Si abrimos el App Center y pulsamos en la categoría Games, veremos una amplia selección de programas.

Tenemos una lista de juegos open source en la wikipedia. Algunos de mis favoritos:

  • 0ad es una versión del conocido Age of Empires de Microsoft. Página web
  • Warzone 2100 es un juego de estrategia de guerra futurista Página web
  • SGT Puzzles Collection es una entretenida colección de puzzles
  • Pingus es un clon del famoso juego Lemmings. Página web
  • GNOME Reversi Página web
  • Aisleriot es la colección de solitarios de Gnome. Página web
  • SuperTuxKart es un juego arcade de carreras. Página web
  • La colección de juegos de KDE. Página web

Desarrollo

Además de las aplicaciones que hemos visto, podemos utilizar nuestro ordenador para desarrollar software. Cada lenguaje de programación es un mundo, pero las distribuciones de Linux suelen proporcionar toda clase de herramientas en sus repositorios, y algunas de ellas vienen instaladas de serie.

Por ejemplo, si abrimos el Terminal, con el comando apropiado encontraremos una versión del intérprete del lenguaje Python:

$ python3 -V
Python 3.10.12

o del compilador gcc:

$ gcc --version
gcc 11.4.0

Algunas veces me he encontrado con mensajes de error indicando que falta alguna de las piezas básicas. Lo suelo solucionar con el comando:

$ sudo apt install --reinstall build-essential

El paquete build-esential es un meta-paquete con todas las herramientas esenciales para compilar software. Contiene la GNU compiler collection, GNU debugger, bibliotecas y herramientas.

En cuanto a la escritura de programas, podemos utilizar el editor básico de nuestra distribución, pero existen otros editores. Uno de los más populares es Visual Studio Code, de Microsoft, con versiones para Linux, Mac y Windows. Otro de los clásicos es emacs, que forma parte de la colección GNU. Otra alternativa es Geany, que es mi editor de textos favorito.