Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Orientarsi sulla riga di comando

Modulo 1: Il Suo primo server · Tempo di lettura: 11 minuti

Obiettivo della lezione: Dopo questa lezione saprà orientarsi su un server Linux: spostarsi tra le cartelle, leggere e modificare file, vedere quanto spazio su disco e quanta memoria sono liberi e cercare da sé l'aiuto per un comando.

Concetti chiave: shell, prompt, cartella e percorso, percorso assoluto e relativo, /etc, /var/log, /home, ls -l, cd, cat, less, nano, man, --help, completamento con Tab, uname, df, free, uptime, pipe, grep

La shell e il prompt

Dopo il login, Lei comunica con la shell: il programma che legge ed esegue i Suoi comandi. Su Debian e Ubuntu di solito è bash. A sinistra del cursore si trova il prompt:

anna@web1:~$
root@web1:~#

Il prompt dice tre cose: chi è Lei (anna o root), su quale server si trova (web1) e in quale cartella (~ è la Sua cartella home). L'ultimo carattere è importante: $ indica un utente normale, # indica root. Se vede #, ogni comando viene eseguito con tutti i permessi. Lì digiti con calma.

Cartelle e percorsi

Tutto su Linux è appeso a un unico albero che parte da / (la cartella radice, da non confondere con l'utente root). Alcune cartelle le incontrerà spesso in questo corso:

CartellaChe cosa contiene
/etcConfigurazione: SSH (/etc/ssh), server web (/etc/nginx), utenti (/etc/passwd)
/var/logFile di log (oltre al journal, lezione 6.2)
/var/libDati dei programmi, per esempio database e Docker
/homeCartelle home degli utenti normali, come /home/anna
/rootCartella home di root
/usrProgrammi e librerie installati
/tmpFile temporanei, viene ripulita
/srv o /var/wwwPosizione abituale per siti web e servizi

Un percorso assoluto parte da /, per esempio /etc/ssh/sshd_config. Un percorso relativo parte dal punto in cui si trova ora: se è in /etc, ssh/sshd_config indica lo stesso file. .. è la cartella superiore, . la cartella corrente.

anna@web1:~$ pwd
/home/anna
anna@web1:~$ cd /etc/ssh
anna@web1:/etc/ssh$ ls
moduli  ssh_config  ssh_config.d  sshd_config  sshd_config.d  ssh_host_ed25519_key  ssh_host_ed25519_key.pub ...
anna@web1:/etc/ssh$ cd ..
anna@web1:/etc$ cd
anna@web1:~$

cd senza nulla dopo La riporta nella Sua cartella home.

Visualizzare i file

ls -l mostra più dei soli nomi:

anna@web1:/etc/ssh$ ls -l sshd_config ssh_host_ed25519_key ssh_host_ed25519_key.pub
-rw-r--r-- 1 root root 3248 Aug 12 10:01 sshd_config
-rw------- 1 root root  399 Nov  2 14:20 ssh_host_ed25519_key
-rw-r--r-- 1 root root   91 Nov  2 14:20 ssh_host_ed25519_key.pub

Da sinistra a destra: i permessi, il numero di collegamenti, proprietario, gruppo, dimensione in byte, data e nome. Noti la differenza: la host key privata (-rw-------) può leggerla solo root, quella pubblica (-rw-r--r--) chiunque. Nella lezione 3.1 imparerà a leggere con precisione questi permessi. ls -la mostra anche i file nascosti: nomi che iniziano con un punto, come .ssh.

Per leggere il contenuto:

  • cat bestand: l'intero file in una volta, comodo per i file brevi;
  • less bestand: scorrere con le frecce e la barra spaziatrice, cercare con /woord, uscire con q;
  • head -n 20 bestand e tail -n 20 bestand: le prime o le ultime righe; tail -f continua a seguire il file quando si aggiungono righe.

Modificare un file con nano

La configurazione si modifica in un editor di testo. nano è il più semplice:

root@web1:~# nano /etc/hosts

In basso compaiono le scorciatoie; ^ significa Ctrl. Per salvare si usa Ctrl+O e Invio, per uscire Ctrl+X, per cercare Ctrl+W. Chi lavora già con vim può usarlo; su un'installazione minima vim non è sempre disponibile in versione completa.

Tre abitudini che in seguito Le risparmieranno molti guai:

  1. Faccia prima una copia: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.
  2. Verifichi la configurazione prima di riavviare un servizio. Molti programmi hanno un comando apposito: sshd -t, nginx -t (lezioni 2.2 e 7.2).
  3. Cambi una cosa alla volta, così sa che cosa ha causato un errore.

Come sta il Suo server?

Alcuni comandi che userà in ogni situazione:

anna@web1:~$ uname -a
Linux web1 6.12.0-... #1 SMP ... x86_64 GNU/Linux
anna@web1:~$ uptime
 10:12:44 up 3 days,  2:10,  1 user,  load average: 0.08, 0.05, 0.01
anna@web1:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        40G  3.1G   35G   9% /
anna@web1:~$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.9Gi       1.0Mi       720Mi       3.4Gi
Swap:             0B          0B          0B
  • uname -a: quale kernel è in esecuzione.
  • uptime: da quanto tempo il server è acceso e il load average su 1, 5 e 15 minuti. In linea di massima: un carico che resta a lungo sopra il numero di core del processore significa che qualcosa resta in attesa.
  • df -h: spazio libero su disco (-h sta per "human readable", con G e M). Un disco pieno è una delle cause più frequenti di un server che si ferma "all'improvviso".
  • free -h: memoria. Guardi la colonna available, non free: Linux usa la memoria libera come cache (buff/cache) e la restituisce quando un programma ne ha bisogno.

E la Sua rete, dalla lezione 1.2: ip -brief address.

Trovare aiuto

Non deve ricordare tutte le opzioni. Deve però sapere dove trovarle:

  • man ssh apre il manuale (manual page) di un comando. Si scorre come con less, si cerca con /. man sshd_config descrive ogni parola chiave configurabile in quel file.
  • ls --help mostra, per la maggior parte dei comandi, un breve elenco di opzioni.
  • Il tasto Tab completa i nomi di comandi e file. Premendo Tab due volte vengono mostrate le possibilità. Questo evita errori di battitura nei percorsi lunghi.
  • La freccia in su richiama i comandi precedenti; history li mostra tutti.

Su un'installazione minima a volte i manuali mancano. Su Debian e Ubuntu li installa con apt install man-db (modulo 4).

Pipe e grep

I comandi si possono concatenare con una pipe (|): l'output di uno diventa l'input del successivo. grep filtra le righe che contengono una parola:

anna@web1:~$ grep PasswordAuthentication /etc/ssh/sshd_config
#PasswordAuthentication yes
anna@web1:~$ ls -l /etc | less

Le righe che iniziano con # sono commenti: non hanno alcun effetto e spesso mostrano il valore predefinito. Nella lezione 2.2 vedrà perché con SSH questo può creare confusione.

Errori frequenti

  • Incollare senza leggere. I comandi trovati su internet fanno esattamente ciò che c'è scritto, anche se è diverso da quanto promette il titolo dell'articolo. Legga ogni comando prima di eseguirlo, soprattutto se è root.
  • rm non ha un cestino. Ciò che è cancellato è perso. Faccia molta attenzione con rm -r (una cartella con tutto il suo contenuto) e con i caratteri jolly come *.
  • Le maiuscole contano. /etc/SSH non esiste; /etc/ssh sì.
  • Gli spazi nei percorsi vanno messi tra virgolette: cat "/srv/mijn site/index.html". Meglio ancora: su un server non usi spazi nei nomi.

Riepilogo

  • Il prompt dice chi è Lei, su quale server si trova e dove; # indica root.
  • La configurazione si trova in /etc, i log in /var/log, i dati dei programmi in /var/lib, le cartelle home in /home.
  • Legga con cat, less, head e tail; modifichi con nano, dopo aver fatto una copia, e verifichi la configurazione prima di riavviare.
  • df -h, free -h, uptime e ip -brief address mostrano come sta il Suo server.
  • L'aiuto si trova in man e --help; Tab completa; con | e grep filtra l'output.

Quiz

1. Il Suo prompt è root@web1:/var/log#. Che cosa sa ora?



2. Si trova in /etc. Quale percorso indica lo stesso file di /etc/nginx/nginx.conf?



3. free -h mostra free 120Mi e available 2.9Gi. Il server ha troppa poca memoria?



4. Che cosa è più saggio fare prima di modificare /etc/ssh/sshd_config?



5. Dove cerca quali impostazioni conosce sshd_config?



Esercizio

Esercizio O1.4: Conoscere il Suo server. Esegua i comandi della lezione sul Suo server e compili: distribuzione e versione, kernel, spazio libero su disco, memoria disponibile, carico, IPv4 e IPv6, e quali file in /etc/ssh possono essere letti solo da root. Poi risponda a due domande su ciò che ha visto.

Esercizio O1.4: Conoscere il Suo server

Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.



Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.

Per approfondire

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…