uname -a
# Muestra información completa del sistema
Linux ubuntu-server 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Ejemplo práctico
hostnamectl
# Información detallada del sistema
Static hostname: ubuntu-server
Icon name: computer-vm
Chassis: vm
Machine ID: abc123def456...
Boot ID: xyz789abc123...
Virtualization: vmware
Operating System: Ubuntu 18.04.6 LTS
Kernel: Linux 4.15.0-213-generic
Architecture: x86-64
Comando
Descripción
Ejemplo de uso
lsb_release -a
Información de la distribución
Ver versión de Ubuntu
uptime
Tiempo de actividad del sistema
Ver cuánto tiempo lleva encendido
whoami
Usuario actual
Verificar con qué usuario estás
date
Fecha y hora actuales
Ver la hora del sistema
df -h
Espacio en disco (legible)
Ver espacio disponible
free -h
Memoria RAM disponible
Verificar uso de memoria
lscpu
Información del procesador
Ver características del CPU
🧭 Navegación en el Sistema de Archivos
📁 Estructura de directorios en Linux
Linux usa una estructura jerárquica que comienza desde la raíz (/)
Comandos de navegación básicos
pwd
# Print Working Directory - muestra el directorio actual
/home/ubuntu
ls
# Lista contenido del directorio actual
Desktop Documents Downloads
ls -la
# Lista detallada incluyendo archivos ocultos
total 32
drwxr-xr-x 5 ubuntu ubuntu 4096 Sep 24 10:30 .
drwxr-xr-x 3 root root 4096 Sep 24 09:15 ..
-rw-r--r-- 1 ubuntu ubuntu 220 Sep 24 09:15 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Sep 24 09:15 .bashrc
drwxr-xr-x 2 ubuntu ubuntu 4096 Sep 24 10:30 Desktop
Navegando por directorios
cd /var/log
# Cambiar a directorio absoluto
cd ..
# Subir un nivel (ir al directorio padre)
cd ~
# Ir al directorio home del usuario
cd -
# Volver al directorio anterior
rm -rf elimina archivos y directorios sin confirmación. ¡Úsalo con extremo cuidado!
rm -rf / ¡NUNCA ejecutes esto! Eliminaría todo tu sistema.
Ver contenido de archivos
Comando
Descripción
Cuándo usarlo
cat archivo.txt
Muestra todo el contenido
Archivos pequeños
less archivo.txt
Ver archivo página por página
Archivos grandes
head -10 archivo.txt
Primeras 10 líneas
Ver inicio de archivo
tail -10 archivo.txt
Últimas 10 líneas
Ver final de archivo
tail -f archivo.log
Seguir archivo en tiempo real
Monitorear logs
grep "texto" archivo.txt
Buscar texto en archivo
Encontrar contenido específico
🔐 Sistema de Permisos
🔍 Entendiendo los permisos
Linux usa un sistema de permisos basado en: Usuario (u), Grupo (g) y Otros (o)
ls -la
# Ver permisos detallados
-rw-r--r-- 1 ubuntu ubuntu 1234 Sep 24 10:30 archivo.txt
drwxr-xr-x 2 ubuntu ubuntu 4096 Sep 24 10:30 directorio
# Explicación:
# - : archivo normal (d = directorio, l = enlace)
# rw- : permisos del propietario (lectura, escritura, no ejecución)
# r-- : permisos del grupo (solo lectura)
# r-- : permisos de otros (solo lectura)
Cambiar permisos
Métodos para cambiar permisos
# Método simbólico
chmod u+x archivo.txt # Dar ejecución al usuario
chmod g+w archivo.txt # Dar escritura al grupo
chmod o-r archivo.txt # Quitar lectura a otros
chmod a+r archivo.txt # Dar lectura a todos
# Método octal (más común)
chmod 755 script.sh # rwxr-xr-x
chmod 644 archivo.txt # rw-r--r--
chmod 600 privado.txt # rw-------
chmod 777 publico.txt # rwxrwxrwx (no recomendado)
Valor Octal
Binario
Permisos
Uso típico
7
111
rwx
Directorios, ejecutables
6
110
rw-
Archivos de datos
5
101
r-x
Directorios de solo lectura
4
100
r--
Archivos de solo lectura
0
000
---
Sin permisos
Cambiar propietario
chown usuario:grupo archivo.txt
# Cambiar propietario y grupo
chown ubuntu archivo.txt
# Solo cambiar propietario
chgrp www-data archivo.txt
# Solo cambiar grupo
chown -R ubuntu:ubuntu directorio/
# Cambiar recursivamente todo el directorio
⚙️ Gestión de Procesos
Ver procesos activos
ps aux
# Ver todos los procesos del sistema
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 225316 9088 ? Ss 09:15 0:01 /sbin/init
ubuntu 1234 0.5 0.2 12345 2345 pts/0 S 10:30 0:00 bash
ps -ef
# Formato extendido de procesos
pgrep -l apache
# Buscar procesos por nombre
Monitoreo en tiempo real
Herramientas de monitoreo
top
# Monitor interactivo de procesos (presiona 'q' para salir)
htop
# Versión mejorada de top (si está instalado)
watch -n 1 "ps aux | head -20"
# Ejecutar comando cada segundo
Controlar procesos
Comando
Señal
Descripción
kill PID
TERM (15)
Terminar proceso normalmente
kill -9 PID
KILL (9)
Forzar terminación
kill -HUP PID
HUP (1)
Reiniciar/recargar configuración
killall nombre_proceso
TERM
Terminar todos los procesos con ese nombre
pkill -f patron
TERM
Terminar procesos que coincidan con patrón
⚠️ Uso responsable de kill
Siempre intenta usar kill PID (TERM) antes que kill -9 PID (KILL)
KILL no permite al proceso limpiar recursos, puede causar corrupción de datos
Procesos en segundo plano
comando &
# Ejecutar en segundo plano
nohup comando &
# Ejecutar sin conexión a terminal
jobs
# Ver trabajos en segundo plano
fg %1
# Traer trabajo 1 al primer plano
bg %1
# Enviar trabajo 1 al segundo plano
Ctrl+Z
# Suspender proceso actual
Ctrl+C
# Interrumpir proceso actual
🌐 Configuración y Monitoreo de Red
Información de red
ip addr show
# Ver interfaces de red y direcciones IP
1: lo: mtu 65536
inet 127.0.0.1/8 scope host lo
2: ens33: mtu 1500
inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33
ip route show
# Ver tabla de rutas
default via 192.168.1.1 dev ens33
192.168.1.0/24 dev ens33 proto kernel scope link
hostname -I
# IP del sistema de forma simple
192.168.1.100
Comandos de conectividad
ping google.com
# Probar conectividad a internet
ping -c 4 192.168.1.1
# Hacer 4 pings al router
traceroute google.com
# Ver ruta hacia destino
curl -I http://google.com
# Probar conectividad HTTP
Puertos y conexiones
Comando
Descripción
Ejemplo de uso
netstat -tuln
Puertos en escucha
Ver servicios activos
ss -tuln
Versión moderna de netstat
Información de sockets
lsof -i :80
Ver qué proceso usa puerto 80
Diagnosticar conflictos
nmap localhost
Escanear puertos locales
Auditoría de seguridad
wget archivo.zip
Descargar archivos
Obtener recursos web
scp archivo.txt user@servidor:/ruta/
Copiar archivos remotamente
Transferir archivos seguros
🔧 Configuración de red en Ubuntu 18.04
Ubuntu 18.04 usa Netplan para configuración de red
Archivos de configuración en: /etc/netplan/
sudo netplan apply
# Aplicar cambios de configuración de red
sudo systemctl restart networking
# Reiniciar servicio de red (método tradicional)
🔧 Gestión de Servicios (systemd)
📋 Sobre systemd
Ubuntu 18.04 usa systemd como sistema de init y gestor de servicios
Los servicios se llaman "units" y tienen extensión .service
Comandos básicos de servicios
sudo systemctl status apache2
# Ver estado de un servicio
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-09-24 10:30:45 UTC; 2h 15min ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 1234 (apache2)
Tasks: 55 (limit: 4915)
CGroup: /system.slice/apache2.service
sudo systemctl start apache2
# Iniciar servicio
sudo systemctl stop apache2
# Detener servicio
sudo systemctl restart apache2
# Reiniciar servicio
sudo systemctl reload apache2
# Recargar configuración sin reiniciar
Habilitación automática
Configurar inicio automático
sudo systemctl enable apache2
# Habilitar inicio automático al arranque
sudo systemctl disable apache2
# Deshabilitar inicio automático
sudo systemctl is-enabled apache2
# Verificar si está habilitado
enabled
sudo systemctl is-active apache2
# Verificar si está activo
active
Comando
Descripción
Ejemplo
systemctl list-units --type=service
Listar todos los servicios
Ver estado de servicios
systemctl list-units --failed
Ver servicios fallidos
Diagnosticar problemas
journalctl -u apache2
Ver logs del servicio
Solucionar problemas
journalctl -f
Ver logs en tiempo real
Monitorear sistema
systemctl daemon-reload
Recargar configuración systemd
Después de cambios
Servicios comunes en Ubuntu Server
# Servicios web
sudo systemctl status apache2 # Servidor web Apache
sudo systemctl status nginx # Servidor web Nginx
# Bases de datos
sudo systemctl status mysql # MySQL/MariaDB
sudo systemctl status postgresql # PostgreSQL
# SSH
sudo systemctl status ssh # Servicio SSH
# Firewall
sudo systemctl status ufw # Uncomplicated Firewall
👥 Gestión de Usuarios y Grupos
Información de usuarios
id
# Información del usuario actual
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo)
who
# Usuarios conectados
ubuntu pts/0 2023-09-24 10:30 (192.168.1.50)
last
# Historial de conexiones
ubuntu pts/0 192.168.1.50 Wed Sep 24 10:30 still logged in
cat /etc/passwd | grep ubuntu
# Ver información del usuario
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
Crear y gestionar usuarios
Administración de usuarios
sudo adduser nuevo_usuario
# Crear nuevo usuario (interactivo)
sudo useradd -m -s /bin/bash nuevo_usuario
# Crear usuario con directorio home
sudo passwd nuevo_usuario
# Cambiar contraseña de usuario
sudo deluser --remove-home usuario
# Eliminar usuario y su directorio home
sudo usermod -aG sudo nuevo_usuario
# Agregar usuario al grupo sudo (permisos admin)
Gestión de grupos
Comando
Descripción
Ejemplo
groups usuario
Ver grupos del usuario
Verificar permisos
sudo groupadd grupo_nuevo
Crear nuevo grupo
Organizar usuarios
sudo groupdel grupo
Eliminar grupo
Limpiar sistema
sudo gpasswd -a usuario grupo
Agregar usuario a grupo
Dar permisos específicos
sudo gpasswd -d usuario grupo
Quitar usuario de grupo
Remover permisos
Cambio de usuario y sudo
su - otro_usuario
# Cambiar a otro usuario
sudo comando
# Ejecutar comando como root
sudo -i
# Abrir shell interactivo como root
sudo -u usuario comando
# Ejecutar comando como otro usuario
sudo visudo
# Editar archivo sudoers (configuración sudo)
⚠️ Seguridad con sudo
Solo da permisos sudo a usuarios de confianza
Usa visudo para editar /etc/sudoers, nunca lo edites directamente
Revisa regularmente quién tiene permisos de administrador
🖥️ Administración del Sistema
Gestión de paquetes (APT)
sudo apt update
# Actualizar lista de paquetes disponibles
sudo apt upgrade
# Actualizar paquetes instalados
sudo apt install paquete
# Instalar nuevo paquete
sudo apt remove paquete
# Desinstalar paquete
sudo apt autoremove
# Limpiar dependencias no usadas
apt search nombre
# Buscar paquetes
apt show paquete
# Ver información de paquete
Mantenimiento del sistema
sudo apt full-upgrade
# Actualización completa del sistema
sudo apt dist-upgrade
# Actualizar a nueva versión de distribución
sudo apt autoclean
# Limpiar cache de paquetes
dpkg -l | grep paquete
# Ver si un paquete está instalado
sudo dpkg --configure -a
# Reparar paquetes rotos
Monitoreo del sistema
Comando
Información
Uso
df -h
Espacio en disco
Ver almacenamiento disponible
du -sh directorio
Tamaño de directorio
Encontrar qué ocupa espacio
free -h
Memoria RAM
Ver uso de memoria
iostat
Estadísticas E/S
Rendimiento de discos
vmstat 1
Estadísticas sistema
Monitor general cada segundo
dmesg | tail
Mensajes del kernel
Diagnosticar hardware
Archivos de configuración importantes
📁 Ubicaciones clave en Ubuntu Server
# Configuración de red
/etc/netplan/ # Configuración Netplan
/etc/hosts # Resolución de nombres local
/etc/resolv.conf # Servidores DNS
# Usuarios y grupos
/etc/passwd # Información de usuarios
/etc/group # Información de grupos
/etc/shadow # Contraseñas cifradas
/etc/sudoers # Configuración sudo
# Servicios y arranque
/etc/systemd/system/ # Servicios personalizados
/etc/init.d/ # Scripts de inicio (legacy)
/etc/crontab # Tareas programadas
# Logs del sistema
/var/log/syslog # Log general del sistema
/var/log/auth.log # Log de autenticación
/var/log/kern.log # Log del kernel
/var/log/apache2/ # Logs de Apache (si instalado)
Tareas programadas (Cron)
Configurar tareas automáticas
crontab -e
# Editar crontab del usuario actual
sudo crontab -e
# Editar crontab de root
crontab -l
# Ver tareas programadas
# Formato: minuto hora día mes día_semana comando
# Ejemplos:
0 2 * * * /usr/bin/backup.sh # Diario a las 2:00 AM
*/15 * * * * /usr/bin/check_status.sh # Cada 15 minutos
0 0 * * 0 /usr/bin/weekly_update.sh # Domingos a medianoche
Control del sistema
⚠️ Comandos de control del sistema
Estos comandos afectan todo el sistema. Úsalos con precaución.
sudo reboot
# Reiniciar el sistema
sudo shutdown -h now
# Apagar inmediatamente
sudo shutdown -h +10
# Apagar en 10 minutos
sudo shutdown -r +5 "Reinicio de mantenimiento"
# Reiniciar en 5 min con mensaje
sudo systemctl rescue
# Modo de rescate (single user)
sudo systemctl emergency
# Modo de emergencia
🎯 Consejos para administración
Siempre haz respaldos antes de cambios importantes
Documenta los cambios que realizas
Usa screen o tmux para sesiones persistentes
Monitorea regularmente logs y recursos del sistema
Mantén el sistema actualizado con apt update && apt upgrade