Introducción a la línea de comandos de Linux

Tutorial de comandos Linux

Para poder aprovechar cualquier VPS (servidor privado virtual, por sus siglas en inglés) es importante saber cómo inspeccionar el sistema operativo. Entre otras cosas, esto involucra acceder al servidor en forma segura, manipular archivos y directorios, instalar software y gestionar servicios. Este tutorial de comandos Linux te enseñará cómo comenzar para dar tus primeros pasos en este apasionante mundo.

Antes de comenzar con el tutorial de comandos Linux

Inspeccionar la estructura de directorios

A diferencia de otros sistemas operativos, Linux tiene solamente un árbol de directorios sin importar cuántos dispositivos de almacenamiento estén disponibles. Una analogía que suele ser útil es comparar la estructura de directorios a un árbol invertido. Todo comienza con la raíz y luego aparecen las ramas (ignoremos por un momento el tronco):

como comenzar con la linea de comandos de linux 1
Tutorial de comandos Linux

Siguiendo con esta analogía, el inicio representa el directorio raíz y las ramas los demás subdirectorios del sistema. Cada distribución de Linux agrega algunos toques particulares, pero todas ellas siguen en mayor o menor grado el estándar de jerarquía del sistema de archivos. Este documento sirve de guía para entender el propósito de esta división. Utilizando el comando tree puedes ver el árbol de directorios (con la opción -d) hasta una profundidad dada por la opción -L. El comando que aparece a continuación te permitirá ver el primer nivel por debajo del directorio raíz, representado por /:

sudo apt update -y && sudo apt install tree
tree -d -L 1 /

El resultado mostrará únicamente directorios y los enlaces simbólicos (una especie de accesos directos) que apuntan a directorios:

como comenzar con la linea de comandos de linux 2
Tutorial de comandos Linux

El estándar explica, entre otras cosas, el propósito de algunos de los directorios que observas arriba:

  • /bin: programas (binarios ejecutables) de usuarios
  • /boot: archivos de arranque (incluyendo el kernel Linux)
  • /etc: configuraciones varias
  • /home: directorios personales de usuario
  • /tmp: archivos temporales (por lo general desaparecerán al reiniciar el sistema)
  • /var: datos variables (logs, por ejemplo)

Para ver el contenido de alguno de ellos, emplea ls o el mismo tree:

como comenzar con la linea de comandos de linux 3
Tutorial de comandos Linux

Es posible que en tu caso observes algunas diferencias en base a la actividad previa del sistema y los servicios instalados.

Manipular archivos y directorios

Los usuarios con permisos limitados solamente pueden manipular el contenido de su directorio personal por una cuestión de seguridad. Aparte de eso, también cuentan con la posibilidad de guardar recursos dentro de /tmp y borrar o actualizar otros que hayan generado anteriormente.

Las operaciones con archivos y directorios se llevan a cabo con los comandos que aparecen a continuación:

  • Crear: touch o echo (archivos) y mkdir (directorios)
  • Cambiar el nombre: mv (tanto archivos como directorios)
  • Copiar: cp (tanto archivos como directorios)
  • Borrar: rm (archivos) y rmdir (directorios)

Además de touch y echo, también es posible crear archivos a través de un editor de texto como nano o vim.

En los ejemplos que aparecen debajo, el intérprete de la línea de comandos ignora lo que aparece luego de #. Estos comentarios sirven como aclaración o recordatorio en cada caso:

touch archivo1.txt archivo2.txt archivo3.txt # Crear archivos vacíos con los nombres dados
mv archivo1.txt archivo-uno.txt # Cambiar nombre
mkdir subdirectorio # Generar un subdirectorio con ese nombre
mv archivo-uno.txt subdirectorio/ # Mover el archivo dentro de subdirectorio
ls archivo* subdirectorio/ # Listar el contenido de los archivos y el subdirectorio
tutorial de comandos linux
Tutorial de comandos Linux

La imagen de arriba muestra que mv sirve tanto para renombrar como para mover. ¿Cuándo se utiliza para cada uno de esas operaciones? Las reglas son las siguientes y aplican también a cp en lo que respecta a copiar archivos y directorios:

  • En caso de que origen se trate de un archivo o un directorio, mv origen destino le cambia el nombre a destino. Si este último es un archivo existente, lo sobrescribe.
  • Cuando destino es un directorio existente, mv origen destino mueve origen dentro de destino.

Gestionar paquetes con APT

Los repositorios de una distribución son ubicaciones donde se almacenan los paquetes oficiales que provee esta. Para evitar congestiones, existe una gran cantidad de espejos distribuidos en todo el mundo. Estos recursos permiten instalar software en Linux través de un gestor de paquetes, el cual permite descargar programas y sus dependencias. En Debian y distribuciones derivadas, como Ubuntu, estas son algunas de las operaciones que puedes hacer con el gestor de paquetes APT.

sudo apt update -y # Actualización del índice de paquetes disponibles en los repositorios
sudo apt-cache search htop # Buscar htop en los repositorios
sudo apt-cache show htop # Ver información sobre el paquete
sudo apt install -y htop # Instalarlo
sudo apt purge -y htop # Desinstalarlo y eliminar archivos de configuración (usar remove en vez de purge si no se desea conservar la configuración)

La opción -y confirma de forma automática las acciones a realizar. Si la omites, el gestor te pedirá confirmación antes de realizar cambios.

Inspeccionar el uso del disco

A medida que utilices el sistema, instales paquetes y crees archivos y directorios, el uso del almacenamiento irá creciendo. Si llegas a quedarte sin espacio, el sistema operativo te limitará en las operaciones que puedas efectuar. Por ese motivo, es necesario que sepas ver el uso de disco e inspeccionar determinados directorios para obtener más detalles.

En primer lugar, ejecuta df a secas para ver la información sobre el sistema de archivos raíz. Las opciones que aparecen a continuación mostrarán las cantidades en unidades más amigables (-h) únicamente para los sistemas de archivos ext4 (-T y -t) junto con un total:

df -T -h -t ext4 --total
como comenzar con la linea de comandos de linux 5
Tutorial de comandos Linux

En este caso vemos la partición /dev/sda2 montada sobre /, el tipo del sistema de archivos, el tamaño total, el usado, el disponible y el porcentaje de empleo actual.

Para examinar en más detalle un directorio particular (como /var), utiliza du con el modificador combinado que indicamos (-sch):

sudo du -sch /var/*
como comenzar con la linea de comandos de linux 6
Tutorial de comandos Linux
  • s muestra un resumen de cada subdirectorio
  • c produce un total al pie del listado
  • h despliega las cantidades en unidades amigables (K, M, o G)

Luego de identificar un directorio de interés como /var/lib o /var/opt, puedes posicionarte dentro de alguno de ellos con cd /var/lib o cd /var/opt y repetir el proceso.

Encontrar comandos

Cuando sepas qué necesitas hacer pero no cuál comando es el apropiado, apropos seguido de una palabra clave te será muy útil. Supongamos que deseas ver qué comandos puedes usar para hacer búsquedas desde la línea de comandos. Al ejecutar apropos find (buscar en inglés), verás lo siguiente:

como comenzar con la linea de comandos de linux 7
Tutorial de comandos Linux

Después de leer la breve descripción que acompaña a cada resultado, concluirás que find es la alternativa que necesitabas.

A continuación, un video explicativo de las Líneas de comandos dentro de Linux

Conclusión

En esta guía aprendiste cómo comenzar con la línea de comandos de Linux. Estos primeros pasos te permitirán realizar algunas de las operaciones más usuales en un VPS y prepararte para realizar tareas administrativas. Además de las opciones que repasamos, siempre puedes emplear el manual de cada herramienta (man apt o man du, por ejemplo) y revisar la documentación del resto de las opciones. Para cerrar el man page, recuerda presionar la tecla q.

Gabriel Cánepa
Gabriel Cánepa

Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint.

Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe).

En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.