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/absolutacd ruta/relativacd .. (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_remotascp 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 todayjournalctl -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.ext4mkfs.xfsmkfs.btrfsmkfs.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]