atualiza e limpa versão 12/25

sudo bash

#!/bin/bash

# ==================================================
# Script de Manutenção do Sistema Linux
# Atualiza sistema, pacotes DEB, Flatpak, Snap
# Remove pacotes órfãos, kernels antigos e cache
# ==================================================

# --- Configuração de Segurança ---
set -Eeuo pipefail

# --- Verificação de Privilégios ---
if [[ $EUID -ne 0 ]]; then
    echo "Este script deve ser executado como root. Use: sudo ./script.sh"
    exit 1
fi

# --- 1. Atualização do Sistema (APT) ---
echo "Atualizando lista de pacotes..."
apt-get update

echo "Atualizando sistema e pacotes instalados..."
apt-get dist-upgrade -y

# --- 2. Limpeza do Sistema (APT e Kernels Antigos) ---
echo "Removendo pacotes desnecessários e kernels antigos..."
apt-get autoremove --purge -y

echo "Limpando cache de pacotes..."
apt-get clean

# --- 3. Atualização de Formatos de Pacotes Adicionais ---
if command -v flatpak &> /dev/null; then
    echo "Atualizando pacotes Flatpak..."
    flatpak update -y
else
    echo "Flatpak não está instalado. Pulando..."
fi

if command -v snap &> /dev/null; then
    echo "Atualizando pacotes Snap..."
    snap refresh
else
    echo "Snap não está instalado. Pulando..."
fi

# --- 4. Verificação Final ---
echo "Verificando se restaram pacotes para atualizar..."
apt list --upgradable || true

# --- Finalização ---
echo ""
echo "Manutenção concluída com sucesso!"
echo ""

# --- Informações do Sistema (Opcional) ---
if command -v neofetch &> /dev/null; then
    neofetch
fi
#!/bin/bash

# ==============================================================================
# Script para Instalar o Calibre e o Calibre Web no Linux Mint
# ==============================================================================
# Autor: Gemini (Google AI)
# Data:  08/08/2025
# ==============================================================================

# Cores para o terminal
GREEN='\\033[0;32m'
YELLOW='\\033[1;33m'
NC='\\033[0m' # Sem Cor

echo -e "${GREEN}Iniciando a instalação do Calibre e Calibre Web...${NC}"

# --- Passo 1: Atualizar pacotes e instalar dependências ---
echo -e "\\n${YELLOW}--> Passo 1: Atualizando a lista de pacotes e instalando Python...${NC}"
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv

# --- Passo 2: Instalar o Calibre ---
echo -e "\\n${YELLOW}--> Passo 2: Baixando e instalando a versão mais recente do Calibre...${NC}"
if command -v calibre &> /dev/null
then
    echo -e "${GREEN}O Calibre já está instalado. Pulando esta etapa.${NC}"
else
    sudo -v && wget -nv -O- <https://download.calibre-ebook.com/linux-installer.sh> | sudo sh /dev/stdin
    # Cria a pasta padrão do Calibre se ela não existir
    if [ ! -d "$HOME/Calibre Library" ]; then
        echo -e "${YELLOW}Criando o diretório padrão da Biblioteca Calibre...${NC}"
        mkdir -p "$HOME/Calibre Library"
    fi
fi

# --- Passo 3: Criar o ambiente virtual e instalar o Calibre Web ---
echo -e "\\n${YELLOW}--> Passo 3: Configurando o ambiente para o Calibre Web...${NC}"
INSTALL_DIR="$HOME/calibre-web"

if [ -d "$INSTALL_DIR" ]; then
    echo -e "${YELLOW}O diretório de instalação '$INSTALL_DIR' já existe. Pulando a criação do ambiente virtual.${NC}"
else
    mkdir -p "$INSTALL_DIR"
    python3 -m venv "$INSTALL_DIR/venv"
    echo -e "${GREEN}Ambiente virtual criado em '$INSTALL_DIR/venv'.${NC}"
fi

echo -e "\\n${YELLOW}--> Instalando o Calibre Web...${NC}"
source "$INSTALL_DIR/venv/bin/activate"
pip install calibreweb
deactivate

# --- Passo 4: Criar script para iniciar o servidor ---
echo -e "\\n${YELLOW}--> Passo 4: Criando um script para iniciar o Calibre Web facilmente...${NC}"

# O 'readlink' garante que obteremos o caminho absoluto, mesmo se a home for um link simbólico.
CALIBRE_DB_PATH=$(readlink -f "$HOME/Calibre Library")

cat << EOF > "$HOME/iniciar_calibre_web.sh"
#!/bin/bash
echo "Iniciando o servidor Calibre Web..."
echo "Acesse em seu navegador: <http://localhost:8083>"
echo "Pressione Ctrl+C para parar o servidor."

# Ativa o ambiente virtual
source "$HOME/calibre-web/venv/bin/activate"

# Inicia o Calibre Web
cps

# Desativa o ambiente virtual ao sair
deactivate
EOF

chmod +x "$HOME/iniciar_calibre_web.sh"

# --- Conclusão ---
echo -e "\\n\\n${GREEN}====================================================="
echo -e "      INSTALAÇÃO CONCLUÍDA COM SUCESSO!"
echo -e "=====================================================${NC}"
echo -e "Para iniciar o Calibre Web pela primeira vez, execute o seguinte comando no terminal:"
echo -e "\\n    ${YELLOW}./iniciar_calibre_web.sh${NC}\\n"
echo -e "Depois, siga estas instruções:"
echo -e "1. Abra seu navegador e acesse: ${YELLOW}http://localhost:8083${NC}"
echo -e "2. Na página de configuração, no campo 'Localização do banco de dados do Calibre', insira o seguinte caminho:"
echo -e "   ${YELLOW}$CALIBRE_DB_PATH${NC}"
echo -e "3. Clique em 'Salvar'."
echo -e "4. Faça login com o usuário '${YELLOW}admin${NC}' e a senha '${YELLOW}admin123${NC}'."
echo -e "5. ${YELLOW}É altamente recomendável alterar a senha padrão após o primeiro login.${NC}"
echo -e "\\nPara futuras execuções, basta rodar o script ${YELLOW}./iniciar_calibre_web.sh${NC} novamente."
echo -e "-----------------------------------------------------"

atualiza e limpa tudo versão 2

#!/bin/bash

# --- Configuração de Segurança ---
# Encerra o script imediatamente se um comando falhar.
# Isso evita que o sistema seja parcialmente atualizado ou que erros causem problemas maiores.
set -e

# --- 1. Atualização do Sistema Principal (APT) ---
echo "Iniciando a atualização da lista de pacotes..."
sudo apt update

echo "Instalando atualizações de pacotes e do sistema..."
# O '&&' garante que o dist-upgrade só aconteça se o upgrade for bem-sucedido.
sudo apt upgrade -y && sudo apt dist-upgrade -y

# --- 2. Limpeza do Sistema (APT e Kernels) ---
echo "Removendo pacotes desnecessários e kernels antigos..."
# O comando 'autoremove --purge' limpa dependências órfãs e remove arquivos de configuração,
# incluindo versões antigas do Kernel do Linux que não estão mais em uso.
sudo apt autoremove --purge -y

echo "Limpando o cache de pacotes baixados..."
# 'apt-get clean' é a maneira oficial e segura de limpar /var/cache/apt/archives/,
# sendo mais recomendado que 'rm -rf'.
sudo apt-get clean

# --- 3. Atualização de Formatos de Pacotes Adicionais ---
# Atualiza os pacotes Flatpak, se o comando estiver disponível.
if command -v flatpak &> /dev/null; then
    echo "Atualizando pacotes Flatpak..."
    flatpak update -y
else
    echo "Flatpak não está instalado. Pulando..."
fi

# Atualiza os pacotes Snap, se o comando estiver disponível.
if command -v snap &> /dev/null; then
    echo "Atualizando pacotes Snap..."
    sudo snap refresh
else
    echo "Snap não está instalado. Pulando..."
fi

# --- 4. Limpeza de Cache do Usuário (Seção de Risco) ---
# AVISO: O comando a seguir é agressivo e foi mantido a seu pedido.
# Ele pode causar instabilidade em aplicações que estão rodando no momento da execução.
# Dependendo de como o script é executado com 'sudo', o '~' pode se referir
# ao diretório do usuário root (/root) em vez do seu.
echo "Limpando o cache do diretório do usuário..."
sudo rm -rf ~/.cache/*

# --- 5. Verificação Final ---
echo "Verificando se restaram pacotes para atualizar..."
# Lista pacotes que, por algum motivo, não foram atualizados.
apt list --upgradable

# --- Mensagem de Finalização ---
echo ""
echo "Sistema atualizado e limpo com sucesso!"
echo ""

# --- Exibição de Informações do Sistema (Opcional) ---
# Verifica se o Neofetch está instalado antes de tentar executá-lo.
if command -v neofetch &> /dev/null; then
    neofetch
fi 

Limpa tudo 3 ( sem limpeza de cache - para maquina pessoal )

#!/bin/bash

# --- Definição de Cores ---
# Usamos 'tput' para melhor compatibilidade com diferentes terminais.
if command -v tput &> /dev/null; then
    NC=$(tput sgr0)      # Sem Cor (Reset)
    BOLD=$(tput bold)    # Negrito
    RED=$(tput setaf 1)  # Vermelho
    GREEN=$(tput setaf 2)# Verde
    YELLOW=$(tput setaf 3)# Amarelo
    BLUE=$(tput setaf 4) # Azul
    CYAN=$(tput setaf 6) # Ciano
else
    # Fallback para códigos ANSI brutos se 'tput' não estiver disponível
    NC='\\033[0m'
    BOLD='\\033[1m'
    RED='\\033[0;31m'
    GREEN='\\033[0;32m'
    YELLOW='\\033[0;33m'
    BLUE='\\033[0;34m'
    CYAN='\\033[0;36m'
fi

# --- Combinações de Cores ---
HEADER="${BOLD}${CYAN}"    # Cabeçalho da Seção (Negrito Ciano)
SUCCESS="${BOLD}${GREEN}"  # Mensagem de Sucesso (Negrito Verde)
INFO="${YELLOW}"     # Mensagem de Informação (Amarelo)
CMD_INFO="${BLUE}"   # Informação de Comando (Azul)

# --- Configuração de Segurança ---
# Encerra o script imediatamente se um comando falhar (exit on error).
# Isso evita que o sistema seja parcialmente atualizado ou que erros causem problemas maiores.
set -e

echo -e "${HEADER}--- Iniciando Script de Atualização e Limpeza ---${NC}"

# --- 1. Atualização do Sistema Principal (APT) ---
echo -e "\\n${HEADER}--- 1. Atualização do Sistema Principal (APT) ---${NC}"
echo -e "${INFO}Iniciando a atualização da lista de pacotes...${NC}"
sudo apt update

echo -e "\\n${INFO}Instalando atualizações de pacotes e do sistema...${NC}"
# O '&&' garante que o dist-upgrade só aconteça se o upgrade for bem-sucedido.
sudo apt upgrade -y && sudo apt dist-upgrade -y

# --- 2. Limpeza do Sistema (APT e Kernels) ---
echo -e "\\n${HEADER}--- 2. Limpeza Segura do Sistema (APT) ---${NC}"
echo -e "${INFO}Removendo pacotes desnecessários e kernels antigos...${NC}"
# O comando 'autoremove --purge' limpa dependências órfãs e remove arquivos de configuração,
# incluindo versões antigas do Kernel do Linux que não estão mais em uso.
# Esta é a forma segura de limpar o sistema.
sudo apt autoremove --purge -y

echo -e "\\n${INFO}Limpando o cache de pacotes baixados (/var/cache/apt/archives/)...${NC}"
# 'apt-get clean' é a maneira oficial e segura de limpar o cache do APT.
sudo apt-get clean

# --- 3. Atualização de Formatos de Pacotes Adicionais ---
echo -e "\\n${HEADER}--- 3. Atualização de Pacotes Adicionais ---${NC}"

# Atualiza os pacotes Flatpak, se o comando estiver disponível.
if command -v flatpak &> /dev/null; then
    echo -e "${INFO}Atualizando pacotes Flatpak...${NC}"
    flatpak update -y
else
    echo -e "${CMD_INFO}Flatpak não está instalado. Pulando...${NC}"
fi

# Atualiza os pacotes Snap, se o comando estiver disponível.
if command -v snap &> /dev/null; then
    echo -e "\\n${INFO}Atualizando pacotes Snap...${NC}"
    sudo snap refresh
else
    echo -e "${CMD_INFO}Snap não está instalado. Pulando...${NC}"
fi

# --- 4. Limpeza de Cache do Usuário (REMOVIDO) ---
echo -e "\\n${HEADER}--- 4. Limpeza de Cache do Usuário (REMOVIDO) ---${NC}"
echo -e "${CMD_INFO}A seção de limpeza de cache de usuário (~/.cache) foi removida.${NC}"
echo -e "${CMD_INFO}Esta é uma operação arriscada para ser automatizada${NC}"
echo -e "${CMD_INFO}e pode causar instabilidade nas aplicações em execução.${NC}"

# --- 5. Verificação Final ---
echo -e "\\n${HEADER}--- 5. Verificação Final ---${NC}"
echo -e "${INFO}Verificando se restaram pacotes para atualizar...${NC}"
# Captura a saída de 'apt list --upgradable' e remove o cabeçalho "Listing..."
UPGRADABLE_PACKAGES=$(apt list --upgradable 2>/dev/null | grep -v "Listing...")

if [ -n "$UPGRADABLE_PACKAGES" ]; then
    echo -e "${INFO}Atenção! Os seguintes pacotes, por algum motivo, não foram atualizados:${NC}"
    echo -e "${YELLOW}$UPGRADABLE_PACKAGES${NC}"
else
    echo -e "${SUCCESS}Nenhum pacote pendente. O sistema está 100% atualizado.${NC}"
fi

# --- Mensagem de Finalização ---
echo -e "\\n${HEADER}--- Finalização ---${NC}"
echo -e "${SUCCESS}Sistema atualizado e limpo com sucesso!${NC}"

# --- Exibição de Informações do Sistema (Opcional) ---
# Verifica se o Neofetch está instalado antes de tentar executá-lo.
if command -v neofetch &> /dev/null; then
    echo -e "\\n${INFO}Exibindo informações do sistema...${NC}"
    neofetch
else
    echo -e "\\n${CMD_INFO}(Neofetch não instalado. Para exibir infos, instale-o com 'sudo apt install neofetch')${NC}"
fi

echo ""

Atualiza e limpa original

#!/bin/bash

# Atualiza a lista de pacotes e o sistema
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y

# Atualiza os pacotes Flatpak
if command -v flatpak &> /dev/null; then
    echo "Atualizando pacotes Flatpak..."
    flatpak update -y
else
    echo "Flatpak não está instalado. Pulando..."
fi

# Atualiza os pacotes Snap
if command -v snap &> /dev/null; then
    echo "Atualizando pacotes Snap..."
    sudo snap refresh
else
    echo "Snap não está instalado. Pulando..."
fi

# Limpeza adicional de caches
sudo rm -rf /var/cache/apt/archives/*
sudo rm -rf ~/.cache/*

# Verifica atualizações do kernel (opcional)
echo "Verificando kernels antigos para remoção..."
sudo apt autoremove --purge -y

# Listar pacotes que não foram atualizados
echo "Verificando pacotes que não foram atualizados..."
apt list --upgradable

# Mensagem de finalização
echo "Sistema atualizado e limpo com sucesso!"

# Exibe Logo
neofetch

codigo melhorado - criar pasta e compartilhar anonimo

#!/bin/bash

# Configurações
PASTA="/home/$USER/shared" # Ajusta dinamicamente para o usuário atual
USUARIO="$USER"
NOME_COMPARTILHAMENTO="shared"

# Criar a pasta
echo "Criando a pasta $PASTA..."
sudo mkdir -p "$PASTA"

# Ajustar permissões
echo "Ajustando permissões da pasta $PASTA..."
sudo chown -R "$USUARIO:$USUARIO" "$PASTA"
sudo chmod -R 777 "$PASTA"

# Instalar Samba se não estiver instalado
if ! dpkg -l | grep -q samba; then
    echo "Instalando Samba..."
    sudo apt update
    sudo apt install -y samba
fi

# Adicionar configuração ao smb.conf (evitar duplicação)
echo "Configurando Samba..."
SAMBA_CONFIG="/etc/samba/smb.conf"
if ! grep -q "^\\[$NOME_COMPARTILHAMENTO\\]" "$SAMBA_CONFIG"; then
    sudo bash -c "cat >> $SAMBA_CONFIG <<EOL

[$NOME_COMPARTILHAMENTO]
path = $PASTA
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
force user = $USUARIO
EOL"
else
    echo "Configuração para $NOME_COMPARTILHAMENTO já existe no smb.conf. Ignorando."
fi

# Reiniciar serviços do Samba
echo "Reiniciando serviço Samba..."
if systemctl list-units | grep -q smbd.service; then
    sudo systemctl restart smbd
else
    echo "Serviço smbd não encontrado. Verifique a instalação do Samba."
fi

if systemctl list-units | grep -q nmbd.service; then
    sudo systemctl restart nmbd
fi

echo "Pasta $PASTA criada e compartilhada com sucesso!"

Criar pasta compartilhada Scritp ( nao sei se foi testado)

#!/bin/bash

# Configurações
PASTA="/home/user/shared"
USUARIO="user"
GRUPO="familia"
NOME_COMPARTILHAMENTO="shared"

# Criar a pasta
echo "Criando a pasta $PASTA..."
sudo mkdir -p $PASTA

# Ajustar permissões
echo "Ajustando permissões da pasta $PASTA..."
sudo chown -R $USUARIO:$GRUPO $PASTA
sudo chmod -R 770 $PASTA

# Instalar Samba se não estiver instalado
if ! dpkg -l | grep -q samba; then
    echo "Instalando Samba..."
    sudo apt update
    sudo apt install -y samba
fi

# Adicionar configuração ao smb.conf
echo "Configurando Samba..."
SAMBA_CONFIG="/etc/samba/smb.conf"
sudo bash -c "cat >> $SAMBA_CONFIG <<EOL

[$NOME_COMPARTILHAMENTO]
path = $PASTA
available = yes
valid users = $USUARIO
read only = no
browsable = yes
public = yes
writable = yes
EOL"

# Criar senha para o usuário Samba
echo "Criando senha para o usuário Samba..."
(echo "senha_do_user"; echo "senha_do_user") | sudo smbpasswd -a $USUARIO -s

# Reiniciar serviço Samba
echo "Reiniciando serviço Samba..."
sudo systemctl restart smbd

echo "Pasta $PASTA criada e compartilhada com sucesso!"

Criar com acesso anonimo ( funcionou)

#!/bin/bash

# Configurações
PASTA="/home/user/shared"
USUARIO="user"
GRUPO="familia"
NOME_COMPARTILHAMENTO="shared"

# Criar a pasta
echo "Criando a pasta $PASTA..."
sudo mkdir -p $PASTA

# Ajustar permissões
echo "Ajustando permissões da pasta $PASTA..."
sudo chown -R $USUARIO:$GRUPO $PASTA
sudo chmod -R 777 $PASTA

# Instalar Samba se não estiver instalado
if ! dpkg -l | grep -q samba; then
    echo "Instalando Samba..."
    sudo apt update
    sudo apt install -y samba
fi

# Adicionar configuração ao smb.conf
echo "Configurando Samba..."
SAMBA_CONFIG="/etc/samba/smb.conf"
sudo bash -c "cat >> $SAMBA_CONFIG <<EOL

[$NOME_COMPARTILHAMENTO]
path = $PASTA
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes
force user = $USUARIO
EOL"

# Reiniciar serviço Samba
echo "Reiniciando serviço Samba..."
sudo systemctl restart smbd

echo "Pasta $PASTA criada e compartilhada com sucesso!"