Come la maggior parte dei sistemi operativi, anche Linux ti mette a di­spo­si­zio­ne una shell, che può essere uti­liz­za­ta per con­trol­la­re il sistema uti­liz­zan­do comandi dalla riga di comando. Tutte le im­po­sta­zio­ni che puoi apportare tramite l’in­ter­fac­cia grafica (Graphical User Interface, GUI) si possono anche applicare dalla shell. Ti in­di­chia­mo i comandi Linux più im­por­tan­ti spie­gan­do­ti la loro funzione e ap­pli­ca­zio­ne.

Registra il tuo dominio
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Elenco dei 50 comandi Linux più im­por­tan­ti

Comando De­scri­zio­ne
sudo Esegue comandi con i permessi di altri utenti
ls Elenca i contenuti delle directory
cd Naviga nell’albero delle directory
touch Crea un nuovo file
mkdir Crea una nuova directory
rm Rimuove file
rmdir Rimuove una directory
mv Sposta o rinomina file o directory
cp Copia file o directory
pwd Vi­sua­liz­za la posizione corrente nell’albero delle directory
zip Scrive file in archivi zip
unzip Estrae file dagli archivi zip
ln Crea un col­le­ga­men­to simbolico
cat Unisce i contenuti dei file
grep Cerca file di testo
diff Trova dif­fe­ren­ze tra file di testo
cmp Trova dif­fe­ren­ze a livello di byte tra file
tar Scrive ed estrae file in archivi tar
echo Emette stringhe su spe­ci­fi­che standard
clear Svuota il terminale
ssh Si connette a un altro computer at­tra­ver­so Secure Shell
wget Scarica un file di­ret­ta­men­te da internet
ping Invia richieste al server e misura la latenza
ftp, sftp Tra­sfe­ri­sce file tramite (S)FTP
ip Interroga e configura le in­ter­fac­ce di rete
apt/pacman/yum Scarica e gestisce pacchetti software
netstat Vi­sua­liz­za lo stato delle in­ter­fac­ce di rete
tra­ce­rou­te Traccia i pacchetti di dati
route Vi­sua­liz­za e modifica le tabelle di in­stra­da­men­to IP
dig Richiede in­for­ma­zio­ni DNS
mount/unmount Integra i file system (impostare/montare)
dd Copia file, par­ti­zio­ni o supporti di dati con pre­ci­sio­ne di bit
chmod Gestisce i permessi di accesso
chown Cambia il pro­prie­ta­rio di un file
adduser Aggiunge/modifica account utente
passwd Crea/modifica le password per gli account utente
groupadd Crea gruppi di utenti
chattr Gestisce gli attributi dei file
lsattr Vi­sua­liz­za gli attributi dei file
chgrp Gestisce l’ap­par­te­nen­za a gruppi di file e directory
man Richiama il manuale utente
shutdown, reboot Spegne/riavvia il sistema
top Fornisce un riassunto dinamico dei processi
lscpu Vi­sua­liz­za le in­for­ma­zio­ni sul pro­ces­so­re
lshw Vi­sua­liz­za le in­for­ma­zio­ni sull’hardware
kill Arresta e termina il processo tramite PID
killall Arresta e termina i processi tramite nome
nice Definisce le priorità dei processi
pgrep Determina il PID at­tra­ver­so un termine di ricerca
ps Vi­sua­liz­za l’elenco di tutti i processi in ese­cu­zio­ne

Comando sudo su Linux

Il comando sudo su Linux (sub­sti­tu­te user do) può essere anteposto alle chiamate del programma per eseguirle con i permessi di un altro utente. Perciò, di solito, è ne­ces­sa­rio inserire una password. Il comando sudo richiede quindi sempre la password dell’utente in questione.

Se il comando viene trasmesso senza nomi utente, il super utente root viene uti­liz­za­to come utente di de­sti­na­zio­ne.

sudo -u NOMEUTENTE CHIAMATAPROGRAMMA
bash

Comando ls su Linux

Il comando ls su Linux sta per list e viene uti­liz­za­to per mostrare il contenuto di una cartella (i nomi di tutti i file e di tutte le cartelle che si trovano nella cartella indicata). La sintassi del comando è la seguente:

ls [OPZIONI] CARTELLA
bash

Se ls viene uti­liz­za­to senza indicare la cartella, il comando elenca il contenuto della cartella corrente. Grazie a opzioni ag­giun­ti­ve definisci quali in­for­ma­zio­ni vengono indicate e come vengono vi­sua­liz­za­te.

Comando cd su Linux

Il comando cd su Linux sta per change directory e serve per navigare tra le cartelle. La sintassi del comando è la seguente:

cd [OPZIONE] CARTELLA
bash

Se non viene inserita una cartella di de­sti­na­zio­ne, cd si sposta au­to­ma­ti­ca­men­te nella cartella home dell’utente. Se cd viene seguito da un segno meno (-), si ritorna alla cartella pre­ce­den­te.

Comando touch su Linux

Il comando touch su Linux viene uti­liz­za­to per mo­di­fi­ca­re la marca temporale di accesso e di modifica. Se touch viene applicato a un file ine­si­sten­te, allora verrà au­to­ma­ti­ca­men­te creato. Il comando è perciò indicato anche per creare file vuoti. Utilizza touch ri­cor­ren­do allo schema seguente:

touch [OPZIONI] FILE
bash

Per impostare la marca temporale di un file alla data de­si­de­ra­ta, utilizza l’opzione -t com­pren­si­va dell’ora nel formato [JJ]MMTThhmm[.ss].

Esempio:

touch -t 1703231037 file.txt
bash

La marca temporale di accesso e di modifica viene impostata al 23 marzo 2017, 10:37. La modifica si può limitare tramite le opzioni -a e -m alla marca temporale di accesso o di modifica. Se il comando touch viene uti­liz­za­to senza l’opzione -t, viene applicata la marca temporale corrente.

Comando mkdir su Linux

Il comando mkdir su Linux sta per make directory e consente agli utenti Linux di creare nuove cartelle. Utilizza la sintassi seguente per creare una nuova cartella in quella corrente:

mkdir [OPZIONE] NOMECARTELLA
bash

Se una cartella deve essere creata in una de­ter­mi­na­ta cartella di de­sti­na­zio­ne, indica il percorso assoluto o relativo per giungere alla cartella.

Comando rm su Linux

Il comando rm su Linux (remove) elimina file o intere cartelle per­ma­nen­te­men­te. Lo schema alla base dell’ese­cu­zio­ne del programma è il seguente:

rm [OPZIONI] FILE/CARTELLA
bash

Per eliminare una cartella com­pren­si­va di tutte le sot­to­car­tel­le, utilizza rm con l’opzione -R (–recursive).

Comando rmdir su Linux

Se desideri eliminare una cartella in par­ti­co­la­re, utilizza il comando rmdir (remove directory) basandoti sulla seguente sintassi:

rmdir [OPZIONE] CARTELLA
bash

Con rmdir puoi rimuovere solo le cartelle vuote. Per eliminare una cartella con tutti i file e le sot­to­car­tel­le, utilizza il comando rm (remove) con l’opzione -r.

In altri articoli trovi ulteriori metodi su come can­cel­la­re un file su Linux o su come eliminare una directory in Linux.

Comando mv su Linux

Il comando mv su Linux (move) copia un file o una cartella, eli­mi­nan­do l’elemento ori­gi­na­rio. Se ciò accade all’interno della stessa cartella, mv può essere uti­liz­za­to per ri­no­mi­na­re i file.

Lo schema alla base dell’ese­cu­zio­ne del programma è il seguente:

mv [OPZIONE] ORIGINE DESTINAZIONE
bash

Comando cp su Linux

Il comando cp su Linux (copy) viene uti­liz­za­to per copiare i file e le cartelle. La sintassi di base del comando è la seguente:

cp [OPZIONI] ORIGINE DESTINAZIONE
bash

ORIGINE è l’elemento che deve essere copiato. Come DE­STI­NA­ZIO­NE del processo di copia viene definito un file o una cartella. Se definisci un file pre­e­si­sten­te come file di de­sti­na­zio­ne il suo contenuto verrà so­vra­scrit­to con quello del file di origine. In al­ter­na­ti­va, hai la pos­si­bi­li­tà di creare il file di de­sti­na­zio­ne come nuovo file con il nome de­si­de­ra­to.

Comando pwd su Linux

Utilizza il comando pwd su Linux (ab­bre­via­zio­ne di print working directory) per farti mostrare il nome della cartella corrente in cui stai lavorando.

La sintassi del comando è la seguente:

pwd [OPZIONI]
bash

Comando zip su Linux

Usa il comando zip per com­pri­me­re diversi file in un archivio zip. La sintassi del comando è la seguente:

zip DESTINAZIONE FILE
bash

DE­STI­NA­ZIO­NE è il nome o il percorso del file zip ri­sul­tan­te. FILE si riferisce ai nomi o ai percorsi dei file da com­pri­me­re (separati da spazi).

Comando unzip su Linux

Con unzip puoi estrarre i file dagli archivi zip. La sintassi è questa:

unzip FILE.zip -d DESTINAZIONE
bash

Qui FILE si riferisce all’archivio zip da cui devono essere estratti i file. Op­zio­nal­men­te, puoi usare l’opzione -d DE­STI­NA­ZIO­NE per spe­ci­fi­ca­re una directory di de­sti­na­zio­ne in cui me­mo­riz­za­re i file ri­sul­tan­ti. Al­tri­men­ti i file vengono me­mo­riz­za­ti nella directory corrente.

Comando ln su Linux

Il comando ln su Linux (ab­bre­via­zio­ne di link) genera un col­le­ga­men­to a un file o a una cartella. Così viene generato un’ulteriore voce per questo file che ti consente di accedere al file relativo tramite un altro percorso. Il programma della riga di comando ln deve almeno sempre contenere il percorso al file ori­gi­na­rio.

ln [OPZIONI] percorso/al/file/originario
bash

Il link viene creato, in questo caso, con lo stesso nome nella cartella in cui si sta lavorando. Al­ter­na­ti­va­men­te hai la pos­si­bi­li­tà di indicare un percorso di de­sti­na­zio­ne e di dare un qualsiasi nome al col­le­ga­men­to:

ln [OPZIONI] percorso/al/file/originario percorso/al/collegamento
bash

Comando cat su Linux

Il comando cat su Linux (ab­bre­via­zio­ne di con­ca­te­na­te) è stato svi­lup­pa­to come strumento per l’unione dei contenuti dei file e può essere uti­liz­za­to come pager per vi­sua­liz­za­re i contenuti dei file nel terminale.

Apri nel terminale cat con la seguente sintassi per inserire un file e riceverlo nello stdout (standard output):

cat OPZIONI FILE
bash

Più file vengono separati da spazi:

cat OPZIONI FILE1 FILE 2
bash

Comando grep su Linux

Con il comando grep su Linux si possono fare ricerche nei file di testo. Come schema di ricerca vengono uti­liz­za­te le più svariate sequenze di caratteri o espres­sio­ni regolari. Utilizza grep ri­cor­ren­do allo schema seguente:

grep [OPZIONI] SCHEMARICERCA [FILE]
bash

Se grep si imbatte in una stringa che cor­ri­spon­de allo schema di ricerca, il numero della riga viene vi­sua­liz­za­to nel terminale con l’in­di­ca­zio­ne del nome del file. So­li­ta­men­te grep viene uti­liz­za­to su tutti i file nella cartella corrente. L’opzione -r consente una ricerca ricorsiva nelle sot­to­car­tel­le.

Comando diff su Linux

Il comando diff serve a con­fron­ta­re due file. In al­ter­na­ti­va, si può stabilire tramite diff se due cartelle con­ten­go­no gli stessi file.

La vi­sua­liz­za­zio­ne nel terminale avviene ri­cor­ren­do alla sintassi seguente:

diff [OPZIONI] FILE1 FILE2
bash

Comando cmp su Linux

cmp fa parte del pacchetto diff e serve come questo per con­fron­ta­re i contenuti dei file. Di­ver­sa­men­te da come avviene su diff, la sin­cro­niz­za­zio­ne avviene quindi sul livello di byte e si adatta in par­ti­co­la­re per i file binari. Utilizza cmp ri­cor­ren­do alla seguente sintassi:

cmp [OPZIONI] FILE1 FILE2
bash

Se cmp riscontra delle dif­fe­ren­ze, il comando re­sti­tui­sce il numero della riga e di byte della prima di­ver­gen­za trovata nel terminale.

Comando tar su Linux

Il comando tar consente di scrivere diversi file e cartelle se­quen­zial­men­te in un file tar e ri­pri­sti­nar­li a partire da questo, se ne­ces­sa­rio. A dif­fe­ren­za del classico formato zip di Windows, tutti i permessi utente del file ar­chi­via­to rimangono invariati anche dopo la de­com­pres­sio­ne. Usa la sintassi seguente:

tar [OPZIONI] FILE
bash

Se desideri creare un nuovo archivio, utilizza tar con le opzioni -c (generare un nuovo archivio) e -f (scrivere un archivio nel file indicato o estrarlo da questo). Per saperne di più, consulta il nostro articolo “Creare backup con tar: come funziona l’ar­chi­via­zio­ne”.

Comando echo su Linux

Utilizza il comando echo su Linux per ri­pro­dur­re le catene di caratteri per riga sullo standard output (so­li­ta­men­te il terminale).

La sintassi generale del programma è la seguente:

echo [OPZIONI] STRINGA
bash

Comando clear su Linux

Utilizza il comando clear per rimuovere il contenuto dello schermo.

clear
bash

Così ottieni un terminale vuoto con aperta solo la finestra della riga di comando. Gli input immessi pre­ce­den­te­men­te rimangono però me­mo­riz­za­ti nello scroll­back buffer (cache di scor­ri­men­to). Al posto di usare questo comando, si può anche svuotare il terminale tramite la com­bi­na­zio­ne di tasti [CTRL] + [L].

Comando ssh su Linux

Puoi uti­liz­za­re ssh per collegare il computer a un computer esterno tramite il pro­to­col­lo SSH. In questo modo ti troverai quindi nella shell dell’altro computer. La sintassi è la seguente:

ssh NOMEUTENTE@NOMEHOST
bash

In questo caso, NO­MEU­TEN­TE e NOMEHOST indicano ri­spet­ti­va­men­te il nome utente con cui si desidera accedere e l’indirizzo del computer esterno.

Comando wget su Linux

Puoi uti­liz­za­re il comando wget su Linux per scaricare file da internet. Usa la seguente sintassi:

wget [OPZIONE] LINK
bash

LINK è l’URL con il quale si trova il file. Puoi anche uti­liz­za­re l’argomento opzionale -c per con­ti­nua­re un download in­ter­rot­to.

Comando ping su Linux

Utilizza il comando ping su Linux per ve­ri­fi­ca­re la rag­giun­gi­bi­li­tà di altri computer nella rete. La seguente sintassi è alla base del comando:

ping [OPZIONI] OBIETTIVO
bash

Insieme al tempo di andata e ritorno del pacchetto (Round trip time, RTT), ovvero l’in­ter­val­lo compreso tra l’invio del pacchetto e la ricezione della risposta, ping fornisce anche l’indirizzo IP del sistema di de­sti­na­zio­ne nel terminale. Puoi usare argomenti opzionali per impostare il numero di pacchetti o di secondi dopo i quali ping termina au­to­no­ma­men­te.

Comando ftp o sftp su Linux

Questo comando ti dà la pos­si­bi­li­tà di scambiare file tra un sistema locale e un altro computer in rete. Utilizza FTP (File Transfer Protocol ri­cor­ren­do allo schema seguente per in­stau­ra­re una con­nes­sio­ne al server FTP del computer di de­sti­na­zio­ne.

ftp [OPZIONI] [HOST[PORTA]]
bash

L’in­di­riz­za­men­to avviene tramite nome host o indirizzo IP. L’in­di­ca­zio­ne di un numero di porta è opzionale. Utilizza FTP solo nelle reti di cui ti fidi, poiché questo pro­to­col­lo non è sicuro. Per motivi di sicurezza, è quasi sempre pre­fe­ri­bi­le usare SFTP (SSH File Transfer Protocol). Il comando Linux sftp funziona secondo lo stesso principio di ftp, ma in questo caso il tra­sfe­ri­men­to è criptato. SFTP utilizza Secure Shell (SSH) come standard, inclusi i suoi metodi di au­ten­ti­ca­zio­ne. In un altro articolo ti spie­ghia­mo come uti­liz­za­re le chiavi SSH per la con­nes­sio­ne alla rete.

Comando ip su Linux

Il programma della riga di comando ip fa parte della raccolta di programmi iproute2, con cui si possono ri­chie­de­re e con­fi­gu­ra­re dal terminale le in­ter­fac­ce di rete. La sintassi generale del comando è la seguente:

ip [OPZIONI] OGGETTO [COMANDO [ARGOMENTI]]
bash

Grazie a oggetti, sot­to­co­man­di e altri argomenti definisci quale azione viene eseguita tramite ip.

Il programma supporta diversi oggetti come address (indirizzo IP), link (in­ter­fac­cia di rete), route (voce nelle tabelle di in­stra­da­men­to) o tunnel, ai quali si possono applicare i sot­to­co­man­di come add, change, del, list o show.

Ad esempio, se desideri ri­chia­ma­re l’indirizzo IP di un’altra in­ter­fac­cia di rete specifica (ad esempio eth0), utilizza il comando ip insieme all’oggetto address, il comando show e l’argomento dev eth0:

ip address show dev eth0
bash

Ti spie­ghia­mo come vi­sua­liz­za­re un indirizzo IP su Linux in modo più det­ta­glia­to in un altro articolo.

Comandi apt, pacman e yum su Linux

Ogni di­stri­bu­zio­ne Linux dispone di un gestore di pacchetti con il quale è possibile scaricare e gestire i pacchetti software. La sintassi per l’in­stal­la­zio­ne delle ap­pli­ca­zio­ni è la seguente:

apt install [PACCHETTO] # Distribuzioni basate su Debian come Ubuntu
pacman -S [PACCHETTO] # Distribuzioni basate su Arch
yum install [PACCHETTO] # Distribuzioni basate su Red Hat
bash

Qui [PACCHETTO] è il nome del pacchetto o del programma che vorresti in­stal­la­re. Nella maggior parte dei casi, questi comandi devono essere eseguiti tramite sudo in modalità root. Per altre di­stri­bu­zio­ni che uti­liz­za­no altri gestori di pacchetti, i comandi possono differire. Ogni gestore ha anche comandi per rimuovere i pacchetti, ag­gior­na­re l’elenco dei pacchetti e ag­gior­na­re tutti i pacchetti in­stal­la­ti, ecc. Su Ubuntu, questi comandi sono i seguenti.

apt remove [PACCHETTO] # rimuove i pacchetti
apt update # aggiorna l’elenco dei pacchetti
apt upgrade # aggiorna i pacchetti
bash

Comando netstat su Linux

Il programma della riga di comando netstat serve per fornire lo stato delle in­ter­fac­ce di rete. La sintassi generale del comando è la seguente:

netstat [OPZIONI]
bash

Utilizza netstat senza opzione per farti mostrare tutti i socket aperti nel terminale. Al­ter­na­ti­va­men­te usa le seguenti opzioni per vi­sua­liz­za­re le tabelle di in­stra­da­men­to (-r), le sta­ti­sti­che delle in­ter­fac­ce (-i), le con­nes­sio­ni ma­sche­ra­te (-M) o i messaggi del col­le­ga­men­to di rete (-N). Per saperne di più, consulta la nostra in­tro­du­zio­ne a netstat.

Comando tra­ce­rou­te su Linux

Per tracciare il percorso di trasporto di un pacchetto di dati IP tra il sistema e un computer di de­sti­na­zio­ne, utilizza il comando tra­ce­rou­te per seguire il percorso dei pacchetti. Usa il seguente schema:

traceroute [OPZIONI] NOMEHOST
bash

Tramite traceroute si può in­di­vi­dua­re quale router e nodi internet ha at­tra­ver­sa­to un pacchetto IP durante il percorso per giungere al computer di de­sti­na­zio­ne, utile ad esempio per ap­pro­fon­di­re la causa di un ritardo nella tra­smis­sio­ne.

Comando route su Linux

Con il programma della riga di comando route si possono ri­chie­de­re e mo­di­fi­ca­re le tabelle di in­stra­da­men­to IP del kernel. La sintassi seguente è alla base del comando:

route [OPZIONI] [add|del] [-net|-host] [DESTINAZIONE]
bash

Utilizza il comando senza opzione per farti mostrare com­ple­ta­men­te la tabella di routing del kernel:

route
bash

Se desideri impostare un percorso alla rete, utilizza il sot­to­co­man­do add.

route add -net 10.0.0.0
bash

Comando dig su Linux

dig è uno strumento di lookup con il quale ri­chie­de­re le in­for­ma­zio­ni dei server DNS e vi­sua­liz­zar­le nel terminale. Il programma della riga di comando viene so­li­ta­men­te uti­liz­za­to ri­cor­ren­do allo schema seguente per ri­chie­de­re l’indirizzo IP e altre in­for­ma­zio­ni DNS su un nome di dominio dato:

dig [@SERVER] [DOMINIO] [TIPO]
bash

SERVER è il server DNS che deve essere ricercato in base alle in­for­ma­zio­ni de­si­de­ra­te. Per im­po­sta­zio­ne pre­de­fi­ni­ta, viene uti­liz­za­to il server pre­de­fi­ni­to del file etc/resolv.conf. DOMINIO sta a indicare il nome di dominio al quale devono essere co­mu­ni­ca­te le in­for­ma­zio­ni DNS. Come TIPO si può definire il tipo di richiesta, ad esempio ANY (tutte le voci), A (record IPv4 di un host) o AAAA (record IPv6 di un host). Il record A è definito come tipo di richiesta standard.

Comandi mount e unmount su Linux

Se un file system deve essere collegato tramite terminale nella struttura di cartelle del sistema operativo, su Linux si utilizza il programma della riga di comando mount. La sintassi generale del comando è la seguente:

mount [OPZIONI] DISPOSITIVO PUNTO_DI_MONTAGGIO
bash

DI­SPO­SI­TI­VO = il percorso al file del di­spo­si­ti­vo del supporto di memoria che vorresti montare come par­ti­zio­ne.

PUNTO_DI_MONTAGGIO = il punto nella struttura di cartelle del tuo sistema operativo sul quale vorresti montare la par­ti­zio­ne. Il punto di montaggio viene indicato spesso come percorso assoluto.

Esempio:

mount /dev/sdd /media/usb
bash

Il di­spo­si­ti­vo sdd viene montato nella cartella /media/usb.

Comando dd su Linux

Il programma della riga di comando dd consente una copia in cui i dati vengono ana­liz­za­ti bit per bit da un input file (if) e vengono scritti in un output file (of). La seguente sintassi è alla base del programma:

dd if=origine of=destinazione [OPZIONI]
bash

Come origine e de­sti­na­zio­ne si possono indicare così sia i singoli file che le par­ti­zio­ni intere (ad esempio /dev/sda1) o un di­spo­si­ti­vo di memoria completo (ad esempio /dev/sda).

dd if=/dev/sda5 of=/dev/sdb1
bash

Comando chmod su Linux

Il comando chmod (ab­bre­via­zio­ne di change mode) serve per l’as­se­gna­zio­ne dei permessi nei file system com­pa­ti­bi­li con UNIX (ad esempio ext2, ext3, ext4, reiser, xfs). La sintassi generale del comando è la seguente:

chmod [OPZIONI] MODALITÀ FILE
bash

o anche

chmod [OPZIONI] MODALITÀ CARTELLA
bash

Il se­gna­po­sto MODALITÀ serve per indicare la maschera dei permessi da applicare. Nel nostro articolo di ap­pro­fon­di­men­to sull’as­se­gna­zio­ne dei permessi di accesso con chmod, scopri come crearla e a cosa devi prestare at­ten­zio­ne durante il processo. Grazie all’opzione -R si possono estendere in modo ricorsivo i permessi dati alle sot­to­car­tel­le e ai file contenuti in una cartella.

Comando chown su Linux

Il comando chown su Linux sta per change owner e ti dà la pos­si­bi­li­tà di mo­di­fi­ca­re le im­po­sta­zio­ni del pro­prie­ta­rio di un file o di una cartella secondo lo schema seguente:

chown [OPZIONI] [UTENTE][:[GRUPPO]] FILE
bash

o anche

chown [OPZIONI] [UTENTE][:[GRUPPO]] CARTELLA
bash

Per impostare i permessi pro­prie­ta­ri per gli utenti o i gruppi, hai a di­spo­si­zio­ne quattro pos­si­bi­li­tà di com­bi­na­zio­ne. Il pro­prie­ta­rio e il gruppo vengono impostati nuo­va­men­te in base ai dati forniti:

chown [OPZIONI] proprietario_nome:gruppi_nome file.txt
# Il gruppo viene impostato nuovamente in base ai dati forniti, l’utente rimane invariato:
chown [OPZIONI] :gruppi_nome file.txt
# Il proprietario viene impostato nuovamente in base ai dati forniti, il gruppo rimane invariato:
chown [OPZIONI] proprietario_nome file.txt
# L’utente viene impostato nuovamente in base ai dati forniti. Il gruppo viene impostato sul gruppo standard dell’utente che ha effettuato il login:
chown [OPZIONI] proprietario_nome: file.txt
# Le modifiche si possono rendere ricorsive e applicare quindi alle sottocartelle grazie all’OPZIONE `-R`.
bash

Comando adduser su Linux

Il modo più semplice per creare un account utente è usare il programma della riga di comando adduser. Si tratta di uno script Perl basato sul comando Linux useradd e offre le stesse funzioni in una forma facile da usare. Il comando adduser richiede i permessi di root e si usa secondo la sintassi seguente:

adduser [OPZIONI] NOMEUTENTE
bash

Se usi adduser senza opzioni, oltre a un nuovo account utente, vengono creati au­to­ma­ti­ca­men­te un ID utente, una cartella home e un gruppo utente omonimo.

adduser test
bash

Dopo segue un dialogo in­te­rat­ti­vo in cui si possono definire la password e le in­for­ma­zio­ni utente avanzate, come nome reale, numero dell’ufficio, numeri di telefono, ecc.

Comando passwd su Linux

Utilizza il comando passwd su Linux per cambiare la password di un utente o definire gli in­ter­val­li di blocco o di modifica. La sintassi alla base del comando è la seguente:

passwd [OPZIONI] NOMEUTENTE
bash

Se desideri cambiare la password di un altro utente, hai bisogno dei permessi di root. Per cambiare la password, utilizza il comando passwd senza nome utente. Se la password dell’utente se­le­zio­na­to dovesse essere bloccata, usa il comando passwd con l’opzione -l (lock). Ulteriori opzioni offrono la pos­si­bi­li­tà di definire una durata di validità per le password (-x), gli in­ter­val­li di avviso (-w) e di blocco (-i).

Comando groupadd su Linux

Il programma della riga di comando groupadd serve a creare nuovi gruppi utente. Utilizza groupadd con permessi di root ri­cor­ren­do allo schema seguente:

sudo groupadd [OPZIONI] GRUPPO
bash

Ogni nuovo gruppo creato ottiene un ID del gruppo univoco (GID). Gli ID dei gruppi compresi tra 0 e 99 sono destinati ai gruppi di sistema. Se desideri definire in autonomia il GID di un nuovo gruppo utente, utilizza il comando groupadd con l’opzione -g (GID). Se vorresti creare un gruppo di sistema, usa l’opzione -r (root).

Comando chattr su Linux

Il programma della riga di comando chattr (ab­bre­via­zio­ne di change attribute) ti permette di dare degli attributi ai file o alle cartelle. Per impostare un attributo, utilizza chattr ri­cor­ren­do alla sintassi seguente:

chattr [OPZIONI] +ATTRIBUTO FILE
bash

So­sti­tui­sci il segno più con il segno meno per rimuovere nuo­va­men­te gli attributi. Ad esempio, imposta l’attributo -i per impedire cam­bia­men­ti (can­cel­la­zio­ni o modifiche) a un file o a una directory. Scopri altri attributi e possibili opzioni sulla pagina del manuale del programma chattr.

Comando lsattr su Linux

Se desideri vi­sua­liz­za­re quali attributi sono stati impostati per un file o una cartella, utilizza il comando lsattr (ab­bre­via­zio­ne di list at­tri­bu­tes) ri­cor­ren­do allo schema seguente:

lsattr [OPZIONI] FILE/CARTELLA
bash

Comando chgrp su Linux

Il comando chgrp sta per change group e viene uti­liz­za­to per la gestione dell’ap­par­te­nen­za ai gruppi dei file e delle cartelle. Per poter usare chgrp su un file o una cartella se­le­zio­na­ta, devi disporre di permessi pro­prie­ta­ri o root. Inoltre, puoi scegliere solo gruppi dei quali fai parte. La sintassi per uti­liz­za­re chgrp è la seguente:

chgrp [OPZIONI] GRUPPO FILE
bash

o:

chgrp [OPZIONI] GRUPPO CARTELLA
bash

L’opzione -R include le sot­to­car­tel­le e i file contenuti in una cartella.

Comando man su Linux

Il comando man apre le pagine del manuale (man pages) della tua di­stri­bu­zio­ne Linux di­ret­ta­men­te nel terminale. Utilizza lo schema seguente per vi­sua­liz­za­re la pagina del manuale:

man [OPZIONE] ARGOMENTO
bash

Le man pages di Linux sono suddivise in 10 tematiche: comandi utente, chiamate al sistema, funzioni del lin­guag­gio di pro­gram­ma­zio­ne C, formati dei file, file di con­fi­gu­ra­zio­ne, giochi, varie, comandi per l’am­mi­ni­stra­zio­ne del sistema, funzioni del kernel e nuovi comandi.

Comando shutdown su Linux

Il comando shutdown su Linux può essere uti­liz­za­to dagli utenti root per arrestare il sistema. La sintassi di base del comando è la seguente:

shutdown [OPZIONI] [TEMPO] [MESSAGGIO]
bash

Se vorresti pre­di­spor­re uno shutdown, hai la pos­si­bi­li­tà di definire un orario in cui il sistema deve essere arrestato. Per fare ciò inserisci un’in­di­ca­zio­ne temporale concreta (hh:mm) o utilizza la funzione di countdown (+m). Gli altri utenti sul sistema ricevono un avviso di shutdown a cui può essere aggiunto, se ne­ces­sa­rio, un messaggio per­so­na­liz­za­to. Se il comando shutdown viene uti­liz­za­to con l’opzione –r, segue all’arresto del sistema un reboot.

Comando top su Linux

Con il comando top vi­sua­liz­zi un riepilogo dinamico di tutti i processi in corso. Lo schema alla base del comando è il seguente:

top [OPZIONI]
bash

Il risultato delle in­for­ma­zio­ni del processo si può regolare grazie a diverse opzioni. Inoltre, il riepilogo dei processi top (tra gli altri) supporta le seguenti hotkeys per filtrare l’output:

  • [P] = filtra l’output secondo il carico della CPU
  • [M] = filtra l’output secondo l’uso della memoria
  • [N] = filtra l’output nu­me­ri­ca­men­te per PID
  • [A] = filtra l’output in base all’età
  • [T] = filtra l’output in base al tempo
  • [U NO­MEU­TEN­TE o UID] = filtra l’output a seconda del ri­spet­ti­vo utente

Utilizza l’Hotkey [H] per vi­sua­liz­za­re una pagina di aiuto e [Q] per uscire dal riepilogo dei processi.

Comando lscpu su Linux

Utilizza lscpu (ab­bre­via­zio­ne di list cpu) ri­cor­ren­do allo schema seguente per vi­sua­liz­za­re le in­for­ma­zio­ni sull’ar­chi­tet­tu­ra CPU nel terminale.

lscpu [OPZIONI]
bash

Le possibili opzioni sono contenute nelle pagine del manuale del sistema operativo.

Comando lshw su Linux

Il comando lshw sta per list hardware e ti fornisce le in­for­ma­zio­ni sui com­po­nen­ti hardware nel terminale. Utilizza lshw ri­cor­ren­do allo schema seguente:

lshw [OPZIONI]
bash

Il comando supporta diverse opzioni con cui puoi adattare il formato di output (-html, -xml, -short, -businfo) così come le in­for­ma­zio­ni mostrate (ad esempio -sanitize per na­scon­de­re le in­for­ma­zio­ni sensibili).

Comando kill su Linux

Con kill si attiva un programma della riga di comando con cui si possono fermare e terminare i processi. Il comando viene trasmesso ri­cor­ren­do allo schema seguente con un segnale de­si­de­ra­to e l’ID del processo se­le­zio­na­to.

kill [OPZIONI] [-SEGNALE] PID
bash

I segnali comuni sono:

  1. TERM: pre­di­spo­ne che un processo termini au­to­no­ma­men­te (standard)
  2. KILL: forza la chiusura di un processo (tramite il sistema)
  3. STOP: ferma un processo
  4. CONT: consente a un processo fermato di ri­pren­de­re

Comando killall su Linux

Utilizza il comando killall su Linux insieme a una precisa parola chiave per terminare solo i processi con un nome specifico (vengono comparati i primi 15 caratteri).

killall [OPZIONI] [-SEGNALE] [NOMEPROCESSO]
bash

L’opzione -e (–exact) consente di estendere il confronto a tutti i caratteri del nome del processo.

Comando nice su Linux

Il comando nice assegna a un processo all’avvio un valore nice compreso tra -20 e +19 in passaggi di numeri interi secondo il quale viene di­stri­bui­ta la capacità di calcolo di­spo­ni­bi­le per il sistema. L’in­ter­val­lo da -20 a +19 cor­ri­spon­de ai livelli di priorità Linux da 100 fino a 139. Un processo con un valore nice di -20 ha così una priorità più alta rispetto a un processo con un valore nice di 19. La sintassi generale è la seguente:

nice [OPZIONE] [COMANDO]
bash

Senza ulteriori in­di­ca­zio­ni ogni processo si avvia con un valore nice di 0. Utilizza l’opzione -n per definire le priorità dei processi. Così è da fare at­ten­zio­ne al fatto che si possono dare delle priorità negative solo con i permessi di root.

Comando pgrep su Linux

Il programma della riga di comando pgrep compara la lista dei processi in corso con una parola chiave e fornisce in caso di coin­ci­den­za il relativo PID. La sintassi generale del comando è la seguente:

pgrep [OPZIONI] parola chiave
bash

So­li­ta­men­te pgrep re­sti­tui­sce i PID di tutti i processi che con­ten­go­no la parola chiave. Se la ricerca deve essere limitata a termini con la dicitura esatta, utilizza il comando con l’opzione -x. Se oltre al PID desideri vi­sua­liz­za­re anche il nome del processo, usa pgrep con l’opzione -l. pgrep supporta (in modo analogo a grep) parole chiave basate su espres­sio­ni regolari.

Comando ps su Linux

Il comando ps su Linux fornisce una lista di tutti i processi in corso nel terminale.

ps [OPZIONI]
bash

Se hai bisogno di un risultato più det­ta­glia­to, utilizza ps con le opzioni -f (det­ta­glia­to) o -F (molto det­ta­glia­to). Altre possibili opzioni sono contenute nelle pagine del manuale del sistema operativo.

Altri comandi Linux

Comandi di base

Nella categoria dei comandi di base rientrano i comandi di Linux es­sen­zia­li che servono a con­trol­la­re il terminale. Scopri così come svuotare l’area visibile del terminale, come ri­chia­ma­re dalla cro­no­lo­gia i pre­ce­den­ti comandi immessi nel terminale o come terminare una sessione.

1.exit

Il comando exit termina la sessione corrente e chiude il terminale.

exit
bash

In al­ter­na­ti­va, utilizza la com­bi­na­zio­ne di tasti [CTRL] + [D].

2. help

Utilizza il comando help per farti mostrare una lista di tutti i comandi shell integrati (comandi built-in). Inserisci il comando help insieme a un comando shell per ricevere una piccola de­scri­zio­ne del cor­ri­spet­ti­vo comando.

help COMANDO
bash

3. history

Su bash vengono me­mo­riz­za­ti nella cro­no­lo­gia (in inglese “history”) gli ultimi 500 comandi che hai inserito nella riga di comando. Questa funzione ti aiuta durante l’im­mis­sio­ne degli input e ti consente di ricercare nella lista dei comandi pre­ce­den­ti con i tasti freccia e di eseguirli nuo­va­men­te.

Si possono ricercare delle parole chiave nella cro­no­lo­gia tramite la com­bi­na­zio­ne di tasti [CTRL] + [R]. Al­ter­na­ti­va­men­te hai la pos­si­bi­li­tà di farti mostrare la lista completa numerata nel terminale. Per fare ciò, utilizza il comando history senza opzioni e argomenti.

history
bash

Se desideri filtrare il risultato, combina history con una pipe su Linux e il programma della riga di comando grep (vedi opzioni di ricerca) e una parola chiave.

history | grep PAROLA CHIAVE
bash

Pagine di aiuto

Non sai come andare oltre? Niente paura! Su Linux hai a di­spo­si­zio­ne diverse pagine di aiuto e di do­cu­men­ta­zio­ne, come le pagine del manuale di Unix (co­no­sciu­te anche come “man pages”) e le pagine in­for­ma­ti­ve GNU vi­sua­liz­za­bi­li di­ret­ta­men­te dal terminale. Queste guide com­pren­do­no una de­scri­zio­ne det­ta­glia­ta di tutti i programmi della riga di comando, dei col­le­ga­men­ti del sistema, dei file di con­fi­gu­ra­zio­ne, dei formati e delle funzioni del kernel. Con il comando whatis su Linux e apropos nella categoria delle pagine di aiuto trovi anche i programmi della riga di comando con cui puoi ricercare le parole chiave presenti nelle pagine del manuale del tuo sistema operativo.

1. apropos

Utilizza apropos per ricercare le parole chiave nei titoli delle pagine e delle de­scri­zio­ni contenute nel manuale del tuo sistema operativo. Orientati sullo schema seguente:

apropos [OPZIONI] PAROLA CHIAVE
bash

Il comando supporta diverse opzioni. Delimita la ricerca alla dicitura esatta con l’opzione -e o utilizza il se­gna­po­sto (-w '*PAROLA CHIAVE') e le espres­sio­ni regolari (-r).

2. info

Tramite il comando info si possono vi­sua­liz­za­re le pagine in­for­ma­ti­ve GNU su un tema specifico. Ciò cor­ri­spon­de nella maggior parte dei casi alle pagine del manuale che si possono ri­chia­ma­re tramite man, ma al contrario di queste mostrano dei col­le­ga­men­ti che ti agevolano la na­vi­ga­zio­ne nel manuale. Utilizza la sintassi seguente:

info [OPZIONE] TEMA
bash

Se non inserisci l’opzione e il tema, vieni in­di­riz­za­to al menu prin­ci­pa­le delle pagine in­for­ma­ti­ve GNU.

3. pinfo

Con pinfo hai a di­spo­si­zio­ne una variante del programma della riga di comando info che si ispira al browser della riga di comando Lynx e ti fa vi­sua­liz­za­re le pagine in­for­ma­ti­ve con i link evi­den­zia­ti con diversi colori. Utilizza pinfo basandoti sullo stesso schema del comando info.

pinfo [OPZIONI] TEMA
bash

4. whatis

Il programma della riga di comando whatis serve per ricercare le parole chiave nel manuale. Vi­sua­liz­za il programma con una qualsiasi parola per ricercare nel manuale del tuo sistema operativo delle cor­ri­spon­den­ze esatte. Se esiste un cor­ri­spet­ti­vo, whatis ne fornisce una breve de­scri­zio­ne nel terminale.

whatis [OPZIONI] PAROLA CHIAVE
bash

Anche whatis (-w ‘*PAROLA CHIAVE’) supporta se­gna­po­sti ed espres­sio­ni regolari (-r).

Ope­ra­zio­ni con le cartelle

Utilizza i comandi Linux per ef­fet­tua­re ope­ra­zio­ni con le cartelle per creare, eliminare e gestire cartelle e i relativi file sul tuo sistema dal terminale, oltre che per navigare nelle cartelle. Tra i comandi più im­por­tan­ti di questa categoria rientrano cd, ls, mkdir, rmdir.

1. chroot

Il comando chroot (ab­bre­via­zio­ne di change root) viene uti­liz­za­to per eseguire un comando in un’altra root. L’istru­zio­ne chroot viene ad esempio usata per isolare i programmi critici dal resto del file system. Per aprire il programma sono richiesti i permessi di root e il comando si orienta allo schema seguente:

chroot CARTELLA COMANDO
bash

2. mkdirhier

Con mkdirhier si può creare una gerarchia di cartelle completa con un unico comando:

mkdirhier [OPZIONE] /home/user/cartella1/cartella2/cartella3
bash

Se cartella1 e cartella2 esistono già, mkdirhier crea solo la cartella3. Al­tri­men­ti vengono generate tutte e tre le cartelle.

3. tree

Mentre ls elenca solo il contenuto delle cartelle, con il comando tree si può mostrare la gerarchia completa delle cartelle, in modo ricorsivo, all’interno della struttura ad albero. La sintassi del comando è la seguente:

tree [OPZIONI] [CARTELLA]
bash

Ope­ra­zio­ni con i file

I comandi Linux di questa sezione con­sen­to­no di eseguire diverse ope­ra­zio­ni con i file di­ret­ta­men­te dal terminale. Utilizza i comandi Linux di base come cp, mv e rm per copiare, spostare, ri­no­mi­na­re o eliminare i file dal tuo sistema.

1. basename

Al comando basename viene trasmesso un percorso del file; è presente solo il nome del file senza il percorso an­te­ce­den­te. La sintassi del comando è la seguente:

basename [OPZIONI] Percorso/al/file [SUFFISSO]
bash

Il comando può essere ampliato a più file grazie alle opzioni.

2. comm

Utilizza il comando comm per comparare i file ordinati (ad esempio tramite sort) per righe. La sintassi alla base del programma è la seguente:

comm [OPZIONI] FILE1 FILE2
bash

Il programma supporta tre opzioni:

  • -1 = per eliminare le righe uniche dal FILE1
  • -2 = per eliminare le righe uniche dal FILE2
  • -3 = per eliminare tutte le righe che sono contenute in entrambi i file

3. cut

Il comando cut ti consente di estrarre dalle righe di un testo di un file dei contenuti per colonne (per esempio file di log o CSV). La sintassi del comando è la seguente:

cut [OPZIONI] FILE
bash

La posizione precisa di una parte da estrarre viene definita tramite le opzioni -b (posizione dei byte), -c (posizione del carattere), -d (se­pa­ra­to­re) e -f (campo).

4. dirname

dirname è il contrario di basename. Il comando consente di estrarre una parte di percorso da un percorso del file e di vi­sua­liz­zar­lo nel terminale senza indicare il nome del file. La sintassi del comando è la seguente:

dirname [OPZIONI] percorso/al/file
bash

5. file

Con il comando file si possono ottenere le in­for­ma­zio­ni relative al tipo di file preso in con­si­de­ra­zio­ne. Lo schema alla base della vi­sua­liz­za­zio­ne è il seguente:

file [OPZIONI] FILE
bash

6. lsof

Il comando lsof su Linux sta per list open files, un programma che ti mostra nel terminale le in­for­ma­zio­ni sui file aperti, ordinati per PID (ID del processo o process ID). La vi­sua­liz­za­zio­ne nel terminale avviene secondo lo schema seguente:

lsof [OPZIONI]
bash

Visto che i sistemi com­pa­ti­bi­li con UNIX come Linux seguono il principio “Eve­ry­thing is a file“ (in italiano: “tutto è un file”), la lista mostrata dal comando lsof è con­se­guen­te­men­te lunga. Di solito vengono perciò uti­liz­za­te le opzioni per de­li­mi­ta­re il risultato.

7. md5sum

Grazie al comando md5sum si possono calcolare e ve­ri­fi­ca­re le somme di controllo (checksum) in MD5 per i file.

8. paste

In maniera analoga a cat anche il comando paste consente la vi­sua­liz­za­zio­ne dei contenuti del file nello standard output. Tuttavia, mentre cat unisce solo i contenuti uno dietro l’altro, paste li collega per colonne. Lo schema di base del comando è il seguente:

paste [OPZIONI] FILE1 FILE2 …
bash

Grazie all’opzione -d si può scegliere in modo per­so­na­liz­za­to quale se­pa­ra­to­re utilizza paste. Le schede vengono uti­liz­za­te come divisori standard. Tramite l’opzione -s (seriale) si può inoltre attivare una seconda modalità dove vengono trasmesse tutte le righe del primo file inserito nella prima riga dell’output. I dati di tutti gli altri file inseriti seguono in righe separate di output. Ogni riga dell’output contiene così solo i contenuti di un file inserito.

9. rename

rename è un programma della riga di comando che consente di ri­no­mi­na­re file e cartelle tramite espres­sio­ni regolari. A dif­fe­ren­za di mv, rename è adatto per le ope­ra­zio­ni dei file in cui devono essere adattati par­zial­men­te o in­te­ra­men­te i nomi di più file. Utilizza rename ri­cor­ren­do allo schema seguente:

rename [OPZIONI] 'ESPRESSIONE_REGOLARE' FILE
bash

Le espres­sio­ni regolari seguono per le so­sti­tu­zio­ni la seguente sintassi:

s/SCHEMARICERCA/SOSTITUZIONE/MODIFICATORE
bash

10. shred

shred è un programma della riga di comando che consente la rimozione sicura dei file. Gli elementi se­le­zio­na­ti vengono so­vra­scrit­ti durante il processo di eli­mi­na­zio­ne e non si possono così neanche ri­pri­sti­na­re con mezzi specifici. La sintassi generale del comando è la seguente:

shred [OPZIONI] FILE
bash

11. sort

Utilizza il comando sort per ordinare liste di file e output di programmi per riga in ordine numerico e al­fa­be­ti­co. La sintassi generale del comando è la seguente:

sort [OPZIONI] FILE
bash

Il metodo di or­di­na­men­to si può regolare grazie alle opzioni: ad esempio quelle numeriche (-n), casuali (-R) o in suc­ces­sio­ne inversa (-r).

12. split

Il comando split viene uti­liz­za­to per sud­di­vi­de­re i file. La sintassi alla base è la seguente:

split [OPZIONI] [INPUT [PREFISSO]]
bash

Il se­gna­po­sto INPUT cor­ri­spon­de al file che deve essere suddiviso. Il PREFISSO viene inserito per i nomi dei file parziali. Lo schema a cui questo processo di de­no­mi­na­zio­ne aderisce è il seguente:

PREFISSOaa, PREFISSOab, PREFISSOac …
bash

Se non viene definito nessun prefisso, split ricorre al prefisso standard x. Con l’opzione -b (byte) si possono definire le di­men­sio­ni dei file parziali. L’in­di­ca­zio­ne viene fatta a scelta in byte (b), kilobyte (k) o megabyte (m).

Esempio:

split -b 95m archivio.tgz split-archivio.tgz.
bash

13. stat

Con il comando stat (status) si possono vi­sua­liz­za­re le marche temporali di accesso, di modifica dei file e delle cartelle se­le­zio­na­te. La sintassi generale del comando è la seguente:

stat [OPZIONI] FILE
bash

Il formato di output è re­go­la­bi­le grazie alle opzioni.

14. uniq

Il comando uniq viene so­li­ta­men­te uti­liz­za­to in com­bi­na­zio­ne con sort per ripulire i file ordinati dalle righe doppie. Nel seguente esempio il comando sort viene collegato tramite pipe (|) al comando uniq per ordinare prima di tutto il file e infine re­sti­tuir­lo senza righe doppie:

sort file.txt | uniq
bash

Opzioni di ricerca

Linux offre diversi comandi con i quali si può cercare di­ret­ta­men­te partendo dal terminale.

1. find

Il comando find di Linux è un programma della riga di comando che serve per la ricerca dei file. La sintassi è la seguente:

find [OPZIONI] [CARTELLA] [CONDIZIONEDIRICERCA][AZIONI]
bash

La cartella inserita risulta la cartella di partenza della ricerca. La ricerca avviene così nella cartella standard e nelle sue sot­to­car­tel­le. Se non inserisci nessuna cartella, find inizia la ricerca dalla cartella di lavoro corrente.

Le opzioni ti per­met­to­no di definire dei criteri di ricerca e delle azioni. Come azione standard è pre­im­po­sta­ta -print che indica la vi­sua­liz­za­zio­ne dei nomi dei file completi di tutti i risultati di ricerca nello standard ouput (di norma il terminale). Altre opzioni con­sen­to­no di filtrare in base al nome del file, alla di­men­sio­ne del file, all’ora di accesso, ecc. Queste opzioni sono elencate nella pagina man cor­ri­spon­den­te.

2. locate

Anche il programma della riga di comando locate permette una ricerca di file dal terminale. A dif­fe­ren­za di find non viene però ricercata la cartella dei file, ma un database ag­gior­na­to re­go­lar­men­te e creato spe­ci­fi­ca­men­te per questo motivo. Perciò locate fornisce dei risultati di ricerca in modo net­ta­men­te più veloce rispetto a find. Per ricercare nel database un file specifico, si utilizza locate ri­cor­ren­do allo schema seguente:

locate SCHEMARICERCA
bash

Lo schema di ricerca può contenere me­ta­ca­rat­te­ri, come il se­gna­po­sto (*). Metti uno schema di ricerca di questo tipo tra vir­go­let­te per ef­fet­tua­re un’in­ter­pre­ta­zio­ne tramite la shell.

3. tre-agrep

Anche tre-agrep serve per la ricerca di stringhe nei file di testo in base a schemi di ricerca. A dif­fe­ren­za di grep, qui non vengono vi­sua­liz­za­ti solo termini con la dicitura esatta, ma anche quelli ap­pros­si­ma­ti­vi che pre­sen­ta­no un’in­ver­sio­ne delle lettere o hanno dei caratteri mancanti. Il programma si appoggia alla libreria TRE e la rende uti­liz­za­bi­le nella riga di comando. La sintassi di tre-agrep cor­ri­spon­de a quella del comando grep:

tre-agrep [OPZIONI] SCHEMARICERCA FILE
bash

Si può definire un numero massimo di errori tramite le opzioni. Nel seguente esempio viene tollerata al massimo una di­ver­gen­za dallo schema di ricerca.

tre-agrep -1 'Linux' test.txt
bash

4. updatedb

Una ricerca tramite locate è af­fi­da­bi­le solo se il file /var/lib/locatedb viene con­ti­nua­men­te ag­gior­na­to e presenta quindi tutte le ultime modifiche apportate. Il comando updatedb ti consente di ag­gior­na­re ma­nual­men­te il database. Fai at­ten­zio­ne al fatto che per uti­liz­zar­lo hai bisogno dei permessi di root:

updatedb
bash

5. whereis

Con il comando whereis localizzi i file binari, del codice sorgente o dei file del manuale relativo ai programmi se­le­zio­na­ti. La sintassi generale del comando è la seguente:

whereis [OPZIONI] PROGRAMMA
bash

Grazie alle opzioni la ricerca si può limitare a precisi tipi di file o cartelle.

6. which

Se desideri in­di­vi­dua­re il file binario di un programma, utilizza il comando which ri­cor­ren­do allo schema seguente, per vi­sua­liz­za­re il percorso nel terminale.

which [OPZIONI] PROGRAMMA
bash

Nella modalità standard which re­sti­tui­sce il primo file che viene trovato. Utilizza l’opzione -a per farti mostrare tutti i file che sod­di­sfa­no il criterio di ricerca.

In­for­ma­zio­ni utente

Utilizza i programmi della riga di comando della categoria seguente per vi­sua­liz­za­re in­for­ma­zio­ni più det­ta­glia­te sugli utenti re­gi­stra­ti sul sistema, sui gruppi di cui fanno parte e sui processi.

1. finger

Il programma della riga di comando finger serve a vi­sua­liz­za­re le in­for­ma­zio­ni utente. Per fare ciò si inserisce il comando omonimo combinato con il nome utente de­si­de­ra­to:

finger [Opzioni] [NOMEUTENTE]
bash

Utilizza finger senza nome utente per vi­sua­liz­za­re le in­for­ma­zio­ni sul tuo account.

2. groups

Il comando groups elenca le ap­par­te­nen­ze ai gruppi di un account utente se­le­zio­na­to. Usa groups senza nome utente per elencare tutti i gruppi dei quali fa parte il tuo account utente. Utilizza il comando ri­cor­ren­do allo schema seguente:

groups [OPZIONI] [NOMEUTENTE]
bash

3. id

Il comando id re­sti­tui­sce gli iden­ti­fi­ca­ti­vi degli utenti e dei gruppi dell’account utente scelto. Individua i tuoi ID inserendo il comando senza nome utente.

id [OPZIONI] [NOMEUTENTE]
bash

Si può limitare l’output tramite opzioni.

4. last

Utilizza il comando last ri­cor­ren­do allo schema seguente per vi­sua­liz­za­re una lista degli ultimi utenti che hanno ef­fet­tua­to l’accesso com­pren­si­vi della data di login e logout:

last [OPZIONI] [NOMEUTENTE]
bash

Le in­for­ma­zio­ni cor­ri­spon­den­ti vengono vi­sua­liz­za­te dal file wtmp contenuto in /var/log/wtmp. Se desideri solo ri­chie­de­re le in­for­ma­zio­ni di un account specifico, inserisci il comando con il nome utente de­si­de­ra­to.

5. w

Il comando w fornisce una lista di tutti gli utenti che hanno ef­fet­tua­to l’accesso com­pren­si­vi di tutti i processi eseguiti da questi. Utilizza w insieme a un nome utente per limitare il comando a questo utente:

w [OPZIONI] [NOMEUTENTE]
bash

Il tipo e il formato dell’output si possono adattare tramite opzioni, se ne­ces­sa­rio.

6. who

Il comando who ti fornisce in­for­ma­zio­ni det­ta­glia­te sull’utente che ha ef­fet­tua­to l’accesso al sistema. La sintassi generale del comando è la seguente:

who [OPZIONE] [FILEORIGINARIO]
bash

Di norma who si riferisce ai dati sugli utenti che hanno ef­fet­tua­to l’accesso at­tual­men­te, presi dal file /var/run/utmp. Op­zio­nal­men­te può essere indicato come fonte delle in­for­ma­zio­ni uno dei seguenti file.

7. whoami

Utilizza il comando whoami per vi­sua­liz­za­re il tuo nome utente.

whoami [OPZIONI]
bash

Gestione dell’account utente

Linux ti offre una serie di programmi con cui creare, eliminare e gestire di­ret­ta­men­te dal terminale account utente e gruppi. Nella tabella qui di seguito trovi un riepilogo dei più im­por­tan­ti comandi Linux per la gestione dell’account utente. Inoltre, in questa categoria trovi i comandi Linux per il terminale che ti con­sen­to­no di vi­sua­liz­za­re i programmi con i permessi degli altri utenti, inclusi quelli del super utente root.

1. chfn

Il comando chfn (ab­bre­via­zio­ne di change finger) ti permette di mo­di­fi­ca­re le in­for­ma­zio­ni avanzate di un account utente come i nomi reali, il numero dell’ufficio, così come i numeri di telefono privati e aziendali. La sintassi generale di chfn è la seguente:

chfn [OPZIONE "NUOVO VALORE"] [NOMEUTENTE]
bash

Grazie alle opzioni -f (nome reale), -r (numero di telefono), -w (numero di servizio) e -h (numero privato) definisci quale in­for­ma­zio­ne utente sarà so­sti­tui­ta con un nuovo valore.

2. chsh

Il comando chsh (ab­bre­via­zio­ne di change shell) modifica il login della shell di un utente se­le­zio­na­to. Per l’in­se­ri­men­to orientati sullo schema seguente:

chsh [OPZIONI] NOMEUTENTE
bash

Puoi uti­liz­za­re l’opzione -s per cambiare la shell di login di un account utente.

3. deluser

Il programma della riga di comando deluser elimina tutte le voci di un account utente se­le­zio­na­to dai file dell’account di sistema. L’ese­cu­zio­ne di deluser richiede permessi di root e si orienta sullo schema seguente:

deluser [OPZIONI] NOMEUTENTE
bash

Se desideri can­cel­la­re la directory home o tutti i file dell’account utente, utilizza le opzioni --remove-home o --remove-all-files. Altre opzioni si trovano nella pagina del manuale del comando.

4. delgroup

Il comando delgroup (ab­bre­via­zio­ne di delete group) elimina un gruppo utente già esistente. Per poter eseguire il comando sono necessari permessi di root. La sintassi generale di delgroup è la seguente:

delgroup [OPZIONI] GRUPPO
bash

5. groupmod

Tramite groupmod si possono mo­di­fi­ca­re il nome e l’ID del gruppo (GID) di un gruppo utente già esistente. Il comando viene uti­liz­za­to con permessi di root ri­cor­ren­do allo schema seguente:

groupmod OPZIONI GRUPPO
bash

Utilizza groupmod con l’opzione -g per mo­di­fi­ca­re il GID. Usando l’opzione -n si so­vra­scri­ve il nome del gruppo.

6. newgrp

newgrp (ab­bre­via­zio­ne di new group) è un comando che consente agli utenti che hanno ef­fet­tua­to l’accesso di cambiare il loro ID del gruppo corrente senza che debbano di nuovo fare il login o di­scon­net­ter­si. La sintassi generale del comando è la seguente:

newgrp [-] [GRUPPO]
bash

Se a newgrp viene assegnato il parametro opzionale [-], il cambio di gruppo porta al riavvio dell’ambiente utente, di modo che l’utente debba ef­fet­tua­re l’accesso nuo­va­men­te. Se newgrp viene usato senza spe­ci­fi­ca­re un gruppo, viene uti­liz­za­to il gruppo standard indicato nella cartella /etc/passwd.

7. su

Anche il comando su consente un cambio tem­po­ra­neo per eseguire i programmi con i permessi di un account utente di de­sti­na­zio­ne A dif­fe­ren­za di sudo, viene richiesta la password dell’utente di de­sti­na­zio­ne e i comandi non vengono eseguiti di­ret­ta­men­te. La sintassi generale del comando è la seguente:

su [OPZIONI] [NOMEUTENTE]
bash

Un’ese­cu­zio­ne senza NO­MEU­TEN­TE seleziona root come account utente di de­sti­na­zio­ne.

8. usermod

Il comando usermod ti dà la pos­si­bi­li­tà di mo­di­fi­ca­re gli account utente già esistenti. Utilizza usermod con i permessi di root ri­cor­ren­do allo schema seguente:

usermod [OPZIONI] NOMEUTENTE
bash

Le opzioni con­sen­to­no di definire le modifiche da apportare. Ad esempio, puoi usare l’opzione -l NUOVO_NOME per cambiare il nome dell’utente. Trovi altre opzioni nella pagina man cor­ri­spon­den­te.

Comandi di sistema

Nella categoria “Comandi di sistema” trovi le direttive di Linux di base per l’am­mi­ni­stra­zio­ne del sistema. Utilizza i seguenti comandi per riavviare e spegnere il sistema dal terminale, anche a tempo, se lo desideri.

1. logger

Utilizza logger ri­cor­ren­do allo schema seguente:

logger "IL TUO MESSAGGIO"
bash

Trovi il log di sistema su /var/log/syslog.

2. reboot

reboot è un comando che porta a un riavvio del sistema. Per riavviare il sistema, il comando deve essere eseguito con i permessi di root.

reboot [OPZIONI]
bash

3. rtcwake

rtcwake è un comando che permette di avviare e arrestare il sistema a un orario de­ter­mi­na­to. La sintassi di base del comando è la seguente:

rtcwake [OPZIONI] [MODALITÀ] [Tempo]
bash

Scegli una modalità precisa (-m MODALITÀ) in cui deve essere impostato il sistema per un tempo preciso in secondi (-s TEMPO IN SECONDI). In al­ter­na­ti­va, hai la pos­si­bi­li­tà di riportare il tuo sistema in funzione a un orario definito (-t TEMPOUNIX).

In­for­ma­zio­ni di sistema

Nella categoria “In­for­ma­zio­ni di sistema” abbiamo raccolto i programmi della riga di comando con i quali vi­sua­liz­zi in­for­ma­zio­ni e avvisi di stato, in modo da porter farti un’idea completa sullo stato del tuo sistema.

1. date

Il comando date ti fornisce l’ora del sistema com­pren­si­va di data.

date [OPZIONI] [FORMATOOUTPUT]
bash

Se desideri lavorare con una data precisa (vedi rtcwake), puoi definirla con l’opzione -d ‘DATA’. Inoltre, vengono sup­por­ta­te diverse opzioni con cui si possono tra­smet­te­re in­for­ma­zio­ni sulla data e l’orario nel formato de­si­de­ra­to.

2. df

Utilizza il comando df (disk free) ri­cor­ren­do allo schema seguente:

df [OPZIONI][FILE]
bash

Se il comando viene uti­liz­za­to in com­bi­na­zio­ne con un file preciso, il sistema indica solo lo spazio libero della par­ti­zio­ne in cui si trova il file. Al­tri­men­ti, viene vi­sua­liz­za­to lo spazio libero sul disco rigido delle par­ti­zio­ni montate. L’opzione -l (locale) limita df ai file system locali. Sono sup­por­ta­te anche opzioni con cui è possibile per­so­na­liz­za­re il formato di output.

3. dmesg

Il programma dmesg (ab­bre­via­zio­ne di display message) fornisce avvisi del ring buffer del kernel dal terminale e ti consente così di lo­ca­liz­za­re gli errori hardware e dei driver. Utilizza dmesg ri­cor­ren­do allo schema seguente:

dmesg [OPZIONI]
bash

L’output dmesg comprende tutti gli avvisi del processo di boot ed è quindi lungo. Il programma della riga di comando viene perciò uti­liz­za­to spesso in com­bi­na­zio­ne con un pager come more, less o tail.

4. free

Il comando free vi­sua­liz­za l’uso della RAM. La sintassi generale è la seguente:

free [OPZIONI]
bash

Come risultato ottieni due dati: Mem (Memory) e Swap. Anche free supporta l’opzione -h con cui si può vi­sua­liz­za­re l’uso della memoria in un formato leggibile per gli esseri umani.

5. hostname

Utilizza il comando hostname ri­cor­ren­do allo schema seguente per farti mostrare il nome del DNS del sistema.

hostname [OPZIONI]
bash

6. uname

Il comando uname sta per unix name e viene uti­liz­za­to per vi­sua­liz­za­re le in­for­ma­zio­ni di sistema relative al kernel. Il comando supporta diverse opzioni con le quali si può filtrare l’output secondo le in­for­ma­zio­ni de­si­de­ra­te, che si trovano nella voce man cor­ri­spon­den­te.

uname [OPZIONI]
bash

7. uptime

Se desideri sapere da quanto tempo il tuo sistema funziona dall’ultimo boot, utilizza il comando uptime ri­cor­ren­do allo schema seguente:

uptime
bash

8. vmstat

Grazie allo strumento di mo­ni­to­rag­gio vmstat si possono vi­sua­liz­za­re le in­for­ma­zio­ni sulla memoria virtuale, sui processi di scrittura e di lettura sul disco fisso, così come sull’attività della CPU. Esegui vmstat ri­cor­ren­do allo schema seguente per vi­sua­liz­za­re i valori medi dall’ultimo avvio del sistema.

vmstat [OPZIONI]
bash

In al­ter­na­ti­va, vmstat offre una modalità di mo­ni­to­rag­gio pro­gres­si­va in cui i valori di sistema vengono vi­sua­liz­za­ti nell’in­ter­val­lo di tempo de­si­de­ra­to in secondi.

vmstat [OPZIONI] [INTERVALLO [RIPETIZIONI]]
bash

In­for­ma­zio­ni dell’hardware

I comandi di Linux di questa categoria ti for­ni­sco­no in­for­ma­zio­ni più det­ta­glia­te sui com­po­nen­ti hardware che sono alla base del tuo sistema.

1. lspci

Utilizza lspci (ab­bre­via­zio­ne di list pci) ri­cor­ren­do allo schema seguente per farti mostrare in­for­ma­zio­ni più det­ta­glia­te sui di­spo­si­ti­vi PCI.

lspci [OPZIONI]
bash

Le possibili opzioni sono contenute nelle pagine del manuale del sistema operativo.

2. lsusb

Utilizza lsusb (ab­bre­via­zio­ne di list usb) per farti mostrare le in­for­ma­zio­ni det­ta­glia­te sui di­spo­si­ti­vi USB nel terminale.

lsusb [OPZIONI]
bash

Le possibili opzioni sono contenute nelle pagine del manuale del sistema operativo.

Gestione dei processi

Su Linux con il nome di istanza si indica un programma in corso e che risulta quindi essere un processo. I seguenti comandi del terminale rientrano tra quelli standard della gestione dei processi e ti con­sen­to­no di con­trol­la­re tutti i processi sul tuo sistema co­mo­da­men­te dal terminale e di con­trol­lar­li, se ne­ces­sa­rio.

1. chrt

chrt è un programma della riga di comando per il controllo dei processi avanzati che consente di in­di­vi­dua­re e mo­di­fi­ca­re gli attributi in tempo reale (regola di sche­du­ling e priorità) dei processi in corso o di eseguire i comandi e i relativi argomenti con specifici attributi in tempo reale. La sintassi generale del comando è la seguente:

chrt [OPZIONI] [PRIORITÀ] PID/COMANDO [ARGOMENTI]
bash

Utilizza chrt senza indicare una priorità e con l’opzione -p, per in­di­vi­dua­re gli attributi in tempo reale dei processi se­le­zio­na­ti.

Inoltre, chrt dà la pos­si­bi­li­tà di mo­di­fi­ca­re o definire la regola di sche­du­ling di un processo in corso o avviato nuo­va­men­te grazie alle opzioni. Per ulteriori in­for­ma­zio­ni al riguardo, consulta la voce man cor­ri­spon­den­te.

2. ionice

Il comando ionice viene uti­liz­za­to per in­fluen­za­re la priorità di un processo che utilizza l’in­ter­fac­cia I/O del kernel. La sintassi generale del comando è la seguente:

ionice [OPZIONI] COMANDO
bash

Per poter eseguire ionice, servono i permessi di root. Il comando distingue tre classi di sche­du­ling che vengono trasmesse tramite l’opzione -cNUMERO. I valori numerici possibili sono 1, 2 e 3.

  • 1 = Real Time: l’azione I/O viene eseguita subito.
  • 2 = Best Effort: l’azione I/O viene eseguita il più ve­lo­ce­men­te possibile.
  • 3 = Idle: l’azione I/O viene eseguita solo quando nessun altro processo richiede un tempo I/O.

3. nohup

Non appena la sessione del terminale viene chiusa (ad esempio tramite exit), so­li­ta­men­te vengono anche terminati au­to­ma­ti­ca­men­te tutti i processi correlati. Il comando nohup su Linux (ab­bre­via­zio­ne di no hangup) separa un processo dalla sessione corrente e gli consente di farlo con­ti­nua­re anche dopo che ci si è di­scon­nes­si dal sistema.

nohup COMANDO
bash

4. pidof

Il programma della riga di comando pidof re­sti­tui­sce i numeri iden­ti­fi­ca­ti­vi del processo (PID) di tutti i processi di un programma. Individua i PID tramite pidof ri­cor­ren­do allo schema seguente:

pidof [OPZIONI] PROGRAMMA
bash

Se desideri farti mostrare solo il primo ID del processo, utilizza pidof insieme all’opzione -s (ab­bre­via­zio­ne di single shot).

5. pidkill

Come kill anche pkill invia un segnale a un processo se­le­zio­na­to. L’in­di­riz­za­men­to così non avviene tramite il PID. Al suo posto viene trasmessa una parola chiave che viene con­fron­ta­ta con il nome di un processo in corso e che può essere formulata come un’espres­sio­ne regolare. Anche pkill trasmette il segnale standard TERM, a patto che non venga definito nessun altro segnale. La sintassi generale del comando è la seguente:

pkill [OPZIONI] [-SEGNALE] [PAROLACHIAVE]
bash

Grazie ad altre opzioni il comando si può limitare ai processi di un utente specifico (-U UID), ai processi figlio di un processo genitore specifico (-P PID), ai processi più nuovi (-n) o a quelli più vecchi (-o).

6. pstree

Utilizza pstree per farti mostrare tutti i processi in corso in una struttura ad albero. La sintassi generale del comando è la seguente:

pstree [OPZIONI]
bash

Il formato e la portata dell’output possono essere per­so­na­liz­za­ti con varie opzioni.

7. renice

Il comando renice consente di regolare la priorità di un processo in corso. La sintassi generale è la seguente:

renice PRIORITÀ [OPZIONI]
bash

L’in­di­riz­za­men­to avviene grazie a opzioni tramite l’ID del processo (-p PID), gli ID del gruppo (-g GID) o un nome utente (-u UTENTE).

8. sleep

Il comando sleep su Linux ti consente di in­ter­rom­pe­re la sessione corrente nel terminale per il periodo di tempo indicato. La sintassi generale del comando è la seguente:

sleep NUMERO[SUFFISSO]
bash

Se utilizzi sleep senza il suffisso, il numero indicato viene in­ter­pre­ta­to come un arco di tempo in secondi (s). In al­ter­na­ti­va, hai la pos­si­bi­li­tà di in­ter­rom­pe­re la sessione nel terminale per dei minuti (m), delle ore (h) o dei giorni (d).

9. taskset

Il comando taskset serve per il controllo avanzato dei processi, che viene usato sui sistemi a più pro­ces­so­ri per assegnare processi o comandi a pro­ces­so­ri specifici. Il comando richiede permessi di root e utilizza uno dei seguenti schemi:

taskset [OPZIONI] MASCHERA COMANDO
taskset [OPZIONI] -p PID
bash

L’as­se­gna­zio­ne di un processo/comando al pro­ces­so­re avviene grazie a una maschera bit esa­de­ci­ma­le. Visto che una simile as­se­gna­zio­ne tramite una maschera di bit è poco intuitiva, taskset viene uti­liz­za­to so­li­ta­men­te con l’opzione -c (--cpu-list) che consente un’as­se­gna­zio­ne numerica dei pro­ces­so­ri (ad esempio 0, 5 7, 9-11).

Pager

Desideri tenere tutto sotto controllo anche nel caso di file con più pagine? Con un programma della riga di comando dalla categoria “Pager”, selezioni mi­ra­ta­men­te quali paragrafi farti mostrare nel terminale e, se ne­ces­sa­rio, scorri nelle pagine del file in modo in­te­rat­ti­vo.

1. head

Il comando head di Linux viene uti­liz­za­to per vi­sua­liz­za­re la prima parte di un file. La sintassi generale del comando è la seguente:

head [OPZIONI] File
bash

Utilizza l’opzione -n NUMERO_RIGHE per definire quante righe devono essere vi­sua­liz­za­te a partire dalle prime.

2. less

Il comando della riga di comando less consente di mostrare il contenuto di un file di testo nel terminale. La sintassi generale è la seguente:

less [OPZIONI] FILE
bash

L’output viene vi­sua­liz­za­to au­to­ma­ti­ca­men­te in modo in­te­rat­ti­vo, così da con­sen­tir­ti di sfogliare il documento se­le­zio­na­to o di procedere con una ricerca tramite parole chiave. Il tasto [Q] termina la modalità di lettura in­te­rat­ti­va. Altri tasti di controllo e possibili opzioni sono contenute nelle pagine del manuale del sistema operativo.

3. tail

Mentre, so­li­ta­men­te, head indica le prime 10 righe di un file se­le­zio­na­to, il comando tail di Linux ne mostra le ultime 10 righe. Entrambi i pager vengono uti­liz­za­ti ri­cor­ren­do allo stesso schema (vedi head).

Editor

Su Linux non hai bisogno di nessun programma grafico di ela­bo­ra­zio­ne dei testi per adattare i file di con­fi­gu­ra­zio­ne, mo­di­fi­ca­re parti di codici o scrivere dei brevi appunti. I semplici editor di testo si possono ri­chia­ma­re fa­cil­men­te e senza ritardi dal terminale. Di seguito ti pre­sen­tia­mo tre programmi che dovresti conoscere.

1. emacs

Emacs è un editor di testo mul­ti­piat­ta­for­ma che è am­plia­bi­le a proprio pia­ci­men­to per mezzo di un’in­ter­fac­cia di pro­gram­ma­zio­ne. Di solito si avvia con l’in­ter­fac­cia grafica, può però essere aperto anche con l’opzione --no-window-system nel terminale.

emacs --no-window-system
bash

Emacs dispone di un tutorial integrato che si apre tramite la com­bi­na­zio­ne di tasti [CTRL] + [H], [T].

2. nano

Nano è un editor di testo basato sul terminale. La varietà di funzioni offerta è inferiore rispetto ad altri editor simili (come Vim), si con­trad­di­stin­gue però per un’usabilità par­ti­co­lar­men­te user-friendly. La sintassi generale del programma è la seguente:

nano [OPZIONI] FILE
bash

Il programma apre il file indicato in una finestra di editing nel terminale. Se apri Nano senza dare alcun nome al file, può venire creato un nuovo file di testo che viene salvato nella cartella se­le­zio­na­ta at­tual­men­te.

3. vim

Vim (ab­bre­via­zio­ne di Vi Improved) è uno sviluppo dell’editor di testo Vi. Si distingue per le in­nu­me­re­vo­li esten­sio­ni, come l’evi­den­zia­zio­ne della sintassi, un sistema di aiuto completo, scripting nativo, l’au­to­com­ple­ta­men­to del codice e una selezione del testo visiva.

Il programma open source ti offre diverse modalità di fun­zio­na­men­to per l’ela­bo­ra­zio­ne di file esclu­si­va­men­te di testo e può venire uti­liz­za­to a proprio pia­ci­men­to dal terminale o come ap­pli­ca­zio­ne autonoma con un’in­ter­fac­cia grafica (GVim). Un campo di ap­pli­ca­zio­ne prin­ci­pa­le del programma è l’ela­bo­ra­zio­ne del codice del programma.

Se avvii Vim dalla console, il suo utilizzo avviene tramite tastiera. So­li­ta­men­te il programma viene aperto con un file di testo ri­cor­ren­do allo schema seguente.

vim [OPZIONI] FILE
bash

Il programma vimtutor offre un’in­tro­du­zio­ne completa a Vim che avvii sempre dalla riga di comando. Inoltre, trovi maggiori in­for­ma­zio­ni sull’in­stal­la­zio­ne e le diverse modalità di fun­zio­na­men­to del programma nel nostro articolo di base sull’editor per Linux Vim.

Gestione della rete

Su Linux anche la gestione della rete avviene co­mo­da­men­te dal terminale. In­di­pen­den­te­men­te dal fatto che verifichi la con­nes­sio­ne, richiedi le in­for­ma­zio­ni DNS, configuri le in­ter­fac­ce o desideri tra­smet­te­re i file a un altro computer nella rete, con i seguenti programmi basta un singolo comando per attuare con­cre­ta­men­te il tuo proposito.

1. arp

Il programma della riga di comando arp ti consente di aprire e ma­ni­po­la­re la cache ARP del tuo sistema operativo. Utilizza arp senza mo­di­fi­ca­to­re per farti mostrare il contenuto della tabella ARP nel terminale.

arp [OPZIONE]
bash

Al­ter­na­ti­va­men­te hai la pos­si­bi­li­tà di limitare l’output con le opzioni o creare o eliminare voci:

  • -a NOMEHOST = limita l’output alle voci per specifici nomi host (in al­ter­na­ti­va all’indirizzo IP)
  • -s NOMEHOST INDIRIZZO_MAC = crea una voce ARP con il nome host e l’indirizzo MAC spe­ci­fi­ca­ti
  • -d NOMEHOST = cancella la voce ARP

2. iw

Il programma della riga di comando iw serve per la con­fi­gu­ra­zio­ne di in­ter­fac­ce Wi-Fi e si è affermata come un’al­ter­na­ti­va più attuale a iwconfig. Alla base del comando si trova una sintassi simile a quella di ip:

iw [OPZIONI] OGGETTO [COMANDO]
bash

Dei possibili oggetti sono:

  • dev NOME_IN­TER­FAC­CIA = in­ter­fac­cia di rete
  • phy NOME_DEL_DI­SPO­SI­TI­VO = di­spo­si­ti­vo Wi-Fi (tramite nome)
  • phy#INDICE_DEL_DI­SPO­SI­TI­VO = di­spo­si­ti­vo Wi-Fi (tramite indice)
  • reg = Re­gu­la­to­ry Agent (agente di re­go­la­zio­ne) per la con­fi­gu­ra­zio­ne delle im­po­sta­zio­ni dei paesi e delle regioni

Trovi un riepilogo dei comandi e delle opzioni possibili nella voce man cor­ri­spon­den­te.

3. nslookup

Come dig anche nslookup serve per la ri­so­lu­zio­ne dei nomi. Il programma della riga di comando è di­spo­ni­bi­le in due modalità: in­te­rat­ti­va e non in­te­rat­ti­va. Se desideri uti­liz­za­re nslookup in modalità non in­te­rat­ti­va, richiama il programma in com­bi­na­zio­ne con un nome host o un indirizzo IP.

nslookup [OPZIONI] [HOST/IP]
bash

Per avviare la modalità in­te­rat­ti­va, inserisci il comando nslookup nel terminale senza alcuna aggiunta e poi digita i nomi host o indirizzi IP per vi­sua­liz­za­re gli indirizzi IP o i nomi host associati.

Visto che il programma è uf­fi­cial­men­te datato, viene con­si­glia­to agli utenti di ricorrere piuttosto a dig.

4. rsync

Il programma della riga di comando rsync consente di sin­cro­niz­za­re i file in locale o all’interno di una rete. Perciò vengono prima di tutto con­fron­ta­te le di­men­sio­ni e il tempo di modifica dei file coinvolti. La sintassi del comando è la seguente:

rsync [OPZIONI] ORIGINE DESTINAZIONE
bash

Il comando rsync viene so­li­ta­men­te eseguito con l’opzione –a che si occupa del fatto che tutte le sot­to­car­tel­le e i link simbolici vengono copiati, man­te­nen­do inal­te­ra­ti tutti i permessi utente.

5. scp

Con il comando scp di Linux (ab­bre­via­zio­ne di secure copy) hai di­ret­ta­men­te a di­spo­si­zio­ne dal terminale un altro programma per la tra­smis­sio­ne sicura dei dati nella rete: infatti scp copia i dati da un computer a un altro e utilizza così anche il pro­to­col­lo di rete SSH. Il client funziona un po’ come l’opzione dei file cp, ma viene uti­liz­za­to su ogni piat­ta­for­ma ri­cor­ren­do alla seguente sintassi:

scp [OPZIONI] FILE [[user@]remote_host:]PERCORSO
bash

Inserendo il percorso del computer rimosso vengono anteposti il nome utente e il ri­spet­ti­vo nome host. Si possono in­di­riz­za­re espli­ci­ta­men­te i file locali tramite percorsi relativi o assoluti.

Esempio:

scp /home/max/images/image.jpg max@example.com:/home/max/archive
bash

Altre opzioni ti offrono la pos­si­bi­li­tà di apportare modifiche alla modalità di tra­smis­sio­ne e alle im­po­sta­zio­ni di crit­to­gra­fia.

6. tty

Il comando tty re­sti­tui­sce il nome del file del terminale che è definito come input standard. La sintassi generale del comando è la seguente:

tty [OPZIONI]
bash

Ar­chi­via­re e com­pri­me­re

Linux offre diverse tec­no­lo­gie con cui si possono com­pri­me­re e rac­co­glie­re i file in archivi. Bisogna prestare però at­ten­zio­ne al fatto che non tutti gli archivi sono compressi. Così tar, un programma per l’ar­chi­via­zio­ne dei file, viene so­li­ta­men­te combinato con i programmi di com­pres­sio­ne, come gzip, bzip2 o xz.

1. gzip

Con gzip si indica un programma con il quale si possono com­pri­me­re e de­com­pri­me­re i file co­mo­da­men­te tramite la riga di comando. La sintassi generale del comando è la seguente:

gzip [OPZIONI] FILE
bash

Fai at­ten­zio­ne che gzip, di norma, elimina il file ori­gi­na­rio durante il pro­ce­di­men­to di com­pres­sio­ne. Si può impedire con l’opzione -k. Il programma può essere applicato su più file allo stesso tempo. Così viene con­ver­ti­to ogni file in uscita in un file gz autonomo. Se desideri scrivere più file in un archivio compresso comune, utilizza gzip insieme al programma di ar­chi­via­zio­ne tar.

Se desideri de­com­pri­me­re un file gz, utilizza il comando gzip con l’opzione -d.

2. bzip2

Un’al­ter­na­ti­va amata a gzip è rap­pre­sen­ta­ta dal programma della riga di comando bzip2 che utilizza la stessa sintassi di gzip, ma si basa su un processo di com­pres­sio­ne a tre livelli che consente un grado di com­pres­sio­ne net­ta­men­te più elevato. I file che sono stati compressi con bzip2, pre­sen­ta­no l’esten­sio­ne .bz2. Utilizza bzip secondo lo schema seguente per com­pri­me­re i file.

bzip2 [OPZIONI] FILE
bash

Anche bzip2 si può applicare agli archivi tar. La de­com­pres­sio­ne avviene ana­lo­ga­men­te a gzip grazie all’opzione -d.

3. xz

Il programma della riga di comando xz converte i file nell’omonimo formato di com­pres­sio­ne dati xz. Il programma si basa sullo stesso schema di gzip e bzip2.

xz [OPZIONI] FILE
bash

I file che sono stati compressi con xz pre­sen­ta­no l’esten­sio­ne .xz. La de­com­pres­sio­ne avviene come su gzip e bzip con l’opzione -d. In al­ter­na­ti­va, può essere uti­liz­za­to il comando unxz.

Ana­lo­ga­men­te ai file gz e bz2, anche i file di archivio xz non sono dei file di archivio. Se desideri scrivere più file nello stesso file compresso xz, devi ricorrere anche in questo programma di com­pres­sio­ne allo strumento di ar­chi­via­zio­ne tar.

4. cpio

Con cpio (ab­bre­via­zio­ne di copy in, copy out) si indica un programma di ar­chi­via­zio­ne con il quale si possono scrivere dati in un file di archivio (.cpio) ed estrarlo da questo.

Gestione della par­ti­zio­ne

Se su Linux desideri accedere a un file system su un’altra par­ti­zio­ne, questo deve essere prima di tutto collegato alla struttura delle cartelle del tuo sistema operativo. Si parla di “mount” (o “montatura”) di una par­ti­zio­ne. Se ne­ces­sa­rio, il processo può avvenire tramite l’in­ter­fac­cia utente grafica. In al­ter­na­ti­va, vi sono i programmi della riga di comando come lsblk, blkid e mount che ri­chie­do­no in­for­ma­zio­ni sui di­spo­si­ti­vi a blocchi e li montano o smontano, se ne­ces­sa­rio.

1. lsblk

Utilizza il comando lsblk (ab­bre­via­zio­ne di list block devices) per farti mostrare tutti i di­spo­si­ti­vi a blocchi e le par­ti­zio­ni come struttura ad albero. Non devono però essere collegati per forza. La seguente sintassi è alla base del comando:

lsblk [OPZIONI]
bash

Se ne­ces­sa­rio, si può mo­di­fi­ca­re il risultato grazie all’opzione -o (–output) e una lista degli attributi de­si­de­ra­ti per­so­na­liz­za­ti per ri­chie­de­re in­for­ma­zio­ni ag­giun­ti­ve come il numero di iden­ti­fi­ca­zio­ne (UUID), il file system (FSTYPE) o lo stato (STATE).

Nelle im­po­sta­zio­ni standard i di­spo­si­ti­vi di ar­chi­via­zio­ne vuoti vengono saltati. Se desideri inserire anche questi nel riepilogo, utilizza il comando lsblk insieme all’opzione -a (–all). Per ri­chie­de­re solo le in­for­ma­zio­ni su un di­spo­si­ti­vo preciso, utilizza lsblk ri­cor­ren­do allo schema seguente:

lsblk [OPZIONI] DISPOSITIVO
bash

2. blkid

In modo simile a lsblk, anche blkid fornisce in­for­ma­zio­ni sui di­spo­si­ti­vi a blocchi collegati. Utilizza blkid ri­cor­ren­do allo schema seguente per ri­chie­de­re il numero di iden­ti­fi­ca­zio­ne (UUID) e il tipo di file system (TYPE) di tutti i di­spo­si­ti­vi a blocchi collegati.

blkid [OPZIONI]
bash

Ottieni un risultato tabellare grazie all’opzione -o combinata con il valore list.

blkid [OPZIONI] DISPOSITIVO
bash

Varie

Di seguito trovi una lista di altri comandi standard su Linux che non sono clas­si­fi­ca­bi­li in nessun’altra delle categorie pre­sen­ta­te.

1. alias

L’in­te­ra­zio­ne con la shell avviene so­li­ta­men­te tramite comandi che possono essere uti­liz­za­ti per ri­chia­ma­re programmi a riga di comando con lo stesso nome. Si utilizza una chiamata di programma per ogni azione che si desidera eseguire tramite il terminale. Il comando alias su Linux consente di definire nomi brevi per le chiamate ai programmi. Utilizza alias secondo il seguente schema:

alias NOMIGNOLO= 'COMANDO'
bash

So­sti­tui­sci il se­gna­po­sto COMANDO con un comando qualsiasi com­pren­si­vo di opzioni. Questo viene collegato con la sequenza di numero impostata per il se­gna­po­sto NOMIGNOLO.

2. at

Apri il programma della riga di comando at basandoti sullo schema seguente per eseguire un comando pro­gram­ma­to.

at INDICAZIONETEMPORALE
bash

Infine, dai il comando e chiudi la modalità in­te­rat­ti­va con [CTRL] + [D].

3. cal

Utilizza cal basandoti sullo schema seguente per farti mostrare il ca­len­da­rio nel terminale.

cal [OPZIONI] [[MESE] anno]
bash

4. pr

Utilizza il programma della riga di comando pr per preparare i file di testo per la stampa. La sintassi generale del comando è la seguente:

pr [OPZIONI] File
bash

Nell’im­po­sta­zio­ne standard pr genera una pagina di header che comprende il nome del file, la data corrente e il numero delle pagine.

5. script

Il programma della riga di comando script ti permette di re­gi­stra­re una sessione del terminale nel file typescript. Se su typescript si rileva già una re­gi­stra­zio­ne di una sessione pre­ce­den­te, questa verrà so­vra­scrit­ta. La re­gi­stra­zio­ne parte au­to­ma­ti­ca­men­te aprendo il programma:

script
bash

Utilizza la com­bi­na­zio­ne di tasti [CTRL] + [D] per terminare la re­gi­stra­zio­ne. Se desideri salvare la re­gi­stra­zio­ne in un altro file, invece che su typescript, apri script insieme al nome del file o al percorso.

6. seq

Utilizza il comando seq per farti re­sti­tui­re una serie di numeri sullo standard output. Definisci così un valore iniziale, uno finale e un in­cre­men­to a scelta.

seq [OPZIONI] VALOREINIZIALE INCREMENTO VALOREFINALE
bash

7. tasksel

Il programma della riga di comando tasksel serve a fa­ci­li­ta­re l’in­stal­la­zio­ne delle ap­pli­ca­zio­ni standard (server di posta elet­tro­ni­ca, server DNS, server OpenSSH, server LAMP, ecc.). Utilizza lo strumento per in­stal­la­re au­to­ma­ti­ca­men­te i pacchetti e i programmi necessari per svolgere un compito nella giusta sequenza. Apri tasksel con l’opzione --list-tasks per farti mostrare una lista di tutte le ap­pli­ca­zio­ni standard di­spo­ni­bi­li.

tasksel --list-tasks
bash

Se desideri ri­chia­ma­re altre in­for­ma­zio­ni su un’ap­pli­ca­zio­ne standard presente in questa lista, utilizza tasksel con l’opzione --task-desc e il relativo compito. Se desideri farti elencare tutti i pacchetti che ap­par­ten­go­no al compito “mail-server“, utilizza tasksel insieme all’opzione --task-packages.

Avvia un’in­stal­la­zio­ne di tutti i pacchetti di un’ap­pli­ca­zio­ne standard grazie al sot­to­co­man­do install. Per fare ciò è ne­ces­sa­rio disporre dei permessi di root.

8. tee

Il comando tee di Linux è un programma della riga di comando con cui si può rad­dop­pia­re l’output di un programma. Così viene inoltrato un output allo standard output e un altro viene scritto nel file trasmesso dal comando tee.

tee [OPZIONI] FILE
bash

So­li­ta­men­te tee viene uti­liz­za­to in com­bi­na­zio­ne con l’operatore pipe (|).

ls | tee esempio.txt
bash

9. time

Utilizza il comando time basandoti sullo schema seguente per in­di­vi­dua­re il tempo di ese­cu­zio­ne dei programmi, che avvii tramite il terminale.

time [OPZIONI] Comando [ARGOMENTI]
bash

10. tr

Utilizza tr per eliminare una quantità qualsiasi di caratteri o so­sti­tuir­la con un’altra. Perciò tr legge il flusso di dati dello standard input e lo scrive con la modifica de­si­de­ra­ta nello standard output. Se deve essere so­sti­tui­ta una quantità di caratteri con un’altra, tr viene uti­liz­za­to con due argomenti.

tr OPZIONE QUANTITÀDICARATTERI1 QUANTITÀDICARATTERI2
bash

Il secondo argomento (QUAN­TI­TÀ­DI­CA­RAT­TE­RI2) so­sti­tui­sce il primo (QUAN­TI­TÀ­DI­CA­RAT­TE­RI1). Se desideri eliminare una sequenza di caratteri, utilizza tr con l’opzione –d e trasmetti la sequenza da eliminare come argomento.

tr -d QUANTITÀDICARATTERI
bash

Il programma della riga di comando si utilizza so­li­ta­men­te insieme agli operatori di rein­di­riz­za­men­to (< e >) per apportare modifiche ai file.

tr 'a-z' 'A-Z' < esempio1.txt > esempio2.txt
bash

tr legge il contenuto del file esempio1.txt, so­sti­tui­sce le lettere minuscole da “a” a “z” con le cor­ri­spet­ti­ve maiuscole e scrive l’output nel file esempio2.txt.

11. wall

Il programma della riga di comando wall ti consente di re­ca­pi­ta­re un messaggio a tutti quegli utenti che hanno ef­fet­tua­to l’accesso al sistema. Per inviare il messaggio, si avvia il programma con il comando seguente:

wall
bash

Conferma il comando con [Invio] e inserisci il tuo messaggio. Anche questo viene con­fer­ma­to con [Invio] e inviato tramite la com­bi­na­zio­ne di tasti [CTRL]+[D]. Tutti gli utenti re­gi­stra­ti sul sistema ricevono il tuo messaggio nel terminale come messaggio broadcast. At­ten­zio­ne: per poter ricevere messaggi devi assegnare agli altri utenti il permesso di scrittura nel tuo terminale. Utilizza perciò il comando mesg.

Se desideri inviare i contenuti dei file a tutti gli utenti re­gi­stra­ti, utilizza wall insieme all’operatore di rein­di­riz­za­men­to e al relativo nome del file:

wall < NOMEFILE
bash

12. watch

Il programma della riga di comando watch ti consente di eseguire un comando a in­ter­val­li di tempo regolari. La seguente sintassi è alla base del programma:

watch [OPZIONI] COMANDO
bash

Definisci l’in­ter­val­lo temporale, in cui il comando trasmesso viene ri­chia­ma­to pe­rio­di­ca­men­te con watch, tramite l’opzione -n SECONDI. Si può terminare watch tramite la com­bi­na­zio­ne di tasti [CTRL] + [C].

13. wc

Il comando wc su Linux (ab­bre­via­zio­ne di word count) ti re­sti­tui­sce, se ne­ces­sa­rio, il numero delle righe, delle parole, delle lettere, dei caratteri e/o dei byte presenti in un file di testo. La sintassi generale del comando è la seguente:

wc [OPZIONI] FILE
bash

Se wc viene aperto senza opzioni, l’output si basa sullo schema RIGHE PAROLE CARATTERI FILE. Per un output filtrato il programma della riga di comando supporta le opzioni: -l (righe), -c (byte), -m (caratteri), -L (lunghezza della riga più lunga) e -w (parole).

14. xargs

Il comando xargs su Linux ti consente di tra­smet­te­re a un comando l’output di un comando pre­ce­den­te come argomento. So­li­ta­men­te viene uti­liz­za­to l’operatore di rein­di­riz­za­men­to pipe (|). Utilizza xargs basandoti sulla seguente sintassi:

COMANDO1 | xargs [OPZIONI] COMANDO2
bash

xargs viene ad esempio uti­liz­za­to in com­bi­na­zio­ne con il comando find. Nell’esempio seguente find individua nella cartella attuale tutti i file che si abbinano allo schema di ricerca \*.tmp e re­sti­tui­sce il loro nome nello standard output. Là i nomi dei file vengono accettati da xargs e trasmessi come argomenti al comando rm.

find . -name '*.tmp' | xargs rm
bash

Il riepilogo proposto qui non ha alcuna pretesa di com­ple­tez­za, ma comprende solo i comandi Linux prin­ci­pa­li, mostrati con una selezione di alcuni esempi di ap­pli­ca­zio­ne per sem­pli­fi­ca­re il lavoro gior­na­lie­ro con i sistemi operativi simili a Unix. Nelle pagine del manuale del tuo sistema operativo è presente una de­scri­zio­ne completa dei programmi della riga di comando qui pre­sen­ta­ti e di tutti gli altri comandi. Una versione online di queste pagine di aiuto e della do­cu­men­ta­zio­ne viene messa a di­spo­si­zio­ne nell’ambito del progetto delle man pages di Linux, create da Michael Kerrisk.

Vai al menu prin­ci­pa­le