I nuovi convertiti Linux che provengono dal mondo Windows potrebbero trovare intimidatorio lavorare con la riga di comando. Tuttavia, non è così difficile da usare. Tutto ciò che serve per iniziare con la riga di comando è imparare alcuni comandi di base.

Mentre la maggior parte delle distribuzioni Linux sono facili da usare e presentano un'interfaccia grafica facile da usare, sapere come usare la riga di comando può essere molto utile. La riga di comando ti dà più potere sul tuo sistema e accesso a funzionalità che non sono disponibili attraverso un'interfaccia grafica.

In questo articolo, esamineremo alcuni dei comandi Linux più comuni utilizzati quotidianamente dagli amministratori di sistema Linux.

Ottenere informazioni sul comando

La memorizzazione delle opzioni di comando di solito non è necessaria e può essere una perdita di tempo. Di solito, se non si utilizza il comando frequentemente, si possono facilmente dimenticare le sue opzioni.

La maggior parte dei comandi ha un'opzione --help che stampa un breve messaggio sull'uso del comando ed esce, questa è la sintassi:

command_name --help

Il comando man

Quasi tutti i comandi Linux sono distribuiti insieme alle pagine man. Una pagina man o manuale è una forma di documentazione che spiega cosa fa il comando, esempi di come si esegue il comando e quali argomenti accetta.

Il comando man viene utilizzato per visualizzare la pagina del manuale di un determinato comando.

man command_name

Ad esempio, per aprire la pagina man del comando cd, digitare:

man cd

Per navigare le pagine man, utilizzare i tasti Arrow, Page Upe Page Down. Puoi anche premere il tasto Enter per spostarsi di una riga alla volta, la barra Space per passare alla schermata successiva e il tasto b per tornare indietro di una schermata. Per uscire dalla pagina man, premere il tasto q.

In Linux, ogni file e directory si trova nella directory principale, che è la prima o la più in alto nella struttura ad albero delle directory. La directory principale è indicata da una singola barra iniziale slash /.

Quando si naviga nel file system quando si opera su file, è possibile utilizzare il percorso assoluto o relativo alla risorsa.

Il percorso assoluto o completo inizia dalla root del sistema / e il percorso relativo inizia dalla directory corrente.

Directory di lavoro corrente (comando pwd)

La directory di lavoro corrente è la directory in cui l'utente sta attualmente lavorando. Ogni volta che interagisci con il prompt dei comandi, lavori all'interno di una directory.

Utilizzare il comando pwd per scoprire in quale directory ci si trova attualmente:

pwd

Il comando visualizza il percorso della directory di lavoro corrente:

/home/noviello

Modifica directory (comando cd)

Il comando cd ("cambia directory") viene utilizzato per modificare la directory di lavoro corrente in Linux e altri sistemi operativi simili a Unix.

Se usato senza alcun argomento, cd ti porterà alla tua home directory:

cd

Per passare a una directory, è possibile utilizzare il nome del percorso assoluto o relativo.

Supponendo che la directory Downloads esista nella directory da cui si esegue il comando, è possibile spostarsi su di essa utilizzando il percorso relativo alla directory:

cd Downloads

Puoi anche navigare in una directory usando il suo percorso assoluto:

cd /home/noviello/Downloads

Due punti (..), uno dopo l'altro, rappresentano la directory principale o, in altre parole, la directory immediatamente sopra quella corrente.

Supponiamo che tu sia attualmente nella directory /usr/local/share, per passare alla directory /usr/local (a un livello superiore dalla directory corrente), dovresti digitare:

cd ../

Per salire di due livelli utilizzare:

cd ../../

Per tornare alla directory di lavoro precedente, utilizzare il trattino (-) come argomento:

cd -

Se la directory che vuoi modificare ha spazi nel suo nome, dovresti circondare il percorso tra virgolette o usare il carattere backslash (\):

cd Dir\ name\ with\ space

Elencare i contenuti della directory (comando ls)

Il comando ls viene utilizzato per elencare informazioni su file e directory all'interno di una directory.

Se utilizzato senza opzioni e argomenti, ls visualizza un elenco in ordine alfabetico dei nomi di tutti i file nella directory di lavoro corrente:

ls

Per elencare i file in una directory specifica, passare il percorso alla directory come argomento:

ls /usr

L'output predefinito del comando ls mostra solo i nomi dei file e delle directory. Utilizzare -l per stampare file in un formato di elenco lungo:

ls -l /etc/hosts

L'output include il tipo di file, le autorizzazioni, il numero di collegamenti reali, il proprietario, il gruppo, la dimensione, la data e il nome file:

-rw-r--r-- 1 root root 337 Oct  4 11:31 /etc/hosts

Il comando ls non elenca i file nascosti per impostazione predefinita. Un file nascosto è qualsiasi file che inizia con un punto (.).

Per visualizzare tutti i file inclusi i file nascosti, utilizzare l'opzione -a:

ls -a ~/

Visualizzare il contenuto del file (comando cat)

Il comando cat viene utilizzato per stampare il contenuto di uno o più file e per unire (concatenare) i file aggiungendo il contenuto di un file alla fine di un altro file.

Per visualizzare il contenuto di un file sullo schermo, passare il nome del file cat come argomento:

cat /etc/hosts

Creazione di file (comando touch)

Il comando touch viene utilizzato per aggiornare i timestamp su file e directory esistenti, nonché per creare nuovi file vuoti.

Per creare un file, specificare il nome del file come argomento:

touch file.txt

Se il file esiste già, touch cambierà l'ultimo accesso del file e i tempi di modifica all'ora corrente.

Creazione di directory (comando mkdir)

In Linux, è possibile creare nuove directory (note anche come cartelle) utilizzando il comando mkdir.

Per creare una directory, passare il nome della directory come argomento al comando:

mkdir /tmp/newdirectory

mkdir può prendere uno o più nomi di directory come argomenti.

Quando si fornisce solo il nome della directory, senza il percorso completo, verrà creato nella directory di lavoro corrente.

Per creare directory principali utilizzare l'opzione -p:

mkdir -p Projects/noviello.it/src/assets/images

Il comando sopra crea l'intera struttura di directory.

Quando mkdir viene invocato con l'opzione -p, crea la directory solo se non esiste.

Creazione di collegamenti simbolici (comando ln)

Un collegamento simbolico (o symlink) è un tipo speciale di file che punta a un altro file o directory.

Per creare un collegamento simbolico a un determinato file, utilizzare il comando ln con l'opzione -s, il nome del file come primo argomento e il nome del collegamento simbolico come secondo argomento:

ln -s source_file symbolic_link

Se viene fornito un solo file come argomento, viene creato un collegamento a quel file nella directory di lavoro corrente con lo stesso nome del file a cui punta.

Rimozione di file e directory (comando rm)

Per rimuovere file e directory utilizzare il comando rm.

Per impostazione predefinita, se eseguito senza alcuna opzione, rm non rimuove le directory. Inoltre non richiede all'utente se procedere con la rimozione dei file indicati.

Per eliminare un file o un collegamento simbolico, utilizzare il comando rm seguito dal nome del file come argomento:

rm file.txt

rm accetta uno o più nomi di file o directory come argomenti.

L'opzione -i permette di richiedere all'utente ogni dato file prima di rimuoverlo:

rm -i file.txt
rm: remove regular empty file 'file.txt'? 

Utilizzare l'opzione -d per rimuovere una o più directory vuote:

rm -d dirname

Per rimuovere ricorsivamente le directory non vuote e tutti i file al loro interno, utilizzare l'opzione -r (ricorsiva):

rm -rf dirname

L'opzione -f permette di non chiedere mai all'utente e di ignorare file e argomenti inesistenti.

Copiare file e directory (comando cp)

Il comando cp consente di copiare file e directory.

Per copiare un file nella directory di lavoro corrente, utilizzare il file di origine come primo argomento e il nuovo file come secondo:

cp file file_backup

Per copiare un file in un'altra directory, specificare il percorso assoluto o relativo alla directory di destinazione. Quando viene specificato solo il nome della directory come destinazione, il file copiato avrà lo stesso nome del file originale.

cp file.txt /backup

Per impostazione predefinita, se esiste il file di destinazione, verrà sovrascritto.

Per copiare una directory, inclusi tutti i suoi file e le sue sottodirectory, usa l' opzione -R o -r:

cp -R Pictures /opt/backup

Spostamento e rinomina di file e directory (comando mv)

Il comando mv (abbreviato da move) viene utilizzato per rinominare e spostare file e directory da una posizione a un'altra.

Ad esempio, per spostare un file in una directory dovresti eseguire:

mv file.txt /tmp

Per rinominare un file è necessario specificare il nome del file di destinazione:

mv file.txt file1.txt

La sintassi per lo spostamento delle directory è la stessa di quando si spostano i file.

Per spostare più file e directory contemporaneamente, specificare la directory di destinazione come ultimo argomento:

mv file.tx1 file1.txt /tmp

Installare e rimuovere pacchetti su Ubuntu e Debian (comando apt)

Un gestore pacchetti è uno strumento che consente di installare, aggiornare, rimuovere e gestire in altro modo pacchetti software specifici per la distribuzione.

Diverse distribuzioni Linux hanno gestori e formati di pacchetti diversi.

Solo i root o gli utenti con privilegi sudo possono installare e rimuovere i pacchetti.

Advanced Package Tool o APT è un sistema di gestione dei pacchetti utilizzato dalle distribuzioni basate su Debian.

Esistono diversi strumenti di gestione dei pacchetti da riga di comando nelle distribuzioni Debian con apt ed apt-get essendo i più usati.

Prima di installare un nuovo pacchetto, è necessario aggiornare l'indice del pacchetto APT:

apt update

L'indice APT è un database che contiene i record dei pacchetti disponibili dai repository abilitati nel sistema.

Per aggiornare i pacchetti installati alle ultime versioni eseguite:

apt upgrade

Installare i pacchetti è semplice come eseguire:

apt install package_name

Per rimuovere un pacchetto installato, inserire:

apt remove package_name

Installare e rimuovere pacchetti su CentOS e Fedora (comando dnf)

Un gestore pacchetti è uno strumento che consente di installare, aggiornare, rimuovere e gestire in altro modo pacchetti software specifici per la distribuzione.

Diverse distribuzioni Linux hanno gestori e formati di pacchetti diversi.

Solo i root o gli utenti con privilegi sudo possono installare e rimuovere i pacchetti.

RPM è un potente sistema di gestione dei pacchetti utilizzato da Red Hat Linux e dai suoi derivati ​​come CentOS e Fedora. RPM si riferisce anche al comando rpm e al formato del file .rpm.

Per installare un nuovo pacchetto su distribuzioni basate su Red Hat, è possibile utilizzare uno dei comandi yum o dnf:

dnf install package_name

A partire da CentOS 8 dnf ha sostituito yum come gestore pacchetti predefinito. dnf è retrocompatibile con yum.

Per aggiornare i pacchetti installati alle loro ultime versioni, digitare:

dnf update

Rimuovere i pacchetti è semplice come:

dnf remove package_name

Proprietà e autorizzazioni dei file

In Linux, l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Ciò garantisce che solo utenti e processi autorizzati possano accedere a file e directory.

In Linux, ogni file è associato a un proprietario e un gruppo e assegnato con diritti di accesso di autorizzazione per tre diverse classi di utenti:

  • Il proprietario del file.
  • I membri del gruppo.
  • Tutti gli altri.

Esistono tre tipi di autorizzazioni che si applicano a ciascuna classe:

  • Il permesso di lettura.
  • Il permesso di scrivere.
  • Il permesso di esecuzione.

Questo concetto consente di specificare a quali utenti è consentito leggere il file, scrivere sul file o eseguire il file.

Per visualizzare il proprietario del file e le autorizzazioni, utilizzare il comando ls -l.

Modifica delle autorizzazioni (comando chmod)

Il comando chmod consente di modificare le autorizzazioni del file. Funziona in due modi, simbolico e numerico.

Quando si utilizza la modalità numerica, è possibile impostare le autorizzazioni per il proprietario, il gruppo e tutti gli altri. Ogni autorizzazione di scrittura, lettura ed esecuzione ha il seguente valore numerico:

  • r (read) = 4
  • w (write) = 2
  • x (execute) = 1
  • nessuna autorizzazione = 0

Il numero di autorizzazioni di una specifica classe utente è rappresentato dalla somma dei valori delle autorizzazioni per quel gruppo.

Ad esempio, per dare al proprietario del file le autorizzazioni di lettura e scrittura e le autorizzazioni di lettura solo ai membri del gruppo e a tutti gli altri utenti che avresti eseguito:

chmod 644 filename

Solo root, il proprietario del file o l'utente con privilegi sudo possono modificare le autorizzazioni di un file.

Per operare in modo ricorsivo su tutti i file e le directory in una determinata directory, utilizzare il comando chmod con l'opzione -R, (–recursive):

chmod -R 755 dirname

Prestare particolare attenzione quando si modificano in modo ricorsivo le autorizzazioni dei file.

Modifica della proprietà (comando chown)

Il comando chown consente di modificare la proprietà dell'utente e del gruppo di un determinato file, directory o collegamento simbolico.

Per modificare il proprietario di un file, utilizzare il comando chown seguito dal nome utente del nuovo proprietario e dal file di destinazione:

chown username filename

Per modificare sia il proprietario che il gruppo di un file, invoca il comando chown seguito dal nuovo proprietario e dal gruppo separati da due punti (:) senza spazi intermedi e il file di destinazione:

chown username:groupname filename

Utilizzare l'opzione -R( --recursive) per operare in modo ricorsivo su tutti i file e le directory nella directory indicata:

chown -R username:groupname dirname

Elevare i privilegi (comando sudo)

Il comando sudo consente di eseguire programmi come un altro utente, per impostazione predefinita l'utente root. Se passi molto tempo sulla riga di comando, sudo è uno dei comandi che userai abbastanza frequentemente.

L'utilizzo di sudo anziché effettuare l'accesso come root è più sicuro perché è possibile concedere privilegi amministrativi limitati ai singoli utenti senza che siano a conoscenza della password di root.

Per usare sudo, basta aggiungere il comando con il prefisso sudo:

sudo command

Gestione utenti e gruppi

Linux è un sistema multiutente, il che significa che più di una persona può interagire con lo stesso sistema contemporaneamente. I gruppi vengono utilizzati per organizzare e amministrare gli account utente. Lo scopo principale dei gruppi è definire un insieme di privilegi come lettura, scrittura o esecuzione dell'autorizzazione per una determinata risorsa che può essere condivisa tra gli utenti all'interno del gruppo.

Creazione di utenti (comandi useradd e passwd)

Il comando useradd consente di creare nuovi utenti.

Per creare un nuovo account utente, utilizzare il comando useradd seguito dal nome utente:

useradd newuser

Una volta creato l'utente, impostare la password utente eseguendo il comando passwd:

passwd newuser

Rimozione di utenti (comando userdel)

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

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

userdel newuser

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

userdel -r newuser

Gestione dei gruppi (comando groupadd e groupdel)

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

groupadd mygroup

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

groupdel mygroup

Aggiunta di utenti ai gruppi (comando usermod)

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

usermod -a -G sudo noviello

Conclusione

Abbiamo visto alcuni dei comandi Gnu/Linux più utilizzati.

Sebbene sia possibile eseguire la maggior parte delle attività di sviluppo e relative al sistema utilizzando un'interfaccia grafica, la riga di comando ti rende più produttivo e in grado di fare di più in meno tempo.

Fare clic sui collegamenti su ciascun comando per ottenere ulteriori informazioni sulle opzioni e sull'utilizzo del comando.