Aprende a dominar la Terminal de Linux como un profesional

Aprende a dominar la Terminal de Linux como un profesional

Rubén Velasco

Es cierto que las distribuciones Linux han cambiado muchísimo en los últimos años. A día de hoy, prácticamente cualquiera se puede usar desde una interfaz basada en ventanas muy similar a la de Windows. Ningún usuario debe tener miedo ni pensar que Linux es un sistema operativo complicado. Sin embargo, sí es cierto que, si queremos sacarle todo el partido posible y exprimirlo al máximo, debemos usar la Terminal. Y aquí es donde nace el miedo de muchos usuarios.

La Terminal de Linux es una consola, similar a CMD o PowerShell(pero mucho más avanzada que ambas), utilizada para permitir a los usuarios más avanzados y técnicos controlar hasta el más mínimo detalle del sistema operativo.

Desde esta consola podemos ejecutar todo tipo de binarios, aunque lo suyo es ejecutar aquellos que no tienen interfaz gráfica y que deben usarse mediante comandos. Igual que en otros sistemas operativos, podemos ejecutar cualquier binario o script directamente desde su directorio. Además, Linux tiene también un PATH donde podemos guardar binarios y ejecutarlos sin tener que desplazarnos hasta su directorio. Por defecto, el PATH de Linux está formado por los siguientes directorios (donde se busca el comando en orden):

  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /user/games
  • /usr/local/games
  • /snap/bin

La terminal de Linux se basa en un lenguaje de scripting conocido como Bash, heredada de sh, la consola de Unix. Podemos ejecutar scripts desde la consola, ejecutar binarios y realizar todo tipo de tareas. A diferencia de Windows, Linux cuenta en su terminal una gran cantidad de herramientas muy avanzadas para administrar y controlar el sistema operativo.

Todo lo que hacemos desde una interfaz, podríamos hacerlo perfectamente desde la terminal. Aunque de forma más complicada, larga y menos intuitiva.

Cómo abrir un Terminal en Linux

Cada distro Linux tiene sus propias peculiaridades, por lo que puede que esto cambie. Nosotros vamos a usar para los ejemplos Ubuntu, la distro equilibrada entre rendimiento, usabilidad, seguridad y estabilidad más usada en todo el mundo.

Hay dos formas de llegar al terminal de Ubuntu. La primera de ellas es lanzando un TTY, o espacio de trabajo sin entorno gráfico. Podemos ejecutar 7 terminales al mismo tiempo de esta forma. De la 1 a la 6, ninguna tiene interfaz gráfica. La única con GUI es la TTY7.

Para cambiar de TTY en Linux, debemos usar el atajo de teclado Control + Alt más la tecla, del F1 al F7, del TTY que queramos ejecutar.

TTY Ubuntu

Y si queremos usar la terminal como tal, podemos encontrar una app dedicada, que se ejecuta en una ventana, dentro del panel de aplicaciones de nuestra distro. En el caso de Ubuntu, por ejemplo, podemos encontrar este terminal dentro del cajón de programas del entorno gráfico GNOME.

Abrir Terminal Ubuntu

Comandos básicos para Terminal

Aunque puede parecer complicada de usar, no debemos tener miedo a la consola de Linux. Podemos usarla desde para administrar las partes más avanzadas del sistema operativo (como los daemon que se ejecutan junto con systemd), hasta para ejecutar aplicaciones normales.

Terminal Ubuntu

Cada programa de Linux tiene asociado un nombre, el nombre de su paquete. Por ello, si introducimos el nombre de dicho paquete en la Terminal (por ejemplo, firefox), podremos ver cómo se nos abre directamente el navegador. Incluso que abra directamente una página web.

Ejecutar Firefox terminal Ubuntu

Esto es lo más sencillo y básico de la Terminal. Pero hay también muchos otros comandos esenciales que debemos conocer y que nos ayudarán a controlar mucho mejor esta consola.

Movernos por los directorios

Algo esencial para poder empezar a defendernos con la terminal de Linux es saber cómo movernos por los distintos directorios. Lo primero que nos llamará la atención es el símbolo ~ que aparece a la izquierda de los comandos. Este indica el directorio inicial (/home/usuario) donde hemos empezado.

cd

Usando el comando «cd» podemos cambiar de directorio y movernos por todo el árbol de nuestro disco duro. Podemos ir a la carpeta «Descargas» que hay dentro de «/home/usuario/» ejecutando el comando:

cd Descargas

También podemos usar rutas completas, como:

cd /home/usuario/Descargas

ls

Una vez que estamos en el directorio que queremos, podemos usar el comando «ls» para ver una lista con todos los archivos que hay en ese directorio.

mkdir

Este comando nos permite crear una nueva carpeta en el directorio en el que estamos ubicados. Debemos ejecutar este comando seguido del nombre de la nueva carpeta que queremos crear, por ejemplo:

mkdir software

cp

Con este comando podemos copiar un archivo de un directorio a otro. Podemos usarlo para copiar un archivo del directorio actual a otro directorio, o introduciendo dos rutas absolutas:

  • cp archivo /home/usuario/Documentos
  • cp /home/usuario/Descargas /home/usuario/Documentos

Podemos usar este comando para copiar un directorio y todos sus archivos de un lugar a otro. Para ello debemos usar el parámetro -R de la siguiente manera:

cp -R /home/usuario/Descargas/ /home/usuario/Descargas-Copia/

mv

Este comando funciona igual que el comando cp que acabamos de ver, con la diferencia de que, en vez de copiar el archivo, lo mueve (es decir, desaparece del origen). Este comando también se puede usar para cambiar el nombre a un archivo. Simplemente debemos moverlo al mismo directorio con un nombre diferente. Por ejemplo:

mv archivo1 archivonuevo

Por supuesto, también podemos usarlo para mover directorios:

mv /directorio-origen/ /directorio-destino/

rm

Por último, vamos a hablar del comando rm. Este nos permite eliminar cualquier archivo usando rutas relativas (es decir, un archivo dentro de nuestra ruta actual, que veamos con ls), o rutas absolutas, moviéndonos hasta el directorio donde se guarda el archivo.

  • rm archivonuevo
  • rm /home/usuario/Descargas/archivonuevo

También podemos usarlo para eliminar directorios completos:

rm -rf /home/usuario/directorio

pwd

Este sencillo comando tiene una única (y útil) finalidad: mostrarnos el directorio en el que estamos trabajando. Muy útil cuando nos hemos desplazado (recordamos, con CD) por varios subdirectorios y no nos acordamos exactamente en cuál estamos trabajando.

Comandos del sistema

Linux también cuenta con una gran variedad de comandos que nos permiten controlar la mayoría de los aspectos del sistema operativo. Algunos de los más sencillos y que nos merece la pena conocer son:

  • date: muestra la fecha y la hora.
  • cal: nos muestra un calendario.
  • uptime: muestra el tiempo que lleva encendido el ordenador.
  • uname –a: nos muestra la versión del kernel.
  • whoami: nos indica cuál es nuestro usuario actual.
  • chmod: nos permite cambiar los permisos de cualquier archivo o directorio.
  • chown: nos permite cambiar la autoría de cualquier archivo o directorio.
  • mount: nos permite montar unidades (discos duros, USB, tarjetas de memoria, etc) en un directorio.
  • clear: nos permite limpiar la Terminal para trabajar con ella de manera más ordenada.

Para la gestión de usuarios:

  • su: permite iniciar sesión como root desde la sesión actual.
  • exit: cierra la sesión de root abierta.
  • adduser: nos permite añadir un nuevo usuario a nuestro Linux.
  • passwd: nos permite cambiar la contraseña del usuario que le especifiquemos.

Podemos controlar los procesos que se ejecutan en nuestra distro con:

  • top: un visor de procesos sencillo con el que ver todo lo que se está ejecutando en el sistema.
  • kill ID: nos permite matar cualquier proceso desde su identificador.
  • ps: muestra todos los procesos en ejecución.
  • free: nos muestra información sobre la RAM usada y libre.

Por último, también tenemos algunos comandos para controlar el inicio y apagado del PC:

  • halt: detiene todos los procesos del sistema y lo apaga.
  • shutdown: nos permite apagar el PC en un minuto. Podemos usar el parámetro -R para especificar el tiempo, en minutos, para apagar el PC. Y con -H now podemos saltarnos el minuto de espera y apagar el equipo directamente.
  • reboot: reinicia el ordenador.

Instalar y desinstalar programas

Desde la terminal de Linux también se suelen instalar y desinstalar todo tipo de programas. Aquí sí es donde cada distro cambia, ya que el gestor de paquetes que viene incluido por defecto en Ubuntu no es el mismo que podemos encontrar, por ejemplo, en Arch Linux.

En Ubuntu, el gestor de paquetes que encontramos es APT. Con él, desde Terminal, podemos descargar, instalar, actualizar y eliminar cualquier paquete de software. Las distros vienen con unos repositorios de software bastante completos, por lo que si conocemos el nombre del paquete podemos instalarlo fácilmente de la siguiente manera:

apt install firefox

Para eliminar un programa instalado, podemos cambiar «install» por «remove» (para eliminar solo los paquetes) o «purge» (para eliminar el paquete y todas las configuraciones y demás archivos residuales):

apt purge firefox

También debemos saber cómo añadir nuevos repositorios a Ubuntu y cómo actualizarlos para tener siempre las últimas versiones del software.

Por último, desde la consola también podemos descargar e instalar las últimas actualizaciones para nuestra distro Linux. Siguiendo el ejemplo de Ubuntu, podemos descargar las últimas actualizaciones para nuestra versión de Ubuntu (tanto del sistema como de las aplicaciones instaladas) con:

  • apt update
  • apt upgrade

Y si hay una nueva versión de Ubuntu (de las que salen cada 6 meses), podemos descargarla e instalarla con los siguientes comandos:

  • apt update
  • apt do-release-upgrade

Algunas distros pueden usar otros gestores de paquetes, como pacman, o hacernos recurrir directamente a los instaladores como «dpkg», «yum» y «rpm».

Comandos de red

También podemos usar la Terminal de Linux para realizar consultas y peticiones a través de Internet. Los comandos más conocidos, utilizados y útiles que podemos encontrar dentro de esta categoría son:

  • ifconfig: nos permite ver una lista con todas las direcciones IP de nuestro PC.
  • ping [servidor o IP]: envía un ping a un servidor (Google, en nuestro ejemplo), comprueba si hay respuesta y mide la latencia.
  • traceroute: traza la ruta completa desde nuestro PC hasta el servidor.
  • whois [servidor]: obtiene información acerca de un dominio (en nuestro caso, Google).
  • wget [url]: nos permite descargar el archivo que le especifiquemos en la URL.
  • ftp [servidor o IP]: nos permite conectarnos a un servidor FTP.
  • iptables: nos permite abrir el administrador del firewall nativo de Linux.

Programas de terminal

Todas las distros suelen traer, al menos, un programa para poder usar la terminal de Linux desde el entorno gráfico. Además, todas ellas tienen una, o varias, TTY que nos permite usar nuestra distro sin el servidor gráfico X, exclusivamente en terminal.

Pero en la red existen una gran cantidad de programas de terminal, cada uno con unas características únicas, de manera que cada usuario pueda elegir la consola que más le guste o mejor se adapte a sus necesidades o forma de trabajar.

GNOME Terminal

Terminal de GNOME en Ubuntu

Sin duda, la más conocida y utilizada. Esta consola forma parte de las herramientas que vienen incluidas en el escritorio GNOME de Linux, escritorio que viene por defecto en muchas distros, como, por ejemplo, Ubuntu. Sencillo, rápido y ligero, este terminal cumple son su función, y es más que suficiente para la mayoría de los usuarios.

sudo apt install gnome-terminal

XTerm

XTerm

Otro terminal muy popular dentro de Linux. Este viene instalado junto al servidor de ventanas X Window, y ofrece un TTY sencillo a la vez que potente y, sobre todo, muy ligero. Esta consola siempre va a estar disponible en todas las distros Linux que podamos encontrar, siempre que tengan servidor gráfico.

sudo apt install xterm

Konsole

Konsole

Igual que GNOME Terminal era la consola del escritorio GNOME, Konsole es la que viene por defecto en los escritorios KDE. Además de contar con una gran cantidad de opciones de personalización, también tiene soporte para pestañas y marcadores, lo que facilita el trabajo a los usuarios.

sudo apt install konsole