Lo schermo nero con il cursore che lampeggia mette un po’ di soggezione, ma il terminale è molto meno misterioso di quanto sembri. Con una ventina di comandi copri la quasi totalità di quello che serve per gestire un sito. In questa guida li vediamo uno per uno, con esempi pensati per chi lavora su un hosting.

Se ti stai chiedendo come arrivare al terminale del tuo server, parti da Cos’è SSH e a cosa serve: da noi l’accesso SSH è disponibile sulla porta 7530, meglio se con una chiave SSH aggiunta dal pannello. Molti dei comandi qui sotto, comunque, funzionano identici anche sul terminale del tuo computer, quindi puoi fare pratica lì.

Come si legge una riga di comando

Quando ti colleghi vedi qualcosa del genere:

[tuoutente@server ~]$

È il prompt: ti dice chi sei, su quale macchina e in quale cartella ti trovi (~ significa «la tua cartella home»). Dopo il simbolo $ scrivi il comando e premi Invio.

Un comando ha di solito tre parti: il nome, le opzioni (che iniziano con - o --) e gli argomenti (file o cartelle su cui agire):

ls -la public_html

Orientarsi: dove sono e cosa c’è

Comando Cosa fa
pwd Mostra la cartella in cui ti trovi.
ls Elenca i file della cartella.
ls -la Elenco dettagliato, inclusi i file nascosti (quelli che iniziano con il punto, come .htaccess).
cd cartella Entra in una cartella.
cd .. Torna alla cartella superiore.
cd ~ (o solo cd) Torna alla tua home.

Sui nostri hosting, gestiti con il pannello DirectAdmin, i file di ciascun dominio si trovano in domains/tuodominio.it/ e il sito vero e proprio in public_html. Quindi, per esempio:

cd ~/domains/tuodominio.it/public_html
ls -la

Un trucco che ti salverà molte dita: premi il tasto Tab mentre scrivi un nome di file o cartella, e il terminale lo completerà da solo. Con le frecce su e giù scorri i comandi già digitati.

Leggere i file

  • cat file.txt stampa tutto il contenuto: va bene per file corti.
  • less file.txt apre il file pagina per pagina: frecce o spazio per scorrere, /parola per cercare, q per uscire.
  • head -n 20 file.txt mostra le prime 20 righe, tail -n 20 file.txt le ultime 20.
  • tail -f file.log segue un file mentre cresce: utile per guardare un log in tempo reale. Si esce con Ctrl+C.

Creare, copiare, spostare, cancellare

mkdir nuova-cartella          # crea una cartella
cp file.php file.php.bak      # copia (qui: una copia di sicurezza)
cp -r cartella cartella-copia # copia una cartella con tutto il contenuto
mv vecchio.php nuovo.php      # rinomina (o sposta) un file
rm file.txt                   # cancella un file
rm -r cartella                # cancella una cartella e tutto il contenuto

Tutto ciò che segue # è un commento: lo puoi copiare senza problemi, il terminale lo ignora.

Attenzione a rm: dal terminale non esiste il cestino. Prima di cancellare qualcosa controlla con pwd di essere nella cartella giusta e con ls di vedere esattamente i file che ti aspetti. Una buona abitudine è creare sempre una copia .bak prima di modificare un file importante, come wp-config.php o .htaccess.

Se qualcosa va storto, ci sono comunque i backup automatici: puoi ripristinare file e database da solo dal pannello.

Modificare un file

Per modifiche veloci si usa un editor da terminale. Il più semplice per chi inizia è nano, se presente:

nano .htaccess

Scrivi come in un normale editor, poi Ctrl+O e Invio per salvare, Ctrl+X per uscire. In fondo allo schermo trovi sempre il promemoria delle scorciatoie. Esiste anche vi/vim, più potente ma meno intuitivo: se ti ritrovi dentro per sbaglio, premi Esc, poi scrivi :q! e Invio per uscire senza salvare.

Cercare file e testo

# trova tutti i file che si chiamano wp-config.php sotto la cartella attuale
find . -name "wp-config.php"

# file .php modificati negli ultimi 2 giorni
find . -name "*.php" -mtime -2

# in quali file compare la parola "DB_NAME"
grep -rn "DB_NAME" .

Il punto . significa «la cartella in cui sono». L’opzione -r di grep cerca in tutte le sottocartelle, -n mostra il numero di riga.

Spazio occupato

du -sh *          # quanto occupa ogni file e cartella qui dentro
du -sh ~/domains  # totale dei tuoi domini

-h sta per human readable: mostra K, M, G invece di numeri lunghissimi. È il modo più rapido per scoprire, per esempio, che una cartella di cache o un vecchio archivio di backup lasciato nel sito sta occupando metà dello spazio.

Comprimere ed estrarre

# crea un archivio compresso della cartella public_html
tar -czf sito.tar.gz public_html

# estrae un archivio .tar.gz nella cartella attuale
tar -xzf sito.tar.gz

# per i file .zip
unzip archivio.zip

Un consiglio pratico: non lasciare archivi del sito dentro public_html una volta finito. Sono scaricabili da chiunque ne indovini il nome e, in più, file come .zip, .gz, .tar e .sql sono esclusi dai backup automatici (trovi l’elenco completo nella pagina esclusioni dei backup).

Permessi dei file

Nell’output di ls -la vedi stringhe come -rw-r--r--: indicano chi può leggere, scrivere ed eseguire un file. Per un sito tipico valgono queste regole di massima:

  • file: 644
  • cartelle: 755
  • file con password (come wp-config.php): più restrittivi, per esempio 600 o 640, se il tuo CMS lo tollera.
chmod 644 index.php
chmod 755 wp-content

Evita sempre il famigerato 777: dà a tutti il permesso di scrivere ed è una porta aperta.

Le scorciatoie che servono davvero

  • Ctrl+C: interrompe il comando in corso.
  • Ctrl+L (o clear): pulisce lo schermo.
  • Tab: completa nomi di file e comandi.
  • man comando o comando --help: mostra il manuale o l’aiuto di un comando.
  • exit: chiude la sessione SSH.

E adesso?

Con questi comandi sei già in grado di muoverti, ispezionare e sistemare i file del tuo sito. Il passo successivo naturale è collegarti senza password grazie alle chiavi SSH e, se usi WordPress, scoprire WP-CLI. Se un comando ti dà un errore che non capisci, copialo insieme al messaggio in un ticket: lo guardiamo noi.

Altri articoli su SSH, terminale e sviluppo

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS