Hoja de Trucos de Linux

Visitar Comandos de Linux

Para materiales de referencia completos de comandos de Linux, ejemplos de sintaxis y documentación detallada, por favor visite linux-commands.labex.io. Este sitio independiente proporciona hojas de trucos extensas de Linux que cubren comandos esenciales, conceptos y mejores prácticas para administradores y desarrolladores de Linux.

Información y Estado del Sistema

Información del Sistema: uname

Muestra información del sistema incluyendo el kernel y la arquitectura.

# Mostrar nombre del kernel
uname
# Mostrar toda la información del sistema
uname -a
# Mostrar versión del kernel
uname -r
# Mostrar arquitectura
uname -m
# Mostrar sistema operativo
uname -o

Información de Hardware: lscpu, lsblk

Ver especificaciones detalladas de hardware y dispositivos de bloque.

# Información de la CPU
lscpu
# Dispositivos de bloque (discos, particiones)
lsblk
# Información de memoria
free -h
# Uso de disco por sistema de archivos
df -h

Tiempo de Actividad del Sistema: uptime

Muestra el tiempo de actividad del sistema y los promedios de carga.

# Tiempo de actividad y carga del sistema
uptime
# Información de tiempo de actividad más detallada
uptime -p
# Mostrar tiempo de actividad desde una fecha específica
uptime -s

Usuarios Actuales: who, w

Muestra los usuarios actualmente conectados y sus actividades.

# Mostrar usuarios conectados
who
# Información detallada del usuario con actividades
w
# Mostrar nombre de usuario actual
whoami
# Mostrar historial de inicio de sesión
last

Variables de Entorno: env

Muestra y gestiona variables de entorno.

# Mostrar todas las variables de entorno
env
# Mostrar variable específica
echo $HOME
# Establecer variable de entorno
export PATH=$PATH:/new/path
# Mostrar variable PATH
echo $PATH

Fecha y Hora: date, timedatectl

Muestra y establece la fecha y hora del sistema.

# Fecha y hora actuales
date
# Establecer hora del sistema (como root)
date MMddhhmmyyyy
# Información de zona horaria
timedatectl
# Establecer zona horaria
timedatectl set-timezone America/New_York

Operaciones de Archivos y Directorios

Listar Archivos: ls

Muestra archivos y directorios con varias opciones de formato.

# Listar archivos en el directorio actual
ls
# Listado detallado con permisos
ls -l
# Mostrar archivos ocultos
ls -la
# Tamaños de archivo legibles por humanos
ls -lh
# Ordenar por tiempo de modificación
ls -lt

Cambiar directorios y mostrar la ubicación actual.

# Ir al directorio de inicio
cd
# Ir a un directorio específico
cd /path/to/directory
# Subir un nivel
cd ..
# Mostrar directorio actual
pwd
# Ir al directorio anterior
cd -
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué comando muestra el directorio de trabajo actual?
cd
pwd
ls
whoami

Crear y Eliminar: mkdir, rmdir, rm

Crear y eliminar archivos y directorios.

# Crear directorio
mkdir newdir
# Crear directorios anidados
mkdir -p path/to/nested/dir
# Eliminar directorio vacío
rmdir dirname
# Eliminar archivo
rm filename
# Eliminar directorio recursivamente
rm -rf dirname

Ver Contenido de Archivos: cat, less, head, tail

Muestra el contenido de archivos usando varios métodos y paginación.

# Mostrar archivo completo
cat filename
# Ver archivo con paginación
less filename
# Mostrar las primeras 10 líneas
head filename
# Mostrar las últimas 10 líneas
tail filename
# Seguir cambios en el archivo en tiempo real
tail -f logfile

Copiar y Mover: cp, mv

Copiar y mover archivos y directorios.

# Copiar archivo
cp source.txt destination.txt
# Copiar directorio recursivamente
cp -r sourcedir/ destdir/
# Mover/renombrar archivo
mv oldname.txt newname.txt
# Mover a un directorio diferente
mv file.txt /path/to/destination/
# Copiar preservando atributos
cp -p file.txt backup.txt

Encontrar Archivos: find, locate

Buscar archivos y directorios por nombre, tipo o propiedades.

# Buscar por nombre
find /path -name "filename"
# Encontrar archivos modificados en los últimos 7 días
find /path -mtime -7
# Buscar por tipo de archivo
find /path -type f -name "*.txt"
# Localizar archivos rápidamente (requiere updatedb)
locate filename
# Encontrar y ejecutar comando
find /path -name "*.log" -exec rm {} \;

Permisos de Archivo: chmod, chown

Modificar permisos y propiedad de archivos.

# Cambiar permisos (numérico)
chmod 755 filename
# Añadir permiso de ejecución
chmod +x script.sh
# Cambiar propiedad
chown user:group filename
# Cambiar propiedad recursivamente
chown -R user:group directory/
# Ver permisos de archivo
ls -l filename
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué establece chmod 755 filename para los permisos?
Lectura, escritura, ejecución para el propietario; lectura para grupo y otros
Lectura, escritura para el propietario; lectura, ejecución para grupo y otros
Lectura, escritura, ejecución para el propietario; lectura, ejecución para grupo y otros
Lectura, escritura para el propietario; lectura para grupo y otros

Gestión de Procesos

Listado de Procesos: ps

Muestra procesos en ejecución y sus detalles.

# Mostrar procesos del usuario
ps
# Mostrar todos los procesos con detalles
ps aux
# Mostrar árbol de procesos
ps -ef --forest
# Mostrar procesos por usuario
ps -u username

Matar Procesos: kill, killall

Terminar procesos por PID o nombre.

# Monitor de procesos en tiempo real
top
# Matar proceso por PID
kill 1234
# Matar proceso forzosamente
kill -9 1234
# Matar por nombre de proceso
killall processname
# Listar todas las señales
kill -l
# Enviar señal específica
kill -HUP 1234
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué señal envía el comando kill -9 a un proceso?
SIGTERM (terminar elegantemente)
SIGHUP (colgar)
SIGINT (interrumpir)
SIGKILL (matar forzosamente, no se puede ignorar)

Trabajos en Segundo Plano: jobs, bg, fg

Gestionar procesos en segundo plano y en primer plano.

# Listar trabajos activos
jobs
# Enviar trabajo al segundo plano
bg %1
# Traer trabajo al primer plano
fg %1
# Ejecutar comando en segundo plano
command &
# Desvincular del terminal
nohup command &

Monitor del Sistema: htop, systemctl

Monitorear recursos del sistema y gestionar servicios.

# Visor de procesos mejorado (si está instalado)
htop
# Verificar estado del servicio
systemctl status servicename
# Iniciar servicio
systemctl start servicename
# Habilitar servicio al arranque
systemctl enable servicename
# Ver registros del sistema
journalctl -f

Operaciones de Red

Configuración de Red: ip, ifconfig

Mostrar y configurar interfaces de red.

# Mostrar interfaces de red
ip addr show
# Mostrar tabla de enrutamiento
ip route show
# Configurar interfaz (temporal)
ip addr add 192.168.1.10/24 dev eth0
# Activar/desactivar interfaz
ip link set eth0 up
# Configuración de interfaz heredada
ifconfig

Pruebas de Red: ping, traceroute

Probar conectividad de red y trazar rutas de paquetes.

# Probar conectividad
ping google.com
# Ping con límite de conteo
ping -c 4 192.168.1.1
# Trazar ruta al destino
traceroute google.com
# MTR - herramienta de diagnóstico de red
mtr google.com
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué hace el comando ping -c 4?
Hacer ping con un tiempo de espera de 4 segundos
Enviar 4 paquetes de ping y detenerse
Hacer ping a 4 hosts diferentes
Esperar 4 segundos entre pings

Análisis de Puertos y Conexiones: netstat, ss

Mostrar conexiones de red y puertos en escucha.

# Mostrar todas las conexiones
netstat -tuln
# Mostrar puertos en escucha
netstat -tuln | grep LISTEN
# Reemplazo moderno de netstat
ss -tuln
# Mostrar procesos que usan puertos
netstat -tulnp
# Verificar puerto específico
netstat -tuln | grep :80

Transferencia de Archivos: scp, rsync

Transferir archivos de forma segura entre sistemas.

# Copiar archivo a host remoto
scp file.txt user@host:/path/
# Copiar desde host remoto
scp user@host:/path/file.txt ./
# Sincronizar directorios
rsync -avz localdir/ user@host:/remotedir/
# Rsync con progreso
rsync -avz --progress src/ dest/

Procesamiento de Texto y Búsqueda

Búsqueda de Texto: grep

Buscar patrones en archivos y salida de comandos.

# Buscar patrón en archivo
grep "pattern" filename
# Búsqueda insensible a mayúsculas y minúsculas
grep -i "pattern" filename
# Búsqueda recursiva en directorios
grep -r "pattern" /path/
# Mostrar números de línea
grep -n "pattern" filename
# Contar líneas coincidentes
grep -c "pattern" filename
Quiz

Inicia sesión para responder este quiz y rastrear tu progreso de aprendizaje

¿Qué opción de grep realiza una búsqueda insensible a mayúsculas y minúsculas?
-i
-c
-n
-r

Manipulación de Texto: sed, awk

Editar y procesar texto usando editores de flujo y analizadores de patrones.

# Reemplazar texto en archivo
sed 's/old/new/g' filename
# Eliminar líneas que contienen patrón
sed '/pattern/d' filename
# Imprimir campos específicos
awk '{print $1, $3}' filename
# Sumar valores en columna
awk '{sum += $1} END {print sum}' filename

Ordenar y Contar: sort, uniq, wc

Ordenar datos, eliminar duplicados y contar líneas, palabras o caracteres.

# Ordenar contenido de archivo
sort filename
# Ordenar numéricamente
sort -n numbers.txt
# Eliminar líneas duplicadas
uniq filename
# Ordenar y eliminar duplicados
sort filename | uniq
# Contar líneas, palabras, caracteres
wc filename
# Contar solo líneas
wc -l filename

Cortar y Pegar: cut, paste

Extraer columnas específicas y combinar archivos.

# Extraer primera columna
cut -d',' -f1 file.csv
# Extraer rango de caracteres
cut -c1-10 filename
# Combinar archivos lado a lado
paste file1.txt file2.txt
# Usar delimitador personalizado
cut -d':' -f1,3 /etc/passwd

Archivo y Compresión

Crear Archivos: tar

Crear y extraer archivos comprimidos.

# Crear archivo tar
tar -cf archive.tar files/
# Crear archivo comprimido
tar -czf archive.tar.gz files/
# Extraer archivo
tar -xf archive.tar
# Extraer archivo comprimido
tar -xzf archive.tar.gz
# Listar contenido del archivo
tar -tf archive.tar

Compresión: gzip, zip

Comprimir y descomprimir archivos usando varios algoritmos.

# Comprimir archivo con gzip
gzip filename
# Descomprimir archivo gzip
gunzip filename.gz
# Crear archivo zip
zip archive.zip file1 file2
# Extraer archivo zip
unzip archive.zip
# Listar contenido de zip
unzip -l archive.zip

Archivos Avanzados: Opciones de tar

Operaciones avanzadas de tar para copias de seguridad y restauración.

# Crear archivo con compresión
tar -czvf backup.tar.gz /home/user/
# Extraer a un directorio específico
tar -xzf archive.tar.gz -C /destination/
# Añadir archivos a archivo existente
tar -rf archive.tar newfile.txt
# Actualizar archivo con archivos más nuevos
tar -uf archive.tar files/

Espacio en Disco: du

Analizar el uso de disco y los tamaños de directorios.

# Mostrar tamaños de directorio
du -h /path/
# Resumen del tamaño total
du -sh /path/
# Mostrar tamaños de todos los subdirectorios
du -h --max-depth=1 /path/
# Directorios más grandes primero
du -h | sort -hr | head -10

Monitoreo y Rendimiento del Sistema

Uso de Memoria: free, vmstat

Monitorear el uso de memoria y las estadísticas de memoria virtual.

# Resumen del uso de memoria
free -h
# Estadísticas detalladas de memoria
cat /proc/meminfo
# Estadísticas de memoria virtual
vmstat
# Uso de memoria cada 2 segundos
vmstat 2
# Mostrar uso de swap
swapon --show

Disco I/O: iostat, iotop

Monitorear el rendimiento de entrada/salida del disco e identificar cuellos de botella.

# Estadísticas de I/O (requiere sysstat)
iostat
# Estadísticas de I/O cada 2 segundos
iostat 2
# Monitorear I/O de disco por proceso
iotop
# Mostrar uso de I/O para un dispositivo específico
iostat -x /dev/sda

Carga del Sistema: top, htop

Monitorear la carga del sistema, el uso de CPU y los procesos en ejecución.

# Monitor de procesos en tiempo real
top
# Visor de procesos mejorado
htop
# Mostrar promedios de carga
uptime
# Mostrar información de la CPU
lscpu
# Monitorear proceso específico
top -p PID

Archivos de Registro: journalctl, dmesg

Ver y analizar registros del sistema para solución de problemas.

# Ver registros del sistema
journalctl
# Seguir registros en tiempo real
journalctl -f
# Ver registros para un servicio específico
journalctl -u servicename
# Mensajes del kernel
dmesg
# Mensajes del último arranque
dmesg | tail

Gestión de Usuarios y Permisos

Operaciones de Usuario: useradd, usermod, userdel

Crear, modificar y eliminar cuentas de usuario.

# Añadir nuevo usuario
useradd username
# Añadir usuario con directorio home
useradd -m username
# Modificar cuenta de usuario
usermod -aG groupname username
# Eliminar cuenta de usuario
userdel username
# Eliminar usuario con directorio home
userdel -r username

Gestión de Grupos: groupadd, groups

Crear y gestionar grupos de usuarios.

# Crear nuevo grupo
groupadd groupname
# Mostrar grupos del usuario
groups username
# Mostrar todos los grupos
cat /etc/group
# Añadir usuario a grupo
usermod -aG groupname username
# Cambiar grupo primario del usuario
usermod -g groupname username

Cambiar de Usuario: su, sudo

Cambiar de usuario y ejecutar comandos con privilegios elevados.

# Cambiar a usuario root
su -
# Cambiar a usuario específico
su - username
# Ejecutar comando como root
sudo command
# Ejecutar comando como usuario específico
sudo -u username command
# Editar archivo sudoers
visudo

Gestión de Contraseñas: passwd, chage

Gestionar contraseñas de usuario y políticas de cuenta.

# Cambiar contraseña
passwd
# Cambiar contraseña de otro usuario (como root)
passwd username
# Mostrar información de caducidad de contraseña
chage -l username
# Establecer caducidad de contraseña
chage -M 90 username
# Forzar cambio de contraseña al próximo inicio de sesión
passwd -e username

Gestión de Paquetes

APT (Debian/Ubuntu): apt, apt-get

Gestionar paquetes en sistemas basados en Debian.

# Actualizar lista de paquetes
apt update
# Actualizar todos los paquetes
apt upgrade
# Instalar paquete
apt install packagename
# Eliminar paquete
apt remove packagename
# Buscar paquetes
apt search packagename
# Mostrar información del paquete
apt show packagename

YUM/DNF (RHEL/Fedora): yum, dnf

Gestionar paquetes en sistemas basados en Red Hat.

# Instalar paquete
yum install packagename
# Actualizar todos los paquetes
yum update
# Eliminar paquete
yum remove packagename
# Buscar paquetes
yum search packagename
# Listar paquetes instalados
yum list installed

Paquetes Snap: snap

Instalar y gestionar paquetes snap en varias distribuciones.

# Instalar paquete snap
snap install packagename
# Listar snaps instalados
snap list
# Actualizar paquetes snap
snap refresh
# Eliminar paquete snap
snap remove packagename
# Buscar paquetes snap
snap find packagename

Paquetes Flatpak: flatpak

Gestionar aplicaciones Flatpak para software en contenedores.

# Instalar flatpak
flatpak install packagename
# Listar flatpaks instalados
flatpak list
# Actualizar paquetes flatpak
flatpak update
# Desinstalar flatpak
flatpak uninstall packagename
# Buscar paquetes flatpak
flatpak search packagename

Shell y Scripting

Historial de Comandos: history

Acceder y gestionar el historial de la línea de comandos.

# Mostrar historial de comandos
history
# Mostrar los últimos 10 comandos
history 10
# Ejecutar comando anterior
!!
# Ejecutar comando por número
!123
# Buscar historial interactivamente
Ctrl+R

Alias y Funciones: alias

Crear atajos para comandos usados frecuentemente.

# Crear alias
alias ll='ls -la'
# Mostrar todos los alias
alias
# Eliminar alias
unalias ll
# Hacer alias permanente (añadir a .bashrc)
echo "alias ll='ls -la'" >> ~/.bashrc

Redirección de Entrada/Salida

Redirigir la entrada y salida de comandos a archivos u otros comandos.

# Redirigir salida a archivo
command > output.txt
# Añadir salida a archivo
command >> output.txt
# Redirigir entrada desde archivo
command < input.txt
# Redirigir stdout y stderr
command &> output.txt
# Enviar salida a otro comando
command1 | command2

Configuración del Entorno: .bashrc, .profile

Configurar el entorno del shell y los scripts de inicio.

# Editar configuración de bash
nano ~/.bashrc
# Recargar configuración
source ~/.bashrc
# Establecer variable de entorno
export VARIABLE=value
# Añadir a PATH
export PATH=$PATH:/new/path
# Mostrar variables de entorno
printenv

Instalación y Configuración del Sistema

Opciones de Distribución: Ubuntu, CentOS, Debian

Elegir e instalar distribuciones de Linux para diferentes casos de uso.

# Ubuntu Server
wget ubuntu-server.iso
# CentOS Stream
wget centos-stream.iso
# Debian Stable
wget debian.iso
# Verificar integridad de ISO
sha256sum linux.iso

Arranque e Instalación: USB, Red

Crear medios de arranque y realizar la instalación del sistema.

# Crear USB de arranque (Linux)
dd if=linux.iso of=/dev/sdX bs=4M
# Crear USB de arranque (multiplataforma)
# Usar herramientas como Rufus, Etcher o UNetbootin
# Instalación en red
# Configurar arranque PXE para instalaciones en red

Configuración Inicial: Usuarios, Red, SSH

Configurar la configuración básica del sistema después de la instalación.

# Establecer nombre de host
hostnamectl set-hostname newname
# Configurar IP estática
# Editar /etc/netplan/ (Ubuntu) o /etc/network/interfaces
# Habilitar servicio SSH
systemctl enable ssh
systemctl start ssh
# Configurar firewall
ufw enable
ufw allow ssh

Seguridad y Mejores Prácticas

Configuración del Firewall: ufw, iptables

Configurar reglas de firewall para proteger el sistema de amenazas de red.

# Habilitar firewall UFW
ufw enable
# Permitir puerto específico
ufw allow 22/tcp
# Permitir servicio por nombre
ufw allow ssh
# Denegar acceso
ufw deny 23
# Mostrar estado del firewall
ufw status verbose
# Reglas avanzadas con iptables
iptables -L

Integridad de Archivos: checksums

Verificar la integridad de los archivos y detectar cambios no autorizados.

# Generar checksum MD5
md5sum filename
# Generar checksum SHA256
sha256sum filename
# Verificar checksum
sha256sum -c checksums.txt
# Crear archivo de checksum
sha256sum *.txt > checksums.txt

Actualizaciones del Sistema: Parches de Seguridad

Mantener el sistema seguro con actualizaciones y parches de seguridad regulares.

# Actualizaciones de seguridad de Ubuntu
apt update && apt upgrade
# Actualizaciones de seguridad automáticas
unattended-upgrades
# Actualizaciones de CentOS/RHEL
yum update --security
# Listar actualizaciones disponibles
apt list --upgradable

Monitoreo de Registros: Eventos de Seguridad

Monitorear registros del sistema para eventos de seguridad y anomalías.

# Monitorear registros de autenticación
tail -f /var/log/auth.log
# Verificar intentos de inicio de sesión fallidos
grep "Failed password" /var/log/auth.log
# Monitorear registros del sistema
tail -f /var/log/syslog
# Ver historial de inicio de sesión
last
# Revisar actividades sospechosas
journalctl -p err

Solución de Problemas y Recuperación

Problemas de Arranque: Recuperación de GRUB

Recuperarse de problemas con el gestor de arranque y el kernel.

# Arrancar desde modo de rescate
# Acceder al menú GRUB durante el arranque
# Montar sistema de archivos raíz
mount /dev/sda1 /mnt
# Chroot al sistema
chroot /mnt
# Reinstalar GRUB
grub-install /dev/sda
# Actualizar configuración de GRUB
update-grub

Reparación del Sistema de Archivos: fsck

Verificar y reparar la corrupción del sistema de archivos.

# Verificar sistema de archivos
fsck /dev/sda1
# Verificación forzada del sistema de archivos
fsck -f /dev/sda1
# Reparación automática
fsck -y /dev/sda1
# Verificar todos los sistemas de archivos montados
fsck -A

Problemas de Servicio: systemctl

Diagnosticar y solucionar problemas relacionados con servicios.

# Verificar estado del servicio
systemctl status servicename
# Ver registros del servicio
journalctl -u servicename
# Reiniciar servicio fallido
systemctl restart servicename
# Habilitar servicio al arranque
systemctl enable servicename
# Listar servicios fallidos
systemctl --failed

Problemas de Rendimiento: Análisis de Recursos

Identificar y resolver cuellos de botella en el rendimiento del sistema.

# Verificar espacio en disco
df -h
# Monitorear uso de I/O
iotop
# Verificar uso de memoria
free -h
# Identificar uso de CPU
top
# Listar archivos abiertos
lsof

Enlaces Relevantes