Comandos Esenciales de Linux para Administradores de Sistemas
Dominar los comandos esenciales de Linux es fundamental para una administración efectiva del sistema. Ya sea que estés solucionando problemas del servidor, gestionando usuarios y permisos, monitoreando recursos del sistema o automatizando tareas, la línea de comandos de Linux proporciona herramientas poderosas que permiten una gestión eficiente del servidor y una rápida resolución de problemas.
Esta guía completa cubre los comandos de Linux más críticos que todo administrador de sistemas debe conocer, organizados por categorías funcionales con ejemplos prácticos, casos de uso del mundo real y mejores prácticas. Desde la manipulación de archivos y la gestión de procesos hasta el diagnóstico de red y la auditoría de seguridad, aprenderás los comandos que forman la base de la administración profesional de Linux.
Tabla de Contenidos
- Introducción
- Gestión de Archivos y Directorios
- Procesamiento y Manipulación de Texto
- Gestión de Usuarios y Permisos
- Gestión de Procesos y Servicios
- Monitoreo del Sistema y Rendimiento
- Gestión de Red y Resolución de Problemas
- Operaciones de Disco y Sistema de Archivos
- Gestión de Paquetes
- Información del Sistema y Registros
- Seguridad y Auditoría
- Compresión y Archivos
- Acceso Remoto y Transferencia de Archivos
- Técnicas Avanzadas de Comandos
- Conclusión
Introducción
La administración de sistemas Linux depende en gran medida de la competencia en la línea de comandos. Aunque existen interfaces gráficas, la línea de comandos ofrece:
- Velocidad: Ejecutar operaciones complejas en segundos
- Automatización: Programar tareas repetitivas para consistencia
- Gestión Remota: Administrar servidores a través de SSH sin sobrecarga de GUI
- Precisión: Control detallado sobre las operaciones del sistema
- Universalidad: Los comandos funcionan en todas las distribuciones y versiones
- Poder de Resolución de Problemas: Acceso a las internas del sistema cuando las GUI fallan
Esta guía asume familiaridad básica con Linux pero explica cada comando a fondo con ejemplos prácticos. Los comandos están organizados por categoría funcional, haciendo de esta guía tanto un recurso de aprendizaje como una referencia rápida para las tareas de administración diarias.
Notas del Entorno:
# Most commands require appropriate permissions
# Use sudo for administrative operations
sudo command-name
# Check manual pages for detailed information
man command-name
# Get quick help
command-name --help
Gestión de Archivos y Directorios
Las operaciones con archivos son fundamentales para la administración del sistema.
ls - Listar Contenidos de Directorio
# Basic listing
ls
# Long format with detailed information
ls -l
# Show hidden files (starting with .)
ls -a
# Human-readable file sizes
ls -lh
# Sort by modification time (newest first)
ls -lt
# Recursive listing
ls -R
# Comprehensive listing (commonly used)
ls -lah
# Sort by size
ls -lhS
# Show inode numbers
ls -i
# Color-coded output (usually default)
ls --color=auto
Ejemplos Prácticos:
# Find largest files in current directory
ls -lhS | head -10
# List only directories
ls -d */
# List files modified in last 24 hours
ls -lt | head -10
# Count files in directory
ls -1 | wc -l
# List files with specific extension
ls *.log
cd - Cambiar Directorio
# Change to specific directory
cd /var/log
# Change to home directory
cd ~
cd # no arguments also goes home
# Go back to previous directory
cd -
# Move up one directory level
cd ..
# Move up two levels
cd ../..
# Change to subdirectory
cd ./subdirectory
pwd - Mostrar Directorio de Trabajo
# Show current directory
pwd
# Output: /home/username/projects
# Useful in scripts to verify location
CURRENT_DIR=$(pwd)
echo "Working in: $CURRENT_DIR"
mkdir - Crear Directorios
# Create single directory
mkdir newdir
# Create nested directories
mkdir -p /var/www/site/public/images
# Create with specific permissions
mkdir -m 755 publicdir
# Create multiple directories
mkdir dir1 dir2 dir3
# Verbose output
mkdir -v testdir
rm - Eliminar Archivos y Directorios
# Remove file
rm file.txt
# Remove directory and contents recursively
rm -r directory/
# Force removal without confirmation
rm -f file.txt
# Combine recursive and force
rm -rf directory/
# Interactive confirmation
rm -i file.txt
# Remove multiple files
rm file1.txt file2.txt file3.txt
# Remove files by pattern
rm *.log
# Verbose output
rm -v file.txt
PRECAUCIÓN:
# NEVER run these commands
# rm -rf / (destroys entire system)
# rm -rf /* (destroys all filesystems)
# Safe practice: use absolute paths and verify
ls /path/to/delete/ # verify first
rm -rf /path/to/delete/
cp - Copiar Archivos y Directorios
# Copy file
cp source.txt destination.txt
# Copy directory recursively
cp -r sourcedir/ destdir/
# Preserve attributes (permissions, timestamps)
cp -p file.txt backup.txt
# Comprehensive copy (archive mode)
cp -a sourcedir/ backup/
# Interactive confirmation before overwrite
cp -i source.txt dest.txt
# Verbose output
cp -v file.txt /backup/
# Copy multiple files to directory
cp file1.txt file2.txt /destination/
# Update only newer files
cp -u *.txt /backup/
mv - Mover o Renombrar
# Rename file
mv oldname.txt newname.txt
# Move file to directory
mv file.txt /destination/
# Move multiple files
mv file1.txt file2.txt /destination/
# Move directory
mv olddir/ newdir/
# Interactive confirmation
mv -i source.txt dest.txt
# Don't overwrite existing files
mv -n file.txt /destination/
# Verbose output
mv -v file.txt newlocation/
find - Buscar Archivos
# Find files by name
find /var/log -name "*.log"
# Case-insensitive search
find /home -iname "readme.txt"
# Find directories only
find /var -type d -name "cache"
# Find files only
find /etc -type f -name "*.conf"
# Find files modified in last 7 days
find /var/log -mtime -7
# Find files larger than 100MB
find /var -size +100M
# Find and execute command on results
find /tmp -type f -mtime +7 -exec rm {} \;
# Find with permissions
find /var/www -type f -perm 0777
# Find files owned by user
find /home -user username
# Find and list details
find /etc -name "*.conf" -ls
Ejemplos Avanzados:
# Find and delete old log files
find /var/log -name "*.log" -mtime +30 -delete
# Find large files and show sizes
find /var -size +500M -exec ls -lh {} \; | awk '{print $9, $5}'
# Find files and copy to backup
find /etc -name "*.conf" -exec cp {} /backup/ \;
chmod - Cambiar Permisos
# Add execute permission for user
chmod u+x script.sh
# Remove write permission for group
chmod g-w file.txt
# Set specific permissions (rwxr-xr-x = 755)
chmod 755 script.sh
# Recursive permission change
chmod -R 755 /var/www/
# Make file readable by all
chmod a+r file.txt
# Symbolic permissions
chmod u=rwx,g=rx,o=r file.txt
# Set directory permissions
chmod 755 directory/
Valores de Permisos Comunes:
# 644 = rw-r--r-- (files)
chmod 644 file.txt
# 755 = rwxr-xr-x (executables, directories)
chmod 755 script.sh
# 600 = rw------- (private files)
chmod 600 ~/.ssh/id_rsa
# 700 = rwx------ (private directories)
chmod 700 ~/private/
chown - Cambiar Propiedad
# Change owner
chown username file.txt
# Change owner and group
chown username:groupname file.txt
# Recursive ownership change
chown -R www-data:www-data /var/www/
# Change group only
chown :groupname file.txt
# or use chgrp
chgrp groupname file.txt
Procesamiento y Manipulación de Texto
El procesamiento de texto es esencial para el análisis de registros y la gestión de configuración.
cat - Concatenar y Mostrar Archivos
# Display file contents
cat file.txt
# Display multiple files
cat file1.txt file2.txt
# Number all lines
cat -n file.txt
# Number non-blank lines
cat -b file.txt
# Show end of line markers
cat -E file.txt
# Concatenate files into new file
cat file1.txt file2.txt > combined.txt
# Append to file
cat additional.txt >> existing.txt
grep - Buscar Patrones de Texto
# Search for pattern in file
grep "error" /var/log/syslog
# Case-insensitive search
grep -i "error" logfile.txt
# Recursive search in directories
grep -r "error" /var/log/
# Show line numbers
grep -n "error" file.txt
# Count matching lines
grep -c "error" file.txt
# Invert match (show non-matching lines)
grep -v "debug" file.txt
# Show context (3 lines before and after)
grep -C 3 "error" file.txt
# Show only filenames with matches
grep -l "error" /var/log/*
# Regular expression search
grep -E "error|warning" file.txt
# Search multiple patterns from file
grep -f patterns.txt logfile.txt
Ejemplos Prácticos:
# Find all error messages in logs
grep -i "error" /var/log/syslog | tail -20
# Count 404 errors in Apache log
grep "404" /var/log/apache2/access.log | wc -l
# Find failed login attempts
grep "Failed password" /var/log/auth.log
# Search for IP address pattern
grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt
# Find processes by name
ps aux | grep nginx
sed - Editor de Flujo
# Replace first occurrence on each line
sed 's/old/new/' file.txt
# Replace all occurrences
sed 's/old/new/g' file.txt
# Edit file in place
sed -i 's/old/new/g' file.txt
# Delete lines containing pattern
sed '/pattern/d' file.txt
# Print specific line numbers
sed -n '10,20p' file.txt
# Delete blank lines
sed '/^$/d' file.txt
# Insert text before pattern
sed '/pattern/i\New line here' file.txt
# Append text after pattern
sed '/pattern/a\New line here' file.txt
Ejemplos Prácticos:
# Change IP address in configuration
sed -i 's/192.168.1.10/192.168.1.20/g' /etc/hosts
# Comment out lines matching pattern
sed -i '/DEBUG/s/^/#/' config.conf
# Remove comments from configuration
sed '/^#/d' /etc/ssh/sshd_config
# Replace multiple spaces with single space
sed 's/ */ /g' file.txt
awk - Lenguaje de Procesamiento de Texto
# Print specific columns
awk '{print $1, $3}' file.txt
# Print lines longer than 80 characters
awk 'length > 80' file.txt
# Sum numbers in column
awk '{sum += $1} END {print sum}' numbers.txt
# Print with custom delimiter
awk -F: '{print $1, $3}' /etc/passwd
# Conditional processing
awk '$3 > 100 {print $1}' file.txt
# Format output
awk '{printf "%-10s %s\n", $1, $2}' file.txt
# Calculate and print
awk '{print $1, $2, $1+$2}' file.txt
Ejemplos Prácticos:
# List users with UID >= 1000
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
# Calculate total disk usage
df -h | awk '{sum += $3} END {print sum}'
# Print unique values
awk '!seen[$1]++' file.txt
# Apache log analysis - count requests per IP
awk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -rn
head y tail - Ver Porciones de Archivo
# Show first 10 lines (default)
head file.txt
# Show first N lines
head -n 20 file.txt
# Show first N bytes
head -c 100 file.txt
# Show last 10 lines (default)
tail file.txt
# Show last N lines
tail -n 50 file.txt
# Follow file updates (log monitoring)
tail -f /var/log/syslog
# Follow multiple files
tail -f /var/log/syslog /var/log/auth.log
# Show last N lines and follow
tail -n 100 -f /var/log/apache2/access.log
wc - Conteo de Palabras
# Count lines, words, characters
wc file.txt
# Count lines only
wc -l file.txt
# Count words only
wc -w file.txt
# Count characters
wc -c file.txt
# Count lines in multiple files
wc -l *.txt
Ejemplos Prácticos:
# Count files in directory
ls | wc -l
# Count users on system
cat /etc/passwd | wc -l
# Count error occurrences
grep -i "error" /var/log/syslog | wc -l
Gestión de Usuarios y Permisos
Gestionar usuarios y permisos es crítico para la seguridad del sistema.
useradd - Crear Usuario
# Create basic user
sudo useradd username
# Create user with home directory
sudo useradd -m username
# Create with specific shell
sudo useradd -s /bin/bash username
# Create with specific UID
sudo useradd -u 1500 username
# Create with specific group
sudo useradd -g groupname username
# Create with multiple groups
sudo useradd -G group1,group2 username
# Create system user
sudo useradd -r serviceuser
# Comprehensive user creation
sudo useradd -m -s /bin/bash -G sudo,docker username
usermod - Modificar Usuario
# Add user to group
sudo usermod -aG groupname username
# Change user's shell
sudo usermod -s /bin/zsh username
# Change user's home directory
sudo usermod -d /new/home username
# Lock user account
sudo usermod -L username
# Unlock user account
sudo usermod -U username
# Change username
sudo usermod -l newname oldname
passwd - Cambiar Contraseña
# Change your own password
passwd
# Change another user's password (as root)
sudo passwd username
# Force password change on next login
sudo passwd -e username
# Lock account
sudo passwd -l username
# Unlock account
sudo passwd -u username
# Set password expiry
sudo passwd -x 90 username
groupadd y groupmod - Gestión de Grupos
# Create group
sudo groupadd developers
# Create with specific GID
sudo groupadd -g 2000 developers
# Delete group
sudo groupdel groupname
# Rename group
sudo groupmod -n newname oldname
# Change GID
sudo groupmod -g 3000 groupname
id - Mostrar Información de Usuario
# Show current user ID and groups
id
# Show specific user information
id username
# Show only UID
id -u
# Show only GID
id -g
# Show all groups
id -G
# Show group names
id -Gn
su y sudo - Cambiar Usuarios y Elevar Privilegios
# Switch to root
su -
# Switch to specific user
su - username
# Execute command as root
sudo command
# Execute command as specific user
sudo -u username command
# Start root shell
sudo -i
# Edit file with elevated privileges
sudo nano /etc/hosts
# Execute previous command with sudo
sudo !!
Gestión de Procesos y Servicios
Gestionar procesos y servicios es fundamental para la administración del sistema.
ps - Estado de Procesos
# Show your processes
ps
# Show all processes (BSD style)
ps aux
# Show all processes (Unix style)
ps -ef
# Show process tree
ps auxf
# Show specific user's processes
ps -u username
# Sort by CPU usage
ps aux --sort=-%cpu | head -10
# Sort by memory usage
ps aux --sort=-%mem | head -10
# Show threads
ps -eLf
Ejemplos Prácticos:
# Find process by name
ps aux | grep nginx
# Count processes
ps aux | wc -l
# Show full command line
ps auxww
# Monitor specific process
ps -p PID -o pid,cmd,%cpu,%mem
top y htop - Visor Interactivo de Procesos
# Launch top
top
# Key commands within top:
# h - help
# k - kill process
# r - renice process
# M - sort by memory
# P - sort by CPU
# q - quit
# Show specific user's processes
top -u username
# Update every 2 seconds
top -d 2
# Batch mode (non-interactive)
top -b -n 1 > /tmp/top-output.txt
# htop (more user-friendly, install separately)
htop
# htop features:
# - Mouse support
# - Color coding
# - Tree view (F5)
# - Search (F3)
# - Filter (F4)
kill - Terminar Procesos
# Graceful termination (SIGTERM)
kill PID
# Force termination (SIGKILL)
kill -9 PID
# Send specific signal
kill -SIGHUP PID
# Kill all processes by name
killall processname
# Kill all user's processes
killall -u username
# Kill with pattern matching
pkill -f "pattern"
# Interactive process selection and kill
top # then press 'k' and enter PID
Señales Comunes:
# Signal list
kill -l
# Common signals:
# 1 HUP - Hang up (reload configuration)
# 2 INT - Interrupt (Ctrl+C)
# 9 KILL - Force kill (cannot be caught)
# 15 TERM - Graceful termination (default)
# 18 CONT - Continue stopped process
# 19 STOP - Stop process
systemctl - Gestor de Sistema y Servicios
# Start service
sudo systemctl start nginx
# Stop service
sudo systemctl stop nginx
# Restart service
sudo systemctl restart nginx
# Reload configuration
sudo systemctl reload nginx
# Check service status
systemctl status nginx
# Enable service at boot
sudo systemctl enable nginx
# Disable service at boot
sudo systemctl disable nginx
# Check if service is enabled
systemctl is-enabled nginx
# Check if service is active
systemctl is-active nginx
# List all services
systemctl list-units --type=service
# List failed services
systemctl --failed
# View service logs
journalctl -u nginx.service
# Mask service (prevent starting)
sudo systemctl mask service-name
# Unmask service
sudo systemctl unmask service-name
journalctl - Consultar Registros de systemd
# View all logs
journalctl
# View logs from current boot
journalctl -b
# View logs from previous boot
journalctl -b -1
# Follow logs in real-time
journalctl -f
# View logs for specific service
journalctl -u nginx.service
# View logs since time
journalctl --since "2024-01-01"
journalctl --since "1 hour ago"
# View logs with priority
journalctl -p err
# Reverse order (newest first)
journalctl -r
# Show kernel messages
journalctl -k
# Vacuum old logs
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=1G
Monitoreo del Sistema y Rendimiento
Monitorear los recursos del sistema previene problemas de rendimiento y ayuda en la resolución de problemas.
df - Uso del Sistema de Archivos del Disco
# Show disk usage
df
# Human-readable sizes
df -h
# Show inode usage
df -i
# Show specific filesystem
df -h /var
# Show filesystem type
df -T
# Exclude specific filesystem types
df -x tmpfs -x devtmpfs
du - Uso de Disco
# Show directory sizes
du /var
# Human-readable format
du -h /var/log
# Summary for directory
du -sh /var/log
# Show all files and directories
du -ah /var/log
# Show sizes sorted
du -ah /var/log | sort -rh | head -20
# Limit depth
du -h --max-depth=1 /var
# Exclude patterns
du -h --exclude="*.log" /var
free - Uso de Memoria
# Show memory usage
free
# Human-readable format
free -h
# Show in megabytes
free -m
# Show in gigabytes
free -g
# Continuous updates
free -h -s 2 # update every 2 seconds
# Show total line
free -h -t
uptime - Tiempo de Actividad del Sistema y Carga
# Show uptime and load average
uptime
# Output:
# 15:23:42 up 30 days, 4:12, 2 users, load average: 0.50, 0.75, 0.80
# Load average explained:
# - 1 minute average
# - 5 minute average
# - 15 minute average
# Values relative to CPU core count
vmstat - Estadísticas de Memoria Virtual
# Show virtual memory stats
vmstat
# Update every 2 seconds
vmstat 2
# Show 10 updates, 2 seconds apart
vmstat 2 10
# Show in megabytes
vmstat -S M
# Detailed memory statistics
vmstat -s
# Disk statistics
vmstat -d
iostat - Estadísticas de E/S
# Show CPU and I/O statistics
iostat
# Update every 2 seconds
iostat 2
# Extended statistics
iostat -x
# Show in megabytes
iostat -m
# Specific device
iostat -x sda
Gestión de Red y Resolución de Problemas
Los comandos de red son esenciales para la resolución de problemas de conectividad y configuración.
ip - Configuración de Red
# Show all network interfaces
ip addr show
ip a # shorthand
# Show specific interface
ip addr show eth0
# Show routing table
ip route show
ip r # shorthand
# Add IP address
sudo ip addr add 192.168.1.100/24 dev eth0
# Delete IP address
sudo ip addr del 192.168.1.100/24 dev eth0
# Bring interface up
sudo ip link set eth0 up
# Bring interface down
sudo ip link set eth0 down
# Show link status
ip link show
# Show network statistics
ip -s link show eth0
ping - Prueba de Conectividad de Red
# Ping host
ping google.com
# Limit to 5 packets
ping -c 5 google.com
# Set packet size
ping -s 1000 google.com
# Flood ping (root only, testing)
sudo ping -f localhost
# Set interval
ping -i 2 google.com # ping every 2 seconds
# IPv6 ping
ping6 ipv6.google.com
netstat - Estadísticas de Red
# Show all connections
netstat -a
# Show listening ports
netstat -l
# Show TCP connections
netstat -t
# Show UDP connections
netstat -u
# Show with program names
sudo netstat -p
# Show routing table
netstat -r
# Common combination (listening TCP with programs)
sudo netstat -tlnp
# Show network statistics
netstat -s
# Continuous monitoring
netstat -c
ss - Estadísticas de Sockets (reemplazo moderno de netstat)
# Show all sockets
ss -a
# Show listening sockets
ss -l
# Show TCP sockets
ss -t
# Show UDP sockets
ss -u
# Show process using socket
ss -p
# Show summary statistics
ss -s
# Common combination
ss -tlnp # TCP, listening, numeric, process
# Show specific port
ss -tlnp | grep :80
# Show socket memory
ss -m
nslookup y dig - Búsqueda DNS
# Basic DNS lookup
nslookup google.com
# Query specific DNS server
nslookup google.com 8.8.8.8
# Reverse lookup
nslookup 8.8.8.8
# dig (more detailed)
dig google.com
# Short answer only
dig +short google.com
# Query specific record type
dig google.com MX
dig google.com TXT
# Trace DNS resolution
dig +trace google.com
# Query specific DNS server
dig @8.8.8.8 google.com
# Reverse DNS lookup
dig -x 8.8.8.8
traceroute - Rastrear Ruta de Red
# Trace route to host
traceroute google.com
# Use ICMP instead of UDP
sudo traceroute -I google.com
# Limit hops
traceroute -m 15 google.com
# Don't resolve hostnames
traceroute -n google.com
curl y wget - Descargar Archivos y Probar HTTP
# Download file with curl
curl -O https://example.com/file.txt
# Save with different name
curl -o newname.txt https://example.com/file.txt
# Follow redirects
curl -L https://example.com
# Show headers only
curl -I https://example.com
# POST request
curl -X POST -d "param=value" https://api.example.com
# Download with wget
wget https://example.com/file.txt
# Download in background
wget -b https://example.com/largefile.iso
# Resume partial download
wget -c https://example.com/file.txt
# Mirror website
wget -m https://example.com
Operaciones de Disco y Sistema de Archivos
Gestionar discos y sistemas de archivos es crucial para la administración de almacenamiento.
mount y umount - Montar Sistemas de Archivos
# Show mounted filesystems
mount
# Mount filesystem
sudo mount /dev/sdb1 /mnt
# Mount with specific filesystem type
sudo mount -t ext4 /dev/sdb1 /mnt
# Mount with options
sudo mount -o ro,noexec /dev/sdb1 /mnt
# Unmount filesystem
sudo umount /mnt
# Force unmount
sudo umount -f /mnt
# Lazy unmount
sudo umount -l /mnt
# Remount with different options
sudo mount -o remount,rw /mnt
fdisk - Gestión de Particiones
# List disks
sudo fdisk -l
# Start fdisk on specific disk
sudo fdisk /dev/sdb
# Within fdisk:
# m - help menu
# p - print partition table
# n - new partition
# d - delete partition
# w - write changes
# q - quit without saving
# Show disk size
sudo fdisk -s /dev/sdb
lsblk - Listar Dispositivos de Bloque
# List all block devices
lsblk
# Show filesystem type
lsblk -f
# Show size in bytes
lsblk -b
# Show specific device
lsblk /dev/sda
# Show permissions
lsblk -m
mkfs - Crear Sistema de Archivos
# Create ext4 filesystem
sudo mkfs.ext4 /dev/sdb1
# Create XFS filesystem
sudo mkfs.xfs /dev/sdb1
# Create with label
sudo mkfs.ext4 -L "DataDisk" /dev/sdb1
# Create with specific options
sudo mkfs.ext4 -m 1 -O ^has_journal /dev/sdb1
Gestión de Paquetes
La gestión de paquetes varía según la distribución pero sigue patrones similares.
APT (Debian/Ubuntu)
# Update package list
sudo apt update
# Upgrade all packages
sudo apt upgrade
# Full upgrade (handle dependencies)
sudo apt full-upgrade
# Install package
sudo apt install nginx
# Remove package
sudo apt remove nginx
# Remove with configuration
sudo apt purge nginx
# Search for package
apt search nginx
# Show package information
apt show nginx
# List installed packages
apt list --installed
# Clean cache
sudo apt clean
sudo apt autoclean
# Remove unused dependencies
sudo apt autoremove
YUM/DNF (Red Hat/CentOS/Rocky)
# Check for updates
dnf check-update
# Update all packages
sudo dnf update
# Install package
sudo dnf install nginx
# Remove package
sudo dnf remove nginx
# Search package
dnf search nginx
# Show package info
dnf info nginx
# List installed packages
dnf list installed
# Clean cache
sudo dnf clean all
# Remove unused dependencies
sudo dnf autoremove
# List repositories
dnf repolist
# Enable repository
sudo dnf config-manager --enable repo-name
Información del Sistema y Registros
Recopilar información del sistema ayuda en la resolución de problemas y documentación.
uname - Información del Sistema
# Show all information
uname -a
# Show kernel name
uname -s
# Show kernel release
uname -r
# Show kernel version
uname -v
# Show machine hardware
uname -m
# Show processor type
uname -p
# Show operating system
uname -o
hostname y hostnamectl - Información del Host
# Show hostname
hostname
# Set hostname (temporary)
sudo hostname newhostname
# Show FQDN
hostname -f
# Show IP address
hostname -I
# Using hostnamectl (systemd systems)
hostnamectl
# Set hostname permanently
sudo hostnamectl set-hostname newhostname
# Set with all details
sudo hostnamectl set-hostname newhostname --static
dmesg - Mensajes del Kernel
# Show all kernel messages
dmesg
# Show with human-readable timestamps
dmesg -T
# Follow new messages
dmesg -w
# Show error and warning messages
dmesg -level=err,warn
# Clear kernel ring buffer
sudo dmesg -C
# Show last 50 messages
dmesg | tail -50
last y who - Historial de Inicio de Sesión
# Show login history
last
# Show last 10 logins
last -10
# Show last logins for user
last username
# Show last reboot
last reboot
# Show currently logged in users
who
# Show current user
whoami
# Show detailed user info
who -a
# Show login time
who -b
Seguridad y Auditoría
Los comandos de seguridad ayudan a monitorear y mantener la seguridad del sistema.
iptables - Reglas de Firewall
# List all rules
sudo iptables -L
# List with line numbers
sudo iptables -L --line-numbers
# List specific chain
sudo iptables -L INPUT
# Add rule to allow port
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Delete rule by number
sudo iptables -D INPUT 5
# Flush all rules
sudo iptables -F
# Save rules
sudo iptables-save > /etc/iptables/rules.v4
# Restore rules
sudo iptables-restore < /etc/iptables/rules.v4
firewalld - Gestión de Firewall
# Check status
sudo firewall-cmd --state
# List all zones
sudo firewall-cmd --get-zones
# List active zones
sudo firewall-cmd --get-active-zones
# List all rules
sudo firewall-cmd --list-all
# Add port
sudo firewall-cmd --permanent --add-port=80/tcp
# Add service
sudo firewall-cmd --permanent --add-service=http
# Remove port
sudo firewall-cmd --permanent --remove-port=80/tcp
# Reload firewall
sudo firewall-cmd --reload
ssh - Shell Seguro
# Connect to remote host
ssh user@hostname
# Use specific port
ssh -p 2222 user@hostname
# Use specific identity file
ssh -i ~/.ssh/id_rsa user@hostname
# Execute remote command
ssh user@hostname 'uptime'
# Port forwarding
ssh -L 8080:localhost:80 user@hostname
# Generate SSH key
ssh-keygen -t rsa -b 4096
# Copy SSH key to remote
ssh-copy-id user@hostname
Compresión y Archivos
Compresión y archivado para copias de seguridad y transferencia de archivos.
tar - Archivar Archivos
# Create archive
tar -cf archive.tar files/
# Create compressed archive (gzip)
tar -czf archive.tar.gz files/
# Create compressed archive (bzip2)
tar -cjf archive.tar.bz2 files/
# Extract archive
tar -xf archive.tar
# Extract gzip archive
tar -xzf archive.tar.gz
# List archive contents
tar -tf archive.tar
# Extract to specific directory
tar -xzf archive.tar.gz -C /destination/
# Verbose output
tar -xzvf archive.tar.gz
gzip, bzip2, xz - Compresión
# Compress file (removes original)
gzip file.txt
# Decompress
gunzip file.txt.gz
# Keep original file
gzip -k file.txt
# Compress with bzip2
bzip2 file.txt
# Decompress bzip2
bunzip2 file.txt.bz2
# Compress with xz (best compression)
xz file.txt
# Decompress xz
unxz file.txt.xz
Técnicas Avanzadas de Comandos
Combinar comandos y técnicas avanzadas para automatización poderosa.
Tuberías y Redirección
# Pipe output to another command
ps aux | grep nginx
# Redirect output to file (overwrite)
echo "text" > file.txt
# Redirect output (append)
echo "more text" >> file.txt
# Redirect stderr to file
command 2> error.log
# Redirect both stdout and stderr
command > output.log 2>&1
# Redirect stderr to stdout
command 2>&1 | grep "error"
# Pipe to multiple commands
ps aux | grep nginx | awk '{print $2}'
Sustitución de Comandos
# Use command output as argument
echo "Today is $(date)"
# Assign command output to variable
FILES=$(ls /var/log)
# Nested substitution
echo "Logged in users: $(who | wc -l)"
Control de Trabajos en Segundo Plano
# Run command in background
command &
# List background jobs
jobs
# Bring job to foreground
fg %1
# Send job to background
bg %1
# Disown job
disown %1
# Run command ignoring hangup
nohup command &
Alias y Funciones
# Create alias
alias ll='ls -lah'
# Remove alias
unalias ll
# List aliases
alias
# Make permanent (add to ~/.bashrc)
echo "alias ll='ls -lah'" >> ~/.bashrc
# Create function
function backup() {
tar -czf "backup-$(date +%Y%m%d).tar.gz" "$@"
}
Conclusión
Dominar estos comandos esenciales de Linux transforma la administración del sistema de resolución reactiva de problemas a gestión proactiva. Los comandos cubiertos en esta guía forman la base de la administración profesional de Linux, permitiendo una gestión eficiente del servidor, resolución rápida de problemas y poderosas capacidades de automatización.
Conclusiones Clave:
-
Competencia en Comandos: Practicar comandos regularmente en entornos no productivos antes de usarlos en sistemas en vivo.
-
Páginas Man: Usar
man command-namepara acceder a documentación completa para cualquier comando. -
Seguridad Primero: Siempre verificar comandos antes de la ejecución, especialmente con
rm,ddy otras operaciones destructivas. -
Combinar Comandos: Tuberías, redirecciones y sustitución de comandos crean poderosos one-liners desde comandos simples.
-
Automatizar: Convertir secuencias de comandos frecuentemente usadas en scripts para consistencia y eficiencia.
-
Revisión de Registros: El análisis regular de registros con
grep,awkyjournalctlidentifica problemas antes de que se vuelvan críticos. -
Monitoreo del Sistema: El monitoreo proactivo con
top,df,freeynetstatpreviene el agotamiento de recursos.
Ruta de Aprendizaje Recomendada:
- Principiante: Enfocarse en gestión de archivos, visualización de texto e información básica del sistema
- Intermedio: Agregar gestión de usuarios, control de procesos y comandos de red
- Avanzado: Dominar procesamiento de texto, automatización y combinaciones complejas de comandos
- Experto: Crear scripts completos que combinen múltiples comandos para flujos de trabajo complejos
Mejores Prácticas:
- Siempre usar rutas absolutas en scripts
- Verificar comandos con flags no destructivos primero (opción
-npara dry run cuando esté disponible) - Documentar secuencias complejas de comandos
- Usar control de versiones para scripts
- Probar en sistemas no productivos
- Mantener copias de seguridad antes de hacer cambios en el sistema
- Revisar páginas man y salida de ayuda regularmente
Referencia de Comandos Diarios:
# System health check one-liner
uptime && free -h && df -h / && systemctl --failed
# Find largest files
du -ah / 2>/dev/null | sort -rh | head -20
# Network connectivity test
ping -c 3 8.8.8.8 && curl -I https://google.com
# Security audit
last | head -10 && sudo grep "Failed" /var/log/auth.log | tail -10
La línea de comandos de Linux es extraordinariamente poderosa. Los comandos que podrían requerir múltiples clics de GUI y minutos de navegación se ejecutan en segundos desde la terminal. Esta ventaja de velocidad se multiplica cuando se gestionan múltiples servidores o se automatizan tareas rutinarias.
Continúa practicando estos comandos, explora sus páginas man para opciones adicionales y gradualmente construye memoria muscular para operaciones comunes. La inversión en competencia en línea de comandos paga dividendos a lo largo de tu carrera como administrador de sistemas.
Próximos Pasos
- Crear un documento personal de referencia de comandos
- Practicar comandos en un entorno de prueba diariamente
- Construir una colección de scripts útiles
- Unirse a comunidades y foros de Linux
- Contribuir a proyectos de código abierto
- Perseguir certificaciones de Linux (LFCS, RHCSA)
- Leer blogs y tutoriales de administración de sistemas
Los comandos en esta guía representan la base. A medida que crezcas en experiencia, descubrirás herramientas especializadas para tareas específicas, pero estos comandos esenciales permanecerán centrales en tu trabajo diario como administrador de sistemas Linux.


