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.
~/.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 4oppurebrc-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.
- Anteprima Numerata (
- 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 o00_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-brcper 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:
- Tutti gli script di base presenti in scripts-needed/*.sh vengono eseguiti in sequenza.
- 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
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
jqecurltramite il package manager di sistema. - Genera un backup con data e ora del
~/.bashrcoriginario (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
~/.bashrccon il loop di caricamento modulare pulito. - Installa i file di sistema in scripts-needed/ e i moduli standard in scripts-available/.
- Genera il file
.versioncon 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, esportazioniPATHe 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 (+Nin verde), file modificati (M:Nin giallo), file non tracciati (N:Nin rosso) e stato di sincronizzazione remota (โNcommit avanti /โNcommit 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'utenteroot(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:
- Esegui il comando di creazione:
brc-script -c
- Inserisci il nome del modulo (es.
docker-utility). - 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!" } - Salva ed esci dall'editor. Alla richiesta, conferma l'abilitazione immediata del nuovo script.
- 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,whitee 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