v2.1.0 Shell Script Bash Linux macOS CLI Tools

Modular Bashrc Manager

Modular Bashrc Manager sostituisce il file monolitico ~/.bashrc con un'architettura modulare disaccoppiata basata sul paradigma available/enabled. Include gestione massiva multi-script, anteprima rapida del codice (cat), installer multi-distro con migrazione sicura a rischio zero, bashboard di sistema con rilevamento automatico di Cockpit Web UI, prompt Git interattivo e aggiornamenti sicuri da Gitea.

Modular Bashrc Manager CLI interface and bashboard overview

Overview of brc-script CLI management, code preview, and the system bashboard.

Panoramica del Progetto

Modular Bashrc Manager รจ un sistema moderno, modulare e velocissimo progettato per organizzare, scalare e mantenere la configurazione Bash su Linux e macOS. Ispirato all'architettura collaudata available / enabled (adottata da Debian, Apache e Nginx), sostituisce il caotico file monolitico ~/.bashrc con una libreria pulita di moduli autonomi e indipendenti.

Invece di accumulare centinaia di righe di alias, funzioni, variabili d'ambiente e prompt in un unico file vulnerabile a errori, la configurazione viene suddivisa in singoli script dedicati. Tramite la potente utility da riga di comando brc-script, puoi abilitare, disabilitare, visualizzare in anteprima o in formato cat, creare, rimuovere o aggiornare i singoli moduli in una frazione di secondo.

Migrazione Sicura a Rischio Zero Durante l'installazione, l'installer crea automaticamente una copia di backup con marcatura temporale del tuo ~/.bashrc originale e trasferisce tutti i tuoi alias e funzioni preesistenti nel modulo protetto 00_default.sh. Nessuna personalizzazione andrร  persa!

Caratteristiche Principali

  • Architettura Modulare Disaccoppiata: Suddivide alias, funzioni, prompt ed export in file dedicati, caricando all'avvio della shell unicamente i moduli attivati.
  • Gestione Massiva Multi-Script: Abilita (-e), disabilita (-d), visualizza in anteprima (-p), stampa in cat (-v) o rimuovi (-r) piรน script contemporaneamente tramite ID numerici o nomi dei file (es. brc-script -e 1 3 4 oppure brc-script -d 03_bashboard 04_aliases).
  • Interruttori Globali Abilita/Disabilita: Attiva tutti i moduli disponibili (-ea / --enable-all / enable-all) o disattiva tutti i moduli attivi (-da / --disable-all / disable-all) con un solo comando.
  • Doppia Modalitร  di Ispezione Codice (Anteprima vs Cat):
    • Anteprima Numerata (-p / --preview): Mostra il codice sorgente con numeri di riga, percorso file, conteggio righe e stato attivo (ENABLED / DISABLED).
    • Cat / Vista Semplice (-v / --cat / --view): Stampa il codice pulito direttamente nel terminale senza numeri di riga, pronto per il copia-incolla immediato o il reindirizzamento.
  • Verifica Aggiornamenti da Gitea & Motore di Upgrade Sicuro: Verifica i nuovi commit dal repository ufficiale (-u / --update) con notifiche passive nel menu ed esegue l'aggiornamento automatico (--upgrade) dei file di sistema senza intaccare i tuoi script personalizzati o 00_default.sh.
  • Bashboard di Sistema Intelligente con Rilevamento Cockpit: Include 03_bashboard.sh, una dashboard in stile MOTD all'accesso che monitora CPU, RAM, disco, temperatura, IP locali/pubblici (con caching istantaneo), aggiornamenti pendenti e scoperta dinamica automatica di Cockpit Web UI con estrazione della porta di ascolto.
  • Prompt Git Interattivo con Colori Dinamici: Evidenziazione in tempo reale del branch attivo, modifiche staged (+), file modificati (M:), file non tracciati (N:) e stato di sincronizzazione remota (โ†‘/โ†“).
  • Installer Intelligente Multipiattaforma: Rileva automaticamente il gestore pacchetti host (apt, dnf, yum, pacman, zypper, apk, brew) e installa le dipendenze richieste (jq, curl).
  • Motore di Stile ANSI Integrato (ccecho): Utility inclusa per formattare testo a colori, sfondi personalizzati e stili di stampa nel terminale (grassetto, sottolineato, attenuato, lampeggiante).
  • Ricarica Immediata della Shell: Comando rapido refresh-brc per applicare istantaneamente le modifiche alla sessione attiva senza dover chiudere e riaprire il terminale.

Struttura delle Directory

Dopo l'installazione, l'ambiente รจ strutturato all'interno della cartella principale ~/.bashrc.d/:

  ๐Ÿ“ ~/.bashrc.d/
  โ”œโ”€โ”€ ๐Ÿ“„ .version                               # Identificativo commit / versione attuale
  โ”œโ”€โ”€ ๐Ÿ“„ .update_cache                          # Cache locale per notifiche passive di aggiornamento
  โ”œโ”€โ”€ ๐Ÿ“‚ scripts-needed/                        # Script essenziali del motore (Caricati sempre per primi)
  โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ brc-script.sh                     # Logica principale e funzioni del manager CLI
  โ”‚    โ””โ”€โ”€ ๐Ÿ“„ ccecho.sh                         # Helper per formattazione e colori da terminale
  โ”œโ”€โ”€ ๐Ÿ“‚ scripts-available/                     # Libreria di tutti i moduli installati
  โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ 00_default.sh                     # Configurazione utente migrata (Protetta dagli upgrade)
  โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ 01_git-cli-highlitgh.sh           # Prompt dinamico Git (Utente standard)
  โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ 02_git-cli-highlitgh-root.sh      # Prompt Git ad alta visibilitร  per Root
  โ”‚    โ”œโ”€โ”€ ๐Ÿ“„ 03_bashboard.sh                   # Metriche di sistema e auto-rilevamento Cockpit
  โ”‚    โ””โ”€โ”€ ๐Ÿ“„ 04_aliases.sh                     # Raccolta alias di uso quotidiano
  โ”œโ”€โ”€ ๐Ÿ“‚ scripts-enabled/                       # Collegamenti simbolici ai moduli attivi
  โ”‚    โ”œโ”€โ”€ ๐Ÿ”— 00_default.sh -> ../scripts-available/00_default.sh
  โ”‚    โ””โ”€โ”€ ๐Ÿ”— 03_bashboard.sh -> ../scripts-available/03_bashboard.sh
  โ””โ”€โ”€ ๐Ÿ“‚ scripts-removed/                       # Cestino di sicurezza con backup datati degli script eliminati

Ordine di Caricamento all'Avvio della Shell:

  1. Tutti gli script di base presenti in scripts-needed/*.sh vengono eseguiti in sequenza.
  2. Tutti i collegamenti simbolici attivi in scripts-enabled/*.sh vengono eseguiti in ordine alfabetico.

Installazione & Avvio Rapido

Installazione Automatica (Consigliata)

1. Clona il repository da Gitea:

git clone https://gitea.sld-server.org/sld-admin/Modular-Bashrc-Manager.git
cd Modular-Bashrc-Manager/installer

2. Rendi eseguibile lo script di installazione e avvialo:

chmod +x brc-script-install.sh
./brc-script-install.sh

3. Ricarica la sessione attiva:

refresh-brc
# oppure: source ~/.bashrc
Configurazione Multi-Utente L'installer puรฒ essere eseguito come utente standard oppure come root. Se eseguito con privilegi root, un menu interattivo permette di selezionare e configurare qualsiasi account utente presente sulla macchina.

Operazioni Eseguite dall'Installer:

  • Verifica e installa automaticamente jq e curl tramite il package manager di sistema.
  • Genera un backup con data e ora del ~/.bashrc originario (es. ~/bashrc-backup-2026-08-26_16-00-00).
  • Estrae tutte le configurazioni esistenti in scripts-available/00_default.sh e lo abilita subito.
  • Sostituisce ~/.bashrc con il loop di caricamento modulare pulito.
  • Installa i file di sistema in scripts-needed/ e i moduli standard in scripts-available/.
  • Genera il file .version con il riferimento al commit Git corrente.

Guida ai Comandi CLI (brc-script)

Il comando brc-script offre il controllo completo sulla configurazione modulare:

Azione Flag / Alias Argomenti Descrizione
Elenco -l, --list, list nessuno Mostra l'elenco di tutti i moduli con ID numerico, nome file e stato attivo (- blu)
Anteprima (Numerata) -p, --preview, preview <id|nome ...> Stampa il codice con numeri di riga, percorso file, conteggio righe e intestazione di stato
Cat / Vista (Semplice) -v, --cat, --view, --show, cat, view <id|nome ...> Stampa il codice pulito dello script senza numeri di riga (ideale per copia-incolla rapido)
Abilita -e, --enable, enable <id|nome ...> Attiva uno o piรน script creando i collegamenti simbolici in scripts-enabled/
Disabilita -d, --disable, disable <id|nome ...> Disattiva uno o piรน script rimuovendo i collegamenti da scripts-enabled/
Abilita Tutti -ea, --enable-all, enable-all nessuno Attiva contemporaneamente tutti gli script disponibili in scripts-available/
Disabilita Tutti -da, --disable-all, disable-all nessuno Disattiva contemporaneamente tutti gli script attualmente attivi in scripts-enabled/
Crea -c, --create, create nessuno Wizard interattivo per creare un nuovo modulo da template e aprirlo in $EDITOR
Modifica -m, --modify, modify <id|nome> Apre un modulo in $EDITOR (o vim) con opzione di ridenominazione
Rimuovi -r, --remove, remove <id|nome ...> Sposta in sicurezza gli script nel cestino scripts-removed/ con timestamp
Verifica Update -u, --update, update nessuno Interroga il repository Gitea per rilevare nuovi commit o release
Aggiorna Sistema --upgrade, upgrade nessuno Aggiorna il motore e i moduli predefiniti senza toccare il tuo codice personalizzato
Ricarica Shell refresh-brc nessuno Ricarica istantaneamente ~/.bashrc nella sessione terminale corrente

Esempi di Utilizzo Pratico

1. Elencare tutti i moduli disponibili:

brc-script -l

2. Visualizzare l'anteprima del codice con numeri di riga:

# Anteprima tramite ID numerico
brc-script -p 4

# Anteprima tramite nome dello script
brc-script --preview 03_bashboard

3. Stampare il codice pulito (cat senza numeri di riga):

# Cat per ID numerico
brc-script -v 4

# Cat per nome dello script
brc-script --cat 03_bashboard

4. Abilitare piรน moduli contemporaneamente:

# Selezione multipla per ID
brc-script -e 1 3 4

# Selezione multipla per nome
brc-script -e 01_git-cli-highlitgh 04_aliases

5. Disabilitare piรน moduli in un solo comando:

brc-script -d 2 4 5
brc-script -d 03_bashboard 04_aliases

6. Creare un nuovo script personalizzato:

brc-script -c

7. Verificare e installare gli aggiornamenti da Gitea:

# Controllo aggiornamenti
brc-script -u

# Upgrade sicuro automatico
brc-script --upgrade

Moduli Predefiniti Inclusi

  • 00_default.sh โ€” Configurazione Personale Migrata:
    Contiene tutti gli alias, variabili d'ambiente, esportazioni PATH e funzioni preesistenti sul sistema prima dell'installazione. รˆ rigorosamente protetto: gli aggiornamenti non lo sovrascriveranno mai.
  • 01_git-cli-highlitgh.sh โ€” Prompt Git Interattivo (Utente Standard):
    Mostra nel prompt dei comandi il nome del branch Git attivo (Verde se pulito, Viola se modificato), file in stage (+N in verde), file modificati (M:N in giallo), file non tracciati (N:N in rosso) e stato di sincronizzazione remota (โ†‘N commit avanti / โ†“N commit indietro).
  • 02_git-cli-highlitgh-root.sh โ€” Prompt Git con Marcatura Root:
    Variante ad alto contrasto concepita per ambienti multi-utente e server di produzione, con differenziazione visiva in rosso acceso per l'utente root (simbolo #) e verde/blu per gli utenti normali (simbolo >).
  • 03_bashboard.sh โ€” Dashboard di Sistema & Rilevamento Cockpit:
    Stampa all'accesso un riepilogo grafico delle metriche hardware e di rete:
    • Distribuzione Linux, versione del kernel e Hostname.
    • Indirizzi IP locali e IP pubblico (con cache locale per non rallentare l'avvio del terminale).
    • Rilevamento Dinamico di Cockpit Web UI: individua se Cockpit รจ installato, ne estrae la porta di ascolto (da file di config, socket systemd o porte attive) e mostra l'URL diretto https://<IP_PRIMARIO>:<PORTA>.
    • Percentuale di utilizzo CPU, RAM e Disco con soglie di allarme colorate (Verde < 50%, Giallo < 80%, Rosso ≥ 80%).
    • Uptime e Carico medio di sistema (Load Average).
    • Conteggio dei pacchetti aggiornabili multipiattaforma (apt, dnf, pacman/checkupdates, zypper, apk).
    • Temperatura della CPU (con disattivazione automatica su macchine virtuali).
  • 04_aliases.sh โ€” Raccolta Alias Comuni:
    Fornisce utili scorciatoie e comandi colorati per velocizzare le operazioni quotidiane da riga di comando.

Creazione di Moduli Personalizzati

Creare un nuovo script personalizzato richiede pochi secondi:

  1. Esegui il comando di creazione:
    brc-script -c
  2. Inserisci il nome del modulo (es. docker-utility).
  3. Scrivi le tue funzioni, alias o variabili all'interno dell'editor che verrร  aperto automaticamente:
    #!/bin/bash
    # ============================================================
    # Modular Bashrc - docker-utility.sh
    # ============================================================
    
    alias dps="docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"
    alias dlogs="docker logs -f --tail=100"
    
    dclean() {
        ccecho -t byellow "Pulizia container e immagini non utilizzate..."
        docker system prune -af --volumes
        ccecho -t bgreen "Pulizia Docker completata!"
    }
        
  4. Salva ed esci dall'editor. Alla richiesta, conferma l'abilitazione immediata del nuovo script.
  5. Ricarica l'ambiente con refresh-brc.

Utility Integrata: ccecho

Nella cartella scripts-needed/ รจ inclusa l'utility ccecho (Colored Custom Echo), utilizzabile sia all'interno dei tuoi moduli che in qualsiasi script Bash esterno per stampare output colorati ed eleganti.

Esempi di Sintassi:

# Testo verde in grassetto
ccecho -t green -s bold "Operazione completata con successo!"

# Testo rosso su sfondo nero con sottolineatura
ccecho -t red -b black -s underline "Errore Critico: Connessione rifiutata"

# Messaggio con colore brillante
ccecho -t bcyan "Download in corso..."

Opzioni Disponibili:

  • Colori Testo (-t / --text): black, red, green, yellow, blue, magenta, cyan, white e relative varianti brillanti (bblack, bred, bgreen, byellow, bblue, bmagenta, bcyan, bwhite).
  • Colori Sfondo (-b / --bg): stessi colori supportati per il testo.
  • Stili di Formattazione (-s / --style): bold, dim, italic, underline, blink, reverse, hidden, strike.

Distribuzioni Supportate

Modular Bashrc Manager รจ compatibile con qualsiasi ambiente POSIX / Bash (≥ 4.0) ed รจ stato testato su:

Famiglia OS Distribuzioni e Sistemi Operativi Package Manager Rilevato
Debian / Ubuntu Debian, Ubuntu, Linux Mint, Pop!_OS, Raspberry Pi OS apt / apt-get
Red Hat / Fedora Fedora, RHEL, CentOS Stream, Rocky Linux, AlmaLinux dnf / yum
Arch Linux Arch Linux, Manjaro, EndeavourOS pacman
openSUSE openSUSE Leap, openSUSE Tumbleweed zypper
Alpine Linux Alpine Linux (Container e Server) apk
macOS Apple macOS (Intel & Apple Silicon) brew (Homebrew)

Risoluzione Problemi e Domande Frequenti

1. Ho abilitato un modulo ma i comandi non sono ancora disponibili.

รˆ sufficiente digitare nel terminale il comando rapido di ricarica:

refresh-brc

2. Come ripristino il mio vecchio .bashrc originale?

L'installer crea una copia di backup prima di qualsiasi intervento. Per ripristinarla:

cp ~/bashrc-backup-* ~/.bashrc

3. Dove finiscono i file eliminati con brc-script -r?

Gli script non vengono cancellati definitivamente: vengono spostati con marcatura oraria nella cartella di sicurezza ~/.bashrc.d/scripts-removed/.

4. Come imposto il mio editor di testo preferito?

Puoi definire la variabile d'ambiente standard EDITOR all'interno del modulo 00_default.sh:

export EDITOR="nano"   # oppure "vim", "code", "nvim", "micro"

Licenza e Repository

Questo progetto รจ software libero rilasciato sotto licenza GNU General Public License v3.0 (GPL-3.0).

Repository ufficiale su Gitea: sld-admin/Modular-Bashrc-Manager