Cosa farai oggi
- Aprire Bash su Windows (Git Bash o WSL) oppure un ambiente online.
- Usare i comandi base:
pwd,ls,cd,mkdir,touch,cp,mv,rm,cat. - Creare e lanciare uno script con estensione
.sh.
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 trovals→ elenca file/cartelle (-l,-a)cd NOME→ entra inNOME(cd ..su;cd ~home)mkdir N→ crea cartellaNtouch f.txt→ crea file vuoto
Copia, sposta, leggi
cp src dst→ copiamv src dst→ sposta/rinominarm f.txt→ elimina filecat f.txt→ stampa contenutoecho "testo"→ stampa/crea riga
lezione_bash, report_1.txt…
3) Attività guidata (15–20′)
-
Preparazione — creare una cartella di lavoro e due file:
mkdir -p prova_bash && cd prova_bash echo "ciao" > uno.txt echo "bash" > due.txt -
Operazioni sui file — copiare e rinominare:
cp uno.txt uno_copia.txt mv due.txt due_renamed.txt -
Primo script — creare
conta.shche mostra quante righe hanno i.txt:cat > conta.sh << 'EOF' #!/usr/bin/env bash wc -l *.txt EOF chmod +x conta.sh ./conta.sh - 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
Cosa consegnare su Moodle
- I seguenti file
.shcompressi in un unico file ZIP nominatoCOGNOME_NOME_BASH.zip: saluta.shsetup.shcopia_txt.shrinomina.sh- Ogni file deve iniziare con
#!/usr/bin/env bashed essere eseguibile (chmod +x). - Verificare in CodeRunner che l’output sia corretto prima dell’invio definitivo.
Autovalutazione (2′)
- So aprire Bash e trovarmi con
pwd? - So creare/copiare/spostare file con
mkdir,touch,cp,mv? - So creare un semplice script eseguibile
.she avviarlo?