Capitolo 2
Iniziamo a usare il terminale
Mezz'ora, e non si rompe niente. Le prime tre parole, i permessi, cosa fare quando va storto.
Trenta minuti, e non si rompe niente
Prima di cominciare, mettiamo via la paura, perché è l’unico vero ostacolo di questo capitolo.
Il terminale non è pericoloso di per sé. È pericoloso quanto la tua cucina: puoi tagliarti, ma solo se prendi il coltello e lo usi male. Guardare, entrare nelle cartelle, chiedere cosa c’è dentro, contare i file: nessuna di queste cose può rompere niente, mai. In tutto questo capitolo ci sarà un solo comando capace di fare danni davvero, e quando arriveremo lì lo troverai dentro un riquadro con la cornice spessa.
L’altra paura, quella più profonda, è di sembrare stupidi davanti a uno schermo nero. Toglila di mezzo così: il terminale non ti giudica, non ha memoria delle tue figuracce e non si aspetta niente da te. Se scrivi una cosa senza senso ti risponde una riga di errore e torna ad aspettare. È la cosa più paziente che tu abbia in casa.
Alla fine di queste pagine saprai fare sei o sette cose. Non diventerai esperto, e non serve. Serve un’altra cosa: che quando vedrai l’IA lavorare, tu capisca cosa sta facendo.
Cosa ti porti a casa da questo capitolo
- muoverti tra le cartelle senza mouse, e sapere sempre dove sei;
- creare, copiare, spostare e cancellare roba;
- leggere un comando qualsiasi e capire com’è fatto;
- sapere quali sono le due sole cose che possono fare danni.
Qui i riquadri ✋ contano più che altrove, perché questa è roba che si impara con le dita e non con gli occhi. Tieni la finestra del terminale aperta accanto al libro e fai ogni cosa mentre la leggi.
Aprire la porta di servizio
Su Mac. Premi Cmd + Spazio, scrivi Terminale, premi Invio. Si apre una
finestra bianca o nera con due righe di testo dentro. Ci sei.
Su Windows. Premi il tasto Windows, scrivi Terminale (sulle versioni più
vecchie PowerShell) e premi Invio. Il tuo terminale parla un dialetto diverso
da quello di Mac e Linux: i concetti di questo capitolo sono identici, e la
maggior parte dei comandi che vedrai funziona anche lì, ma tre di quelli che
useremo no. Leggi il riquadro qui sotto prima di cominciare, così non passi
mezz’ora a chiederti cosa stai sbagliando: non stai sbagliando niente.
Su Linux. Lo sai già.

Cosa stai guardando
Dentro la finestra c’è qualcosa del genere:
gianclaudio@MacBook-Air ~ %Questa riga si chiama prompt, che in inglese vuol dire “sollecito, invito a parlare”. È la macchina che ti dice: sono qui, dimmi.
Leggiamola pezzo per pezzo, perché ogni pezzo è un’informazione che ti servirà:
gianclaudioè chi sei, cioè l’utente con cui hai fatto accesso;MacBook-Airè dove sei, cioè su quale macchina;~è la cartella in cui ti trovi adesso (quella tilde è un’abbreviazione, tra poco vediamo di cosa);%è il segno che separa le informazioni da ciò che scrivi tu. Su altri sistemi al posto di%trovi$. Non cambia niente.
Chi, dove, in quale cartella. Il terminale te lo ripete a ogni riga, per tutta la sessione, perché sono le tre cose che devi sempre sapere.
E qui c’è l’idea che regge tutto il capitolo, quella che nell’interfaccia a icone non hai mai dovuto pensare:
Nel terminale sei sempre in un posto preciso. Non stai guardando il computer dall’alto. Sei dentro una cartella, come uno che sta in piedi in una stanza dell’archivio. I comandi che dai valgono lì, in quella stanza, salvo che tu non dica esplicitamente il contrario. Prima di ogni operazione, la domanda giusta è sempre la stessa: dove sono adesso?
Questa non è pignoleria. È la ragione numero uno per cui i principianti si perdono, e sarà anche la ragione per cui ogni tanto non troverai i file che l’IA ha creato.

Le prime tre parole
Il vocabolario minimo per muoversi è di tre parole. Impariamole guardandole lavorare.
pwd, cioè “dove sono”
Scrivi pwd e premi Invio.
% pwd
/Users/gianclaudioTi risponde con il percorso completo della stanza in cui ti trovi. È esattamente il tipo di indirizzo del capitolo scorso. Sta per print working directory, “stampa la cartella di lavoro”, ma il nome non ha nessuna importanza.
E scopri anche una cosa: quella ~ nel prompt era un’abbreviazione di
/Users/gianclaudio, cioè della tua cartella personale. La tilde vuol dire
sempre “casa mia”. Ovunque tu sia, cd ~ ti riporta a casa.
ls, cioè “cosa c’è qui”
% ls
Applications Desktop Documents Downloads Movies Music Picturesls sta per list. Elenca il contenuto della stanza in cui sei. È l’occhio.
cd, cioè “andiamo”
% cd Documents
% pwd
/Users/gianclaudio/Documentscd sta per change directory, cambia cartella. È il passo.
Tre varianti da sapere subito, perché sono quelle che userai il novanta per cento delle volte:
cd Documentsentra in una cartella che sta dentro quella in cui sei;cd ..torna indietro di un livello, verso il tronco dell’albero. Quei due punti significano “la cartella che mi contiene”;cdda solo, oppurecd ~, ti riporta a casa da qualunque punto ti sia perso.
Soffermati su cd .., perché è la cosa più simile a un pulsante
“indietro” che troverai qui dentro, e sapere di averla toglie l’ansia di
finire in un posto da cui non si esce. Non esistono posti da cui non si esce.
Due trucchi che cambiano la vita
Prima di andare avanti, due cose che non sono comandi ma abitudini. Chi le usa va cinque volte più veloce di chi non le conosce, e nessuno le insegna.
Il tasto Tab completa le parole. Scrivi cd Doc e premi Tab: il terminale
completa da solo in cd Documents/. Se ci sono più possibilità, premi Tab
due volte e te le elenca. Non serve mai scrivere per intero un nome di file, e
soprattutto non si sbaglia più a digitarlo. Prendi questa abitudine oggi:
scrivi le prime tre lettere e premi Tab, sempre.
La freccia in su ripesca i comandi già dati. Premila più volte per riandare indietro nella storia. Correggi la riga e ridai Invio. Serve continuamente, perché nel terminale si lavora quasi sempre ripetendo un comando con una piccola variazione.
E poi il trucco più bello per chi viene dal mondo delle icone:
Puoi trascinare una cartella dal Finder dentro il terminale. Scrivi cd,
lascia uno spazio, prendi la cartella dalla finestra del Finder e trascinala
sulla finestra nera. Il percorso completo compare scritto da solo. È il ponte
tra le due porte d’ingresso, e serve tutte le volte che una cartella è
sepolta in profondità.
Creare, copiare, spostare
Fin qui hai solo guardato. Adesso costruiamo qualcosa. Restiamo nella cartella
compleanno-Mamma che hai creato alla fine del capitolo scorso, o creiamola
adesso se non l’hai fatto.
% cd ~/Documents
% mkdir compleanno-Mamma
% cd compleanno-Mammamkdir sta per make directory: crea una cartella.
% touch lista-invitati.txt
% touch idee-regalo.txt
% ls
idee-regalo.txt lista-invitati.txttouch crea un file vuoto. Il nome è buffo (“tocca”) e ha una storia sua che
non ci interessa: serve a far esistere un file dal nulla.
% cp lista-invitati.txt lista-invitati-vecchia.txtcp copia (copy): prima dici cosa, poi dove o come.
% mv idee-regalo.txt regali.txtmv sposta (move), e siccome spostare un file dentro la stessa cartella con
un nome diverso equivale a rinominarlo, mv è anche il comando per rinominare.
È una di quelle cose che all’inizio sembrano strane e dopo due giorni sembrano
ovvie.
Con cinque parole (mkdir, touch, cp, mv, più ls e cd che già sai)
puoi già fare tutto quello che fai col mouse quando organizzi delle cartelle.
Ne manca una, ed è quella con la cornice spessa.
L’anatomia di un comando
Hai notato che qualche comando aveva dei pezzi in più. Vale la pena fermarsi trenta secondi sulla grammatica, perché è sempre la stessa e riconoscerla significa poter leggere qualsiasi riga, anche quelle che non hai mai visto.
ls -l DocumentsTre pezzi:
- il comando:
ls, il verbo, cosa voglio fare; - le opzioni:
-l, gli avverbi, come lo voglio fare. Cominciano quasi sempre con un trattino; - gli argomenti:
Documents, il complemento oggetto, su cosa lo voglio fare.
Verbo, avverbio, oggetto. Fine della grammatica.
Prova ls -l:
% ls -l
-rw-r--r-- 1 gianclaudio staff 0 25 lug 07:12 regali.txt
-rw-r--r-- 1 gianclaudio staff 84 25 lug 07:14 lista-invitati.txtLe stesse cose di prima, raccontate per esteso: permessi, proprietario, gruppo, dimensione in byte, data, nome. Ci torniamo tra due sezioni, quando parliamo di utenti.
Le opzioni si possono anche impilare: ls -la significa “elenca in forma lunga
e mostra anche i file nascosti”. I file nascosti sono quelli il cui nome comincia
con un punto, e ce ne sono parecchi in casa tua: sono quasi tutti file di
configurazione di programmi. Il computer li nasconde per non spaventarti.
Il potere vero: incastrare le parole
Fin qui il terminale sembra solo un modo scomodo di fare cose che col mouse fai meglio. Giusto. Il salto è un altro, e sono due simboli.
L’asterisco vuol dire “qualsiasi cosa”.
ls *.jpg“Elencami tutti i file che finiscono per .jpg”. L’asterisco sta per qualunque
sequenza di caratteri. foto-* sono tutti i file che cominciano per foto-.
Con questo puoi parlare di gruppi di file invece che di uno alla volta, e
qui comincia la differenza con il mouse.
La barra verticale passa il risultato al comando successivo.
ls *.jpg | wc -lSi legge: elenca tutti i jpg, e quell’elenco passalo a wc -l, che conta le
righe. Risultato: quante foto ci sono in questa cartella. Quel simbolo | si
chiama pipe, tubo, ed è una delle invenzioni più eleganti dell’informatica:
ogni comando è un piccolo utensile che fa una cosa sola, e il tubo li mette in
fila come una catena di montaggio.
Ecco perché in cucina bastano venti parole. Non conta il vocabolario, contano le combinazioni.
E adesso il debito che avevo con te dal capitolo scorso. Le 4.000 foto da rinominare con la data davanti, quattro giorni di clic:
for f in *.jpg; do mv "$f" "$(date -r "$f" +%Y-%m-%d)-$f"; doneUna riga. Due secondi.
Non devi capirla e non devi impararla: te la scriverà l’IA, ed è esattamente il
tipo di cosa per cui la userai. Ma guardala un momento, perché ci sono dentro
solo cose che conosci già: c’è mv, che sposta e rinomina; c’è *.jpg, che
sono tutti i jpg; e c’è un for, che vuol dire “per ognuno di questi, fai
quanto segue”.
E adesso il dettaglio importante, quello per cui ti ho fatto leggere la riga.
Quel date -r prende la data di modifica del file, che non è la data di
scatto della foto. Se quelle foto le hai copiate da un vecchio disco nel 2019,
verranno rinominate tutte 2019. Il comando è corretto e fa un lavoro sbagliato.
Questo è il capitolo intero in una frase: non ti serve saper scrivere quella riga, ti serve saperla leggere abbastanza da accorgerti che la data non è quella giusta. Quello che le dici dopo (“no, usa la data EXIF di scatto”) è lavoro tuo, e nessuno può farlo al posto tuo, perché sei l’unico a sapere cosa volevi davvero.
Chi sei, e cosa ti è permesso
Ultimo pezzo, e chiudiamo il cerchio con il portiere del capitolo scorso.
% whoami
gianclaudioIl computer sa sempre chi è seduto lì. Ogni utente ha la sua cartella personale
in /Users, le sue impostazioni, le sue cose, e non può mettere le mani in
quelle degli altri. Anche se sei l’unico essere umano che tocca questa
tastiera, per il sistema tu sei un utente tra i possibili, e questo è il motivo
per cui esiste una cartella /Users al plurale.
Torniamo a quella riga di prima:
-rw-r--r-- 1 gianclaudio staff 84 25 lug 07:14 lista-invitati.txtQuella sfilza di lettere all’inizio sono i permessi, e si leggono a gruppi di tre dopo il primo carattere:
rw-cosa può fare il proprietario: leggere (r), scrivere (w), non eseguire (-);r--cosa può fare il suo gruppo: solo leggere;r--cosa possono fare tutti gli altri: solo leggere.
Ogni singolo file del sistema porta scritto addosso chi può leggerlo, chi può modificarlo, chi può eseguirlo. È un’idea vecchia di cinquant’anni ed è ancora il motivo per cui un programma scaricato per sbaglio non può, da solo, riscrivere il sistema operativo.
E poi c’è la parola magica.
Perché ti sto raccontando tutto questo? Perché quando lascerai lavorare l’IA sul tuo computer, lei lavorerà come te: stesso utente, stessi permessi, stesso perimetro. Non è un’entità che fluttua sopra la macchina, è un inquilino che usa le tue chiavi. Sapere fin dove arrivano quelle chiavi è ciò che ti permetterà di lasciarle spazio senza stare in ansia, che è esattamente il punto d’arrivo di questo libro.
Quando qualcosa va storto
Ti succederà nei primi cinque minuti, quindi tanto vale prepararsi. Ci sono tre messaggi di errore che coprono quasi tutti i casi, e nessuno dei tre è grave.
command not found
Hai scritto male il nome del comando, oppure quel programma non è installato.
Rileggi la riga: nove volte su dieci è una lettera.
No such file or directory
Il file o la cartella che hai nominato non esiste qui. Nota bene l’avverbio.
Quasi sempre non è sparito niente: sei semplicemente in un’altra stanza. pwd
per vedere dove sei, ls per vedere cosa c’è. Questo errore è, nel novanta per
cento dei casi, il computer che ti dice “guarda che non sei dove credi”.
Permission denied
Stai cercando di toccare roba che non è tua. Vedi il riquadro qui sopra: la
risposta giusta quasi mai è sudo, quasi sempre è “cosa ci faccio io qui”.
E due tasti da sapere adesso, non dopo:
Ctrl + Cferma il comando in esecuzione. Se qualcosa sta scorrendo all’infinito o sembra bloccato, è questo il freno a mano.Ctrl + L(oppure il comandoclear) pulisce la finestra quando il disordine diventa fastidioso. Non cancella niente, sposta solo lo sguardo più in basso.
C’è anche una cosa che vale la pena dire una volta sola: gli errori del terminale sono scritti male, in inglese, e sembrano rimproveri. Non lo sono. Sono un modo brutale ma onesto di dirti cosa non è andato, ed è già più di quanto faccia il messaggio “Si è verificato un errore. Riprovare.” che ti danno le applicazioni con le icone. Da oggi hai anche un traduttore simultaneo: copia la riga di errore, incollala all’IA e chiedi cosa significa. Farlo non è un ripiego, è il modo normale di lavorare adesso.
Il quadernino
Tutto il capitolo sta in undici parole. Non impararle a memoria: usale tre o quattro volte e ci restano da sole.
pwddove sonolscosa c’è quils -lcosa c’è qui, per estesocd cartellaentracd ..torna indietrocd ~torna a casamkdir nomecrea una cartellatouch nomecrea un file vuotocp origine copiacopiamv origine destinazionesposta, oppure rinominarm nomecancella, e non c’è cestinowhoamichi sono
Più i due tasti che valgono quanto i comandi: Tab per completare, freccia su
per ripescare.
Dove andiamo adesso
Se hai fatto l’esercizio qui sopra, è successa una cosa piccola ma non reversibile: hai smesso di vedere il computer solo come una scrivania con sopra degli oggetti, e hai cominciato a vederlo come un luogo in cui ti muovi e in cui dai ordini.
Da qui in avanti non ti servirà quasi mai digitare tu questi comandi. Li scriverà l’IA, molto meglio e molto più in fretta. Ma adesso, quando li vedrai scorrere sullo schermo, saprai leggere cosa sta succedendo: che si è spostata lì, che sta guardando quei file, che sta per cancellare quella cosa. È la differenza tra guidare e stare seduto dietro con gli occhi chiusi.
Nel prossimo capitolo lasciamo per un momento la macchina e andiamo a vedere chi sono, di preciso, questi collaboratori: quali intelligenze artificiali esistono, in cosa differiscono, quali costano e quanto, quali girano addirittura sul tuo computer senza mandare niente a nessuno. Poi torniamo qui, e cominciamo a lavorare in due.