Cosa farai oggi

Attenzione: il comando rm cancella i file senza cestino. Usare con prudenza.

1) Scegli l'ambiente

Git Bash leggero

Aprire Git Bash dal menu Start. È un terminale con molti comandi Linux.

WSL Linux reale

Aprire Ubuntu (se installato). In caso contrario, in PowerShell come amministratore:

wsl --install -d Ubuntu

Online senza installare

Se non è possibile usare i PC di laboratorio, il docente potrà indicare una soluzione via browser.

2) Mini-cheatsheet (da tenere a portata)

Muoversi e creare

  • pwd → mostra dove ci si trova
  • ls → elenca file/cartelle (-l, -a)
  • cd NOME → entra in NOME (cd .. su; cd ~ home)
  • mkdir N → crea cartella N
  • touch f.txt → crea file vuoto

Copia, sposta, leggi

  • cp src dst → copia
  • mv src dst → sposta/rinomina
  • rm f.txt → elimina file
  • cat f.txt → stampa contenuto
  • echo "testo" → stampa/crea riga
Suggerimento: evitare spazi nei nomi: lezione_bash, report_1.txt

3) Attività guidata (15–20′)

  1. Preparazione — creare una cartella di lavoro e due file:
    mkdir -p prova_bash && cd prova_bash
    echo "ciao" > uno.txt
    echo "bash" > due.txt
  2. Operazioni sui file — copiare e rinominare:
    cp uno.txt uno_copia.txt
    mv due.txt due_renamed.txt
  3. Primo script — creare conta.sh che mostra quante righe hanno i .txt:
    cat > conta.sh << 'EOF'
    #!/usr/bin/env bash
    wc -l *.txt
    EOF
    chmod +x conta.sh
    ./conta.sh
  4. Controllo veloce — confrontare l'output con quello di un compagno: i numeri coincidono?

4) Sfida (autonoma) — 10′

Crea uno script backup.sh che copia tutti i .txt nella sottocartella backup/. Se la cartella non esiste, crearla.

Hai bisogno di un indizio?
mkdir -p backup
cp *.txt backup/ 2>/dev/null
echo "Backup completato"

5) Mini-verifica in aula / Moodle (max 40′)

Q1 — Saluto

Scrivere saluta.sh che stampa Ciao Bash!

# Output atteso
Ciao Bash!

Q2 — Setup

Scrivere setup.sh che crea progetto/README.txt con dentro Progetto Bash.

Q3 — Copia .txt

copia_txt.sh copia tutti i .txt nella cartella testo/ senza sovrascrivere file esistenti.

# Spunto
mkdir -p testo
cp -n *.txt testo/ 2>/dev/null

Q4 — Rinomina

rinomina.sh rinomina report.txt in report_old.txt solo se esiste.

[ -f report.txt ] && mv report.txt report_old.txt
Consegna su Moodle: il docente potrà usare CodeRunner (tipo bash). Seguire le istruzioni in piattaforma e caricare gli script quando richiesto.

Cosa consegnare su Moodle

Valutazione: correttezza logica (1 pt), esecuzione senza errori (1 pt), chiarezza del codice (0.5 pt), naming e consegna corretta (0.5 pt) → Totale 3 pt.

Autovalutazione (2′)