Principali comandi da terminale Linux

Argomenti: ,
Pubblicato il: 17-03-2021 11:45 , Ultimo aggiornamento: 17-03-2021 13:24

Verrebbe da chiedersi perchè “ostinarsi” a fare uso del terminale quando ormai i più recenti Debian, Ubuntu e compagnia permettono di fare molte cose da interfaccia grafica: non è solo questione di fare i nerd, in effetti.

Il terminale di Linux racchiude una potenza incredibile al proprio interno, e permette di eseguire operazioni avanzatissime in modo peraltro molto più pratico, intuitivo e veloce di quanto non avvenga normalmente via GUI.

Del resto, usare il terminale dei sistemi operativi Linux in modo avanzato non è uno scherzo: molte operazioni richiedono skill non banali, oltre ad una conoscenza approfondita del come funzionino gli hardware ed i sistemi in genere. Con questa guida non ho certo la pretesa di insegnare tutto quello che c’è da sapere sull’argomento, anche perchè ho sempre usato collateralmente Linux (e quasi sempre per scopi molto specifici), ma certo almeno le basi per poter lavorare “al minimo” direi proprio che sia il caso di averle.

Dove si trova il terminale di Linux

In genere trovate il terminale sotto Applicazioni, Accessori, selezionando quindi Terminale. Vale per Ubuntu e per moltissime altre distribuzioni Linux (RedHat, Debian, ecc.).

Che cos’è la shell BASH

In genere esistono più shell di comando all’interno dei terminali testuali Linux-based, ma quella più utilizzata rimane certamente la BASH; per aprire il terminale, da Debian bisogna cercare “Terminale” nella barra di ricerca delle applicazioni, mentre da Ubuntu basta andare su Applicazioni e poi su Accessori di Ubuntu. La prima cosa che vedremo nel terminale è il nostro nome utente, il nome del computer e poi, subito dopo i due punti (:), la nostra posizione dentro il filesystem.

Che cos’è la tilde (~)

Se vedete il simbolo tilde (~), per inciso, si tratta di un alias, cioè significa che vi trovate dentro la vostra home directory, ad esempio /home/tuonomeutente.

Sintassi generale di un comando

Come già fatto per il terminale Windows e per il terminale Mac, bisogna inquadrare da subito la struttura generale di un comando qualsiasi, che è caratterizzato da tre componenti

  1. nome;
  2. eventuali opzioni;
  3. argomento.

In pratica la struttura vista corrisponde ad un qualcosa del genere, a livello “espressivo“:

    1. cosa fare (ad esempio creare o cancellare un file);
    2. come farlo (in modalità binaria, come file di testo, oppure in modo permanente);
    3. dove farlo (ad esempio un file o una directory).

Comando echo per stampare a video

Le opzioni in genere possono mancare, mentre il comando più semplice da utilizzare è senza dubbio echo, che serve a stampare una stringa statica a video (ma eventualmente contenuti dinamici come, ad esempio, il risultato di un comando o l’output emesso da un programma). Ad esempio, quindi:

echo Salve, gente!

che – poco fantasiosamente, in questo caso – permetterà di stampare:

Salve, gente!

Comando chmod

Proviamo a complicare leggermente le cose, considerando un comando come chmod, il quale serve ad impostare i permessi (lettura, scrittura ed esecuzione) sui file del filesystem. Si tratta di un concetto che molti webmaster conoscono, del resto, perchè quando si lavora via FTP sui file di un sito, ad esempio, impostare i permessi in modo adeguato è spesso vitale per garantire il funzionamento del sito stesso.

Vedi anche: chmod per WordPress

Una cosa che non si dovrebbe mai fare, in genere, è impostare un permesso 777, che è il massimo della permissività in quanto permette a qualsiasi utente del sistema di fare qualsiasi cosa. In genere, pertanto, è molto più prudente impostare un permesso 775 come segue, in questo caso in modo ricorsivo (-r):

chmod -r 775 /percorso/ad/una/cartella/o/file

in cui eseguiamo chmod con parametri -r 775 sul percorso indicato.

La struttura del comando è sempre la stessa: chmod indica cosa fare, -r 775 come farlo e il path indica dove effettuare il comando (il “dove” non indica per forza un path, ovviamente, perchè dipende sempre dal comando; nel caso di chmod il dove è chiaramente un percorso di file o directory).

Muoversi nelle directory: cd e ls

I due comandi base da conoscere sono a questo punto ls e cd: il primo permette di listare i file nella directory corrente, mentre il secondo vi permette di navigare nelle directory di sistema. ls da solo si utilizza raramente, anche perchè ci sono molti parametri assegnabili come i seguenti, che servono a mostrare tutti i file in formato “lungo”.

Avremo quindi:

ls -la

che farà vedere, nella directory base, il contenuto della cartella Linux in cui vi trovate:

drwxr-xr-x  2 salcapolupo groupcapolupo   4096 2018-01-10 10:32 .
drwxr-xr-x 27 salcapolupo groupcapolupo   4096 2018-04-08 09:07 ..
-rw-r--r--  1 salcapolupo groupcapolupo 133379 2018-07-11 12:29 pippo.dc

con l’indicazione dei permessi impostati (a sinistra, prima colonna), del numero di file contenuti, del nome dell’utente, del gruppo di appartenenza, della dimensione del file e della data e ora del file stesso. Nell’ultima colonna troverete il nome del file o della directory in questione.

cd sta per change directory, e serve a navigare nel file-system del computer. Il comando cd non fa altro che farvi navigare nel filesystem:

per andare indietro di un livello:

cd ..

per andare, invece, alla root o radice originaria del filesystem:

cd \

Creare una directory

Per creare una directory pippo basta scrivere:

mkdir pippo

Copiare uno o più file

Per copiare un file singolo nella directory desiderata:

cp prova.file directory-destinazione

Per copiare più file, similmente:

cp *.txt pluto
cp *.doc paperino

Per copiare una directory (ricorsivamente):

cp -r pluto ../

Spostare un file

Per spostare i file la sintassi è analoga, solo bisogna usare mv al posto di cp.

Cancellare un file

Per cancellare file si usa rm, che non ha conoscenza del cestino: i file da terminale, di solito, vengono eliminati subito, per cui utilizzatelo sempre con la massima cautela nella vostra operatività quotidiana.

Cercare un file

Per cercare un qualsiasi file:

apt-cache search "nome file"

Installare un pacchetto su Debian / Ubuntu

per installare un pacchetto:

apt-get install [nome pacchetto]

Altri comandi da conoscere assolutamente riguardano gli aggiornamenti di sistema e delle applicazioni, che possono cambiare in base alla versione di Linux utilizzata.

apt-get update

Vedere la “storia” dei comandi digitati

Per vedere la lista dei comandi digitati, cioè lo storico delle cose che avete fatto (molto utile per recuperare ad esempio attività lasciate a metà, ad esempio causa errore), basta digitare il comando history senza parametri nè argomento, e premere Invio.

Un esempio di history:

911  man  7 signal
912  man ps
913  man  7 signal
914  man killall
915  killall -l
916  man killall
917  su -
918  su - lighttpd
919  su - lighttpd
920  cd /tmp/
921  ncftpget -u '[email protected]' lan.pippo.org.it

Vedere la cartella in cui mi trovo

Come faccio a vedere la cartella in cui mi trovo? Per vedere il nome del path (assoluto) della directory corrente, cioè il nome della cartella in cui vi trovate, digitate semplicemente:

pwd

che non è un comando relazionato con le password, bensì con l’acronimo print working directory.

Scoprire il proprio nome utente

Come faccio a vedere il mio nome utente? La crisi d’identità si risolve facilmente digitando:

whoami

Determinare i processi attivi in tempo reale

Per vedere i processi attivi nel sistema in quel momento:

top

Verificare un log di errori (ad es. Apache)

In caso di crash di un sito può essere utile verificare le ultime righe del log di Apache, che spesso può essere caotico e difficile da filtrare. Questo comando è utile per trovare, nel 90% dei casi, la causa del problema:

watch tail -n 15 /var/log/apache2/error.log

Modalità superuser

Per accedere in modalità superuser ed avere il massimo dei privilegi, premettete a qualsiasi comando della forma vista al punto 0 con il comando su, esempio:

sudo command123 -p1 -p2 123 ...

Attenzione che se accedete in modalità su 1) vi sarà richiesta la password di root (che non apparirà mentre la digitate) 2) qualsiasi comando potrà essere eseguito, ivi compresa la cancellazione o modifica di file importanti. Fate quindi molta attenzione a come ne fate uso.

Editor di testo: pico

Il terminale Linux eredita parecchio dalla shell UNIX, e naturalmente ne contiene i suoi programmi più interessanti: uno dei miei preferiti è pico, un editor di testo abbastanza potente, che potete vedere digitando:

pico

oppure:

pico nomefile.txt

e su cui vi suggerisco un rapido tutorial (in inglese) prima di farne uso.

Connettersi a SSH

Come fare una connessione SSH? SSH serve a instaurare sessioni di lavoro remote su macchine esterne, ad esempio il vostro cloud o VPS. Per operare in questa direzione la sintassi tipica è la seguente:

ssh [email protected]

che permette di collegarsi come root all’IP aaa.bbb.ccc.ddd. Attenzione che queste connessioni sono normalmente regolamentate da un certificato di autenticazione che dovrete installare una tantum (vedi qui per i necessari approfondimenti).

Per approfondire la questione date uno sguardo ai vari tutorial di questo sito sull’argomento shell remota.

Effettuare un PING /curl su un host

Per effettuare un PING su un host, cioè per valutare i suoi tempi di risposta, si scrive:

ping miohost.it

dove miohost.it può essere sostituito da un IP. Per testare il funzionamento di una pagina web basta invece digitare:

curl -V sito.it

che restituisce il markup della pagina e la sua risposta codificata (codice 200 per dire “tutto ok”, 404 per pagina mancante, 301 per redirect permanente, 302 per temporaneo, 500 per errore irreversibile e così via).

Potete anche usare il tool via browser per il PING, se preferite.

Cercare testo dentro uno o più file con grep

Per cercare pattern di testo nei vostri file di testo o codice utilizzerete grep:

grep -ic qualcosa file.txt

che cerca le occorrenze del pattern “qualcosa” dentro file.txt.

Per confrontare due file (ad esempio due versioni di codice), invece, si scrive:

diff -y firstfile secondfile

Altri comandi

Quanti sono i comandi disponibili? Per vedere la lista completa dei comandi basta usare compgen nelle seguenti varianti:

  • compgen -c tutti i comandi con permessi di esecuzione
  • compgen -a tutti gli alias con permessi di esecuzione
  • compgen -A function tutte le funzioni che si possono lanciare
Nessun voto disponibile

Che te ne pare?

Grazie per aver letto Principali comandi da terminale Linux di Salvatore Capolupo su Trovalost.it
Principali comandi da terminale Linux (Guide, Assistenza Tecnica, Configurazione Hosting)

Articoli più letti su questi argomenti:
Trovalost.it è gestito, mantenuto, ideato e (in gran parte) scritto da Salvatore Capolupo