Il Terminale di Linux

Ancora oggi, nonostante la frenetica evoluzione alla quale stanno andando incontro le interfacce grafiche, il Terminale, indipendentemente dal sistema operativo che stiamo utilizzando, è uno strumento molto importante.

Saperlo utilizzare spesso semplifica la nostra vita e accorcia i tempi d’attesa. Ci sono casi in cui non è possibile utilizzare un’interfaccia grafica ne’ i servizi di desktop remoto, qui saper utilizzare un terminale per inviare dei comandi tramite SSH diventa fondamentale.

Perché questa guida?

Tutti gli amministratori ricorrono alla cronologia dei comandi del terminale. Quante volte passate una manciata di secondi premendo la freccia verso l’alto sulla vostra tastiera sperando di trovare il comando che effettui l’operazione che abbiamo in mente?

Questa utilissima funzione non è sufficiente a colmare i nostri vuoti di memoria. Nel corso degli anni mi sono appuntato le funzioni più importanti e necessarie allo svolgimento delle mie funzioni di tecnico IT.

In questo articolo parlerò dei comandi più frequenti utilizzati su terminali Linux. Quasi tutti questi comandi possono essere utilizzati anche nel terminale di MacOS di Apple.


Nozioni di base

Una piccola nota prima di procedere con i comandi di base: la cartella di lavoro.

Per tutti i comandi spiegati, quando mi trovo a lavorare in una cartella posso ricorrere a percorsi relativi oppure assoluti.

Se devo agire su un file nella stessa cartella attualmente visualizzata dal mio terminale, posso omettere tutto il percorso e specificare solo il nome del file. Il terminale eseguirà in automatico il comando nel percorso relativo. Immaginiamo di trovarci nella cartella /home/teodoro e voler creare un file prova.txt.

teodoro@teodoro-laptop:/opt$ touch prova.txt

Se invece mi trovo nella home dell’utente o in altre cartelle diverse da /opt posso usare il percorso assoluto per creare il file:

teodoro@teodoro-laptop:~$ touch /opt/prova.txt

I comandi più frequenti

Suddivisi per categoria, vi consiglio di memorizzare questi comandi.


Gestione dei file

Importante perché spesso ci troveremo a dover gestire file per la quale in nostro utente di base non detiene i permessi per modificarlo. In questo caso conoscere bene quali comandi utilizzare sul terminale è il metodo meno ambiguo.

In alternativa una soluzione molto più grezza potrebbe essere lanciare il nostro file manager da terminale con permessi di amministratore.
Su Ubuntu:

sudo nautilus

Ma non mi sento di suggerire questo modo di lavorare, quindi andiamo avanti.

Creare un file

Spesso mi è capitato di dover creare dei file di configurazione lavorando su un sistema remoto, molti editor accettano come parametro un file che non esiste e lo creano nel momento del salvataggio.
In alternativa ricorro spesso a:

touch nomefile.txt

Questo comando mi creerà un file con estensione .txt .

Copiare un file

Per esempio nella configurazione dei VirtualHosts Apache, ricorro spesso alla copia di un file d’origine in un secondo con un nome diverso. Mi troverò così il contenuto del file corretto senza dover ricercare tutti i parametri ogni volta. Il file d’origine resterà invariato.

cp /percorso/origine/file_originale.est /percorso/destinazione/file_copiato.est

Se non intendo rinominare il file posso specificare solo la cartella di destinazione come secondo parametro, ricordatevi lo / dopo il nome della cartella:

cp /percorso/origine/file_originale.est /percorso/destinazione/

Spostare un file

Lo spostamento di un file equivale al comando taglia delle nostre interfacce grafiche. Ci troveremo quindi vedere scomparire il file_originale.est e lo vedremo comparire nel nuovo percorso e con il nuovo nome file_spostato.est.

mv /percorso/origine/file_originale.est /percorso/destinazione/file_copiato.est

Se non intendo rinominare il file posso specificare solo la cartella di destinazione come secondo parametro, ricordatevi lo / dopo il nome della cartella:

mv /percorso/origine/file_originale.est /percorso/destinazione/

Ricorro spesso a questo comando sui vecchi Mac, dove il Finder non supporta il comando taglia.

Rinominare un file

Lo stesso comando appena spiegato può essere utilizzato per rinominare un file:

mv /percorso/file_originale.est /percorso/file_copiato.est

Eliminare un file

Per eliminare un file il comando è rm. Basta specificare come parametro di rm il file di destinazione.

rm /percorso/nome_file.est

Gestione delle cartelle

Nella gestione delle cartelle, alcuni comandi sono comuni tra file e cartelle, altri sono specifici. Vediamo come funzionano.

Cambiare cartella di lavoro

Il comando cd: Cambia Cartella o Change Directory, serve per muoverci all’interno dell’albero dei nostri file e cartelle.

Se vogliamo spostarci nella cartella /percorso/destinazione basterà digitare cd e il percorso come parametro:

cd /percorso/destinazione

Creare una cartella

Il comando mkdir seguito dal nome cartella creerà una nuova cartella nella posizione corrente. Posso sempre specificare il percorso assoluto come nel seguente esempio:

mkdir /percorso/cartella

Creerà la cartella cartella, nel percorso /percorso.

Copiare una cartella

Come per i file, cp ci viene in aiuto ma dobbiamo ricordarci di aggiungere il parametro -r prima del nome della cartella.

cp -r /percorso/cartella_origine /percorso/cartella_copiata

Se non intendo rinominare la cartella di destinazione posso specificare solo la cartella genitore come secondo parametro, ricordatevi lo / dopo il nome della cartella genitore:

cp -r /percorso/origine/cartella_originale /percorso/destinazione/

Con questo comando andrò a creare una cartella cartella_originale nel percorso /percorso/destinazione/ con lo stesso nome e contenuto della cartella d’origine /percorso/origine/cartella_originale.

Spostare una cartella

Il comando mv per le cartelle non necessita di alcun parametro aggiuntivo rispetto a quello utilizzato per i file.

mv /percorso/origine/cartella_originale /percorso/destinazione/cartella_spostata

Oppure, se non si vuole rinominare la cartella di destinazione:

mv /percorso/origine/cartella_originale /percorso/destinazione/

Creando così la cartella /percorso/destinazione/cartella_originale eliminando quella originaria.

Eliminare una cartella

Il comando per la rimozione di una cartella va scritto con il parametro -r: rm -r

rm -r /percorso/origine/cartella_da_rimuovere

Eseguire un applicativo

Per eseguire un applicativo o uno script ci sono due metodi principali:

source

Source è stato il primo metodo implementato nei sistemi Unix per eseguire script e applicativi. La sua sintassi e molto semplice:

source /percorso/eseguibile

. (punto)

Visto che tutti noi programmatori siamo pigri per natura, con il tempo source è stato abbreviato con il comando “.”. Si utilizza seguendo la stessa sintassi di source:

. /percorso/eseguibile

Esempio:

In questo esempio creo un file test.sh con dentro solo una riga: echo “Ciao Teodoro!”. Una volta creato lo eseguo con entrambi i metodi visti in precedenza.


Gestire i permessi

Una parte fondamentale nell’utilizzo di un sistema operativo basato su Kernel Linux è la gestione dei permessi. Avrei voluto riportare qui la logica di gestione e i comandi di base ma, essendo un argomento molto vasto, ho deciso di separarlo in un articolo dedicato: Comprendiamo la gestione dei permessi su Linux.


Aiuto!

Se non ci ricordiamo i parametri da utilizzare con un particolare un comando c’è un parametro che non dobbiamo mai scordarci: –help

Se per esempio non ci ricordiamo come funziona il comando cd e a cosa serve possiamo digitare:

cd --help

Otterremmo così il seguente output:


Applicativi utili

Esiste tutta una serie di applicativi che è necessario saper utilizzare per poter svolgere le nostre funzioni giornaliere.

sudo

Ecco, sudo è un’applicazione ed è un’opzione su molte distribuzioni. Per esempio su Debian il comando sudo non è installato di default. Se vi siete persi il paragrafo in cui ne parlo, vi rimando su: Elevare i nostri permessi.

apt

Gestore di applicazioni disponibile sia su Linux che su Mac. Permette di installare applicazioni e servizi necessari allo sviluppo dei nostri applicativi e alla configurazione dei nostri sistemi.

vi

Editor testuale utilizzabile da riga di comando. Fondamentale quando lavoriamo da remoto su file e configurazioni.

ssh

Nota anche come Secure Shell, serve per gestire da remoto un sistema. Permette in pratica di digitare dei comandi sulla propria finestra SSH e far si che questi comandi vengano eseguiti su un sistema remoto.


Conclusione

Adesso dovresti avere padronanza di tutti gli strumenti di base per iniziare a lavorare con il tuo terminale. Se hai dubbi non esitare a contattarmi per maggiori spiegazioni.


Articoli correlati