Volver al Blog
Linux 8 min

Primeros Pasos con Linux: Guía Completa

System 777 15 de enero de 2025

## ¿Qué es Linux?

Linux es un sistema operativo de código abierto basado en UNIX, creado por Linus Torvalds en 1991. A diferencia de Windows o macOS, Linux es gratuito, altamente personalizable y cuenta con una enorme comunidad de desarrolladores que contribuyen a su mejora continua.

Hoy en día, Linux domina en servidores (más del 90% de la infraestructura web), supercomputación, dispositivos IoT, y cada vez más en escritorios. Distribuciones como Ubuntu, Fedora, Arch Linux y Debian hacen que sea accesible para usuarios de todos los niveles.

¿Por qué aprender Linux?

  • **Carrera profesional**: Los desarrolladores y administradores de sistemas Linux tienen alta demanda laboral.
  • **Seguridad**: Linux es inherentemente más seguro que otros sistemas operativos gracias a su modelo de permisos y su comunidad activa de auditoría.
  • **Servidores**: Casi todos los servidores del mundo ejecutan Linux, desde servidores web hasta bases de datos.
  • **Contenedores y DevOps**: Docker, Kubernetes y herramientas modernas de CI/CD están diseñadas principalmente para Linux.
  • **Costo**: Es completamente gratuito. Puedes instalar Linux en tantas máquinas como quieras sin pagar licencias.
  • **Privacidad**: Linux no recopila datos personales como otros sistemas operativos comerciales.

Instalación de Linux

Opción 1: Dual Boot

El dual boot te permite tener Linux y Windows en la misma máquina. Al encender el computador, eliges qué sistema operativo quieres usar.

**Pasos para instalar Ubuntu en dual boot:**

  • **Descargar la ISO**: Ve a [ubuntu.com/download](https://ubuntu.com/download) y descarga la versión LTS (Long Term Support) más reciente.
  • **Crear USB booteable**: Usa herramientas como Rufus (Windows) o Etcher (multiplataforma) para crear un USB booteable con la ISO descargada.
  • **Reducir partición de Windows**: Abre el Administrador de Discos de Windows, selecciona la partición principal y reduce su tamaño para crear espacio libre (mínimo 30GB recomendado).
  • **Configurar BIOS/UEFI**: Reinicia tu computadora y entra al BIOS/UEFI (generalmente con F2, F12 o Del). Desactiva Secure Boot temporalmente y configura el USB como dispositivo de arranque principal.
  • **Instalar Ubuntu**: Arranca desde el USB, selecciona "Instalar Ubuntu" y elige la opción "Instalar junto a Windows" (Instalación alongside).
  • **Configurar GRUB**: El instalador configurará automáticamente el gestor de arranque GRUB para que puedas elegir entre Linux y Windows.

Opción 2: Máquina Virtual (VM)

Si no quieres modificar tu sistema actual, una máquina virtual es la opción ideal.

**Instalación con VirtualBox:**

# 1. Descargar e instalar VirtualBox desde virtualbox.org
# 2. Crear una nueva máquina virtual
#    - Tipo: Linux
#    - Versión: Ubuntu (64-bit)
#    - RAM: 4096 MB (mínimo recomendado)
#    - Disco virtual: 30 GB
# 3. Asignar la ISO como disco de arranque
# 4. Iniciar la VM y seguir el instalador

**Recomendaciones para VM:** - Asigna al menos 4GB de RAM para un rendimiento aceptable. - Habilita la virtualización anidada si necesitas usar contenedores. - Usa la carpeta compartida de VirtualBox para transferir archivos entre el host y la VM. - Instala las Guest Additions para mejorar la resolución y el rendimiento.

Comandos Básicos de Linux

Navegación y exploración de archivos

# Mostrar el directorio actual de trabajo
pwd

# Listar archivos y carpetas ls # Lista básica ls -la # Lista detallada con archivos ocultos ls -lh # Lista con tamaños legibles (KB, MB, GB)

# Cambiar de directorio cd /home # Ir al directorio home cd .. # Subir un nivel cd ~/Documentos # Ir a la carpeta Documentos cd - # Volver al directorio anterior ```

Crear, copiar, mover y eliminar

# Crear directorios
mkdir mis_archivos
mkdir -p ruta/nueva/carpeta    # Crea todas las carpetas padre si no existen

# Crear archivos vacíos touch archivo.txt touch archivo1.txt archivo2.txt

# Copiar archivos cp archivo.txt copia.txt cp -r directorio/ copia_directorio/ # Copiar carpetas recursivamente

# Mover/renombrar archivos mv archivo.txt /home/user/Documentos/ mv nombre_viejo.txt nombre_nuevo.txt # Renombrar archivo

# Eliminar archivos y carpetas rm archivo.txt rm -r directorio/ # Eliminar carpeta y su contenido rm -rf directorio_forzoso/ # Forzar eliminación (¡cuidado!) ```

Permisos y administración

# Cambiar permisos de archivos
chmod 755 archivo.sh      # rw-r-xr-x (ejecutable)
chmod 644 archivo.txt     # rw-r--r-- (lectura para todos)
chmod +x script.sh        # Hacer ejecutable un script

# Sudo: ejecutar comandos como administrador sudo apt update # Actualizar lista de paquetes sudo apt upgrade # Actualizar todos los paquetes sudo apt install nombre_paquete # Instalar un paquete sudo apt remove nombre_paquete # Desinstalar un paquete sudo apt autoremove # Limpiar paquetes no utilizados

# Información del sistema uname -a # Información del kernel df -h # Uso del disco free -h # Uso de memoria RAM top # Monitor de procesos en tiempo real htop # Monitor de procesos mejorado (instalar con: sudo apt install htop) ```

Jerarquía del Sistema de Archivos de Linux

Linux utiliza un sistema de archivos jerárquico en forma de árbol. Aquí está la estructura principal:

/                    # Raíz del sistema de archivos
├── /bin             # Binarios esenciales del sistema
├── /boot            # Archivos de arranque (kernel, GRUB)
├── /dev             # Dispositivos (discos, teclados, etc.)
├── /etc             # Archivos de configuración del sistema
│   ├── /etc/hostname
│   ├── /etc/hosts
│   └── /etc/passwd
├── /home            # Directorios personales de los usuarios
│   └── tu_usuario/
│       ├── Documentos/
│       ├── Descargas/
│       └── .bashrc
├── /lib             # Bibliotecas compartidas
├── /mnt             # Puntos de montaje temporales
├── /opt             # Software de terceros
├── /proc            # Información del sistema de archivos virtual
├── /root            # Directorio home del usuario root
├── /sbin            # Binarios del sistema (solo root)
├── /tmp             # Archivos temporales
├── /usr             # Programas de usuarios
│   ├── /usr/bin     # Comandos de usuario
│   ├── /usr/lib     # Bibliotecas
│   └── /usr/local   # Software instalado localmente
└── /var             # Variables (logs, bases de datos, etc.)
    └── /var/log     # Archivos de registro

**Práctica recomendada**: Nunca elimines archivos en directorios del sistema como /bin, /sbin o /lib. Si estás aprendiendo, trabaja siempre dentro de tu directorio home (/home/tu_usuario).

Gestión de Paquetes con APT

En distribuciones basadas en Debian/Ubuntu, APT (Advanced Package Tool) es la herramienta principal para instalar y gestionar software.

# Actualizar la información de paquetes disponibles
sudo apt update

# Actualizar todos los paquetes instalados sudo apt upgrade

# Buscar un paquete específico apt search nombre_paquete

# Ver información de un paquete apt show nombre_paquete

# Instalar un paquete sudo apt install firefox

# Desinstalar un paquete (mantiene la configuración) sudo apt remove firefox

# Desinstalar completamente (incluye configuración) sudo apt purge firefox

# Limpiar caché de paquetes descargados sudo apt clean

# Buscar qué paquete proporciona un archivo específico apt-file search /usr/bin/nombre_comando ```

**Gestión en otras distribuciones:** - **Fedora/RHEL/CentOS**: dnf install o yum install - **Arch Linux**: pacman -S nombre_paquete - **openSUSE**: zypper install nombre_paquete

El Archivo .bashrc y Personalización

El archivo .bashrc en tu directorio home contiene configuraciones personalizadas para tu terminal. Puedes modificarlo para crear alias, funciones y personalizar tu prompt.

# Editar tu .bashrc
nano ~/.bashrc

# Ejemplos útiles para agregar: alias ll='ls -la' alias update='sudo apt update && sudo apt upgrade -y' alias grep='grep --color=auto'

# Después de editar, recargar los cambios source ~/.bashrc ```

Recursos para Seguir Aprendiendo

  • **The Linux Command Line** (libro gratuito de William Shotts) - thelinuxcommandline.com
  • **Linux Journey** - linuxjourney.com (tutoriales interactivos)
  • **OverTheWire: Bandit** - overthewire.org/wargames/bandit (aprende Linux a través de retos)
  • **Ubuntu Community Help Wiki** - help.ubuntu.com

Conclusión

Linux es una herramienta poderosa que todo desarrollador o entusiasta de la tecnología debería conocer. Con esta guía, tienes las bases para empezar tu camino en el mundo Linux. La clave es la práctica: instala una distribución, explora los comandos y no tengas miedo de cometer errores. ¡El mundo de Linux te espera!

Recuerda: en Linux, la documentación es tu mejor amigo. Casi todo comando tiene un manual ejecutable con man nombre_comando.