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 Up
e 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
.
Navigazione nel file system
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) = 4w
(write) = 2x
(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.