dgt_bash03 – Cronologia dei comandi

Titolo del modulo: dgt_bash03 – Cronologia dei comandi

Panoramica:
“dgt_bash03 – Cronologia dei comandi” tratta le funzionalità della cronologia dei comandi di Bash. È rivolto sia a utenti esperti della shell sia a chi è alle prime armi con la riga di comando, e spiega come Bash registra, memorizza e richiama i comandi eseguiti in una sessione, così da poter leggere, ragionare e guidare il lavoro sulla shell.

Approccio:
Prima imparerete come funziona la cronologia dietro le quinte: la lista in memoria, il file di cronologia, le variabili che ne determinano il comportamento e la sintassi di espansione. Poi, nella pratica, non digiterete questi comandi voi stessi. Chiederete alla macchina in linguaggio naturale, per esempio “conserva gli ultimi 10.000 comandi, salta i duplicati e non salvare mai le righe che iniziano con uno spazio”, leggerete la configurazione che propone e verificherete che corrisponda a ciò che sapete su HISTCONTROL e sul file di cronologia prima di accettarla.

Obiettivi del modulo:
Al termine di questo modulo i partecipanti saranno in grado di:

  1. Comprendere i fondamenti della cronologia dei comandi di Bash.
  2. Descrivere con precisione alla macchina come deve essere gestita la cronologia e verificare le impostazioni che applica.
  3. Chiedere alla macchina di cercare nella cronologia operazioni passate e valutare se i risultati sono completi e corretti.
  4. Leggere e spiegare le espansioni della cronologia che la macchina usa per rieseguire i comandi, individuando quelle rischiose prima che vengano eseguite.

Contenuti del modulo:

  1. Introduzione alla cronologia dei comandi
  2. Panoramica di cos’è la cronologia dei comandi in Bash.
  3. L’importanza della cronologia per efficienza, produttività e per ricostruire ciò che è stato fatto su un sistema.

  4. Gestire la cronologia dei comandi

  5. Come accodare o sovrascrivere il file di cronologia.
  6. Comprendere il file .bash_history e le sue opzioni di configurazione.
  7. Configurare le impostazioni della shell, ad es. HISTSIZE, HISTCONTROL, per gestire il comportamento della cronologia.
  8. Esempi pratici di inclusione/esclusione dei comandi dalla cronologia con HISTIGNORE.

  9. Navigare nella cronologia

  10. Usare i tasti di navigazione di base Up/Down Arrow e scorciatoie come la ricerca inversa Ctrl + R.
  11. Eseguire comandi precedenti tramite indice numerico, ad es. !n.

  12. Cercare comandi nella cronologia

  13. Tecniche di ricerca nella cronologia tramite pattern matching.
  14. Come funziona la ricerca incrementale e come affina la ricerca man mano.
  15. Esempi pratici in cui chiedete alla macchina di trovare comandi specifici e verificate ciò che ha trovato.

  16. Eseguire comandi dalla cronologia

  17. Rieseguire comandi con le tecniche di espansione della cronologia, ad es. !!, !$.
  18. Modificare e rieseguire comandi precedenti con !:n, !?string?.
  19. Scenari reali in cui leggete le espansioni proposte dalla macchina e confermate che facciano ciò che intendevate.

  20. Suggerimenti e tecniche avanzate

  21. Personalizzare il prompt di Bash per includere informazioni sulla cronologia.
  22. Integrare la cronologia con altre funzionalità della shell come alias e funzioni.
  23. Best practice per mantenere una cronologia pulita e utile.

Destinatari:
Il modulo è rivolto ad amministratori di sistema, professionisti DevOps, sviluppatori e chiunque lavori con sistemi Linux. È adatto anche a studenti IT che vogliono conoscere la shell abbastanza a fondo da guidare un agente AI e revisionarne il lavoro.

Valutazione:
I partecipanti vengono valutati con esercizi pratici in cui istruiscono la macchina, in linguaggio naturale, a gestire, cercare e riutilizzare la cronologia dei comandi, per poi spiegare e verificare ogni comando e impostazione prodotti.

Gli studenti possono caricare i propri esercizi nel Progetto Git dell’Academy DevOps & SRE. Per questo modulo, create una cartella con il vostro username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy