18 KiB
⚡ Modular Bashrc Manager
Un sistema moderno, modulare e velocissimo per organizzare, gestire e scalare la configurazione di Bash su Linux e macOS.
📑 Indice dei Contenuti
- Panoramica
- Perché Modular Bashrc Manager?
- Caratteristiche Principali
- Architettura e Flusso di Caricamento
- Installazione e Avvio Rapido
- Guida ai Comandi CLI (
brc-script) - Moduli Predefiniti Inclusi
- Creazione di Moduli Personalizzati
- Utility Integrate (
ccecho) - Distribuzioni Supportate
- Risoluzione Problemi e FAQ
- Licenza e Autore
🔍 Panoramica
Modular Bashrc Manager sostituisce il tradizionale file unico e disordinato ~/.bashrc con un'architettura pulita, modulare e disaccoppiata, ispirata al paradigma available/enabled utilizzato da Debian, Apache e Nginx.
Invece di accumulare centinaia di alias, funzioni, variabili d'ambiente e prompt in un unico file monolitico, la configurazione della shell viene suddivisa in script indipendenti che possono essere abilitati, disabilitati, visualizzati in anteprima, creati o aggiornati in modo sicuro con un solo comando.
~/.bashrc ──▶ Loader ──▶ ~/.bashrc.d/scripts-needed/ (Motore e utility di base)
──▶ ~/.bashrc.d/scripts-enabled/ (Personalizzazioni attive)
💡 Perché Modular Bashrc Manager?
~/.bashrc Monolitico Tradizionale |
Con Modular Bashrc Manager |
|---|---|
| ❌ Centinaia di righe confuse in un solo file | ✅ Script modulari, ordinati e dedicati a compiti specifici |
| ❌ Difficile isolare bug e testare modifiche | ✅ Attiva o disattiva i moduli all'istante (brc-script -e / -d) |
| ❌ Rischio di rompere l'intera shell per un errore | ✅ Attivazione sicura tramite symlink e backup automatici |
| ❌ Complesso condividere o sincronizzare snippet | ✅ File modulari pronti per essere condivisi o versionati |
| ❌ Necessità di aprire editor di testo per leggere i file | ✅ Anteprima immediata o cat da terminale (brc-script -p / -v) |
✨ Caratteristiche Principali
-
🚀 Installer Intelligente Multi-Distribuzione
Riconosce automaticamente il gestore di pacchetti del sistema (apt,dnf,yum,pacman,zypper,apk,brew) e installa in autonomia le dipendenze necessarie (jq,curl). -
🔄 Migrazione Sicura a Rischio Zero
Crea un backup con data/ora del~/.bashrcattuale e trasferisce automaticamente tutte le tue impostazioni pregresse in00_default.sh: non perderai nessuna configurazione. -
⚡ Gestione Massiva Multi-Script
Abilita, disabilita, visualizza o rimuovi più script simultaneamente passando gli ID numerici o i nomi dei file (es.brc-script -e 1 3 4oppurebrc-script -d 03_bashboard 04_aliases). -
👁️ Anteprima e Cat Immediato del Codice (
-p/-v)
Ispeziona il codice di uno script direttamente nel terminale senza dover aprire editor esterni. Usabrc-script -p <id|nome>per l'anteprima numerata con intestazioni a colori, oppurebrc-script -v <id|nome>(o--cat) per visualizzare il codice pulito senza numeri di riga. -
🖥️ Bashboard di Sistema Intelligente
Include03_bashboard.sh, una dashboard stile MOTD veloce che mostra CPU, RAM, dischi, temperatura, IP locali/pubblici, aggiornamenti di sistema e il rilevamento dinamico automatico della Web UI di Cockpit. -
🌿 Evidenziazione Git nel Prompt della CLI
Include hook per il prompt dinamico (01_git-cli-highlitgh.she02_git-cli-highlitgh-root.sh) per mostrare branch Git, file indicizzati (+), modificati (M:), non tracciati (N:) e stato di sincronizzazione remota (↑/↓). -
🔄 Aggiornamenti Gitea e Upgrade Sicuro
Verifica la presenza di aggiornamenti sul repository conbrc-script -ued effettua l'aggiornamento sicuro del motore conbrc-script --upgradesenza toccare00_default.sho i tuoi script personali. -
🎨 Utility Integrata di Stile
ccecho
Libreria leggera per stampare testi colorati e formattati su terminale (grassetto, sottolineato, lampeggiante, colori di testo e sfondo).
🏗️ Architettura e Flusso di Caricamento
All'avvio della shell, ~/.bashrc esegue un loader leggero che carica i moduli in ordine deterministico:
~/.bashrc.d/
├── .version # Hash di commit/versione installata
├── .update_cache # Cache per i controlli passivi di update da Gitea
├── scripts-needed/ # Script fondamentali del motore (caricati SEMPRE per primi)
│ ├── brc-script.sh # Logica centrale e funzioni della CLI
│ └── ccecho.sh # Libreria di output a colori
│
├── scripts-available/ # Tutti gli script installati (Libreria dei moduli)
│ ├── 00_default.sh # La tua configurazione migrata (Protetta da modifiche)
│ ├── 01_git-cli-highlitgh.sh # Prompt Git per utenti standard
│ ├── 02_git-cli-highlitgh-root.sh # Prompt Git con distinzione cromatica Root/User
│ ├── 03_bashboard.sh # Dashboard metriche e rilevamento Cockpit
│ └── 04_aliases.sh # Alias e scorciatoie di uso comune
│
├── scripts-enabled/ # Symlink agli script attivi in scripts-available/
│ ├── 00_default.sh -> ../scripts-available/00_default.sh
│ └── 03_bashboard.sh -> ../scripts-available/03_bashboard.sh
│
└── scripts-removed/ # Cestino con backup marcati con timestamp degli script eliminati
Ordine di Esecuzione:
- Vengono caricati sequenzialmente tutti i file presenti in
scripts-needed/*.sh. - Vengono caricati in ordine alfabetico tutti i symlink attivi in
scripts-enabled/*.sh.
📥 Installazione e Avvio Rapido
Installazione Automatica
-
Clona il repository ufficiale:
git clone https://gitea.sld-server.org/sld-admin/Modular-Bashrc-Manager.git cd Modular-Bashrc-Manager/installer -
Avvia lo script di installazione:
chmod +x brc-script-install.sh ./brc-script-install.sh -
Ricarica la sessione della shell:
refresh-brc # oppure: source ~/.bashrc
Tip
Puoi eseguire l'installer sia come utente normale che come
rootper configurare qualsiasi utente presente sul sistema.
Cosa fa l'Installer:
- 🔍 Rileva la distribuzione Linux/macOS e installa
jqecurlse mancanti. - 💾 Crea un backup con data e ora del tuo
~/.bashrcoriginale (es.~/bashrc-backup-2026-08-26_16-00-00). - 🚚 Migra il contenuto del vecchio
.bashrcin~/.bashrc.d/scripts-available/00_default.she lo abilita immediatamente. - 🧹 Sostituisce
~/.bashrccon il blocco loader minimale e pulito. - 📦 Copia i file essenziali in
scripts-needed/e i moduli standard inscripts-available/. - 🏷️ Crea il file
.versioncon il commit hash di riferimento.
💻 Guida ai Comandi CLI (brc-script)
Il comando principale per gestire l'intero ambiente è brc-script.
Tabella Rapida dei Comandi
| Azione | Flag / Alias | Argomenti | Descrizione |
|---|---|---|---|
| Elenco Script | -l, --list, list |
nessuno | Mostra tutti gli script, l'ID numerico e lo stato di attivazione (- blu) |
| Anteprima (Numerata) | -p, --preview, preview |
<id|nome ...> |
Stampa il codice con numeri di riga e intestazione informativa |
| Cat / Vista (Semplice) | -v, --cat, --view, --show, cat, view |
<id|nome ...> |
Stampa il codice pulito dello script senza numeri di riga |
| Abilita | -e, --enable, enable |
<id|nome ...> |
Attiva uno o più script creando il symlink in scripts-enabled/ |
| Disabilita | -d, --disable, disable |
<id|nome ...> |
Disattiva uno o più script rimuovendo il symlink |
| Abilita Tutti | -ea, --enable-all, enable-all |
nessuno | Attiva contemporaneamente tutti gli script disponibili |
| Disabilita Tutti | -da, --disable-all, disable-all |
nessuno | Disattiva contemporaneamente tutti gli script abilitati |
| Crea Script | -c, --create, create |
nessuno | Procedura guidata per creare un nuovo script da template e aprirlo nell'editor |
| Modifica Script | -m, --modify, modify |
<id|nome> |
Apre lo script nell'editor ($EDITOR o vim) con possibilità di rinominarlo |
| Rimuovi Script | -r, --remove, remove |
<id|nome ...> |
Sposta in modo sicuro lo script nel cestino scripts-removed/ con timestamp |
| Verifica Update | -u, --update, update |
nessuno | Interroga il repository Gitea per rilevare nuovi commit e versioni |
| Aggiorna Sistema | --upgrade, upgrade |
nessuno | Aggiorna il motore e i moduli predefiniti senza toccare il tuo codice personale |
| Ricarica Shell | refresh-brc |
nessuno | Ricarica istantaneamente la configurazione .bashrc nella sessione corrente |
Esempi di Utilizzo Pratico
1. Elencare i Moduli Disponibili
brc-script -l
Esempio di output:
------------------------------------
Scripts List
------------------------------------
1) 00_default.sh -
2) 01_git-cli-highlitgh.sh
3) 02_git-cli-highlitgh-root.sh
4) 03_bashboard.sh -
5) 04_aliases.sh
------------------------------------
'-' (blue) = Active / Enabled
------------------------------------
2. Abilitare Più Script in un Solo Comando
Puoi specificare gli ID numerici o i nomi (con o senza estensione .sh):
# Abilita tramite ID numerici
brc-script -e 2 5
# Abilita tramite nomi degli script
brc-script -e 01_git-cli-highlitgh 04_aliases
3. Disabilitare Più Script Contemporaneamente
# Disabilita per ID
brc-script -d 2 4 5
# Disabilita per nome
brc-script -d 03_bashboard 04_aliases
4. Visualizzare l'Anteprima o Eseguire il Cat del Codice nel Terminale
Esamina cosa fa uno script prima di attivarlo:
# Anteprima con numeri di riga e intestazione formattata
brc-script -p 4
brc-script --preview 03_bashboard
# Stampa (cat) del codice pulito senza numeri di riga (ideale per copia-incolla)
brc-script -v 4
brc-script --cat 03_bashboard
5. Creare un Nuovo Script Personalizzato
brc-script -c
Verrà richiesto il nome del file (es. scorciatoie-docker), verrà generato un template pronto e aperto direttamente nel tuo $EDITOR (o vim).
6. Verificare e Applicare gli Aggiornamenti
# Controlla la presenza di novità su Gitea
brc-script -u
# Effettua l'aggiornamento sicuro del motore
brc-script --upgrade
Note
brc-script --upgradenon sovrascrive mai il tuo file00_default.sho i tuoi moduli creati manualmente. Vengono aggiornati solo i moduli ufficiali e i componenti di sistema inscripts-needed/.
📦 Moduli Predefiniti Inclusi
00_default.sh — Configurazione Personale Migrata
- Scopo: Contiene tutti i tuoi alias, funzioni pregresse, variabili d'ambiente ed esportazioni
PATHmigrate durante l'installazione. - Sicurezza: Strettamente protetto. Gli aggiornamenti non modificheranno o sovrascriveranno mai questo file.
01_git-cli-highlitgh.sh — Prompt Git Interattivo (Utente)
- Scopo: Mostra nel prompt del terminale lo stato del repository Git corrente:
- Nome del branch in Verde (clean) o Viola (file modificati).
+N: Numero di file in stage (Verde).M:N: Numero di file modificati (Giallo).N:N: Numero di file non tracciati (Rosso).↑N/↓N: Commit in anticipo o ritardo rispetto al remote (Ciano).
02_git-cli-highlitgh-root.sh — Prompt Git con Evidenziazione Root
- Scopo: Versione del prompt Git avanzata con colorazione ad alta visibilità (rosso acceso
#per l'utenteroot, verde/blu>per gli utenti normali).
03_bashboard.sh — Bashboard di Sistema & Rilevamento Cockpit
- Scopo: Mostra un riepilogo grafico all'apertura del terminale:
- Dati della distribuzione e Hostname
- Indirizzi IP locali e IP pubblico (con sistema di caching per non rallentare l'avvio)
- Uptime di sistema e Carico
- Utilizzo di RAM e Disco con soglie di allarme colorate
- Temperatura CPU (con riconoscimento automatico delle macchine virtuali)
- Pacchetti di aggiornamento disponibili (
apt,dnf,yum,pacman,zypper,apk) - Rilevamento Dinamico di Cockpit: Riconosce se Cockpit Web UI è attivo sul sistema, ne individua la porta d'ascolto e stampa l'URL diretto di accesso.
04_aliases.sh — Alias Comuni
- Scopo: Raccolta di alias pratici (ad esempio
ls --color).
🛠️ Creazione di Moduli Personalizzati
Aggiungere un nuovo modulo personalizzato è estremamente semplice:
- Avvia la procedura guidata:
brc-script -c - Inserisci il nome desiderato (es.
mie-funzioni-docker). - Scrivi i tuoi alias, funzioni o variabili:
#!/bin/bash
# ============================================================
# Modular Bashrc - mie-funzioni-docker.sh
# ============================================================
# Alias personalizzati
alias dps="docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"
alias dlogs="docker logs -f --tail=100"
# Funzione personalizzata con feedback a colori
dclean() {
ccecho -t byellow "Pulizia dei container e immagini inutilizzate..."
docker system prune -af --volumes
ccecho -t bgreen "Docker pulito con successo!"
}
- Salva ed esci dall'editor.
- Abilita il nuovo modulo e ricarica:
brc-script -e mie-funzioni-docker refresh-brc
🎨 Utility Integrate (ccecho)
Modular Bashrc Manager include l'utility ccecho in scripts-needed/ccecho.sh, utilizzabile in qualsiasi script per formattare testo e colori ANSI nel terminale:
ccecho -t green -s bold "Operazione completata con successo!"
ccecho -t red -b black -s underline "Errore Fatale: Connessione rifiutata"
Parametri Supportati:
- Colori Testo (
-t/--text):
black,red,green,yellow,blue,magenta,cyan,white
Varianti brillanti:bblack,bred,bgreen,byellow,bblue,bmagenta,bcyan,bwhite - Colori Sfondo (
-b/--bg):
black,red,green,yellow,blue,magenta,cyan,white
Varianti brillanti:bblack,bred,bgreen,byellow,bblue,bmagenta,bcyan,bwhite - Stili del Testo (
-s/--style):
bold,dim,italic,underline,blink,reverse,hidden,strike
🐧 Distribuzioni Supportate
Modular Bashrc Manager è compatibile e testato con:
| Famiglia | Distribuzioni / Sistemi Operativi | Gestore Pacchetti |
|---|---|---|
| Debian | Debian, Ubuntu, Linux Mint, Pop!_OS, Raspberry Pi OS | apt / apt-get |
| Red Hat | Fedora, RHEL, CentOS, Rocky Linux, AlmaLinux | dnf / yum |
| Arch | Arch Linux, Manjaro, EndeavourOS | pacman |
| SUSE | openSUSE Leap, openSUSE Tumbleweed | zypper |
| Alpine | Alpine Linux (server e container) | apk |
| macOS | Apple macOS (Intel e Apple Silicon) | brew (Homebrew) |
❓ Risoluzione Problemi e FAQ
1. Ho abilitato uno script ma i nuovi comandi non funzionano ancora!
Esegui il comando di ricarica rapida nel terminale:
refresh-brc
(Oppure riapri una nuova scheda del terminale).
2. Come ripristino il mio vecchio .bashrc originale?
L'installer crea automaticamente una copia di backup prima di qualsiasi modifica. Per ripristinarlo:
cp ~/bashrc-backup-* ~/.bashrc
3. Dove finiscono gli script che elimino?
Quando elimini uno script con brc-script -r <id|nome>, il file non viene perso in modo irreversibile, ma viene archiviato con marcatura oraria nella cartella:
~/.bashrc.d/scripts-removed/
4. Come posso cambiare l'editor predefinito di brc-script?
Imposta la variabile d'ambiente EDITOR all'interno di 00_default.sh:
export EDITOR="nano" # oppure "code", "vim", "nvim", "micro"
📄 Licenza e Autore
- Autore: Simone Cusano (sld-server.org)
- Repository Ufficiale: https://gitea.sld-server.org/sld-admin/Modular-Bashrc-Manager
- Licenza: GNU General Public License v3.0 (GPL-3.0)