Home Guide Impariamo a conoscere i principali comandi linux da utilizzare su Raspberry

Impariamo a conoscere i principali comandi linux da utilizzare su Raspberry

417
0
copertina-comandi-linux

Quando seguiamo una guida per installare nuovi componenti ed aggiungere nuove funzionalità al nostro Home Assistant, ci capita spesso di imbatterci nell’ utilizzo del terminale tramite SSH e inserire comandi di cui facciamo semplicemente copia-incolla senza preoccuparci (quasi) minimamente a cosa servono di preciso.

Qualcuno però avrà fatto caso che molte istruzioni sono comuni e si incontrano spesso in diversi tutorial, come ad esempio apt-get update e apt-get upgrade.

In questa mini guida vedremo alcuni principali comandi, quelli usati più spesso, per avere almeno un’ infarinatura base e sapere cosa state facendo quando incontrerete una nuova guida dedicata ad Home Assistant nella quale si richiede l’installazione di nuovi pacchetti.

 

SPOSTARCI TRA LE CARTELLE E VISUALIZZARE IL CONTENUTO

Il primo comando che bisogna imparare, sempre utlissimo, è quello che ci da’ la possibilità di navigare tra le cartelle. Il comando in questione è cd (change directory) ed è uguale anche in Windows:

cd /home/pi/Documents

Il secondo parametro indica la destinazione. Se inizia con / vogliamo indicare di partire dalla root. Se inizia con ./ vogliamo indicare un percorso relativo dalla cartella in cui ci troviamo attualmente. Scrivendo invece:

cd ..

si vuole tornare indietro di un livello (cartella superiore).

Per visualizzare il contenuto di una cartella si utilizza il comando:

ls

Un esempio di output sarà:

ls_al

Vedremo i permessi meglio nel prossimo paragrafo.

 

Per creare una nuova cartella nella directory in cui ci troviamo:

mkdir nuova_cartella

Per spostare un file dall’origine alla destinazione si usa mv:

mv /home/pi/origine/file.txt /home/pi/destinazione/file.txt

Per copiare un file che si trova nella cartella origine dentro la cartella destinazione si usa cp:

cp /home/pi/origine/file.txt /home/pi/destinazione/file.txt

Per rimuovere un file (DEFINITIVAMENTE!!!) si usa il comando rm:

rm /home/pi/file_da_eliminare.txt

Per rimuovere ricorsivamente il contenuto di una cartella utilizzare in abbinamento al flag -r:

rm -r /home/pi/cartella_da_eliminare/

FARE MOLTA ATTENZIONE CON IL COMANDO RM, PRIMA DI DARE INVIO GUARDATE E RIGUARDATE PER CONTROLLARE CHE QUELLO CHE STATE CANCELLANDO SIA GIUSTO… NON SI TORNA INDIETRO!!!

 

PERMESSI

Questo argomento è un po’ ostico e spesso e volentieri è la causa di molti problemi di script che non si eseguono… semplicemente perchè i permessi sono errati!

Torniamo all’immagine già vista prima:

ls_al

Possiamo distinguere:

  • colonna dei permessi
  • utente proprietario / gruppo

La colonna dei permessi contiene 10 lettere (o trattini):

  • il primo spazio indica la tipologia dell’elemento e può avere i seguenti valori: d (directory), l (link simbolico), (file);
  • i seguenti nove spazi indicano i permessi; più precisamente si tratta di tre distinti gruppi di 3 permessi (r = lettura; w = scrittura; x = esecuzione). Il primo gruppo da tre riguarda il proprietario, il secondo riguarda il gruppo ed il terzo riguarda gli altri utenti.

Nell’immagine in esempio si tratta di due file, per entrambi il proprietario può leggere e scrivere, mentre il gruppo e gli altri utenti possono solo leggere.

Andiamo a vedere ora il comando vero e proprio per cambiare i permessi, e cioè chmod.
chmod ha 2 tipi di sintassi:

1) chmod con sintassi simbolica

Consente di assegnare diversi permessi al proprietario, al gruppo ed agli altri utenti. La sintassi è la seguente:

chmod a=rwx nomefile

nel nostro esempio abbiamo assegnato a tutti (a = all) tutti i permessi (rwx).
A sinistra del simbolo uguale (=) abbiamo l’assegnatario del permessi, a destra i permessi assegnati.
L’assegnatario viene identificato attraverso una lettera:

  • a (tutti)
  • u (utente proprietario)
  • g (gruppo)
  • o (altri utenti)

I permessi, invece, sono identificati dalle tre lettere r, w e x già viste prima.

2) chmod con sintassi ottale

Con questa sintassi i permessi vengono assegnati a tutti i livelli simultaneamente. Al posto delle lettere rwx si utilizzano 3 numeri. Esempio:

chmod 777 nomefile

Nel nostro esempio abbiamo assegnato a tutti i massimi permessi (cioè “rwx” come nell’esempio precedente).
In questa sintassi i tre numeri definiscono i permessi dei tre livelli: il primo numero riguarda l’utente proprietario, il secondo il gruppo, il terzo gli altri utenti.
Di seguito una tabella dei valori numerici e del loro significato:

  • 7 corrisponde a rwx
  • 6 corrisponde a rw
  • 5 corrisponde a rx
  • 4 corrisponde a r
  • 3 corrisponde a wx
  • 2 corrisponde a w
  • 1 corrisponde a x
  • 0 negato ogni accesso

Se ad esempio avessimo voluto assegnare al proprietario tutti i permessi, al gruppo solo lettura e scrittura ed agli altri utenti nulla, avremmo scritto:

chmod 760 nomefile

Questo tipo di sintassi è la più usata in generale.

 

INSTALLAZIONE E AGGIORNAMENTI DEI PACCHETTI

L’installazione dei software, sui sistemi Linux, è un po’ diversa dalla procedura in cui siamo abituati su Windows (o MacOS).

Se per questi ultimi è necessario andare su un sito e scaricare l’eseguibile (installer) del programma desiderato, in un sistema del tipo Raspbian è necessario fare tutto da linea di comando.

Tutta la lista di software installabili è presente all’interno di un database online “repository”.

Quindi, se vogliamo scaricare un programma sul nostro Raspberry, è bene avere questa lista sempre aggiornata. E’ quindi necessario scaricare prima l’ultima versione di questo “database” per far si che i software che vogliamo installare siano aggiornati all’ultima release.

Per aggiornare il repository quindi eseguiamo:

sudo apt update

Questo comando si limita a recuperare informazioni, ma, in concreto, non installa nulla.

sudo indica al sistema di eseguire il comando in modalità amministratore, apt è il nome del package manager e update è il comando che deve eseguire il package manager e ciò gli stiamo dicendo di aggiornare il repository.

Ora che abbiamo la lista aggiornata di tutti i pacchetti, possiamo aggiornare quelli che abbiamo installato sul nostro sistema:

sudo apt upgrade

Ora vi sarà più chiaro il perchè vedere sempre questi 2 comandi accoppiati e consecutivi in tutte le guide che necessitano di installare nuovo software.

Per installare un nuovo pacchetto invece il comando è:

sudo apt install firefox-esr

Il comando che dice al package manager di installare un pacchetto è appunto install, mentre firefox-esr è un esempio di nome di pacchetto.

 

MODIFICARE LE CONFIGURAZIONI CON NANO

In molte guide vi è capitato di modificare dei file di configurazione. Sono semplicemente dei file di testo con all’interno le variabili di configurazione di un dato programma.

L’editor predefinito che troviamo su Raspbian si chiama nano, e questo è il comando per aprire un file di configurazione (esempio: file di configurazione SAMBA):

sudo nano /etc/samba/smb.conf

Dove /etc/samba/smb.conf è il percorso assoluto del file da aprire. Nel caso non esistesse il file viene creato.

Ci si sposta all’interno dell’editor con le frecce della tastiera, e per uscire si usano i comandi CTRL-X seguito da Y (per dare conferma di salvataggio) e INVIO.

 

RIAVVIARE

Qui c’è poco da dire, spesso e volentieri dopo una modifica di configurazione (soprattutto in Home Assistant) è necessario riavviare tutto il sistema per fargli “prendere” le modifiche. Per riavviare il Raspberry da linea di comando si usa:

sudo reboot

 

Questa, come anticipato prima, è solamente una breve infarinatura dei principali comandi utilizzati nelle guide per Home Assistant. Esistono tanti altri comandi, più o meno complessi, nel mondo linux… se vuoi comunque farti una cultura più approfondita, esistono tanti siti che spiegano molto bene tutti i comandi principali!