⚡ Bash Cheatsheet¶
Referencia rápida de Bash para scripting, automatización y uso en terminal.
Básicos¶
echo "Hola mundo"
date
whoami
hostname
````
***
## Variables
```bash
VAR="valor"
echo $VAR
readonly PI=3.14
export VAR_GLOBAL="valor"
Entrada de usuario¶
read nombre
echo "Hola $nombre"
Condicionales¶
if [ "$VAR" == "valor" ]; then
echo "OK"
else
echo "NO"
fi
Bucles¶
for¶
for i in 1 2 3; do
echo $i
done
for i in {1..5}; do
echo $i
done
while¶
i=0
while [ $i -lt 5 ]; do
echo $i
((i++))
done
Funciones¶
mi_funcion() {
echo "Hola $1"
}
mi_funcion David
Arrays¶
arr=(uno dos tres)
echo ${arr[0]}
echo ${arr[@]}
echo ${#arr[@]}
Comparaciones¶
[ "$a" = "$b" ]
[ "$a" != "$b" ]
[ "$a" -eq 5 ]
[ "$a" -lt 10 ]
[ "$a" -gt 1 ]
[ -f archivo ]
[ -d carpeta ]
Pipes y redirecciones¶
comando1 | comando2
echo "texto" > archivo
echo "texto" >> archivo
comando 2>&1
grep¶
grep "texto" archivo
grep -i "texto" archivo
grep -r "texto" .
awk¶
awk '{print $1}' archivo
awk -F ":" '{print $1}' /etc/passwd
cut¶
cut -d ":" -f1 /etc/passwd
find + exec¶
find / -name "*.log"
find . -type f -name "*.tmp" -delete
find . -type f -exec chmod 644 {} \;
xargs¶
cat lista.txt | xargs -n1 comando
Procesamiento de texto¶
sort archivo
uniq archivo
wc -l archivo
head archivo
tail archivo
tail -f archivo
Aliases¶
alias ll='ls -lah'
alias gs='git status'
Expansión y sustitución¶
echo ${VAR}
echo $(comando)
echo `comando`
Control de errores¶
set -e # abandonar si hay error
set -x # debug
set -u # variables no definidas
Script básico¶
#!/bin/bash
set -e
echo "Inicio"
for i in {1..3}; do
echo "Iteración $i"
done
echo "Fin"
Permisos¶
chmod +x script.sh
./script.sh
Argumentos¶
echo $0 # script
echo $1 # arg1
echo $2 # arg2
echo $# # número de args
echo $@ # todos
Debug¶
bash -x script.sh
⏱️ Watch¶
watch -n 1 comando
Tips prácticos¶
- Usa
set -euo pipefailen scripts serios:
set -euo pipefail
- Usa comillas SIEMPRE:
"$VAR"
- Evita errores con espacios en variables
Ejemplo real (loop por hosts)¶
for host in $(cat hosts.txt); do
ssh "$host" "uptime"
done
Ejemplo (filtrado de logs)¶
grep "ERROR" app.log | awk '{print $1,$2,$5}'
Pensado para automatización real
Uso directo en terminal y scripts
Base para DevOps / SRE / seguridad