Saca só, o Bash é tipo o idioma oficial nos terminais Linux. Com ele, dá pra deixar tudo automático, sabe? Tipo, organizar arquivos, dar um tapa no sistema, fazer cópia de segurança e um monte de outras paradas. aprender bash não exige ser um expert — basta curiosidade e prática. abaixo, veja exemplos úteis de scripts para o dia a dia.
1. o básico de um script bash
todo script bash começa com o shebang #!/bin/bash, que indica ao sistema qual interpretador usar.
exemplo: olá mundo!
#!/bin/bash
# este é um comentário
echo "olá, piolinux! este é o meu primeiro script bash."
salve como ola_mundo.sh, dê permissão com chmod +x ola_mundo.sh e execute com ./ola_mundo.sh.
2. automação de tarefas diárias
atualizar o sistema automaticamente:
#!/bin/bash
echo "atualizando listas de pacotes..."
sudo apt update
echo "realizando upgrade de pacotes..."
sudo apt upgrade -y
echo "removendo pacotes desnecessários..."
sudo apt autoremove -y
echo "limpando o cache de pacotes..."
sudo apt clean
echo "sistema atualizado e limpo!"
backup simples de pastas pessoais muito util:
#!/bin/bash
data=$(date +%y-%m-%d_%h-%m-%s)
dir_backup="$home/backups"
pastas_a_copiar=("$home/documentos" "$home/imagens")
nome_arquivo="backup_pessoal_$data.tar.gz"
mkdir -p "$dir_backup"
echo "iniciando backup das pastas: ${pastas_a_copiar[@]}"
tar -czvf "$dir_backup/$nome_arquivo" "${pastas_a_copiar[@]}"
echo "backup concluído! arquivo: $dir_backup/$nome_arquivo"
3. administração de sistema
monitorar a utilização do disco e enviar alerta:
#!/bin/bash
limite_percentual=80
particao="/dev/sda1"
email_admin="seuemail@exemplo.com"
uso=$(df -h "$particao" | awk 'nr==2 {print $5}' | sed 's/%//g')
if (( uso > limite_percentual )); then
echo "alerta: uso de disco na partição $particao está em $uso%!" | mail -s "alerta de disco" "$email_admin"
else
echo "uso de disco normal: $uso%"
fi
criar múltiplos usuários:
#!/bin/bash
arquivo_usuarios="lista_usuarios.txt"
if [ ! -f "$arquivo_usuarios" ]; then
echo "arquivo $arquivo_usuarios não encontrado."
exit 1
fi
while ifs= read -r usuario; do
if [ -n "$usuario" ]; then
echo "criando usuário: $usuario"
sudo useradd -m "$usuario"
sudo passwd "$usuario"
fi
done < "$arquivo_usuarios"
echo "usuários criados com sucesso."
conteúdo de lista_usuarios.txt:
joao
maria
pedro
ana
4. segurança e monitoramento
verificar portas abertas:
#!/bin/bash
echo "listando portas abertas:"
sudo netstat -tulpn
echo -e "\nstatus do firewall (ufw):"
sudo ufw status
monitorar tentativas de login ssh:
#!/bin/bash
arquivo_log="/var/log/auth.log"
echo "tentativas de login ssh falhas:"
grep "failed password" "$arquivo_log" | tail -n 50 | awk '{print $11}' | sort | uniq -c | sort -nr
5. scripts para desenvolvimento web
servidor http local com python:
#!/bin/bash
porta=8000
echo "servidor em http://localhost:$porta"
python3 -m http.server $porta
deploy simples via rsync/ssh:
#!/bin/bash
dir_local="./public_html/"
usuario_remoto="usuario"
ip_servidor="192.168.0.1"
dir_remoto="/var/www/html/"
rsync -avz --delete "$dir_local" "$usuario_remoto@$ip_servidor:$dir_remoto"
if [ $? -eq 0 ]; then
echo "deploy realizado com sucesso!"
else
echo "erro no deploy."
fi
6. utilidades e truques avançados
calculadora via terminal:
#!/bin/bash
if [ -z "$1" ]; then
echo "uso: ./calculadora.sh \"10 + 5 * 2\""
exit 1
fi
resultado=$(echo "scale=2; $1" | bc -l)
echo "resultado: $resultado"
gerar álbum de fotos html:
#!/bin/bash
dir_fotos="./fotos"
arquivo_html="album.html"
echo "" > "$arquivo_html"
echo "" >> "$arquivo_html"
echo "
minhas foto