Condividi tramite


Parte 1.2 - Operazioni di base in Linux

Si applica a: .NET in Linux

Obiettivo di questa parte

Questa parte del training è incentrata sulle directory speciali di Linux, su come eseguire comandi come utente con privilegi avanzati (radice) e su come installare e disinstallare le applicazioni usando gli strumenti di gestione pacchetti.

L'uso di gestori pacchetti per installare e rimuovere pacchetti richiede privilegi radice. Pertanto, è necessario prima comprendere come eseguire i comandi come utente con privilegi avanzati.

Directory speciali di Linux

Per questo training, non è necessario approfondire come gestire Linux. Tuttavia, un riepilogo di alcune delle directory speciali sarebbe utile perché verranno usate nel resto del training.

Directory Descrizione
/ Directory radice (cartella di primo livello).
bin/ Contiene file binari utente, file eseguibili.
/sbin Contiene file binari utente, file eseguibili.
/and so on Contiene i file di configurazione per il sistema locale e le applicazioni. Ad esempio, si creeranno alcuni file di configurazione nella directory /etc/system per consentire l'avvio automatico dell'applicazione ASP.NET Core dal sistema.
/home Contiene la home directory di ogni utente. Ad esempio, /home/<username>.
/Tmp Directory temporanea per archiviare i file temporanei creati dal sistema e dalle applicazioni.
/Usr Archivia file condivisibili, inclusi file eseguibili, raccolte e documenti. Ad esempio, il runtime e gli SDK .NET vengono installati nella directory /usr/share/dotnet/ .
/Var Archivia i file di dati delle variabili. Ad esempio, Apache archivia il contenuto del sito Web radice nella directory /var/www/html e i file di log nella directory /var/log/apache2/ . Anche se non è necessario, le applicazioni Web verranno pubblicate in questa directory.

Note

Linux fa distinzione tra maiuscole e minuscole, Pertanto, /home e /Home sono directory diverse e filename e Filename sono file diversi.

Quando ci si connette per la prima volta alla macchina virtuale Linux, si inizierà dalla directory radice. Questa directory sarà /home/<username>.

Il collegamento alla directory radice è ~ (tilde). È possibile usare il cd ~ comando in qualsiasi momento per tornare alla home directory.

Esaminare e provare i comandi seguenti (illustrati nello screenshot seguente):

  • pwd (directory di lavoro di stampa): stampa la directory corrente e la directory /etc/systemd .
  • echo: stampa il valore della directory ~ (radice).
  • cd ~: restituisce la directory radice.

Screenshot del comando password.

Questo esempio non include l'elenco del contenuto della directory. Tuttavia, un passaggio successivo di questo training illustra l'uso di file e cartelle. Alcune di queste attività richiederanno autorizzazioni per l'utente con privilegi avanzati. La sezione successiva illustra come elevare se stessi allo stato dell'utente con privilegi avanzati.

Eseguire i comandi come utente con privilegi avanzati

L'utente con privilegi avanzati è l'account utente con privilegi più elevati. Ha accesso radice (senza restrizioni) a tutti i file e cartelle e il controllo completo sul funzionamento del computer. L'amministratore di sistema usa questo account per la manutenzione del sistema.

Nei sistemi simili a UNIX, il nome convenzionale dell'utente con privilegi avanzati è "root". L'utente radice può eseguire attività che altrimenti sono limitate per gli utenti standard, incluse quelle seguenti:

  • Modifica delle directory di sistema
  • Modifica dei privilegi utente
  • Modifica della proprietà del file
  • Attività correlate al sistema, ad esempio i riavvii
  • Installazione di determinate applicazioni

Esistono diversi modi per eseguire i comandi come utente dell'account radice. Uno consiste nell'usare il sudo su comando . In questo comando, sudo è breve per superuser doe su è un'abbreviazione di "switch user". È anche possibile usare il su comando per passare da un utente standard all'altro.

Importante

Dopo essere diventati l'utente dell'account radice, tutte le operazioni eseguite nel contesto radice. Pertanto, è consigliabile agire con attenzione perché l'account radice ha accesso all'intero sistema.

Per illustrare un problema di autorizzazioni, creare un file di testo in una cartella speciale denominata /etc.

La cartella /etc/ è la posizione in cui si trovano i file di configurazione del sistema. Questa cartella protegge il contenuto dalla modifica da parte di un utente standard.

Esegui questo comando:

echo hello world > /etc/helloworld.txt

Il echo comando scrive tutto il testo che lo segue nell'output. La parentesi angolare (>) indica al sistema di inviare l'output al file /etc/helloworld.txt anziché alla console. Questo comportamento è simile al funzionamento di Windows.

Note

Linux fa distinzione tra maiuscole e minuscole: Helloworld.txt, helloworld.txt e helloworld. Txt sono file diversi.

Non è necessario specificare un'estensione del nome file. Il nome "helloworld" da solo è perfettamente valido. L'estensione "txt" viene usata qui solo come esempio.

Quando si esegue questo comando, viene visualizzato un messaggio di errore di autorizzazione negata .

Screenshot del messaggio di autorizzazione negata.

L'operazione non riesce perché la cartella /etc è una cartella speciale che un utente standard non può modificare. Verificare l'utente eseguendo il id comando .

Screenshot del comando ID.

Per diventare l'utente dell'account radice, eseguire il sudo su comando .

Screenshot del comando sudo su.

Si noterà due cose: quando si diventa radice, il carattere del segno di dollaro ($) diventa un carattere di segno di cancelletto (#). Inoltre, il nome utente viene modificato in root. Se si esegue di nuovo lo stesso id comando, si noterà che l'ID utente e il gruppo della radice sono 0.

Screenshot del comando radice.

Importante

A questo momento, è stato eseguito l'elevazione al ruolo "superuser" nella sessione, si ha accesso completo al sistema. Tieni presente che si tratta di una situazione potenzialmente pericolosa e dovresti prestare attenzione mentre continui.

Eseguire ora lo stesso comando ancora una volta:

echo hello world > /etc/helloworld.txt

Questa volta non viene visualizzato alcun messaggio di errore. Per verificare se il file è stato creato, eseguire il comando seguente:

ll /etc/hello*

Il ll comando elenca i file e le sottocartelle presenti in una cartella specificata. In questo esempio, il valore del /etc/hello* parametro limita l'output del comando ai file o alle cartelle il cui nome inizia in hello.

Screenshot del comando hello.

L'output mostra che il file è stato creato. Cosa accade se si vuole esaminare il contenuto del file? Il cat comando è utile qui. Per visualizzare il contenuto, eseguire cat /etc/helloworld.txt.

Screenshot del comando cat.

Il cat comando legge i file in sequenza e scrive il contenuto nell'output standard. Pertanto, scrive "hello world" nella console.

Per evitare errori che potrebbero danneggiare il sistema mentre si è elevati allo stato radice, è consigliabile uscire dalla sessione radice e tornare alla sessione utente standard per evitare alcune operazioni pericolose. A tale scopo, eseguire exit. È possibile notare che il segno di cancelletto torna a un segno di dollaro e il nome utente viene visualizzato come utente standard.

Screenshot del comando exit.

Per altre procedure, eseguire gli stessi ll comandi e cat all'interno del contesto utente standard. Si noterà che non è possibile creare il file nella cartella /etc/ , ma è possibile elencare il file e leggere il contenuto.

Eseguire i comandi usando il prefisso "sudo"

Invece di diventare l'utente dell'account radice nella sessione, è possibile eseguire i comandi come radice usando il sudo <command> formato . Questo approccio è più sicuro perché eseguirà il comando specificato solo come utente con privilegi avanzati.

Ad esempio, se si esegue restart mentre non si è elevati allo stato dell'utente con privilegi avanzati, il risultato è il seguente.

Screenshot del comando di riavvio.

Per eseguire questo comando come utente con privilegi avanzati, è invece possibile modificare il contesto della sessione in root (eseguendo sudo su) o aggiungere il sudo prefisso, come indicato di seguito:

sudo reboot

A questo momento, l'operazione di riavvio viene eseguita come previsto dalla macchina virtuale.

Screenshot del comando di riavvio.

Gestione pacchetti

Gli strumenti di gestione pacchetti vengono usati per installare, aggiornare e rimuovere applicazioni in Linux. Esistono diversi gestori pacchetti, ad esempio DPKG (Debian Package Management System), RPM (Red Hat Gestione pacchetti) e Zypper per i gestori pacchetti SUSE stessi sono di basso livello. Pertanto, potrebbe essere difficile gestire il software direttamente usando gestione pacchetti. Fortunatamente, esistono wrapper per questi strumenti che semplificano l'installazione e la disinstallazione del software. Ad esempio, yum è un wrapper intorno a RPM (Red Hat Gestione pacchetti) e APT è un wrapper intorno a DPKG (Debian Package Management System).

Questa esercitazione presuppone che si stia eseguendo il sistema di gestione dei pacchetti Ubuntu. Questo sistema è derivato dallo stesso sistema usato dalla distribuzione Debian GNU/Linux. Pertanto, è possibile usare APT per installare il software.

A seconda della scelta di Linux, potrebbe essere necessario usare altri strumenti. Ad esempio, è possibile usare yum per installare o disinstallare software se si esegue Red Hat.

Aggiornare il database di Gestione pacchetti

APT funziona su un database di pacchetti disponibili. È consigliabile aggiornare le gestioni pacchetti e quindi aggiornare i pacchetti dopo una nuova installazione.

Per aggiornare il database del pacchetto in Ubuntu, eseguire sudo apt update. Si noti che il sudo prefisso viene immesso prima del apt comando . In questo modo, si esegue il apt comando come utente radice senza modificare effettivamente il contesto della sessione in quello dell'utente radice.

Screenshot del comando sudo apt update.

Il comando di aggiornamento non aggiorna effettivamente nessuno dei pacchetti software installati. Aggiorna invece il database del pacchetto. L'aggiornamento effettivo viene eseguito dal sudo apt upgrade comando .

Screenshot del comando sudo apt upgrade.

Dopo aver digitato Y e quindi premere INVIO, i pacchetti vengono aggiornati.

Screenshot dello stato di avanzamento dell'aggiornamento dei pacchetti.

Cercare pacchetti usando gli strumenti di gestione pacchetti

L'esempio seguente di come usare gli strumenti di gestione pacchetti per cercare pacchetti illustra l'installazione e la disinstallazione del server Web Apache 2.

Per iniziare, eseguire una ricerca in "server Web Apache" usando il apt search comando . APT esegue una ricerca full-text e visualizza i risultati. Si installerà Apache HTTP Server usando il nome del pacchetto .apache2

Screenshot del comando apt search.

Note

Uso del comando . Il sudo prefisso non viene aggiunto perché non è necessario essere un utente radice per eseguire ricerche nei pacchetti.

Invece di eseguire una APT search, è possibile cercare in un Web browser in "come installare Apache in Ubuntu" per trovare il nome del pacchetto e il comando APT. Per questo esempio, è necessario trovare questo documento ufficiale di Ubuntu che illustra chiaramente come eseguire l'installazione Apache 2 in Ubuntu.

Visualizzare i dettagli del pacchetto

Per verificare di avere il pacchetto corretto, eseguire apt show per visualizzare i dettagli del pacchetto, come illustrato nello screenshot seguente. Anche in questo caso, si noti che il sudo prefisso non è necessario.

Screenshot del comando apt show.

Elencare i pacchetti installati e usare grep per filtrare l'elenco

Dopo aver determinato che il pacchetto trovato è quello desiderato, è necessario assicurarsi che non sia già installato nel server di destinazione.

A tale scopo, usare il apt list --installed comando per elencare le applicazioni installate nella macchina virtuale. È anche possibile aggiungere il comando grep per filtrare i risultati in modo da visualizzare solo le applicazioni che contengono apache2.

Note

Il grep comando cerca un determinato termine in un file. Si tratta di uno strumento molto potente perché offre diverse opzioni, ad esempio la ricerca usando regex o una stringa, invertendo i risultati della ricerca, ignorando la distinzione tra maiuscole e minuscole, cercando usando più termini di ricerca e il supporto ricorsivo per la ricerca.

Quando si esegue apt list --installed | grep apache2, si noterà che il pacchetto non è installato nella macchina virtuale.

Screenshot del comando apt list.

Installare il pacchetto

Ora che è stato determinato che è stato trovato il pacchetto desiderato e che non è già installato, è possibile procedere con l'installazione. Eseguire il comando riportato di seguito:

sudo apt install apache2

Note

Questa volta, si antepone il comando usando sudo perché questo comando modifica il sistema. Pertanto, deve essere l'account radice per l'esecuzione corretta. La gestione pacchetti è abbastanza gentile da richiedere se si vuole effettivamente installare l'applicazione.

Screenshot del comando sudo.

Digitare Y (sì) e premere INVIO per installare Apache2. Gestione pacchetti mostrerà un indicatore di stato per indicare lo stato dell'installazione.

Screenshot dello stato dell'installazione.

Se si esegue di nuovo lo stesso apt list --installed | grep apache2 comando, si noterà che il pacchetto Apache 2 è installato insieme ad altri pacchetti correlati ad Apache2 installati automaticamente.

Screenshot del comando apt list grep.

Anche se è stato installato Apache 2, è effettivamente necessario usare Nginx. Di conseguenza, non è più necessario Apache ed è possibile rimuovere tale pacchetto dalla macchina virtuale.

Rimuovere i pacchetti.

L'installazione di un pacchetto (in questo caso Apache 2) è reversibile. È possibile rimuovere il pacchetto se si determina che non è necessario. Sono disponibili due opzioni di comando per rimuovere i pacchetti:

  • apt remove: questo comando rimuove i file binari ma non il file di configurazione. È utile se si intende reinstallare il pacchetto e si vuole mantenere la stessa configurazione.

  • apt purge: questo comando rimuove i file binari e il file di configurazione.

Rimuovere il pacchetto usando apt remove come utente radice per visualizzare il risultato. A tale scopo, eseguire sudo apt remove apache2. Quando viene richiesto di confermare la rimozione, digitare Y e quindi premere INVIO.

Screenshot del comando sudo apt remove apache2.

L'output del comando indica le informazioni seguenti:

  • APT ha rilevato che sono presenti pacchetti installati automaticamente e che non saranno più necessari.
  • APT ha rimosso solo il apache2 pacchetto e consiglia di eseguire sudo apt autoremove per rimuovere i pacchetti associati.

Elencare di nuovo i pacchetti installati. Si noterà che il apache2 pacchetto viene rimosso, ma che i pacchetti installati automaticamente che sono stati forniti con esso rimangono installati.

Screenshot dei pacchetti installati.

Seguire la raccomandazione di eseguire sudo apt autoremove di nuovo per rimuovere i pacchetti di sinistra.

Screenshot del comando sudo apt autoremove.

Elencare i pacchetti installati ancora una volta. A questo momento, non dovrebbero essere installati pacchetti correlati ad Apache2.

Screenshot di nessun pacchetto correlato ad Apache2.

Questa procedura non è stata completata. Tenere presente che la differenza tra apt remove e apt purge è se il file di configurazione viene rimosso. In questo esercizio non è stato rimosso. Allora dov'è?

La ricerca del file non comporta la gestione pacchetti. Si eseguirà invece una ricerca standard per i file in Linux. Questa operazione può essere effettuata in vari modi. Uno dei comandi di ricerca più comuni è find. Tuttavia, questo comando crea confusione anche per l'uso, quindi non verrà illustrato qui. Si userà whereisinvece .

Note

Linux è molto ben documentato. Quasi tutti i comandi hanno una pagina utile della Guida disponibile. Usare i comandi man e info per visualizzare le pagine della Guida in Linux. Ad esempio, per altre informazioni sul find comando, eseguire man find o info find.

In base alla pagina della Guida per whereis, la definizione è la seguente:

whereis individua i file binari, di origine e manuali per i nomi dei comandi specificati.

Se si esegue whereis apache2, è necessario trovare l'installazione di /etc/apache2 .

Screenshot del comando whereis apache2.

Tenere presente che la directory /etc/ è la posizione in cui si trovano i file di configurazione del sistema. Per sapere se "apache2" è un file o una cartella, eseguire ll /etc/apache2. Come si può notare, si tratta di una cartella e contiene i file di configurazione apache2.

Screenshot del comando ll e apache2.

Si prevede di apache2 contenere questi file e cartelle perché è stato usato il apt remove comando che non elimina i file di configurazione.

Come passaggio finale, eseguire il comando per visualizzarne l'effetto apt purge . È possibile eseguire un'eliminazione per pulire la cartella di installazione anche dopo aver rimosso il pacchetto. Lo screenshot seguente mostra che whereis non è stato trovato nulla. Questo perché il purge comando ha rimosso i file di configurazione insieme ai file binari.

Screenshot del comando apt purge.

Passaggi successivi

Parte 1.3 - Installare .NET in Linux

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti