Guía extensa para administración de sistemas desde básico hasta avanzado
pwd
ls [opciones] [directorio]
-l
: Formato largo con detalles-a
: Muestra archivos ocultos-h
: Tamaños legibles para humanos-t
: Ordena por tiempo de modificacióncd [directorio]
cd /ruta/absoluta
cd ruta/relativa
cd ..
(directorio padre)cd ~
o cd
(directorio home)cd -
(directorio anterior)cp [opciones] origen destino
-r
: Copia recursiva (para directorios)-i
: Pregunta antes de sobrescribir-v
: Modo verbose (muestra lo que está haciendo)-p
: Preserva atributos (permisos, timestamps)mv [opciones] origen destino
cp
.
rm [opciones] archivo
-r
: Elimina recursivamente directorios-f
: Fuerza la eliminación sin preguntar-i
: Pregunta antes de eliminarrm -rf /
puede destruir todo el sistema. Nunca ejecutes esto.
df [opciones]
-h
: Tamaños legibles para humanos-T
: Muestra el tipo de sistema de archivos-i
: Muestra información de inodosdu [opciones] [directorio/archivo]
-h
: Tamaños legibles-s
: Solo muestra el total-c
: Muestra el total al final--max-depth=N
: Limita la profundidad de recursiónfind [ruta] [expresión]
find / -name "*.log"
: Busca archivos .log desde rootfind . -type f -mtime -7
: Archivos modificados en los últimos 7 díasfind /var/log -size +10M
: Archivos mayores a 10MBfind /home -user juan -exec chmod 644 {} \;
: Cambia permisos de archivos de juanmount [opciones] dispositivo punto_de_montaje
mount
o findmnt
umount punto_de_montaje
useradd [opciones] nombre_usuario
-m
: Crea el directorio home-s /bin/bash
: Establece el shell-g grupo_principal
-G grupos_secundarios
-u uid
: Establece UID específicousermod [opciones] nombre_usuario
userdel [opciones] nombre_usuario
-r
elimina también el directorio home.
passwd [nombre_usuario]
groupadd [opciones] nombre_grupo
groupmod [opciones] nombre_grupo
groupdel nombre_grupo
id [nombre_usuario]
who
o w
last
chmod [opciones] permisos archivo/directorio
chmod 755 archivo
):
chmod u+x,g-w,o=r archivo
):
-R
para recursivo.
chown [opciones] usuario:grupo archivo/directorio
-R
para recursivo.
chgrp [opciones] grupo archivo/directorio
umask
getfacl archivo/directorio
setfacl [opciones] archivo/directorio
ip [objeto] [comando]
ip addr
: Muestra y configura direcciones IPip link
: Muestra y configura interfaces de redip route
: Muestra y configura tabla de rutasip neigh
: Muestra la tabla ARPifconfig
(obsoleto) o ip addr
ping [opciones] destino
-c N
: Envía N paquetes y termina-i N
: Intervalo entre paquetes en segundos-s N
: Tamaño del paquete en bytestraceroute [opciones] destino
netstat [opciones]
-t
: Conexiones TCP-u
: Conexiones UDP-l
: Sockets en escucha-p
: Muestra proceso/PID-n
: No resuelve nombres-a
: Todas las conexiones-r
: Tabla de rutasss
y ip route
ss [opciones]
dig [opciones] dominio [tipo]
dig example.com
: Consulta registros Adig example.com MX
: Consulta registros MXdig -x 8.8.8.8
: Consulta PTR (reverse DNS)nslookup dominio
host dominio
whois dominio
wget [opciones] URL
-O nombre
: Guarda con nombre específico-c
: Continúa descarga interrumpida-q
: Modo silencioso-r
: Descarga recursivacurl [opciones] URL
-o nombre
: Guarda la salida en un archivo-O
: Guarda con el nombre original-L
: Sigue redirecciones-H
: Agrega encabezados HTTP-X
: Especifica método HTTP (GET, POST, etc.)-d
: Envía datos POSTssh [opciones] usuario@host [comando]
-p puerto
: Puerto SSH alternativo-i archivo_clave
: Usa clave privada específica-X
: Habilita X11 forwarding-L
: Local port forwarding-R
: Remote port forwarding-D
: Dynamic port forwarding (SOCKS proxy)-v
: Modo verbose (múltiples -v aumentan detalle)ssh usuario@host "ls -l /tmp"
ssh-keygen [opciones]
-t tipo
: Tipo de clave (rsa, ed25519, ecdsa)-b bits
: Tamaño de clave (ej: 4096)-f archivo
: Especifica nombre de archivo-C "comentario"
: Agrega comentario-p
: Cambia passphrase de clave existentessh-keygen -t ed25519 -a 100
ssh-copy-id [opciones] usuario@host
scp [opciones] origen destino
scp archivo_local usuario@host:ruta_remota
scp usuario@host:ruta_remota archivo_local
-P
para puerto, -i
para clave, etc.).
rsync [opciones] origen destino
rsync -avz directorio/ usuario@host:directorio/
rsync -avz --delete directorio/ usuario@host:directorio/
(sincroniza eliminaciones)rsync -avz -e "ssh -p 2222" directorio/ usuario@host:directorio/
(puerto alternativo)-a
: Modo archivo (preserva permisos, dueños, etc.)-v
: Verbose-z
: Compresión durante transferencia-P
: Muestra progreso y continúa transferencias parciales--exclude
: Excluye patrones--dry-run
: Simula sin hacer cambiossftp [opciones] usuario@host
get
: Descarga archivoput
: Sube archivols
, cd
, mkdir
, etc.ps [opciones]
ps aux
: Todos los procesos con detallesps -ef
: Formato estándarps -u usuario
: Procesos de un usuariops -C nombre_proceso
: Procesos por nombreps -p PID
: Información de proceso específicops -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
: Personalizadotop [opciones]
P
: Ordenar por CPUM
: Ordenar por memoriaN
: Ordenar por PIDk
: Matar proceso (pedirá PID)q
: Salir1
: Mostrar todos los CPUsShift + W
: Guardar configuraciónhtop
, btop
, glances
htop [opciones]
kill [opciones] PID
-9
o -KILL
: Terminación forzada-15
o -TERM
: Terminación elegante (default)-HUP
: Recargar configuración (muchos daemons)killall [opciones] nombre_proceso
pkill [opciones] patron
pgrep [opciones] patron
nice [opciones] comando
renice [opciones] prioridad [-p PID] [-u usuario] [-g grupo]
time comando
uptime
free [opciones]
-h
: Tamaños legibles-m
: Mostrar en MB-g
: Mostrar en GB-t
: Mostrar total-s N
: Actualizar cada N segundosvmstat [intervalo] [contador]
iostat [opciones] [intervalo] [contador]
mpstat [opciones] [intervalo] [contador]
sar [opciones] [intervalo] [contador]
lsof [opciones]
lsof -i :80
: Procesos usando puerto 80lsof -u usuario
: Archivos abiertos por usuariolsof /var/log/
: Procesos con archivos abiertos en /var/loglsof -c sshd
: Archivos abiertos por procesos sshdlsof -p PID
: Archivos abiertos por proceso específicostrace [opciones] comando
systemctl [opciones] comando [unidad]
Comando | Descripción |
---|---|
start unidad |
Inicia una unidad (servicio, socket, etc.) |
stop unidad |
Detiene una unidad |
restart unidad |
Reinicia una unidad |
reload unidad |
Recarga configuración sin reiniciar |
enable unidad |
Habilita inicio automático al arranque |
disable unidad |
Deshabilita inicio automático |
status unidad |
Muestra estado de una unidad |
is-active unidad |
Muestra si la unidad está activa |
is-enabled unidad |
Muestra si la unidad está habilitada |
list-units [--type=service] |
Lista unidades cargadas |
list-unit-files |
Lista todas las unidades instaladas |
mask unidad |
Bloquea permanentemente una unidad |
unmask unidad |
Desbloquea una unidad |
daemon-reload |
Recarga configuración de systemd |
reboot , poweroff , halt , suspend , hibernate |
Control del estado del sistema |
journalctl [opciones]
-u unidad
: Muestra logs de una unidad específica-f
: Sigue los logs (como tail -f)-n N
: Muestra las últimas N líneas--since "YYYY-MM-DD HH:MM:SS"
--until "YYYY-MM-DD HH:MM:SS"
-k
o --dmesg
: Muestra logs del kernel-p prioridad
: Filtra por prioridad (emerg, alert, crit, err, warning, notice, info, debug)--disk-usage
: Muestra espacio usado por logs--vacuum-size=N
: Limita tamaño de logs-o json
: Salida en formato JSON-o verbose
: Muestra todos los campos-x
: Agrega explicaciones cuando estén disponiblesjournalctl -u nginx --since today
journalctl -p err..alert
(errores y superiores)journalctl -f -u sshd
(seguir logs de sshd)hostnamectl [opciones]
timedatectl [opciones]
loginctl [opciones]
apt update
apt upgrade
apt full-upgrade
apt install paquete
apt remove paquete
apt purge paquete
apt autoremove
apt search patron
apt show paquete
apt list [--installed|--upgradeable|--all-versions]
apt edit-sources
dnf update
o yum update
dnf install paquete
o yum install paquete
dnf remove paquete
o yum remove paquete
dnf search patron
o yum search patron
dnf info paquete
o yum info paquete
dnf repolist
o yum repolist
dnf history
o yum history
pacman -Syu
pacman -S paquete
pacman -R paquete
pacman -Rs paquete
pacman -Ss patron
pacman -Qi paquete
snap install paquete
snap remove paquete
snap list
snap refresh
flatpak install paquete
flatpak remove paquete
flatpak list
flatpak update
lsblk [opciones]
-f
: Muestra sistemas de archivos-o
: Campos específicos a mostrar-p
: Muestra rutas completas de dispositivosblkid [dispositivo]
fdisk -l [dispositivo]
parted [opciones] [dispositivo] [comando]
mkfs.tipo [opciones] dispositivo
mkfs.ext4
mkfs.xfs
mkfs.btrfs
mkfs.vfat
(FAT32)fsck [opciones] [dispositivo]
badblocks [opciones] dispositivo
lsusb [opciones]
lspci [opciones]
hdparm [opciones] dispositivo
smartctl [opciones] dispositivo
dd if=entrada of=salida [opciones]
dd if=/dev/sda of=backup.img bs=4M
: Crea imagen de discodd if=archivo.iso of=/dev/sdX bs=4M status=progress
: Crea USB booteabledd if=/dev/zero of=/swapfile bs=1M count=2048
: Crea archivo swap de 2GBresize2fs dispositivo [tamaño]
swapon [opciones] dispositivo
swapoff [opciones] dispositivo
dmesg [opciones]
-T
: Muestra timestamps legibles-H
: Modo humano-legible-w
: Espera nuevos mensajes-l nivel
: Filtra por nivel (emerg, alert, crit, err, warn, notice, info, debug)sar [opciones] [intervalo] [contador]
nmon
glances
iftop [opciones]
iotop [opciones]
ncdu [opciones] [directorio]
tcpdump [opciones] [filtro]
tcpdump -i eth0
: Captura en interfaz específicatcpdump port 80
: Captura tráfico HTTPtcpdump host 192.168.1.100
: Captura tráfico a/de IP específicatcpdump -w captura.pcap
: Guarda captura en archivotcpdump -r captura.pcap
: Lee captura de archivowireshark
#!/bin/bash
chmod +x script.sh
./script.sh
variable=valor
echo $variable
read variable
if [ condición ]; then
comandos
fi
-f archivo
: Archivo existe-d directorio
: Directorio existe-z "$var"
: Variable está vacía-n "$var"
: Variable no está vacía$a -eq $b
: Igualdad numérica$a == $b
: Igualdad de strings$a != $b
: Strings diferentesfor var in lista; do
comandos
done
for i in {1..10}; do echo $i; done
while [ condición ]; do
comandos
done
nombre_funcion() {
comandos
}
nombre_funcion arg1 arg2
$0
$1, $2, ..., $9
$#
$@
$*
$?
passwd [usuario]
chage [opciones] usuario
-l
: Lista configuración actual-E fecha
: Fecha de expiración de cuenta-m días
: Días mínimos entre cambios-M días
: Días máximos de validez-W días
: Días de advertencia antes de expirarvisudo
sudo [opciones] comando
-u usuario
: Ejecuta como usuario específico-i
: Inicia shell de login como root-s
: Inicia shell como root-l
: Lista comandos permitidossu [opciones] [usuario]
whoami
id [usuario]
lastlog
fail2ban-client [opciones]
ufw [opciones]
ufw enable
: Activa firewallufw disable
: Desactiva firewallufw status
: Muestra estadoufw allow 22/tcp
: Permite puerto 22ufw deny from 192.168.1.100
: Bloquea IPiptables [opciones]
nft [opciones]
openssl [comando] [opciones]
ss -tulnp
netstat -tulnp
lsof -i
clamscan [opciones] [ruta]
grep [opciones] patron [archivos]
-i
: Ignora mayúsculas/minúsculas-v
: Invierte coincidencia-r
: Busca recursivamente-l
: Solo muestra nombres de archivos con coincidencias-n
: Muestra números de línea-c
: Cuenta coincidencias-A N
: Muestra N líneas después de coincidencia-B N
: Muestra N líneas antes de coincidencia-E
: Usa expresiones regulares extendidasawk 'patron { accion }' archivo
awk '{print $1}'
: Imprime primer campo de cada líneaawk -F: '{print $1}' /etc/passwd
: Imprime usuarios (usando : como separador)awk '$3 > 1000 {print $0}' /etc/passwd
: Usuarios con UID > 1000awk '{sum+=$1} END {print sum}'
: Suma valores del primer camposed [opciones] 'comando' archivo
sed 's/foo/bar/g'
: Reemplaza foo con bar globalmentesed '/patron/d'
: Elimina líneas que coincidensed -i.bak 's/foo/bar/' archivo
: Edita archivo in-place (crea backup)sed -n '10,20p' archivo
: Imprime líneas 10-20cut [opciones] archivo
-d
: Delimitador-f
: Campos a seleccionar-c
: Caracteres a seleccionarsort [opciones] archivo
-n
: Orden numérico-r
: Orden inverso-k
: Campo clave-u
: Elimina duplicadosuniq [opciones] archivo
-c
: Cuenta ocurrencias-d
: Solo muestra duplicados-u
: Solo muestra únicoswc [opciones] archivo
-l
: Solo líneas-w
: Solo palabras-c
: Solo bytes-m
: Solo caracterestar [opciones] archivo [archivos/directorios]
tar -cvf archivo.tar directorio/
: Crea tartar -xvf archivo.tar
: Extrae tartar -czvf archivo.tar.gz directorio/
: Crea tar.gz comprimidotar -xzvf archivo.tar.gz
: Extrae tar.gztar -cjvf archivo.tar.bz2 directorio/
: Crea tar.bz2tar -xjvf archivo.tar.bz2
: Extrae tar.bz2gzip [opciones] archivo
gunzip [opciones] archivo
bzip2 [opciones] archivo
bunzip2 [opciones] archivo
xz [opciones] archivo
unxz [opciones] archivo
zip [opciones] archivo.zip archivos
unzip [opciones] archivo.zip
screen [opciones]
Ctrl+a c
: Nueva ventanaCtrl+a n
: Siguiente ventanaCtrl+a p
: Ventana anteriorCtrl+a d
: Desconectar (deja procesos corriendo)Ctrl+a "
: Lista ventanasscreen -r
: Re-conecta a sesión existentetmux
tmux [opciones]
Ctrl+b c
: Nueva ventanaCtrl+b n
: Siguiente ventanaCtrl+b p
: Ventana anteriorCtrl+b d
: DesconectarCtrl+b %
: Divide verticalmenteCtrl+b "
: Divide horizontalmenteCtrl+b [flechas]
: Navega entre panelestmux attach
: Re-conecta a sesióncron [opciones]
crontab -e
* * * * * comando
at [opciones] tiempo
nohup comando &
disown [opciones] [jobspec]
bg [jobspec]
fg [jobspec]
jobs [opciones]