Ecco i comandi più utilizzati nel terminale di Raspberry Pi

Lavorare da riga di comando non è un’impresa così spaventosa come si potrebbe pensare. Non c’è alcuna conoscenza speciale necessaria per digitare comandi e per usare la riga di comando come se fosse un programma come tutti gli altri. La maggior parte delle cose in Linux vengono fatte usando la riga di comando.

Per prima cosa vediamo come aprire il terminale.

Basta osservare la barra superiore e cliccare sulla icona nera, per capire di cosa si tratta guarda l’immagine sottostante:

comandi

Una volta aperto il terminale vediamo quali  sono i comandi principali

Configurazione:

sudo raspi-config

Permette di entrare nel menu configurazione della Raspberry (non funziona su altri S.O.)

comandi

Riprodurre un file audio o video con il riproduttore integrato:

omxplayer -o hdmi "Desktop/Sample.mkv"

Eseguire uno script Python:

sudo python Desktop/helloworld.py

Eseguire uno script con versione Python 3.x:

sudo python3 Desktop/helloworld.py

Muoversi fra i file

Comando Descrizione
ls Elenca i file nella directory corrente (list)
cd Cambia Directory.
pwd Directory corrente

Manipolazione del testo

Comando Descrizione
cat Concatena i file e ne manda il contenuto nello standard output
less Visualizza il contenuto di un file
nano Editor testuale

Gestione di file e directory

Comando Descrizione
mkdir

rmdir

Crea una directory, una cartella

Eliminare una cartella

touch Crea un file
cp Copia un file o una directory
mv Sposta un file o una directory
rm Rimuove un file o una directory

Sistema

Comando Descrizione
shutdown Inizia la procedura di spegnimento
reboot Riavvia il sistema

Utilities

Comando Descrizione
history Elenca la cronologia dei comandi digitati
man Apre il manuale richiesto

ALTRI COMANDI

  • head [nome file] : legge le prime righe di un testo o output
  • tail [nome file] : legge le ultime righe di un file, fondamentale per i log
  • grep : fondamentale per cercare un testo in un file o output , utilissimo l’articolo sulle espressioni regolari
  • ps -aux | grep [nome programma]: visualizza e cerca il nome di un processo attivo
  • top o htop : visualizzano l’utilizzo delle risorse dei vari processi
  • killall [nome processo] : uccide tutti i task attivi con quel nome
  • kill [pid] : uccide solo un processo preciso in base al suo pid
  • chown [utente:gruppo] [file o cartella] : cambia il proprietario di file e cartelle
  • chmod +x [file] : rende eseguibile uno script
  • chmod : cambia i permessi di file e cartelle
  • ssh utente@computer : si connette tramite ssh ad un computer che abbia il server ssh attivo
  • ufw limit [porta] : apre una porta sul firewall software limitandone l’uso in caso di attacchi
  • ssh-copy-id utente@computer : aggiunge la chiave personale all’host remoto, cosi da poter fare il login senza password
  • rsync : copia i file e cartelle utile per i backup, usando ssh-copy-id si eseguono backup in remoto con semplicità
  • hostname -I : visualizza tutti gli ip del RaspberryPi
  • lsusb : visualizza tutti i dispositivi USB, utile per controllare le chiavette wifi
  • iwconfig e ifconfig : per controllare lo stato delle schede di rete
  • tar -zxvf [file.tar.gz] : estrare gli archivi
  • du e df : visualizzano lo spazio usato
  • ping [ip o host] : invia pacchetti per vedere se un host risponde
  • nmap : scansiona la rete
  • cat /proc/cpuinfo: Mostra le informazioni sulla CPU, oltre al numero della revisione e numero seriale del Raspberry Pi
  • curl e wget : invia e scarica dati
  • ctrl + l : svuota il terminale
  • pag. giu: scrive la tilde ~
  • ctrl + r : cerca nell’elenco dei comandi lanciati in precedenza
  • pip e pip3 : gestiscono i moduli Python 2 e Python 3, rispettivamente
  • openssl rand -base64 10 : genera un valore casuale
  • certbot : abilita i certificati per i siti web locali
  • netstat -lt Ci mostra quali porte sono attualmente aperte sul sistema.
  • netstat -lnptu Ci mostra quali porte sono aperte sul sistema, lo stato e i processi a cui appartengono.
  • netstat -plant | grep :[porta] Utile per sapere se una porta è aperta e quali processi la stanno usando
  • sudo iwlist wlan0 scan Effettua una scansione delle reti wifi raggiungibili dall’interfaccia wlan0.
  • sudo nano /etc/wpa_supplicant/wpa_supplicant.conf File di configurazione per le reti wireless.
  • ifdown wlan0 Chiude l’interfaccia di rete specificata.
  • ifup wlan0 Attiva l’interfaccia di rete specificata
  • service –status-all Elenca tutti i servizi sul sistema.
  • service [nome] status Mostra lo status e gli eventuali log di quel servizio.
  • service [nome] start/restart/stop Avvia, riavvia o stoppa il servizio specificato.
  • sudo halt: spegne il computer
  • clear: Pulisce la videata bash: utile quando è piena di righe di testo
  • tvservise -s: Mostra le impostazioni e modalità di uso dello schermo collegato
  • help: mostrare la lista di tutti i comandi shell
  • date:  stampa la data corrente.
  • dpkg – -get-selections | grep XXX: mostra tutti i pacchetti installati relativi a XXX
  • vcgencmd measure_temp: mostra la temperatura della CPU.
  • vcgencmd get_mem arm && vcgencmd get_mem gpu: mostra la suddivisione della memoria tra CPU e GPU.

uptime

Se volete scoprire da quanto tempo Linux è in funzione e altre informazioni utili, vi basta utilizzare il comando uptime. In particolare, visualizzate in ordine l’ora corrente, da quanto tempo il sistema è in funzione (dato espresso in giorni, ore e minuti), quanti sono gli utenti collegati al sistema, il carico medio del sistema dell’ultimo minuto, il carico medio degli ultimi 5 minuti e il carico medio degli ultimi 15 minuti. Ecco un esempio di risultato dopo aver inviato il comando uptime: 22:21:45 up 9 days, 11:50, 12 users, load average: 0.19, 0.17, 0.15.

uname

Fra i migliori comandi da conoscere assolutamente e da utilizzare nel Terminale Linux abbiamo incluso anche uname (abbreviazione di unix name – nome unix). Grazie a questo comando è possibile avere informazioni sul computer utilizzato e sul sistema operativo installato (il tipo e la versione, l’architettura del computer e il nome di quest’ultimo in rete).

Al comando uname è possibile aggiungere anche diverse opzioni. Tramite quella -a, potete vedere tutte le informazioni conosciute, con -m il tipo di hardware, con -n il nome di rete del computer, con -r la versione del sistema operativo, con -s il tipo di sistema operativo e con -v la sub-versione dell’OS.

whereis

Fra i migliori comandi da conoscere assolutamente abbiamo deciso di riportare anche whereis. Esso consente di rintracciare la posizione esatta di un oggetto presente nella riga di comando. Ad esempio, per trovare la posizione del file binari di Firefox sul sistema operativo, utilizzate il comando whereis firefox.

locate

locate è un ottimo comando per cercare file o directory in maniera semplice e veloce. Basta semplicemente aggiungere dopo il comando il nome di ciò che si vuole cercare. Il risultato restituito sarà l’elenco di file e directory contenenti il termine cercato nel loro nome e percorso (es. locate nomefile).

free

Il comando free consente di tenere sempre sotto controllo lo spazio disponibile in RAM. Oltre a questo, esso mostra dettagli sulla memoria libera nella partizione di swap. Il comando free può essere abbinato anche a delle opzioni come -b per mostrare il risultato in byte, -k per vedere il risultato in kilobyte, -l per avere dettagli maggiori sullo stato della memoria, -t per vedere i totali di ogni colonna aggiungendo due righe alla volta e -s per ricevere, ad intervalli regolari, informazioni sulla memoria senza lanciare manualmente il comando ogni volta che si vuole. Da precisare che il parametro -s deve essere seguito dal numero di secondi (es. free -s 10).

echo
Il comando echo viene utilizzato per stampare il testo passato come argomento. Viene utilizzato principalmente nello scripting della shell e nell’elaborazione di file batch. Stampa l’output sul terminale, ma se usato con l’argomento ‘>>’, può stampare l’output in un file.

Sintassi:

History
Quando viene eseguito nel terminale, il comando history mostra tutti i comandi che sono stati precedentemente eseguiti dall’utente.

Sintassi:

Exit

Il comando exit viene utilizzato per uscire dalla shell in cui è attualmente in esecuzione. Può essere utilizzato anche per chiudere la finestra Terminale.
Sintassi:

dmesg – Controlla gli eventi del kernel

Il kernel è il cuore del sistema operativo, e dmesg ci permette di vedere quali eventi stanno accadendo in background. Utile per il debug di problemi con i dispositivi:

dmesg

Rimozione di utenti (comando userdel)

In Linux, è possibile eliminare un account utente utilizzando il comando userdel.

Per eliminare un account utente utilizzare il comando userdel seguito dal nome dell’utente:

Utilizzare l’opzione -r (–remove) per rimuovere la home directory dell’utente e lo spool di posta:

Gestione dei gruppi (comando groupadd e groupdel)

Per creare un nuovo gruppo usa il comando groupadd seguito dal nome del gruppo:

Per rimuovere un gruppo utilizzare il comando groupdel con il nome del gruppo come argomento:

Aggiunta di utenti ai gruppi (comando usermod)

Per aggiungere un utente esistente a un gruppo, utilizzare il comando usermod seguito dall’opzione -G e dal nome del gruppo:

Cancellare definitivamente un file

shred è un comando shell che sovrascrive ripetutamente i FILE specificati in modo da rendere più difficile recuperare i dati, e opzionalmente li cancella. La sintassi del comando è:

Le opzioni che possiamo passare al comando sono:

  • -f, --force: change permissions to allow writing if necessary
  • -n, --iterations=N: Overwrite N times instead of the default (25)
  • --random-source=FILE: get random bytes from FILE (default /dev/urandom)
  • -s, --size=N: shred this many bytes (suffixes like K, M, G accepted)
  • -u, --remove: truncate and remove file after overwriting
  • -v, --verbose: show progress
  • -x, --exact: do not round file sizes up to the next full block; this is the default for non-regular files
  • -z, --zero: add a final overwrite with zeros to hide shredding

Confrontare due file

diff è un comando shell che trova la differenza tra due file. La sintassi del comando è:

Alcune delle opzioni che possiamo passare al comando sono:

  • -righe: Mostra “righe” (un intero) righe di contesto. Questa opzione non specifica da sola un formato di output; non ha nessun effetto a meno che venga combinata con -c o -u. Questa opzione è obsoleta. Per operare correttamente, diff ha, di solito, bisogno di almeno due righe di contesto.
  • -a: Tratta tutti i file come testo confrontandoli riga per riga, anche se non sembrano essere testo.
  • -b: Ignora differenza nella quantità di spazi bianchi.
  • -B: Ignora differenze che consistono solo in righe vuote (eccedenti o mancanti).
  • --brief: Riferisce solo se i file sono diversi, e non i particolari della differenza.
  • -c: Usa il formato «a contesto» (context output, in inglese).
  • -d: Usa un algoritmo diverso per trovare un, probabilmente, minore insieme di modifiche da fare. Questo rende diff più lento (a volte molto più lento).

alias

Il comando alias viene utilizzato per impostare nomi alternativi per i comandi. Il formato del comando è:
alias newcmdname='normalcmdname -args'

Find

Supponiamo che vogliate cercare un file realizzato tempo addietro e non vi ricordate in quale cartella sia memorizzato.

Per trovarlo è possibile utilizzare il comando find il quale trova velocemente un file (o cartella) in qualsiasi punto del sistema operativo. Per trovare un file o cartella digitate:

Per esempio:

Ovvero, ricerca a partire dalla cartella pi un file con il nome blink.

Si osserva dal risultato che sono stati trovati due file chiamati blink dentro due cartelle diverse.

Delimitate il campo di ricerca nella vostra cartella home o pi, difficilmente salverete un file nella root. Questo velocizzerà notevolmente la ricerca.

Cercare un file con nome non definito

Il più delle volte, il nome del file da cercare non vi torna in mente e , se la sintassi del nome non è completa. find non restituirà nessun risultato.

Per superare il limite nel nome incognito, è sufficiente digitare almeno una parte ed abbinarlo con l’opzione jolly *, il quale rende più flessibile la ricerca elencando tutti i risultati che contengono i caratteri immessi nella stringa di ricerca. Digitiamo:

Ipotizziamo di voler cercare un programma C il cui nome contiene la parola pulsante e residente nella cartella pi:

Per esempio:

Il risultato di ricerca potrebbe essere:

si osserva dal risultato della ricerca che sono stati individuati più file che corrispondono alle tre lettere utilizzate nella stringa.

Pipe

Per leggere l’interno di una cartella il quale contenuto non entra in un’unica schermata, scrivete quanto segue:

Questo comando permette con il tasto invio\  di scorrere una riga per volta. il simbolo “|” detto pipe.

il comando pipie permette la re-direzione dell’uscita di un programma verso l’ingresso di un altro: il comando ls -l elenca una prima parte della lista in funzione della dimensione del terminale, e lo indirizza verso more attraverso il comando pipe.

IL COMANDO APT

L” Advanced Packaging Tool (conosciuto con l’acronimo APT) è il gestore standard di pacchetti software della distribuzione Debian e di tutte le sue derivate. In particolare vale la pena di ricordare Ubuntu e Raspberry come derivate di punta.

Vediamo via via le opzioni di APT più importanti:

Scarica la lista aggiornata dei pacchetti e delle nuove versioni disponibili nei repository. Questo comando si limita a recuperare informazioni, ma, in concreto, non installa nulla

E’ il comando principale, poiché scarica ed installa le ultime versioni dei pacchetti, delle dipendenze ed, eventualmente, il kernel più recente. In ogni caso, non esegue mai l’avanzamento di versione.

Cerca il termine «package» fra i pacchetti software disponibili nel repository. Funziona anche senza sudo.

Scarica «package» e lo installa nel sistema, rendendolo disponibile all’utente.

Rimuove «package» dal sistema.

Questo comando gestisce in maniera intelligente l’update delle dipendenze, scaricando e rimuovendo in modo più aggressivo i pacchetti al fine di garantire un aggiornamento in profondità.

Esegue l’avanzamento della versione del sistema operativo, passando quindi alla release di Raspbian più recente

Rimuove dalla cache di APT ogni file .deb, anche quelli relativi ai pacchetti correntemente installati o aggiornati.

Rimuove tutti i pacchetti che sono stati automaticamente installati per soddisfare le dipendenze di altri pacchetti, ma che ora non sono più richiesti. Questo può essere dovuto ad un cambio di dipendenze, oppure perché i pacchetti che li richiedevano sono stati rimossi. Prima di procedere con le modifiche, controllare che la lista di pacchetti indicata per la rimozione non contenga applicazioni importanti e/o che si desidera mantenere.

Installazione e disinstallazione software

Comandi per arrestare e riavviare Raspberry Pi

  • startx avvierà la GUI di Raspberry Pi (ambiente utente grafico) e ritornerà al desktop Raspbian predefinito.
  • sudo shutdown -h ora avvierà il processo di spegnimento con effetto immediato. Pianifica uno spegnimento temporizzato con il formato: sudo shutdown -h 21:55
  • sudo reboot serve per riavviare Raspberry Pi dalla riga di comando.

Concatenazione di comandi

Quante volte avreste voluto lanciare l’aggiornamento dei pacchetti e poi andarvene via sicuri che al trmine il pc si sarebbe spento da solo??? Ebbene, ora potrete!!

Esistono tre operatori molto importanti: &&&;

  • & manda in background il primo programma, permettendo al secondo di essere eseguito in contemporanea:

  • && esegue il secondo programma al termine del primo ma solo se il primo non genera errori:

  • ; esegue il secondo programma al termine del primo, anche se ci sono stati degli errori:

Lo schema dei colori

Per facilitare identificazione dei file all’interno di una cartella, è utilizzato uno schema di colori associato ad ogni tipologia.

Colore descrizione dell’associazione di tasti
Blu Cartelle
Rosso File Compresso
Bianco File di testo
Ciano Collegamenti
GIallo Dispositivi
Verde Eseguibili
Rosso lampeggiante Collegamenti interrotii

Carattere Jolly

è possibile che abbiate la necessità di cancellare o visualizzare o compiere azione su tutti i file dello stesso tipo. Per questo scopo è possibile utilizzare il carattere jolly (*).

Voglio per esempio eliminare tutti i file txt contenuti in una cartella, devo digitare:

Associazioni di tasti speciali

Nell’ambiente *nix, ci sono alcune associazioni di tasti che hanno un significato speciale. Notare che in una console a caratteri Linux normale solo i tasti Ctrl e Alt sinistri funzionano come atteso. Ecco alcune combinazioni di tasti che vale la pena ricordare.

tasto descrizione dell’associazione di tasti
Ctrl-U cancella il contenuto della riga prima del cursore
Ctrl-H cancella il carattere prima del cursore
Ctrl-D termina l’input (se si sta usando la shell, esce dalla shell)
Ctrl-C termina un programma in esecuzione
Ctrl-Z arresta temporaneamente un programma spostandolo come compito sullo sfondo
Ctrl-S ferma l’output a schermo.
Ctrl-Q riattiva l’output a schermo.
Ctrl-Alt-Del riavvia/ferma il sistema, vedere inittab(5)
Left-Alt-key (opzionalmente, tasto Windows) meta-tasto per Emacs e interfacce utente simili
freccia in su avvia la ricerca nello storico dei comandi in bash
Ctrl-R inizia una ricerca incrementale nello storico dei comandi in bash
Tab completa l’input di un nome di file nella riga di comando in bash
Ctrl-V Tab inserisce in input un carattere Tab senza espansione nella riga di comando in bash

Fonti: varie tra cui il wiki di linux e altri siti,.

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.