diff --git a/docs/books/admin_guide/05-vi.it.md b/docs/books/admin_guide/05-vi.it.md index d265ad3db2..0f07b383eb 100644 --- a/docs/books/admin_guide/05-vi.it.md +++ b/docs/books/admin_guide/05-vi.it.md @@ -2,13 +2,13 @@ title: Editor di Testo VI --- -# Editor di testo VI +# Editor di Testo VI In questo capitolo imparerai come lavorare con il VIsual editor. **** -**Obiettivi** : In questo capitolo, i futuri amministratori Linux impareranno come: +**Obiettivi**: In questo capitolo, i futuri amministratori Linux impareranno come: :heavy_check_mark: Utilizzare i comandi principali dell'editor VI; :heavy_check_mark: Modificare un testo con l'editor VI. @@ -22,19 +22,19 @@ In questo capitolo imparerai come lavorare con il VIsual editor. **** -*Visual* (**VI**) è un editor di testo popolare in Linux, nonostante la sua limitata ergonomia. È infatti un editor interamente in modalità testo: ogni azione viene eseguita con una chiave sulla tastiera o sui comandi dedicati. +_Visual_ (**VI**) è un editor di testo popolare in Linux, nonostante la sua limitata ergonomia. È infatti un editor interamente in modalità testo: ogni azione viene eseguita con una chiave sulla tastiera o sui comandi dedicati. -Molto potente, è soprattutto molto pratico poiché è nel complesso minimo per le applicazioni di base. È quindi accessibile in caso di guasto del sistema. La sua *universalità* (è presente su tutte le distribuzioni Linux e sotto UNIX) lo rende uno strumento *fondamentale* per l'amministratore. +Molto potente, è soprattutto molto pratico poiché è nel complesso minimo per le applicazioni di base. È quindi accessibile in caso di guasto del sistema. La sua _universalità_ (è presente su tutte le distribuzioni Linux e sotto UNIX) lo rende uno strumento _fondamentale_ per l'amministratore. Le sue funzionalità sono: -* Inserire, cancellare e modificare il testo; -* Copiare parole, righe o blocchi di testo; -* Cercare e sostituire i caratteri. +- Inserire, cancellare e modificare il testo; +- Copiare parole, righe o blocchi di testo; +- Cercare e sostituire i caratteri. ## comando `vi` -Il comando `vi` Apre l'editor di testo *VI*. +Il comando `vi` Apre l'editor di testo _VI_. ```bash vi [-c command] [file] @@ -48,7 +48,7 @@ vi /home/rockstar/file | Opzione | Informazione | | ------------ | ---------------------------------------------- | -| `-c command` | Esegue VI specificando un comando all'apertura | +| `-c comando` | Esegue VI specificando un comando all'apertura | Se il file esiste nella posizione indicata dal percorso, VI lo legge e lo mette in modalità **comandi**. @@ -68,39 +68,45 @@ Durante una sessione, VI utilizza un file buffer per registrare tutte le modific !!! Note "Nota" + ``` Il file originale non viene modificato finché l'utente non salva il suo lavoro. + ``` -All'avvio, VI è in modalità *comando*. +All'avvio, VI è in modalità _comando_. !!! Tip "Suggerimento" - Una riga di testo viene terminata premendo ++enter++, ma se lo schermo non è sufficientemente ampio, VI effettua interruzioni di riga automatiche, con la configurazione predefinita *wrap*. Queste interruzioni di riga possono non essere gradite, questa è la configurazione *nowrap*. + ``` + Una riga di testo viene terminata premendo ++enter++, ma se lo schermo non è abbastanza largo, VI inserisce automaticamente delle interruzioni di riga, configurazione *wrap* per impostazione predefinita. Queste interruzioni di riga potrebbero non essere desiderate, questa è la configurazione *nowrap*. + ``` Per uscire dalla modalità Comandi, premere ++colon++, quindi digitare: -* `q` per uscire senza salvare (_quit_); -* `w` per salvare il tuo lavoro (_write_); -* `wq` (_write quit_) o `x` (_eXit_) per salvare e uscire. +- `q` per uscire senza salvare (_quit_); +- `w` per salvare il tuo lavoro (_write_); +- `wq` (_write quit_) o `x` (_eXit_) per salvare e uscire. In modalità comandi, fare doppio clic sul tasto ++z++ maiuscolo per salvare e uscire. -È necessario aggiungere *!* ai comandi precedenti per forzare l'uscita senza conferma. +È necessario aggiungere _!_ ai comandi precedenti per forzare l'uscita senza conferma. !!! Warning "Attenzione" + ``` Non c'è alcun backup periodico, quindi è necessario ricordarsi di salvare il lavoro regolarmente. + ``` ## Modalità operativa In VI, ci sono 3 modalità di lavoro: -* La modalità *comando*; -* La modalità *inserimento*; -* La modalità *ex*. +- La modalità _comando_; +- La modalità _inserimento_; +- La modalità _ex_. -La filosofia di VI è quella di alternare tra la modalità *comando* e la modalità *inserimento*. +La filosofia di VI è quella di alternare tra la modalità _comando_ e la modalità _inserimento_. -La terza modalità, *ex*, è una modalità di comando del piè di pagina modello vecchio editor di testo. +La terza modalità, _ex_, è una modalità di comando del piè di pagina modello vecchio editor di testo. ### La modalità comando @@ -112,51 +118,51 @@ I comandi non vengono visualizzati sullo schermo. ### La modalità inserimento -Questa è la modalità di modifica del testo. Per accedervi dalla modalità *comando*, devi premere tasti speciali che eseguiranno un'azione oltre a modificare la modalità. +Questa è la modalità di modifica del testo. Per accedervi dalla modalità _comando_, devi premere tasti speciali che eseguiranno un'azione oltre a modificare la modalità. Il testo non viene inserito direttamente nel file ma in una zona buffer nella memoria. Le modifiche sono efficaci solo quando il file viene salvato. ### La modalità Ex -Questa è la modalità di modifica del file. Per accedervi, è necessario prima passare alla modalità *comando*, quindi inserire il comando *ex* frequentemente preceduto dal carattere `:`. +Questa è la modalità di modifica del file. Per accedervi, è necessario prima passare alla modalità _comando_, quindi inserire il comando _ex_ frequentemente preceduto dal carattere `:`. Il comando è convalidato premendo il tasto ++enter++. ## Muovere il cursore -In modalità *comando*, ci sono diversi modi per spostare il cursore. +In modalità _comando_, ci sono diversi modi per spostare il cursore. Il mouse non è attivo in un ambiente di testo ma lo è in un ambiente grafico, è possibile spostarlo carattere per carattere, ma i collegamenti esistono per andare più veloci. -VI rimane in modalità *comando* dopo aver spostato il cursore. +VI rimane in modalità _comando_ dopo aver spostato il cursore. Il cursore è posizionato sotto il carattere desiderato. ### Da un carattere -* Sposta uno o `n` caratteri a sinistra: +- Sposta uno o `n` caratteri a sinistra: -++arrow-left++, ++"n"++ ++arrow-left++, ++"h"++ o ++"n"++ ++"h"++ +\++arrow-left++, ++"n"++ ++arrow-left++, ++"h"++ o ++"n"++ ++"h"++ -* Sposta uno o `n` caratteri a destra: +- Sposta uno o `n` caratteri a destra: -++arrow-right++, ++"n"++ ++arrow-right++, ++"l"++ o ++"n"++ ++"l"++ +\++arrow-right++, ++"n"++ ++arrow-right++, ++"l"++ o ++"n"++ ++"l"++ -* Sposta uno o `n` caratteri su: +- Sposta uno o `n` caratteri su: -++arrow-up++, ++"n"++ ++arrow-up++, ++"k"++ o ++"n"++ ++"k"++ +\++arrow-up++, ++"n"++ ++arrow-up++, ++"k"++ o ++"n"++ ++"k"++ -* Sposta uno o `n` caratteri giù: +- Sposta uno o `n` caratteri giù: -++arrow-down++, ++"n"++ ++arrow-down++, ++"j"++ o ++"n"++ ++"j"++ +\++arrow-down++, ++"n"++ ++arrow-down++, ++"j"++ o ++"n"++ ++"j"++ -* Passare alla fine della linea: +- Passare alla fine della linea: -++"$"++ o ++end++ +\++"$"++ o ++end++ -* Passare all'inizio della linea: +- Passare all'inizio della linea: -++0++ o ++"POS1"++ +\++0++ o ++"POS1"++ ### Dal primo carattere di una parola @@ -166,218 +172,224 @@ Se il cursore si trova a metà di una parola ++"w "++ si sposta alla parola succ Se la linea è finita, VI va automaticamente alla riga successiva. -* Muoversi di una o `n` parole a destra: +- Muoversi di una o `n` parole a destra: -++"w"++ o ++"n"++ ++"w"++ +\++"w"++ o ++"n"++ ++"w"++ -* Muoversi di una o `n` parole a sinistra: +- Muoversi di una o `n` parole a sinistra: -++"b"++ o ++"n"++ ++"b"++ +\++"b"++ o ++"n"++ ++"b"++ ### Da qualsiasi posizione su una linea -* Passa all'ultima riga di testo: +- Passa all'ultima riga di testo: -++g++ +\++g++ -* Passa alla linea `n`: +- Passa alla linea `n`: -++"n"++ ++"g"++ +\++"n"++ ++"g"++ -* Passa alla prima riga dello schermo: +- Passa alla prima riga dello schermo: -++h++ +\++h++ -* Passa alla linea centrale dello schermo: +- Passa alla linea centrale dello schermo: -++m++ +\++m++ -* Passa all'ultima riga dello schermo: +- Passa all'ultima riga dello schermo: -++l++ +\++l++ -* Passa alla prima riga dello schermo: +- Passa alla prima riga dello schermo: -++"g"++ ++"g"++ +\++"g"++ ++"g"++ ## Inserimento del testo -Esistono diversi modi per inserire il testo in modalità *comando*. +Esistono diversi modi per inserire il testo in modalità _comando_. -VI passa alla modalità *inserimento* dopo aver inserito uno di questi tasti. +VI passa alla modalità _inserimento_ dopo aver inserito uno di questi tasti. !!! Note "Nota" + ``` VI passa alla modalità *inserzione*. Quindi si dovrà premere il tasto ++escape++ per tornare alla modalità *comando*. + ``` ### In relazione a un carattere -* Inserimento del testo prima di un carattere: +- Inserimento del testo prima di un carattere: -++"i"++ (*insert*) +\++"i"++ (_insert_) -* Inserimento del testo dopo un carattere: +- Inserimento del testo dopo un carattere: -++"a"++ (*append*) +\++"a"++ (_append_) ### In relazione a una linea -* Inserimento del testo all'inizio di una linea: +- Inserimento del testo all'inizio di una linea: -++i++ +\++i++ -* Inserimento del testo alla fine di una linea: +- Inserimento del testo alla fine di una linea: -++a++ +\++a++ ### In relazione al testo -* Inserimento del testo prima di una linea: +- Inserimento del testo prima di una linea: -++o++ +\++o++ -* Inserimento del testo dopo una linea: +- Inserimento del testo dopo una linea: -++"o"++ +\++"o"++ ## Caratteri, parole e linee VI permette di modificare il testo gestendo: -* caratteri, -* parole, -* linee. +- caratteri, +- parole, +- linee. In ogni caso è possibile : -* eliminare, -* sostituire, -* copiare, -* tagliare, -* incollare. +- eliminare, +- sostituire, +- copiare, +- tagliare, +- incollare. -Queste operazioni vengono eseguite in modalità *comando*. +Queste operazioni vengono eseguite in modalità _comando_. ### Caratteri -* Eliminare uno o `n` caratteri: +- Eliminare uno o `n` caratteri: -++"x"++ o ++"n"++ ++"x"++ +\++"x"++ o ++"n"++ ++"x"++ -* Sostituire un carattere con un altro: +- Sostituire un carattere con un altro: -++"r"+"character"++ +\++"r"+"character"++ -* Sostituire più di un carattere con altri: +- Sostituire più di un carattere con altri: -++r+"characters"+escape++ +\++r+"characters"+escape++ !!! Note "Nota" + ``` Il comando ++r++ passa alla modalità *sostituzione*, che è una sorta di modalità *inserimento*. + ``` ### Parole -* Cancellare (tagliare) una o `n` parole: +- Cancellare (tagliare) una o `n` parole: -++"d"+"w"++ o ++"n"+"d"+"w"++ +\++"d"+"w"++ o ++"n"+"d"+"w"++ -* Copiare una o `n` parole: +- Copiare una o `n` parole: -++"y"+"w"++ o ++"n"+"y"+"w"++ +\++"y"+"w"++ o ++"n"+"y"+"w"++ -* Incollare una parola una volta o `n` volte dopo il cursore: +- Incollare una parola una volta o `n` volte dopo il cursore: -++p++ o ++"n"+"p"++ +\++p++ o ++"n"+"p"++ -* Incollare una parola una volta o `n` volte prima del cursore: +- Incollare una parola una volta o `n` volte prima del cursore: -++p++ o ++"n"+p++ +\++p++ o ++"n"+p++ -* Sostituire una parola: +- Sostituire una parola: -++c+w+"word"+escape++ +\++c+w+"word"+escape++ !!! Tip "Suggerimento" - È necessario posizionare il cursore sotto il primo carattere della parola da tagliare (o copiare) altrimenti VI taglierà (o copiare) solo la parte della parola tra il cursore e la fine. - Per eliminare una parola è sufficiente tagliarla. Se non è incollata dopo, il buffer viene svuotato e la parola è cancellata. + ``` + È necessario posizionare il cursore sotto il primo carattere della parola da tagliare (o copiare) altrimenti VI taglierà (o copierà) solo la parte della parola tra il cursore e la fine. + Per eliminare una parola è sufficiente tagliarla. Se non è incollata dopo, il buffer verrà svuotato e la parola cancellata. + ``` ### Linee -* Eliminare (tagliare) una o `n` linee: +- Eliminare (tagliare) una o `n` linee: -++"d"+"d"++ o ++"n"+"d"+"d"++ +\++"d"+"d"++ o ++"n"+"d"+"d"++ -* Copiare una o `n` linee: +- Copiare una o `n` linee: -++"y"+"y"++ o ++"n"+"y"+"y"++ +\++"y"+"y"++ o ++"n"+"y"+"y"++ -* Incollare ciò che è stato copiato o cancellato una o `n` volte dopo la riga corrente: +- Incollare ciò che è stato copiato o cancellato una o `n` volte dopo la riga corrente: -++"p"++ o ++"n"+"p"++ +\++p++ o ++"n"+"p"++ -* Incollare ciò che è stato copiato o cancellato una volta o `n` volte prima della linea corrente: +- Incollare ciò che è stato copiato o cancellato una volta o `n` volte prima della linea corrente: -++p++ o ++"n"+p++ +\++p++ o ++"n"+p++ -* Eliminare (tagliare) dall'inizio della linea alla posizione del cursore: +- Eliminare (tagliare) dall'inizio della linea alla posizione del cursore: -++"d"+0++ +\++"d"+0++ -* Eliminare (tagliare) dalla posizione del cursore alla fine della linea: +- Eliminare (tagliare) dalla posizione del cursore alla fine della linea: -++"d"+"$"++ +\++"d"+"$"++ -* Copiare dall'inizio della linea alla posizione del cursore: +- Copiare dall'inizio della linea alla posizione del cursore: -++"y"+0++ +\++"y"+0++ -* Copiare dalla posizione del cursore alla fine della linea: +- Copiare dalla posizione del cursore alla fine della linea: -++"y"+"$"++ +\++"y"+"$"++ -* Eliminare (tagliare) il contenuto dalla riga del cursore all'ultima riga del file: +- Eliminare (tagliare) il contenuto dalla riga del cursore all'ultima riga del file: -++"d"+g++ +\++"d"+g++ -* Eliminare (tagliare) il contenuto dalla riga del cursore all'ultima riga della schermata: +- Eliminare (tagliare) il contenuto dalla riga del cursore all'ultima riga della schermata: -++"d"+l++ +\++"d"+l++ -* Copiare il contenuto dalla riga del cursore alla fine del file: +- Copiare il contenuto dalla riga del cursore alla fine del file: -++"y"+g++ +\++"y"+g++ -* Copiare il contenuto dalla riga del cursore fino alla fine dello schermo +- Copiare il contenuto dalla riga del cursore fino alla fine dello schermo -++"y"+l++ +\++"y"+l++ ### Annullare un'azione -* Annullare l'ultima azione: +- Annullare l'ultima azione: -++"u"++ +\++"u"++ -* Annullare le azioni sulla linea corrente: +- Annullare le azioni sulla linea corrente: -++u++ +\++u++ ### Annulla la cancellazione -* Annullare una cancellazione +- Annullare una cancellazione -++control+r++ +\++control+r++ ## comando EX -La modalità *Ex* consente di agire sul file (salvataggio, layout, opzioni, ...). È inoltre in modalità *Ex*, dove vengono inseriti i comandi di ricerca e sostituzione. I comandi vengono visualizzati in fondo alla pagina e devono essere convalidati con il tasto ++enter++. +La modalità _Ex_ consente di agire sul file (salvataggio, layout, opzioni, ...). È inoltre in modalità _Ex_, dove vengono inseriti i comandi di ricerca e sostituzione. I comandi vengono visualizzati in fondo alla pagina e devono essere convalidati con il tasto ++enter++. -Per passare alla modalità *Ex*, dalla modalità *comando*, digitate ++colon++. +Per passare alla modalità _Ex_, dalla modalità _comando_, digitate ++colon++. ### Numeri di riga del file -* Mostrare/nascondere la numerazione: +- Mostrare/nascondere la numerazione: `:set nu` o il più lungo `:set number` @@ -385,51 +397,51 @@ Per passare alla modalità *Ex*, dalla modalità *comando*, digitate ++colon++. ### Cercare una stringa -* Cerca una stringa a partire dal cursore: +- Cerca una stringa a partire dal cursore: `/string` -* Cercare una stringa prima della posizione del cursore: +- Cercare una stringa prima della posizione del cursore: `?string` -* Andare alla prossima occorrenza trovata: +- Andare alla prossima occorrenza trovata: -++"n"++ +\++"n"++ -* Trovare la stringa corrispondente precedente: +- Trovare la stringa corrispondente precedente: -++n++ +\++n++ Esistono le espressioni regolari per facilitare la ricerca in VI. -* `[]` : Cerca un intervallo di caratteri o un singolo carattere i cui possibili valori sono specificati. +- `[]` : Cerca un intervallo di caratteri o un singolo carattere i cui possibili valori sono specificati. Esempio: -`/[Ww]ord` : search *word* o *Word* +`/[Ww]ord` : search _word_ o _Word_ -`/[1-9]word` : search *1word*, *2word* … *`x`word* dove `x` è un numero +`/[1-9]word` : search _1word_, _2word_ … _`x`word_ dove `x` è un numero -* `^` : Cercare le righe che iniziano con un carattere. +- `^` : Cercare le righe che iniziano con un carattere. Esempio: `/^Word` -* `$` : Cercare le righe che terminano con i caratteri. +- `$` : Cercare le righe che terminano con i caratteri. Esempio: `/Word$` -* `.` : Cercare qualsiasi carattere singolo, tranne la linea di separazione. +- `.` : Cercare qualsiasi carattere singolo, tranne la linea di separazione. Esempio: -`/W.rd` : search *Word*, *Ward* … +`/W.rd` : search _Word_, _Ward_ … -* `*` : Il numero di volte che il carattere precedente corrisponde, 0 volte o un numero qualsiasi di volte. +- `*` : Il numero di volte che il carattere precedente corrisponde, 0 volte o un numero qualsiasi di volte. Esempio: @@ -449,7 +461,7 @@ Dalla riga `n` alla riga `m`, sostituisce la stringa cercata con la stringa spec `:n,m s/search/replace` -Per impostazione predefinita, viene sostituita solo la prima occorrenza trovata di ogni riga. Per forzare la sostituzione di ogni occorrenza, è necessario aggiungere `/g` alla fine del comando: +Per impostazione predefinita, viene sostituita solo la prima occorrenza trovata di ogni riga. Per forzare la sostituzione di ogni ricorrenza, è necessario aggiungere `/g` alla fine del comando: `:n,m s/search/replace/g` @@ -459,23 +471,23 @@ Sfogliare un intero file per sostituire la stringa cercata con quella specificat ### Operazioni sui file -* Cancellare una riga vuota +- Cancellare una riga vuota `:g/^$/d` -* Eliminare le righe con numeri di riga da n a m +- Eliminare le righe con numeri di riga da n a m `:n,md` -* Eliminare la riga in cui si trova la stringa +- Eliminare la riga in cui si trova la stringa `:g/string/d` -* Eliminare una riga che non contiene una stringa +- Eliminare una riga che non contiene una stringa `:g!/string/d` -* Cancellare tutte le righe che iniziano con # +- Cancellare tutte le righe che iniziano con # `:g/^#/d` @@ -483,35 +495,35 @@ Il carattere **g** qui sta per **globale**. ### Operazioni sui file -* Salvare il file: +- Salvare il file: `:w` -* Salvare con un altro nome: +- Salvare con un altro nome: `:w file` -* Salvare dalla riga `n` alla riga `m` in un altro file: +- Salvare dalla riga `n` alla riga `m` in un altro file: `:n,m w file` -* Ricaricare l'ultima registrazione del file: +- Ricaricare l'ultima registrazione del file: `e!` -* Incollare il contenuto di un altro file dopo il cursore: +- Incollare il contenuto di un altro file dopo il cursore: `:r file` -* Chiudere l'elaborazione di un file senza salvare: +- Chiudere l'elaborazione di un file senza salvare: `:q` -* Uscire dalla modifica di un file che è stato modificato durante la sessione ma non è stato salvato: +- Uscire dalla modifica di un file che è stato modificato durante la sessione ma non è stato salvato: `:q!` -* Uscire dal file e salvare: +- Uscire dal file e salvare: `:wq` o `:x` @@ -523,7 +535,7 @@ Il carattere **g** qui sta per **globale**. vi -c "set nu" /home/rockstar/file ``` -È anche possibile inserire i comandi *Ex* in un file chiamato `.exrc` nella directory di login dell'utente. I comandi verranno letti e applicati a ogni avvio di VI o VIM. +È anche possibile inserire i comandi _Ex_ in un file chiamato `.exrc` nella directory di login dell'utente. I comandi verranno letti e applicati a ogni avvio di VI o VIM. ### comando `vimtutor` @@ -537,16 +549,16 @@ vimtutor Questa modalità è una sottovoce della modalità comando. È possibile completarlo digitando ++"v"++ oppure ++v++: il contenuto dell'operazione del primo interviene al livello del carattere, mentre il contenuto dell'operazione del secondo interviene al livello della riga. -!!! info "Informazione" +!!! info È possibile utilizzare i tasti freccia per contrassegnare il carattere o il contenuto della riga su cui si desidera intervenire. #### livello carattere -* **Elimina (taglia)** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere che vuoi eliminare, quindi digita ++"x"++ per eliminarlo -* **Copia** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere da copiare, quindi digita il tasto ++"y"++ per copiarlo +- **Elimina (taglia)** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere che vuoi eliminare, quindi digita ++"x"++ per eliminarlo +- **Copia** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere da copiare, quindi digita il tasto ++"y"++ per copiarlo #### livello linea -* **Elimina (taglia)** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere che vuoi eliminare, quindi digita ++"x"++ per eliminarlo -* **Copia** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere da copiare, quindi digita il tasto ++"y"++ per copiarlo +- **Elimina (taglia)** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere che vuoi eliminare, quindi digita ++"x"++ per eliminarlo +- **Copia** - Digita il tasto ++"v"++ per contrassegnare il contenuto del carattere da copiare, quindi digita il tasto ++"y"++ per copiarlo diff --git a/docs/books/admin_guide/06-users.it.md b/docs/books/admin_guide/06-users.it.md index 9ba6b2e962..9a3eeba40d 100644 --- a/docs/books/admin_guide/06-users.it.md +++ b/docs/books/admin_guide/06-users.it.md @@ -7,13 +7,14 @@ title: Gestione utenti In questo capitolo imparerai come gestire gli utenti. **** + **Obiettivi**: In questo capitolo, i futuri amministratori di Linux impareranno a: -:heavy_check_mark: aggiungere, eliminare o modificare un **gruppo** ; -:heavy_check_mark: aggiungere, eliminare o modificare un **utente** ; -:heavy_check_mark: comprendere i file associati agli utenti e ai gruppi e scoprire come gestirli; -:heavy_check_mark: cambiare il *proprietario* o il *proprietario del gruppo* di un file; -:heavy_check_mark: *proteggere* un account utente; +:heavy_check_mark: aggiungere, eliminare o modificare un **gruppo** ; +:heavy_check_mark: aggiungere, eliminare o modificare un **utente** ; +:heavy_check_mark: comprendere i file associati agli utenti e ai gruppi e scoprire come gestirli; +:heavy_check_mark: cambiare il _proprietario_ o il _proprietario del gruppo_ di un file; +:heavy_check_mark: _proteggere_ un account utente; :heavy_check_mark: cambiare identità. :checkered_flag: **utenti** @@ -22,53 +23,60 @@ In questo capitolo imparerai come gestire gli utenti. **Complessità**: :star: :star: **Tempo di lettura**: 30 minuti + **** ## Generale -Ogni utente deve avere un gruppo chiamato **gruppo primario** dell'utente. +Ogni utente deve avere un gruppo chiamato **primary group** dell'utente. Diversi utenti possono far parte dello stesso gruppo. -Gruppo diversi dal gruppo primario sono chiamati **gruppi supplementari**. +Gruppo diversi dal gruppo primario sono chiamati **supplementary groups**. !!! Note "Nota" + ``` Ogni utente ha un gruppo primario e può essere invitato in uno o più gruppi supplementari. + ``` I gruppi e gli utenti sono gestiti dai loro identificatori numerici unici `GID` e `UID`. -* `UID`: _User IDentifier_. ID utente univoco. -* `GID`: _Group IDentifier_. Identificatore di gruppo univoco. +- `UID`: _User IDentifier_. ID utente univoco. +- `GID`: _Group IDentifier_. Identificatore di gruppo univoco. Il kernel riconosce sia UID che GID, il che significa che il Super Admin non è necessariamente l'utente **root**, a condizione che l'utente **uid=0** sia il Super Admin. I file relativi agli utenti/gruppi sono: -* /etc/passwd -* /etc/shadow -* /etc/group -* /etc/gshadow -* /etc/skel/ -* /etc/default/useradd -* /etc/login.defs +- /etc/passwd +- /etc/shadow +- /etc/group +- /etc/gshadow +- /etc/skel/ +- /etc/default/useradd +- /etc/login.defs !!! Danger "Pericolo" + ``` Dovresti sempre usare i comandi di amministrazione invece di modificare manualmente i file. + ``` !!! Note "Nota" + ``` Alcuni comandi in questo capitolo richiedono i diritti di amministratore. Per convenzione, si specifica il comando `sudo` quando i comandi devono essere eseguiti con diritti di amministratore. Affinché gli esempi funzionino correttamente, assicuratevi che il vostro account abbia il permesso di usare il comando `sudo`. + ``` ## Gestione del gruppo File modificati, righe aggiunte: -* `/etc/group` -* `/etc/gshadow` +- `/etc/group` +- `/etc/gshadow` ### comando `groupadd` @@ -84,21 +92,22 @@ Esempio: sudo groupadd -g 1012 GroupeB ``` -| Opzione | Descrizione | -| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `-g GID` | Definisce il `GID` del gruppo da creare. | -| `-f` | Il sistema sceglie un`GID` se quello specificato dall'opzione `-g` esiste già. | +| Opzione | Descrizione | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `-g GID` | Definisce il `GID` del gruppo da creare. | +| `-f` | Il sistema sceglie un`GID` se quello specificato dall'opzione `-g` esiste già. | | `-r` | Crea un gruppo di sistema con un `GID` tra `SYS_GID_MIN` e `SYS_GID_MAX`. Queste due variabili sono definite in `/etc/login.defs`. | Regole di denominazione del gruppo: -* Nessun accento o carattere speciale; -* Diverso dal nome di un utente o file di sistema esistenti. +- Nessun accento o carattere speciale; +- Diverso dal nome di un utente o file di sistema esistenti. !!! Note "Nota" + ```` In **Debian**, l'amministratore dovrebbe usare, tranne che negli script destinati a essere trasferiti a tutte le distribuzioni Linux, i comandi `addgroup` e `delgroup` come specificato in `man`: - + ``` $ man addgroup DESCRIPTION @@ -107,6 +116,7 @@ Regole di denominazione del gruppo: by default, choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features. ``` + ```` ### Comando `groupmod` @@ -124,8 +134,8 @@ sudo groupmod -g 1016 GroupP sudo groupmod -n GroupC GroupB ``` -| Opzione | Osservazioni | -| --------- | ------------------------------------- | +| Opzione | Descrizione | +| --------- | ----------------------------------------------------- | | `-g GID` | Nuovo `GID` del gruppo da modificare. | | `-n name` | Nuovo nome. | @@ -153,34 +163,39 @@ sudo groupdel GroupC !!! Tip "Suggerimento" + ```` Quando si elimina un gruppo, possono verificarsi due condizioni: - + * Se un utente ha un gruppo primario unico e si lancia il comando `groupdel` su quel gruppo, verrà indicato che c'è un utente specifico sotto il gruppo e che non può essere cancellato. * Se un utente appartiene a un gruppo supplementare (non il gruppo primario dell'utente) e tale gruppo non è il gruppo primario di un altro utente del sistema, il comando `groupdel` eliminerà il gruppo senza ulteriori richieste. - + Esempi: - + ```bash $ sudo useradd test $ id test uid=1000(test) gid=1000(test) group=1000(test) $ sudo groupdel test groupdel: cannot remove the primary group of user 'test' - + $ sudo usermod -g users -G test test $ id test uid=1000(test) gid=100(users) group=100(users),1000(test) $ sudo groupdel test ``` + ```` !!! Tip "Suggerimento" + ``` Quando si elimina un utente con il comando `userdel -r`, viene eliminato anche il gruppo primario corrispondente. Il nome del gruppo primario di solito corrisponde al nome dell'utente. + ``` !!! Tip "Suggerimento" + ```` Ogni gruppo ha un `GID` univoco. Più utenti possono utilizzare un gruppo come gruppo supplementare. Per convenzione, il GID del super amministratore è 0. Il GIDS riservato ad alcuni servizi o processi è 201-999, chiamato gruppo di sistema o gruppo di pseudo-utenti. Il GID per gli utenti è solitamente maggiore o uguale a 1000. Questi sono relativi a /etc/login.defs, di cui parleremo più tardi. - + ```bash # Comment line ignored shell > cat /etc/login.defs @@ -203,10 +218,13 @@ sudo groupdel GroupC USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512 ``` + ```` !!! Tip "Suggerimento" + ``` Poiché un utente fa necessariamente parte di un gruppo, è meglio creare i gruppi prima di aggiungere gli utenti. Pertanto, un gruppo potrebbe non avere alcun membro. + ``` ### file `/etc/group` @@ -218,14 +236,16 @@ GroupP:x:516:patrick (1) (2)(3) (4) ``` -* 1: Nome del gruppo. -* 2: La password del gruppo è identificata da una `x`. La password del gruppo è memorizzata in `/etc/gshadow`. -* 3: GID. -* 4: Utenti supplementari del gruppo (escluso l'utente primario unico). +- 1: Nome del gruppo. +- 2: La password del gruppo è identificata da una `x`. La password del gruppo è memorizzata in `/etc/gshadow`. +- 3: GID. +- 4: Utenti supplementari del gruppo (escluso l'utente primario unico). !!! Note "Nota" + ``` Ogni riga del file `/etc/group` corrisponde a un gruppo. Le informazioni sull'utente principale sono memorizzate in `/etc/passwd`. + ``` ### file `/etc/gshadow` @@ -237,16 +257,19 @@ GroupA:$6$2,9,v...SBn160:alain:rockstar (1) (2) (3) (4) ``` -* 1: Nome del gruppo. -* 2: Password criptata. -* 3: Nome dell'amministratore del gruppo. -* 4: Utenti supplementari del gruppo (escluso l'utente primario unico). +- 1: Nome del gruppo. +- 2: Password criptata. +- 3: Nome dell'amministratore del gruppo. +- 4: Utenti supplementari del gruppo (escluso l'utente primario unico). !!! Warning "Attenzione" + ``` I nomi dei gruppi in **/etc/group** e **/etc/gshadow** devono corrispondere uno a uno. Cioè, ogni riga del file **/etc/group** deve avere una riga corrispondente nel file **/etc/gshadow**. + ``` -Un `!` nella password indica che è bloccata. In questo modo, nessun utente può utilizzare la password per accedere al gruppo (poiché i membri del gruppo non ne hanno bisogno). +Un `!` nella password indica che è bloccata. +In questo modo, nessun utente può utilizzare la password per accedere al gruppo (poiché i membri del gruppo non ne hanno bisogno). ## Gestione utenti @@ -254,24 +277,24 @@ Un `!` nella password indica che è bloccata. In questo modo, nessun utente può Un utente è definito come segue nel file `/etc/passwd`: -* 1: Login name; -* 2: Identificazione della password, `x` indica che l'utente ha una password, la password criptata è memorizzata nel secondo campo di `/etc/shadow`; -* 3: UID; -* 4: GID del gruppo primario; -* 5: Commenti; -* 6: Home directory; -* 7: Shell (`/bin/bash`, `/bin/nologin`, ...). +- 1: Login name; +- 2: Identificazione della password, `x` indica che l'utente ha una password, la password criptata è memorizzata nel secondo campo di `/etc/shadow`; +- 3: UID; +- 4: GID del gruppo primario; +- 5: Commenti; +- 6: Home directory; +- 7: Shell (`/bin/bash`, `/bin/nologin`, ...). Esistono tre tipi di utenti: -* **root(uid=0)**: l'amministratore di sistema; -* **utente di sistema(uid è uno dei 201~999)**: Utilizzato dal sistema per gestire i diritti di accesso alle applicazioni; -* **utente normale (uid>=1000)**: Altro account per accedere al sistema. +- **root(uid=0)**: l'amministratore di sistema; +- **utente di sistema(uid è uno dei 201~999)**: Utilizzato dal sistema per gestire i diritti di accesso alle applicazioni; +- **utente normale (uid>=1000)**: Altro account per accedere al sistema. File modificati, righe aggiunte: -* `/etc/passwd` -* `/etc/shadow` +- `/etc/passwd` +- `/etc/shadow` ### comando `useradd` @@ -287,17 +310,17 @@ Esempio: sudo useradd -u 1000 -g 1013 -d /home/GroupC/carine carine ``` -| Opzione | Descrizione | -| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `-u UID` | `UID` dell'utente da creare. | +| Opzione | Descrizione | +| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `-u UID` | `UID` dell'utente da creare. | | `-g GID` | `GID` del gruppo primario. Il `GID` qui può anche essere un `nome di un gruppo`. | -| `-G GID1,[GID2]...` | `GID` dei gruppi supplementari. Il `GID` qui può anche essere un `nome di un gruppo`. È possibile specificare molti gruppi supplementari separati da virgole. | -| `-d directory` | Crea la directory home. | -| `-s shell` | Specifica la shell dell'utente. | -| `-c COMMENT` | Aggiunge un commento. | +| `-G GID1,[GID2]...` | `GID` dei gruppi supplementari. Il `GID` qui può anche essere un `nome di un gruppo`. È possibile specificare molti gruppi supplementari separati da virgole. | +| `-d directory` | Crea la directory home. | +| `-s shell` | Specifica la shell dell'utente. | +| `-c COMMENT` | Aggiunge un commento. | | `-U` | Aggiunge l'utente a un gruppo con lo stesso nome che viene creato nello stesso momento. Se non viene specificato, la creazione di un gruppo con lo stesso nome avviene durante la creazione dell'utente. | -| `-M` | Non crea la home directory dell'utente. | -| `-r` | Crea un account di sistema. | +| `-M` | Non crea la home directory dell'utente. | +| `-r` | Crea un account di sistema. | Alla creazione, l'account non ha una password ed è bloccato. @@ -305,12 +328,12 @@ L'utente deve assegnare una password per sbloccare l'account. Quando si richiama il comando `useradd` senza alcuna opzione, vengono impostate le seguenti impostazioni predefinite per il nuovo utente: -* Crea una home directory con lo stesso nome; -* Crea un gruppo primario con lo stesso nome; -* La shell predefinita è bash; -* I valori UID e GID del gruppo primario dell'utente vengono automaticamente detratti. Questo è di solito un valore unico tra 1000 e 60.000. +- Crea una home directory con lo stesso nome; +- Crea un gruppo primario con lo stesso nome; +- La shell predefinita è bash; +- I valori UID e GID del gruppo primario dell'utente vengono automaticamente detratti. Questo è di solito un valore unico tra 1000 e 60.000. -!!! note "Nota" +!!! note Le impostazioni e i valori predefiniti si ottengono dai seguenti file di configurazione: @@ -323,8 +346,7 @@ $ tail -n 1 /etc/passwd test1:x:1000:1000::/home/test1:/bin/bash $ tail -n 1 /etc/shadow -test1:!!:19253:0:99999:7 -::: +test1:!!:19253:0:99999:7::: $ tail -n 1 /etc/group ; tail -n 1 /etc/gshadow test1:x:1000: @@ -333,15 +355,17 @@ test1:!:: Regole di denominazione dell'account: -* Sono ammessi lettere minuscole, numeri e trattini bassi; altri caratteri speciali come asterischi, segni di percentuale e simboli a tutta larghezza non sono accettati. -* Anche se è possibile utilizzare un nome utente in maiuscolo in RockyLinux, non lo raccomandiamo; -* Opzionale: imposta le opzioni `-u`, `-g`, `-d` e `-s` alla creazione. -* Diverso dal nome di un gruppo o file di sistema esistente; -* Il nome utente può contenere fino a 32 caratteri. +- Sono ammessi lettere minuscole, numeri e trattini bassi; altri caratteri speciali come asterischi, segni di percentuale e simboli a tutta larghezza non sono accettati. +- Anche se è possibile utilizzare un nome utente in maiuscolo in RockyLinux, non lo raccomandiamo; +- Opzionale: imposta le opzioni -u, -g, -d e -s alla creazione. +- Diverso dal nome di un gruppo o file di sistema esistente; +- Il nome utente può contenere fino a 32 caratteri. !!! Warning "Attenzione" + ``` L'utente deve creare la home directory, ad eccezione dell'ultima directory. + ``` L'ultima directory viene creata dal comando `useradd`, che approfitta dell'occasione per copiarvi i file da `/etc/skel`. @@ -355,14 +379,16 @@ sudo useradd -u 1000 -g GroupA -G GroupP,GroupC albert !!! Note "Nota" + ```` In **Debian**, è necessario specificare l'opzione `-m` per forzare la creazione della directory di login o impostare la variabile `CREATE_HOME` nel file `/etc/login.defs`. In tutti i casi, l'amministratore dovrebbe usare i comandi `adduser` e `deluser` come specificato in `man`, tranne che negli script destinati ad essere trasferiti a tutte le distribuzioni Linux: - + ``` $ man useradd DESCRIPTION **useradd** is a low-level utility for adding users. On Debian, administrators should usually use **adduser(8)** instead. ``` + ```` #### Valore predefinito per la creazione di un utente @@ -378,8 +404,8 @@ Esempio: sudo useradd -D -g 1000 -b /home -s /bin/bash ``` -| Opzione | Descrizione | -| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Opzione | Descrizione | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `-D` | Imposta i valori predefiniti per la creazione dell'utente. | | `-b base_directory` | Definisce la directory di base per la home directory dell'utente. Se non si specifica questa opzione, si utilizza la variabile HOME nel file /etc/default/useradd o /home/ | | `-g group` | Imposta il gruppo predefinito. | @@ -403,19 +429,21 @@ sudo usermod -u 1044 carine Opzioni identiche al comando `useradd`. -| Opzione | Descrizione | -| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Opzione | Descrizione | +| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `-m` | Associato all'opzione `-d`. Sposta il contenuto della vecchia directory di login in quella nuova. Se la vecchia home directory non esiste, la creazione di una nuova home directory non avviene; la creazione della nuova home directory avviene se non esiste. | -| `-l login` | Modifica il nome di accesso. Dopo aver modificato il nome di accesso, è anche necessario modificare il nome della directory home per abbinarlo. | -| `-e YYYY-MM-DD` | Modifica la data di scadenza dell'account. | -| `-L` | Blocca l'account in modo permanente. Cioè, aggiunge un `!` all'inizio del campo della password `/etc/shadow`. | -| `-U` | Sblocca l'account. | -| `-a` | Aggiunge i gruppi supplementari dell'utente, che devono essere usati insieme all'opzione `-G`. | -| `-G` | Modifica i gruppi supplementari dell'utente e sovrascrive i gruppi supplementari precedenti. | +| `-l login` | Modifica il nome di accesso. Dopo aver modificato il nome di accesso, è anche necessario modificare il nome della directory home per abbinarlo. | +| `-e YYYY-MM-DD` | Modifica la data di scadenza dell'account. | +| `-L` | Blocca l'account in modo permanente. Cioè, aggiunge un `!` all'inizio del campo della password `/etc/shadow`. | +| `-U` | Sblocca l'account. | +| `-a` | Aggiunge i gruppi supplementari dell'utente, che devono essere usati insieme all'opzione `-G`. | +| `-G` | Modifica i gruppi supplementari dell'utente e sovrascrive i gruppi supplementari precedenti. | !!! Tip "Suggerimento" + ``` Per essere modificato, un utente deve essere disconnesso e non avere processi in corso. + ``` Dopo la modifica dell'identificatore, i file appartenenti all'utente hanno un `UID` sconosciuto. Deve essere riassegnato il nuovo `UID`. @@ -430,8 +458,7 @@ Blocco e sblocco degli account utente. Gli esempi sono i seguenti: ```bash $ usermod -L test1 $ grep test1 /etc/shadow -test1:!$6$n.hxglA.X5r7X0ex$qCXeTx.kQVmqsPLeuvIQnNidnSHvFiD7bQTxU7PLUCmBOcPNd5meqX6AEKSQvCLtbkdNCn.re2ixYxOeGWVFI0:19259:0:99999:7 -::: +test1:!$6$n.hxglA.X5r7X0ex$qCXeTx.kQVmqsPLeuvIQnNidnSHvFiD7bQTxU7PLUCmBOcPNd5meqX6AEKSQvCLtbkdNCn.re2ixYxOeGWVFI0:19259:0:99999:7::: $ usermod -U test1 ``` @@ -472,13 +499,15 @@ sudo userdel -r carine !!! Tip "Suggerimento" + ``` Per essere eliminato, un utente deve essere disconnesso e non avere processi in esecuzione. + ``` Il comando `userdel` rimuove le righe corrispondenti in `/etc/passwd`, `/ etc/shadow`, `/etc/group`, `/etc/gshadow`. Come accennato in precedenza, `userdel -r` cancellerà anche il corrispondente gruppo primario dell'utente. ### file `/etc/passwd` -Questo file contiene le informazioni utente (divise da `:`). +Questo file contiene le informazioni utente (separate da `:`). ```bash $ sudo head -1 /etc/passwd @@ -486,13 +515,13 @@ root:x:0:0:root:/root:/bin/bash (1)(2)(3)(4)(5) (6) (7) ``` -* 1: Login name; -* 2: Identificazione della password, `x` indica che l'utente ha una password, la password criptata è memorizzata nel secondo campo di `/etc/shadow`; -* 3: UID. -* 4: GID del gruppo primario; -* 5: Commenti; -* 6: Home directory; -* 7: Shell (`/bin/bash`, `/bin/nologin`, ...). +- 1: Login name; +- 2: Identificazione della password, `x` indica che l'utente ha una password, la password criptata è memorizzata nel secondo campo di `/etc/shadow`; +- 3: UID; +- 4: GID del gruppo primario; +- 5: Commenti; +- 6: Home directory; +- 7: Shell (`/bin/bash`, `/bin/nologin`, ...). ### file `/etc/shadow` @@ -500,24 +529,25 @@ Questo file contiene le informazioni di sicurezza degli utenti (separate da `:`) ```bash $ sudo tail -1 /etc/shadow -root:$6$...:15399:0:99999:7 -::: +root:$6$...:15399:0:99999:7::: (1) (2) (3) (4) (5) (6)(7,8,9) ``` -* 1: Nome Login. -* 2: Password criptata. Utilizza l'algoritmo di crittografia SHA512, definito dal `ENCRYPT_METHOD` di `/etc/login.defs`. -* 3: L'ora in cui la password è stata cambiata l'ultima volta, il formato timestamp, in giorni. Il cosiddetto timestamp si basa sul 1 gennaio 1970 come orario standard. Ogni volta che un giorno passa, il timestamp è +1. -* 4: Durata minima della password. Ovvero, l'intervallo di tempo tra due modifiche della password (relative al terzo campo), in giorni. Definito dal `PASS_MIN_DAYS` di `/etc/login.defs`, il valore predefinito è 0, cioè, quando cambi la password per la seconda volta, non c'è alcuna restrizione. Tuttavia, se è 5, significa che non è permesso cambiare la password entro 5 giorni, e solo dopo 5 giorni. -* 5: Durata massima della password. Cioè, il periodo di validità della password (relativo al terzo campo). Definito dal `PASS_MAX_DAYS` di `/etc/login.defs`. -* 6: Il numero di giorni di avviso prima della scadenza della password (relativo al quinto campo). Il valore predefinito è di 7 giorni, definito dal `PASS_WARN_AGE` di `/etc/login.defs`. -* 7: Numero di giorni di tolleranza dopo la scadenza della password (in relazione al quinto campo). -* 8: Tempo di scadenza dell'account, il formato del timestamp, in giorni. **Nota che la scadenza di un account differisce dalla scadenza di una password. In caso di scadenza di un account, l'utente non può effettuare il login. In caso di scadenza della password, all'utente non è consentito effettuare il login utilizzando la sua password.** -* 9: Riservato per un uso futuro. +- 1: Nome Login. +- 2: Password criptata. Utilizza l'algoritmo di crittografia SHA512, definito dal `ENCRYPT_METHOD` di `/etc/login.defs`. +- 3: L'ora in cui la password è stata cambiata l'ultima volta, il formato timestamp, in giorni. Il cosiddetto timestamp si basa sul 1 gennaio 1970 come orario standard. Ogni volta che un giorno passa, il timestamp è +1. +- 4: Durata minima della password. Ovvero, l'intervallo di tempo tra due modifiche della password (relative al terzo campo), in giorni. Definito dal `PASS_MIN_DAYS` di `/etc/login.defs`, il valore predefinito è 0, cioè, quando cambi la password per la seconda volta, non c'è alcuna restrizione. Tuttavia, se è 5, significa che non è permesso cambiare la password entro 5 giorni, e solo dopo 5 giorni. +- 5: Durata massima della password. Cioè, il periodo di validità della password (relativo al terzo campo). Definito dal `PASS_MAX_DAYS` di `/etc/login.defs`. +- 6: Il numero di giorni di avviso prima della scadenza della password (relativo al quinto campo). Il valore predefinito è di 7 giorni, definito dal `PASS_WARN_AGE` di `/etc/login.defs`. +- 7: Numero di giorni di tolleranza dopo la scadenza della password (in relazione al quinto campo). +- 8: Tempo di scadenza dell'account, il formato del timestamp, in giorni. **Nota che la scadenza di un account differisce dalla scadenza di una password. In caso di scadenza di un account, l'utente non può effettuare il login. In caso di scadenza della password, all'utente non è consentito effettuare il login utilizzando la sua password.** +- 9: Riservato per un uso futuro. !!! Danger "Pericolo" + ``` Per ogni riga del file `/etc/passwd` deve esserci una riga corrispondente nel file `/etc/shadow`. + ``` Per la conversione della data e dell'ora, fare riferimento al seguente formato di comando: @@ -533,7 +563,9 @@ $ echo $(($(date --date="2018-07-06" +%s)/86400+1)) !!! Danger "Pericolo" + ``` Tutti i file appartengono necessariamente a un utente e a un gruppo. + ``` Per impostazione predefinita, il gruppo primario dell'utente che crea il file è il gruppo proprietario del file. @@ -555,8 +587,8 @@ sudo chown root myfile sudo chown albert:GroupA myfile ``` -| Opzione | Descrizione | -| ------- | ---------------------------------------------------------------------------------------- | +| Opzione | Descrizione | +| ------- | -------------------------------------------------------------------------------------------------------- | | `-R` | Cambia ricorsivamente i proprietari della directory e di tutti i file in essa contenuti. | | `-v` | Visualizza le modifiche. | @@ -604,20 +636,22 @@ Esempio: sudo chgrp group1 file ``` -| Opzione | Descrizione | -| ------- | ------------------------------------------------------------------------------- | +| Opzione | Descrizione | +| ------- | ------------------------------------------------------------------------------------------------------------------ | | `-R` | Modifica i gruppi proprietari della directory e dei suoi contenuti (ricorsivo). | -| `-v` | Visualizza le modifiche. | +| `-v` | Visualizza le modifiche. | !!! Note "Nota" + ``` È possibile applicare a un file un proprietario e un gruppo di proprietari prendendo come riferimento quelli di un altro file: + ``` ```bash chown [options] --reference=RRFILE FILE ``` -Per esempio: +Ad esempio: ```bash chown --reference=/etc/groups /etc/passwd @@ -640,12 +674,12 @@ $ sudo gpasswd -A alain GroupA [alain]$ gpasswd -a patrick GroupA ``` -| Opzione | Descrizione | -| ------------- | -------------------------------------------------------------------------------------------- | -| `-a login` | Aggiunge l'utente al gruppo. Per l'utente aggiunto, questo gruppo è un gruppo supplementare. | -| `-A login` | Imposta l'elenco degli utenti amministrativi. | -| `-d USER` | Rimuove l'utente dal gruppo. | -| `-M USER,...` | Imposta l'elenco dei membri del gruppo. | +| Opzione | Descrizione | +| ------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `-a USER` | Aggiunge l'utente al gruppo. Per l'utente aggiunto, questo gruppo è un gruppo supplementare. | +| `-A USER,...` | Imposta l'elenco degli utenti amministrativi. | +| `-d USER` | Rimuove l'utente dal gruppo. | +| `-M USER,...` | Imposta l'elenco dei membri del gruppo. | Il comando `gpasswd -M` agisce come una modifica, non come un'aggiunta. @@ -655,7 +689,7 @@ New Password: Re-enter new password: ``` -!!! note "Nota" +!!! note Oltre a usare `gpasswd -a` per aggiungere utenti a un gruppo, si può anche usare `usermod -G` o `usermod -aG` menzionati prima. @@ -738,29 +772,29 @@ sudo passwd -l albert sudo passwd -n 60 -x 90 -w 80 -i 10 patrick ``` -| Opzione | Descrizione | -| --------- | --------------------------------------------------------------------------------------------------------------------- | -| `-d` | Rimuove in modo permanente la password. Solo per root (uid=0). | -| `-l` | Blocca in modo permanente l'account utente. Solo per root (uid=0). | -| `-S` | Visualizza lo stato dell'account. Solo per root (uid=0). | -| `-u` | Sblocca in modo permanente l'account utente. Solo per root (uid=0). | -| `-e` | Fa scadere definitivamente la password. Solo per root (uid=0). | -| `-n DAYS` | Definisce la durata minima della password. Cambiamento permanente. Solo per root (uid=0). | -| `-x DAYS` | Definisce la durata massima della password. Cambiamento permanente. Solo per root (uid=0). | -| `-w DAYS` | Definisce il tempo di avviso prima della scadenza. Cambiamento permanente. Solo per root (uid=0). | -| `-i DAYS` | Definisce il ritardo prima della disattivazione quando la password scade. Modifica permanente. Solo per root (uid=0). | +| Opzione | Descrizione | +| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `-d` | Rimuove in modo permanente la password. Solo per root (uid=0). | +| `-l` | Blocca in modo permanente l'account utente. Solo per root (uid=0). | +| `-S` | Visualizza lo stato dell'account. Solo per root (uid=0). | +| `-u` | Sblocca in modo permanente l'account utente. Solo per root (uid=0). | +| `-e` | Fa scadere definitivamente la password. Solo per root (uid=0). | +| `-n DAYS` | Definisce la durata minima della password. Cambiamento permanente. Solo per root (uid=0). | +| `-x DAYS` | Definisce la durata massima della password. Cambiamento permanente. Solo per root (uid=0). | +| `-w DAYS` | Definisce il tempo di avviso prima della scadenza. Cambiamento permanente. Solo per root (uid=0). | +| `-i DAYS` | Definisce il ritardo prima della disattivazione quando la password scade. Cambiamento permanente. Solo per root (uid=0). | Usare `password -l`, cioè aggiungere "!!" all'inizio del campo della password dell'utente corrispondente a `/etc/shadow`. Esempio: -* Alain cambia la sua password: +- Alain cambia la sua password: ```bash [alain]$ passwd ``` -* root cambia la password di Alain +- root cambia la password di Alain ```bash sudo passwd alain @@ -768,7 +802,9 @@ sudo passwd alain !!! Note "Nota" + ``` Gli utenti connessi al sistema possono usare il comando `passwd` per cambiare la propria password (questo processo richiede la richiesta della vecchia password dell'utente). L'utente root(uid=0) può cambiare la password di qualsiasi utente. + ``` La modifica delle password richiede la conformità ai criteri di sicurezza prescritti, il che implica la conoscenza di **PAM (Pluggable Authentication Modules)**. @@ -784,7 +820,9 @@ sudo echo "azerty,1" | passwd --stdin philippe !!! Warning "Attenzione" + ``` La password viene inserita in chiaro, mentre `passwd` la cripta. + ``` ### comando `chage` @@ -800,17 +838,17 @@ Esempio: sudo chage -m 60 -M 90 -W 80 -I 10 alain ``` -| Opzione | Descrizione | -| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `-I DAYS` | Definisce i giorni di ritardo prima della disattivazione, a password scaduta. Cambiamento permanente. | -| `-l` | Visualizza i dettagli della politica. | -| `-m DAYS` | Definisce la durata minima della password. Cambiamento permanente. | -| `-M DAYS` | Definisce la durata massima della password. Cambiamento permanente. | +| Opzione | Descrizione | +| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `-i DAYS` | Definisce i giorni di ritardo prima della disattivazione, a password scaduta. Cambiamento permanente. | +| `-l` | Visualizza i dettagli della politica. | +| `-m DAYS` | Definisce la durata minima della password. Cambiamento permanente. | +| `-M DAYS` | Definisce la durata massima della password. Cambiamento permanente. | | `-d LAST_DAY` | Definisce il numero di giorni dall'ultima modifica della password. È possibile utilizzare lo stile di data e ora dei giorni o lo stile YYYY-MM-DD. Cambiamento permanente. | -| `-E EXPIRE_DATE` | Definisce la data di scadenza dell'account. È possibile utilizzare lo stile di data e ora dei giorni o lo stile YYYY-MM-DD. Modifica permanente. | -| `-W WARN_DAYS` | Definisce il numero di giorni di avviso prima della scadenza. Cambiamento permanente. | +| `-E EXPIRE_DATE` | Definisce la data di scadenza dell'account. È possibile utilizzare lo stile di data e ora dei giorni o lo stile YYYY-MM-DD. Cambiamento permanente. | +| `-W WARN_DAYS` | Definisce il numero di giorni di avviso prima della scadenza. Cambiamento permanente. | -Esempio: +Esempi: ```bash # Il comando `chage` offre anche una modalità interattiva. @@ -826,15 +864,17 @@ $ sudo chage -d 0 philippe File di configurazione: -* `/etc/default/useradd` -* `/etc/login.defs` -* `/etc/skel` +- `/etc/default/useradd` +- `/etc/login.defs` +- `/etc/skel` !!! Note "Nota" + ``` La modifica del file `/etc/default/useradd` viene eseguita con il comando `useradd`. Gli altri file devono essere modificati con un editor di testo. + ``` ### file `/etc/default/useradd` @@ -842,7 +882,7 @@ Questo file contiene le impostazioni predefinite dei valori. !!! Tip "Suggerimento" - Se le opzioni non vengono specificate durante la creazione di un utente, il sistema utilizza i valori predefiniti presenti in `/etc/default/useradd`. +Se le opzioni non vengono specificate durante la creazione di un utente, il sistema utilizza i valori predefiniti presenti in `/etc/default/useradd`. Questo file viene modificato dal comando `useradd -D` (`useradd -D` inserito senza altre opzioni visualizza il contenuto del file `/etc/default/useradd`). @@ -857,15 +897,15 @@ SKEL=/etc/skel CREATE_MAIL_SPOOL=yes ``` -| Parametri | Commento | -| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `GROUP` | Definisce il GID del gruppo primario predefinito. | -| `HOME` | Definisce il percorso della directory del livello superiore della home directory dell'utente comune. | +| Parametri | Commento | +| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `GROUP` | Definisce il GID del gruppo primario predefinito. | +| `HOME` | Definisce il percorso della directory del livello superiore della home directory dell'utente comune. | | `INACTIVE` | Numero di giorni di tolleranza dopo la scadenza della password. Corrisponde al 7° campo del file `/etc/shadow`. Il valore `-1` indica che il periodo di tolleranza è disattivato. | -| `EXPIRE` | Definisce la data di scadenza dell'account. Corrisponde all'ottavo campo del file `/etc/shadow`. | -| `SHELL` | Definisce l'interprete dei comandi. | -| `SKEL` | Definisce la struttura della directory di login. | -| `CREATE_MAIL_SPOOL` | Definisce la creazione della cassetta postale in `/var/spool/mail/`. | +| `EXPIRE` | Definisce la data di scadenza dell'account. Corrisponde all'ottavo campo del file `/etc/shadow`. | +| `SHELL` | Definisce l'interprete dei comandi. | +| `SKEL` | Definisce la struttura della directory di login. | +| `CREATE_MAIL_SPOOL` | Definisce la creazione della cassetta postale in `/var/spool/mail/`. | Se non si ha bisogno di un gruppo primario con lo stesso nome quando si creano gli utenti, si può fare in questo modo: @@ -875,10 +915,10 @@ Shell > id test2 uid=1001(test2) gid=100(users) groups=100(users) ``` -!!! note "Nota" +!!! note GNU/Linux ha due meccanismi di gruppo: - + 1. Gruppo pubblico, il suo gruppo primario è GID=100 2. Gruppo privato, ovvero, quando si aggiungono utenti, viene creato un gruppo con lo stesso nome come gruppo primario. Questo meccanismo di gruppo è comunemente usato da RHEL e dalle relative distribuzioni a valle. @@ -886,7 +926,7 @@ uid=1001(test2) gid=100(users) groups=100(users) ```bash # Comment line ignored -shell > cat /etc/login.defs +shell > cat /etc/login.defs MAIL_DIR /var/spool/mail UMASK 022 HOME_MODE 0700 @@ -907,7 +947,7 @@ USERGROUPS_ENAB yes ENCRYPT_METHOD SHA512 ``` -`UMASK 022`: Questo significa che il permesso di creare un file è 755 (rwxr-xr-x). Tuttavia, per motivi di sicurezza, GNU/Linux non prevede il permesso **x** per i file appena creati. Questa restrizione si applica a root (uid=0) e agli utenti ordinari (uid>=1000). Per esempio: +`UMASK 022`: Questo significa che il permesso di creare un file è 755 (rwxr-xr-x). Tuttavia, per motivi di sicurezza, GNU/Linux non prevede il permesso **x** per i file appena creati. Questa restrizione si applica a root (uid=0) e agli utenti ordinari (uid>=1000). Ad esempio: ```bash Shell > touch a.txt @@ -933,9 +973,9 @@ Quando viene creato un utente, vengono creati la sua home directory e i suoi fil Questi file vengono copiati automaticamente dalla directory `/etc/skel`. -* `.bash_logout` -* `.bash_profile` -* `.bashrc` +- `.bash_logout` +- `.bash_profile` +- `.bashrc` Tutti i file e le directory presenti in questa directory verranno copiati nell'albero utente al momento della creazione. @@ -956,8 +996,8 @@ $ sudo su - alain [albert]$ su - root -c "passwd alain" ``` -| Opzione | Descrizione | -| ------------ | ----------------------------------------------------------- | +| Opzione | Descrizione | +| ------------ | --------------------------------------------------------------------------- | | `-` | Carica l'ambiente completo dell'utente. | | `-c` comando | Esegue il comando sotto l'identità dell'utente specificato. | @@ -967,22 +1007,24 @@ Gli utenti standard dovranno digitare la password per la nuova identità. !!! Tip "Suggerimento" + ```` È possibile utilizzare il comando `exit`/`logout` per uscire dagli utenti commutati. Si noti che dopo il cambio di utente non esiste una nuova `child shell` o `sub shell`, ad esempio: - + ``` $ whoami root $ echo $SHLVL ; echo $BASH_SUBSHELL 1 0 - + $ su - test1 $ echo $SHLVL ; echo $BASH_SUBSHELL 1 0 ``` + ```` -Attenzione prego! `su` e `su -` sono diversi, come mostrato nell'esempio seguente: +Attention please! `su` e `su -` sono diversi, come mostrato nell'esempio seguente: ```bash $ whoami diff --git a/docs/books/nvchad/additional_software.it.md b/docs/books/nvchad/additional_software.it.md index 183cc6c179..bc5555dee3 100644 --- a/docs/books/nvchad/additional_software.it.md +++ b/docs/books/nvchad/additional_software.it.md @@ -14,39 +14,43 @@ Esistono diversi software aggiuntivi che, pur non essendo necessari, facilitano ## :material-text-search: RipGrep -`ripgrep` è uno strumento di ricerca orientato alla riga di comando che ricerca ricorsivamente la directory corrente per un modello di *regex* (espressione regolare). Per impostazione predefinita, *ripgrep* rispetta le regole di *gitignore* e salta automaticamente i file/directory e i file binari nascosti. Ripgrep offre un eccellente supporto su Windows, macOS e Linux, con binari disponibili per ogni release. +`ripgrep` è uno strumento di ricerca orientato alla riga di comando che ricerca ricorsivamente la directory corrente per un modello di _regex_ (espressione regolare). Per impostazione predefinita, _ripgrep_ rispetta le regole di _gitignore_ e salta automaticamente i file/directory e i file binari nascosti. Ripgrep offre un eccellente supporto su Windows, macOS e Linux, con binari disponibili per ogni release. -=== "Installare RipGrep da EPEL" +\=== "Installare RipGrep da EPEL" + ```` In entrambi Rocky Linux 8 e 9, è possibile installare RipGrep dall'EPEL. Per farlo, installare la `epel-release`, aggiornare il sistema e quindi installare `ripgrep`: - + ```bash sudo dnf install -y epel-release sudo dnf upgrade sudo dnf install ripgrep ``` + ```` -=== "Installare RipGrep usando cargo" +\=== "Installare RipGrep usando cargo" + ```` Ripgrep è un software scritto in *Rust* ed è installabile con l'utilità `cargo`. Da notare, tuttavia, che `cargo' non è installato dall'installazione predefinita di *rust*, quindi è necessario installarlo esplicitamente. Se si verificano errori con questo metodo, tornare all'installazione da EPEL. - + ```bash dnf install rust cargo ``` - - + + Una volta installato il software necessario, si può installare `ripgrep` con: - + ```bash cargo install ripgrep ``` - - + + L'installazione salverà l'eseguibile `rg` nella cartella `~/.cargo/bin`, che è al di fuori del PATH; per utilizzarlo a livello utente, sarà necessario collegarlo a `~/.local/bin/`. - + ```bash ln -s ~/.cargo/bin/rg ~/.local/bin/ ``` + ```` ## :material-check-all: Verificare RipGrep @@ -63,7 +67,7 @@ RipGrep è necessario per le ricerche ricorsive con `:Telescope`. ## :material-source-merge: Lazygit -[LazyGit](https://github.com/jesseduffield/lazygit) è un'interfaccia in stile ncurses che consente di eseguire tutte le operazioni di `git` in maniera più agevole. È richiesto dal plugin ==lazygit.nvim==. Questo plugin consente di utilizzare LazyGit direttamente da NvChad, aprendo una finestra fluttuante da cui è possibile eseguire tutte le operazioni sui repository, consentendo così di apportare tutte le modifiche al *repository di Git* senza uscire dall'editor. +[LazyGit](https://github.com/jesseduffield/lazygit) è un'interfaccia in stile ncurses che consente di eseguire tutte le operazioni di `git` in maniera più agevole. È richiesto dal plugin ==lazygit.nvim==. Questo plugin consente di utilizzare LazyGit direttamente da NvChad, aprendo una finestra fluttuante da cui è possibile eseguire tutte le operazioni sui repository, consentendo così di apportare tutte le modifiche al _repository di Git_ senza uscire dall'editor. Per installarlo si può utilizzare il repository di Fedora. Su Rocky Linux 9 funziona perfettamente. diff --git a/docs/books/nvchad/index.it.md b/docs/books/nvchad/index.it.md index 6377f61f0c..b7443ae970 100644 --- a/docs/books/nvchad/index.it.md +++ b/docs/books/nvchad/index.it.md @@ -19,9 +19,9 @@ Volete un IDE che vi aiuti a scrivere i playbook di Ansible? Puoi ottenerlo! Vol Grazie all'uso dei ==**L**anguage **S**erver **P**rotocols== e dei ==linters==, è possibile configurare un ambiente personalizzato per l'utente. La cosa migliore è che una volta configurato l'ambiente, è possibile aggiornarlo rapidamente quando sono disponibili nuove modifiche attraverso l'uso di [lazy.nvim](https://github.com/folke/lazy.nvim) e [Mason](https://github.com/williamboman/mason.nvim), entrambi trattati qui. -Poiché Neovim è un fork di [Vim](https://www.vim.org/), l'interfaccia generale sarà familiare agli utenti di *vim*. Se non siete utenti di *vim*, con questo libro imparerete rapidamente la sintassi dei comandi. Le informazioni trattate sono molte, ma è facile seguirle e, una volta completato il contenuto, saprete abbastanza per costruire il vostro IDE per *le vostre* esigenze con questi strumenti. +Poiché Neovim è un fork di [Vim](https://www.vim.org/), l'interfaccia generale sarà familiare agli utenti di _vim_. Se non siete utenti di _vim_, con questo libro imparerete rapidamente la sintassi dei comandi. Le informazioni trattate sono molte, ma è facile seguirle e, una volta completato il contenuto, saprete abbastanza per costruire il vostro IDE per _le vostre_ esigenze con questi strumenti. -L'intento dell'autore era quello di **non** suddividere il libro in capitoli. Il motivo è che ciò implica un ordine da seguire che, nella maggior parte dei casi, non è necessario. *Si* consiglia di iniziare da questa pagina, leggere e seguire le sezioni "Software aggiuntivo", "Installare Neovim" e "Installare NvChad", ma da lì si può scegliere come procedere. +L'intento dell'autore era quello di **non** suddividere il libro in capitoli. Il motivo è che ciò implica un ordine da seguire che, nella maggior parte dei casi, non è necessario. _Si_ consiglia di iniziare da questa pagina, leggere e seguire le sezioni "Software aggiuntivo", "Installare Neovim" e "Installare NvChad", ma da lì si può scegliere come procedere. ## :simple-neovim: Utilizzo di Neovim come IDE @@ -37,12 +37,12 @@ Come gli sviluppatori di NvChad tengono a precisare, il progetto vuole essere so ### Caratteristiche Principali -* :material-run-fast: **Progettato per essere veloce.** Dalla scelta del linguaggio di programmazione alle tecniche di caricamento dei componenti, tutto è stato pensato per ridurre al minimo i tempi di esecuzione. -* :material-invert-colors: **Interfaccia attraente.** Nonostante sia un'applicazione *cli*, l'interfaccia ha un aspetto moderno e bello dal punto di vista grafico, inoltre tutti i componenti si adattano perfettamente all'interfaccia utente. -* :material-file-settings-outline: **Estremamente configurabile.** Grazie alla modularità derivata dall'applicazione di base (NeoVim), l'editor può essere adattato perfettamente alle proprie esigenze. Tuttavia, ricordate che quando parliamo di personalizzazione, ci riferiamo alla funzionalità e non all'aspetto dell'interfaccia. -* :material-update: **Meccanismo di aggiornamento automatico.** L'editor è dotato di un meccanismo (attraverso l'uso di *git*) che consente di effettuare aggiornamenti con un semplice comando `:NvChadUpdate`. -* :material-language-lua: **Powered by Lua**. La configurazione di NvChad è scritta interamente in *lua*, il che le permette di integrarsi perfettamente nella configurazione di Neovim, sfruttando tutte le potenzialità dell'editor su cui si basa. -* :material-palette-outline: **Numerosi temi integrati.** La configurazione comprende già un gran numero di temi da utilizzare, ricordando sempre che stiamo parlando di un'applicazione *cli*, i temi possono essere selezionati con il tasto ` + th`. +- :material-run-fast: **Progettato per essere veloce.** Dalla scelta del linguaggio di programmazione alle tecniche di caricamento dei componenti, tutto è stato pensato per ridurre al minimo i tempi di esecuzione. +- :material-invert-colors: **Interfaccia attraente.** Nonostante sia un'applicazione _cli_, l'interfaccia ha un aspetto moderno e bello dal punto di vista grafico, inoltre tutti i componenti si adattano perfettamente all'interfaccia utente. +- :material-file-settings-outline: **Estremamente configurabile.** Grazie alla modularità derivata dall'applicazione di base (NeoVim), l'editor può essere adattato perfettamente alle proprie esigenze. Tuttavia, ricordate che quando parliamo di personalizzazione, ci riferiamo alla funzionalità e non all'aspetto dell'interfaccia. +- :material-update: **Meccanismo di aggiornamento automatico.** L'editor è dotato di un meccanismo (attraverso l'uso di _git_) che consente di effettuare aggiornamenti con un semplice comando `:NvChadUpdate`. +- :material-language-lua: **Powered by Lua**. La configurazione di NvChad è scritta interamente in _lua_, il che le permette di integrarsi perfettamente nella configurazione di Neovim, sfruttando tutte le potenzialità dell'editor su cui si basa. +- :material-palette-outline: **Numerosi temi integrati.** La configurazione comprende già un gran numero di temi da utilizzare, ricordando sempre che stiamo parlando di un'applicazione _cli_, i temi possono essere selezionati con il tasto ` + th`. ![Temi NvChad](images/nvchad_th.png) @@ -64,28 +64,28 @@ Lua è utilizzato nello sviluppo di videogiochi e motori di gioco (Roblox, Warfr Ci sono due componenti principali di Lua: -* L'interprete Lua -* La macchina virtuale Lua (VM) +- L'interprete Lua +- La macchina virtuale Lua (VM) Lua non viene interpretato direttamente attraverso un file Lua come altri linguaggi, ad esempio Python. Utilizza invece l'interprete Lua per compilare un file Lua in bytecode. L'interprete Lua è altamente portatile e in grado di funzionare su una moltitudine di dispositivi. #### Caratteristiche Principali -* Velocità: Lua è considerato uno dei linguaggi di programmazione più veloci tra i linguaggi di scripting interpretati; può eseguire compiti molto impegnativi dal punto di vista delle prestazioni più velocemente della maggior parte degli altri linguaggi di programmazione. -* Dimensioni: Lua ha dimensioni ridotte rispetto ad altri linguaggi di programmazione. Le dimensioni ridotte sono ideali per integrare Lua in più piattaforme, dai dispositivi embedded ai motori di gioco. -* Portabilità e integrazione: La portabilità di Lua è quasi illimitata. Qualsiasi piattaforma che supporti il compilatore C standard può eseguire Lua senza problemi. Lua non richiede complesse riscritture per essere compatibile con altri linguaggi di programmazione. -* Semplicità: Lua ha un design semplice ma fornisce potenti funzionalità. Una delle caratteristiche principali di Lua sono i meta-meccanismi, che consentono agli sviluppatori di implementare le proprie funzionalità. La sintassi è semplice e facilmente comprensibile, in modo che chiunque possa imparare Lua e utilizzarlo nei propri programmi. -* Licenza: Lua è un software libero e open-source distribuito sotto la licenza MIT. Questo permette a chiunque di utilizzarlo per qualsiasi scopo senza pagare alcuna licenza o royalty. +- Velocità: Lua è considerato uno dei linguaggi di programmazione più veloci tra i linguaggi di scripting interpretati; può eseguire compiti molto impegnativi dal punto di vista delle prestazioni più velocemente della maggior parte degli altri linguaggi di programmazione. +- Dimensioni: Lua ha dimensioni ridotte rispetto ad altri linguaggi di programmazione. Le dimensioni ridotte sono ideali per integrare Lua in più piattaforme, dai dispositivi embedded ai motori di gioco. +- Portabilità e integrazione: La portabilità di Lua è quasi illimitata. Qualsiasi piattaforma che supporti il compilatore C standard può eseguire Lua senza problemi. Lua non richiede complesse riscritture per essere compatibile con altri linguaggi di programmazione. +- Semplicità: Lua ha un design semplice ma fornisce potenti funzionalità. Una delle caratteristiche principali di Lua sono i meta-meccanismi, che consentono agli sviluppatori di implementare le proprie funzionalità. La sintassi è semplice e facilmente comprensibile, in modo che chiunque possa imparare Lua e utilizzarlo nei propri programmi. +- Licenza: Lua è un software libero e open-source distribuito sotto la licenza MIT. Questo permette a chiunque di utilizzarlo per qualsiasi scopo senza pagare alcuna licenza o royalty. ### :simple-neovim: Neovim Neovim è descritto in dettaglio nella sua [pagina dedicata](./install_nvim.md), quindi ci soffermeremo solo sulle caratteristiche principali, che sono: -* Prestazioni: Molto veloce. -* Personalizzabile: Ampio ecosistema di plugin e temi. -* Evidenziazione della sintassi: Integrazione con Treesitter e LSP (richiede alcune configurazioni aggiuntive). -* Multpiattaforma: Linux, Windows e macOS -* Licenza: Mit: Una licenza permissiva breve e semplice con condizioni che richiedono solo la conservazione del copyright e degli avvisi di licenza. +- Prestazioni: Molto veloce. +- Personalizzabile: Ampio ecosistema di plugin e temi. +- Evidenziazione della sintassi: Integrazione con Treesitter e LSP (richiede alcune configurazioni aggiuntive). +- Multpiattaforma: Linux, Windows e macOS +- Licenza: Mit: Una licenza permissiva breve e semplice con condizioni che richiedono solo la conservazione del copyright e degli avvisi di licenza. ### :material-protocol: LSP @@ -101,12 +101,12 @@ L'idea alla base del Language Server Protocol (LSP) è quella di standardizzare Un parser è un componente che scompone i dati in elementi più piccoli per facilitarne la traduzione in un'altra lingua o, come nel nostro caso, per passarli alla libreria di parsing. Una volta scomposto il file sorgente, la libreria di parsing analizza il codice e lo trasforma in un albero sintattico, consentendo di manipolare la struttura del codice in modo più intelligente. In questo modo è possibile migliorare (e velocizzare) -* evidenziazione della sintassi -* navigazione del codice -* refactoring -* oggetti e movimenti del testo +- evidenziazione della sintassi +- navigazione del codice +- refactoring +- oggetti e movimenti del testo -??? note "LSP e complementarità tree-sitter" +??? note "LSP e complementarità tree-sitter" Sebbene possa sembrare che i due servizi (LSP e tree-sitter) siano ridondanti, in realtà sono complementari in quanto LSP lavora a livello di progetto mentre tree-sitter lavora solo sul file sorgente aperto. diff --git a/docs/books/nvchad/install_nvchad.it.md b/docs/books/nvchad/install_nvchad.it.md index c13d61d185..9d1abaefe9 100644 --- a/docs/books/nvchad/install_nvchad.it.md +++ b/docs/books/nvchad/install_nvchad.it.md @@ -15,14 +15,14 @@ tags: Come specificato sul sito di NvChad, è necessario assicurarsi che il sistema soddisfi i seguenti requisiti: -* [Neovim 0.10.0](https://github.com/neovim/neovim/releases/tag/v0.10.0). -* [Nerd Font](https://www.nerdfonts.com/) Impostato nel tuo emulatore di terminale. - * Assicuratevi che il carattere nerd impostato non finisca con **Mono** - * **Esempio:** Carattere Iosevka Nerd e non ~~Iosevka Nerd Font Mono~~ -* [Ripgrep](https://github.com/BurntSushi/ripgrep) è necessario per la ricerca con grep in Telescope **(OPZIONALEL)**. -* GCC and Make +- [Neovim 0.10.0](https://github.com/neovim/neovim/releases/tag/v0.10.0). +- [Nerd Font](https://www.nerdfonts.com/) Impostato nel tuo emulatore di terminale. + - Assicuratevi che il carattere nerd impostato non finisca con **Mono** + - **Esempio:** Carattere Iosevka Nerd e non ~~Iosevka Nerd Font Mono~~ +- [Ripgrep](https://github.com/BurntSushi/ripgrep) è necessario per la ricerca con grep in Telescope **(OPZIONALEL)**. +- GCC and Make -??? warning "Esecuzione di un'Installazione Pulita" +??? warning "" Come specificato nei requisiti, l'installazione di questa nuova configurazione su una precedente può creare problemi irrisolvibili. Si raccomanda un'installazione pulita. @@ -55,7 +55,7 @@ rm -rf ~/.cache/nvim ## :material-monitor-arrow-down-variant: Installazione -La creazione della struttura di configurazione viene realizzata copiando i file da un repository di inizializzazione (==starter==) utilizzando *Git*. Questo metodo consente di installare la configurazione di NvChad, preparata come plugin di Neovim, all'interno del gestore di plugin *lazy.nvim*. +La creazione della struttura di configurazione viene realizzata copiando i file da un repository di inizializzazione (==starter==) utilizzando _Git_. Questo metodo consente di installare la configurazione di NvChad, preparata come plugin di Neovim, all'interno del gestore di plugin _lazy.nvim_. In questo modo, la configurazione viene aggiornata come tutti gli altri plugin, semplificandone la gestione da parte dell'utente. Inoltre, questo approccio rende indipendente l'intera configurazione dell'utente, consentendone la gestione totale e la distribuzione su più macchine. Per scaricare e inizializzare la configurazione, utilizzare il seguente comando: @@ -64,27 +64,27 @@ Per scaricare e inizializzare la configurazione, utilizzare il seguente comando: git clone https://github.com/NvChad/starter ~/.config/nvim && nvim ``` -Il comando è composto da due parti. Il primo scarica il contenuto del repository *starter* in `~/.config/nvim/` (cartella predefinita per le impostazioni di Neovim), mentre il secondo richiama l'eseguibile ==nvim== che inizializza l'editor con la configurazione appena scaricata. Una volta terminata l'installazione dei plugin e dei parser, ci si troverà di fronte alla seguente schermata. Per chiudere il gestore dei plugin, digitare ++"q "++ : +Il comando è composto da due parti. Il primo scarica il contenuto del repository _starter_ in `~/.config/nvim/` (cartella predefinita per le impostazioni di Neovim), mentre il secondo richiama l'eseguibile ==nvim== che inizializza l'editor con la configurazione appena scaricata. Una volta terminata l'installazione dei plugin e dei parser, ci si troverà di fronte alla seguente schermata. Per chiudere il gestore dei plugin, digitare ++"q "++ : ![NvChad Install](images/install_nvchad_25.png) La configurazione iniziale è minimale e costituisce un punto di partenza per la vostra personalizzazione. Come si può notare dalla schermata del primo avvio dell'editor, vengono caricati solo quattro moduli (==plugins==), contrassegnati da un segno di spunta, che sono i seguenti: -* **base46** - fornisce i temi per l'editor -* **NvChad** - la configurazione di base che consente di inserire la configurazione dell'utente in Neovim -* **nvim-treesitter** - per analizzare ed evidenziare il codice -* **ui** - l'interfaccia dell'editor (statusline, tabufline...) +- **base46** - fornisce i temi per l'editor +- **NvChad** - la configurazione di base che consente di inserire la configurazione dell'utente in Neovim +- **nvim-treesitter** - per analizzare ed evidenziare il codice +- **ui** - l'interfaccia dell'editor (statusline, tabufline...) -I moduli rimanenti verranno attivati, grazie alla tecnica del ==*lazyloading*==, quando viene richiesta la funzionalità fornita dal modulo. Questo migliora le prestazioni dell'editor in generale e, in particolare, il suo tempo di avvio. +I moduli rimanenti verranno attivati, grazie alla tecnica del ==_lazyloading_==, quando viene richiesta la funzionalità fornita dal modulo. Questo migliora le prestazioni dell'editor in generale e, in particolare, il suo tempo di avvio. -A questo punto, l'editor è pronto per essere utilizzato. Le sezioni seguenti forniscono uno sguardo approfondito al processo di installazione e non sono necessarie per l'uso quotidiano. Se si è interessati solo al suo utilizzo, si può consultare la pagina [Utilizzare NvChad](./nvchad_ui/using_nvchad.md). +A questo punto, l'editor è pronto per essere utilizzato. Le sezioni seguenti forniscono uno sguardo approfondito al processo di installazione e non sono necessarie per l'uso quotidiano. Se si è interessati solo al suo utilizzo, si può consultare la pagina [Utilizzare NvChad](./nvchad_ui/using_nvchad.md). Tuttavia, si consiglia di leggere la [documentazione ufficiale](https://nvchad.com/docs/quickstart/install) per un'introduzione ai suoi componenti e alle sue funzionalità. Per chiudere l'editor, utilizzare il tasto ++colon++ ++"q "++. ### :material-timer-cog-outline: Bootstrap -Il processo di bootstrap è implementato nel file ==*init.lua*== del repository *starter* e consiste nelle seguenti fasi: +Il processo di bootstrap è implementato nel file ==_init.lua_== del repository _starter_ e consiste nelle seguenti fasi: Un'impostazione iniziale del percorso del tema predefinito e del tasto ``, in questo caso il tasto ++spazio++: @@ -128,7 +128,7 @@ require("lazy").setup({ }, lazy_config) ``` -Quindi si applica il tema alle impostazioni *default* e *statusline*: +Quindi si applica il tema alle impostazioni _default_ e _statusline_: ```lua -- load theme @@ -167,17 +167,17 @@ La struttura installata da NvChad è la seguente: └── README.md ``` -Consiste in un file iniziale **init.lua** che inizializza e coordina l'inserimento delle personalizzazioni nella configurazione di ==Neovim==, questo file inizialmente risulta identico a quello usato dal *bootstrap* del repository **starter** mostrato sopra, ma sarà usato in seguito per caricare altri file nella configurazione, come il proprio file *autocommands.lua*. +Consiste in un file iniziale **init.lua** che inizializza e coordina l'inserimento delle personalizzazioni nella configurazione di ==Neovim==, questo file inizialmente risulta identico a quello usato dal _bootstrap_ del repository **starter** mostrato sopra, ma sarà usato in seguito per caricare altri file nella configurazione, come il proprio file _autocommands.lua_. -Segue il file **lazy-lock.json** in cui sono memorizzati tutti i plugin dell'installazione e il loro stato rispetto allo sviluppo su *GitHub*. Questo file consente di sincronizzare lo stato dell'editor tra le installazioni presenti su più macchine e permette alle installazioni personalizzate di replicare lo stato desiderato. +Segue il file **lazy-lock.json** in cui sono memorizzati tutti i plugin dell'installazione e il loro stato rispetto allo sviluppo su _GitHub_. Questo file consente di sincronizzare lo stato dell'editor tra le installazioni presenti su più macchine e permette alle installazioni personalizzate di replicare lo stato desiderato. Il resto della configurazione si trova nella cartella `lua` e viene inizializzato a partire dal file **chadrc.lua**, che nella versione iniziale contiene solo le impostazioni del tema dell'editor. -Questo file è usato per personalizzare l'aspetto dell'editor (==UI==) e condivide la sintassi con il file [nvconfig.lua](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua) del plugin **NvChad**; per compilarlo, è sufficiente copiare la parte desiderata del file *nvconfig.lua* nel file *chadrc.lua* e modificarne le proprietà secondo necessità. +Questo file è usato per personalizzare l'aspetto dell'editor (==UI==) e condivide la sintassi con il file [nvconfig.lua](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvconfig.lua) del plugin **NvChad**; per compilarlo, è sufficiente copiare la parte desiderata del file _nvconfig.lua_ nel file _chadrc.lua_ e modificarne le proprietà secondo necessità. -Il prossimo file utilizzato dalla configurazione, le cui cartelle saranno descritte più avanti, è il file **option.lua** per le personalizzazioni dell'editor, come gli spazi di indentazione, la condivisione della clipboard con il sistema ospite e, cosa molto importante, l'inclusione dei binari installati da *Mason* nel percorso. +Il prossimo file utilizzato dalla configurazione, le cui cartelle saranno descritte più avanti, è il file **option.lua** per le personalizzazioni dell'editor, come gli spazi di indentazione, la condivisione della clipboard con il sistema ospite e, cosa molto importante, l'inclusione dei binari installati da _Mason_ nel percorso. Come il precedente, condivide la sintassi del file [corrispondente](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/options.lua) del plugin **NvChad**; per personalizzarlo come sopra, basta copiare le opzioni e modificarle. -Infine, si incontra il file **mapping.lua** dove impostare i tasti della tastiera per richiamare le varie funzioni offerte dall'editor. Il file iniziale contiene la mappatura dei tasti per entrare in modalità **COMMAND**, per la formattazione con *conform.nvim* e il tasto per uscire dalla modalità **INSERT**. +Infine, si incontra il file **mapping.lua** dove impostare i tasti della tastiera per richiamare le varie funzioni offerte dall'editor. Il file iniziale contiene la mappatura dei tasti per entrare in modalità **COMMAND**, per la formattazione con _conform.nvim_ e il tasto per uscire dalla modalità **INSERT**. Le chiavi utilizzano la sintassi `vim.keymap.set` nativa di Neovim e per la loro configurazione si può fare riferimento alla [mappatura predefinita](https://github.com/NvChad/NvChad/blob/v2.5/lua/nvchad/mappings.lua) di NvChad o, in alternativa, alla pagina di aiuto inclusa in Neovim `:h vim.keymap.set`. ```lua @@ -197,13 +197,13 @@ map("i", "jk", "", { desc = "Escape insert mode" }) ``` Le due cartelle incluse nella configurazione `configs` e `plugins` servono entrambe a gestire i plugin; i plugin personali devono essere collocati nella cartella `plugins` e le loro eventuali configurazioni aggiuntive nella cartella `configs`.. -Inizialmente, sarà disponibile per le installazioni un file *plugins/init.lua* con il plugin *conform.lua* configurato in *configs/conform.lua* e *nvimtree.nvim* con l'opzione per le decorazioni relative a *Git* al suo interno. +Inizialmente, sarà disponibile per le installazioni un file _plugins/init.lua_ con il plugin _conform.lua_ configurato in _configs/conform.lua_ e _nvimtree.nvim_ con l'opzione per le decorazioni relative a _Git_ al suo interno. -!!! notes "Organizzazione dei plugin" +!!! note s "Organizzazione dei plugin" - L'inclusione dei plugin avviene mediante l'inserimento di qualsiasi file opportunamente configurato presente nella cartella `plugins`; ciò consente di organizzare i plugin, ad esempio per finalità, creando file separati (*utils.lua*, *editor.lua*, *markdown.lua*, ecc.) in questo modo è possibile lavorare sulla configurazione in modo più ordinato. + L'inclusione dei plugin avviene mediante l'inserimento di qualsiasi file opportunamente configurato presente nella cartella `plugins`; ciò consente di organizzare i plugin, ad esempio per finalità, creando file separati (_utils.lua_, _editor.lua_, _markdown.lua_, ecc.) in questo modo è possibile lavorare sulla configurazione in modo più ordinato. -Sono presenti inoltre i file per la *licenza* e un *README.md* copiato dal repository **starter**, che può essere usato per illustrare la propria configurazione nel caso in cui sia mantenuta in un repository *Git*. +Sono presenti inoltre i file per la _licenza_ e un _README.md_ copiato dal repository **starter**, che può essere usato per illustrare la propria configurazione nel caso in cui sia mantenuta in un repository _Git_. ## :material-keyboard-outline: Chiavi principali della tastiera @@ -217,16 +217,16 @@ end) Questo sistema prevede quattro tasti principali dai quali, in associazione con altri tasti, è possibile lanciare i comandi. Le chiavi principali sono: -* C = ++ctrl++ -* leader = ++space++ -* A = ++alt++ -* S = ++shift++ +- C = ++ctrl++ +- leader = ++space++ +- A = ++alt++ +- S = ++shift++ -!!! note "Nota" +!!! note Nel corso di questi documenti si farà più volte riferimento a queste mappature di chiavi. -La mappatura predefinita è contenuta in *lua/mapping.lua* del plugin NvChad, ma può essere estesa con altri comandi personalizzati usando il proprio *mapping.lua*. +La mappatura predefinita è contenuta in _lua/mapping.lua_ del plugin NvChad, ma può essere estesa con altri comandi personalizzati usando il proprio _mapping.lua_. `th` per cambiare il tema ++space++ + ++"t"++ + ++"h"++ `` per aprire nvimtree ++ctrl++ + ++"n"++ diff --git a/docs/books/nvchad/install_nvim.it.md b/docs/books/nvchad/install_nvim.it.md index e8bdcb0c99..2292378990 100644 --- a/docs/books/nvchad/install_nvim.it.md +++ b/docs/books/nvchad/install_nvim.it.md @@ -46,17 +46,18 @@ Come per Vim, Neovim richiede una conoscenza di base dei suoi comandi e delle su Neovim è installabile anche dal repository EPEL. La versione disponibile è sempre troppo datata per soddisfare i requisiti minimi dell'installazione di NvChad. L'installazione con questo metodo è fortemente sconsigliata e non è supportata da questa guida. -=== "Installazione da Pacchetto Precompilato" +\=== "Installazione da Pacchetto Precompilato" + ```` L'uso del pacchetto precompilato consente di installare sia la versione di sviluppo che quella stabile, che soddisfano i requisiti e possono essere utilizzate come base per la configurazione di NvChad. Per utilizzare tutte le funzionalità dell'editor, è necessario soddisfare le dipendenze richieste da Neovim fornendo manualmente le dipendenze del pacchetto precompilato. I pacchetti necessari possono essere installati con: - + ```bash dnf install compat-lua-libs libtermkey libtree-sitter libvterm luajit luajit2.1-luv msgpack unibilium xsel ``` - - + + Dopo aver installato le dipendenze necessarie, è il momento di acquisire il pacchetto scelto. Accedendo alla [pagina delle release](https://github.com/neovim/neovim/releases) sarà possibile scaricare la versione di sviluppo (==pre-release==) o la versione stabile (==stable==). @@ -65,95 +66,97 @@ Come per Vim, Neovim richiede una conoscenza di base dei suoi comandi e delle su Il file richiesto è ==nvim-linux64.tar.gz==, è necessario scaricare anche il file ==nvim-linux64.tar.gz.sha256sum== per verificarne l'integrità. Supponendo che entrambi siano stati scaricati nella stessa cartella, utilizzeremo il seguente comando per la verifica: - + ```bash sha256sum -c nvim-linux64.tar.gz.sha256sum nvim-linux64.tar.gz: OK ``` - - + + Ora scompattate il pacchetto precompilato in una posizione all'interno della vostra cartella home; in questa guida è stata scelta la posizione `.local/share/`, ma può essere modificata in base alle proprie esigenze. Eseguire il comando: - + ```bash tar xvzf nvim-linux64.tar.gz -C ~/.local/share/ ``` - - + + A questo punto non rimane che creare un collegamento simbolico in ~/.local/bin/ per l'eseguibile nvim del pacchetto precompilato. - + ```bash cd ~/.local/bin/ ln -sf ~/.local/share/nvim-linux64/bin/nvim nvim ``` - - + + Per verificare la corretta installazione, eseguire in un terminale il comando `nvim -v`, che dovrebbe ora mostrare qualcosa di simile: - + ```txt nvim -v NVIM v0.9.5 Build type: RelWithDebInfo LuaJIT 2.1.1692716794 ``` + ```` -=== "Installazione da sorgente" +\=== "Installazione da sorgente" + ```` L'installazione dal pacchetto precompilato fornisce `nvim` solo all'utente che lo esegue. Se si desidera rendere Neovim disponibile a tutti gli utenti del sistema, è necessario eseguire un'installazione da sorgente. La compilazione di Neovim non è particolarmente difficile e consiste nei seguenti passaggi. Per prima cosa installiamo i pacchetti necessari alla compilazione: - + ```bash dnf install --enablerepo=crb ninja-build libtool autoconf automake cmake gcc gcc-c++ make pkgconfig unzip patch gettext curl git ``` - - + + Una volta installati i pacchetti necessari, sarà necessario creare una cartella dove costruire neovim e passare al suo interno: Il clone di Neovim, per impostazione predefinita, è sincronizzato con il ramo di sviluppo di Neovim (al momento in cui scriviamo, la versione 0.10.0). Per compilare la versione stabile, si dovrà passare al ramo corrispondente prima di clonarlo: - + ```bash mkdir ~/lab/build cd ~/lab/build ``` - - + + E successivamente clonare il repository: - + ```bash git clone https://github.com/neovim/neovim ``` - - + + Una volta terminata l'operazione, avremo una cartella denominata *neovim* contenente tutti i file necessari. Il passo successivo è selezionare il ramo stabile, quindi configurare e compilare i sorgenti con il comando `make`. - + ```bash cd ~/lab/build/neovim/ git checkout stable make CMAKE_BUILD_TYPE=RelWithDebInfo ``` - - + + Abbiamo scelto la tipologia `RelWithDebInfo` in quanto fornisce delle ottimizzazioni e un livello di debug utile per le personalizzazioni successive. È anche possibile utilizzare la tipologia `Release` se si preferiscono le massime prestazioni. Il processo si occupa di configurare e compilare i file da inserire nel nostro sistema. Questi file vengono salvati in `neovim/build`. Per installarli, si utilizzerà il comando *make install*: - + ```bash make install ``` - - + + Poiché questo comando andrà a modificare il filesystem, deve essere eseguito come superutente, con `sudo` o direttamente dall'utente root. Terminata l'installazione, possiamo verificare che tutto sia stato eseguito correttamente controllando il percorso di Neovim: - + ```bash whereis nvim nvim: /usr/local/bin/nvim ``` - - + + E verificare la versione: - + ```bash nvim --version NVIM v0.9.5 @@ -161,30 +164,31 @@ Come per Vim, Neovim richiede una conoscenza di base dei suoi comandi e delle su LuaJIT 2.1.1692716794 .... ``` - - + + Come si può vedere dall'estratto del comando qui sopra, è stata eseguita un'installazione della versione stabile. Entrambe le versioni, quella stabile e quella di sviluppo, funzionano perfettamente con NvChad su Rocky Linux 9. ### :material-package-variant-closed-remove: Disinstallazione Se è necessario rimuovere l'installazione, per esempio per passare a un'altra versione, si dovrà ritornare alla cartella di compilazione e usare il cmake `target` fornito da Neovim. Per eseguire la disinstallazione, è necessario eseguire il seguente comando: - + ```bash cmake --build build/ --target uninstall ``` - - + + Anche questo comando richiede i permessi di superutente o di essere eseguito come utente *root*. In alternativa, è possibile utilizzare il metodo manuale rimuovendo l'eseguibile e le librerie con: - + ```bash rm /usr/local/bin/nvim rm -r /usr/local/share/nvim/ ``` - - + + Anche in questo caso, è necessario eseguire questi comandi con i permessi di superutente. + ```` ## :material-image-outline: Uso di Base diff --git a/docs/books/nvchad/marksman.it.md b/docs/books/nvchad/marksman.it.md index 658e119799..5dff32cac4 100644 --- a/docs/books/nvchad/marksman.it.md +++ b/docs/books/nvchad/marksman.it.md @@ -11,7 +11,7 @@ tags: # Marksman - assistente del codice -Marksman è uno strumento utile quando si redige un documento per Rocky Linux. Permette di inserire facilmente i simboli necessari per definire i tag del linguaggio *markdown*. Ciò consente di scrivere più velocemente e riduce la possibilità di errori. +Marksman è uno strumento utile quando si redige un documento per Rocky Linux. Permette di inserire facilmente i simboli necessari per definire i tag del linguaggio _markdown_. Ciò consente di scrivere più velocemente e riduce la possibilità di errori. NvChad/Neovim include già dei widget di testo che aiutano nella scrittura, come la ripetizione delle parole più usate indicizzate in base alla frequenza di inserimento. Le nuove opzioni incluse in questo server linguistico arricchiranno questi widget. @@ -34,11 +34,11 @@ NvChad/Neovim include già dei widget di testo che aiutano nella scrittura, come ## Installazione di Marksman -L'installazione del server linguistico non comporta particolari problemi, poiché è disponibile nativamente in **Mason**. È possibile installarlo direttamente dalla *statusline* con il comando: +L'installazione del server linguistico non comporta particolari problemi, poiché è disponibile nativamente in **Mason**. È possibile installarlo direttamente dalla _statusline_ con il comando: `:MasonInstall marksman` -Il comando aprirà l'interfaccia di *Mason* e installerà direttamente il server linguistico richiesto. Una volta completata l'installazione binaria, è possibile chiudere la schermata di *Mason* con il tasto ++"q"++. +Il comando aprirà l'interfaccia di _Mason_ e installerà direttamente il server linguistico richiesto. Una volta completata l'installazione binaria, è possibile chiudere la schermata di _Mason_ con il tasto ++"q"++. La sua installazione, tuttavia, non comporta ancora la sua integrazione nell'editor. Per abilitarlo, deve essere inserito nel file `configs/lspconfig.lua` della configurazione. @@ -48,7 +48,7 @@ La sua installazione, tuttavia, non comporta ancora la sua integrazione nell'edi Il plugin [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) integra i server linguistici in NvChad. Questo plugin semplifica notevolmente la loro inclusione nella configurazione di NvChad. -Il file *lspconfig.lua* si occupa di inserire le chiamate necessarie per utilizzare i server linguistici e permette anche di indicare quelli installati. Per integrare *marksman* nella configurazione dei server linguistici dell'editor, è necessario modificare la stringa *local servers* aggiungendo il nuovo LSP. +Il file _lspconfig.lua_ si occupa di inserire le chiamate necessarie per utilizzare i server linguistici e permette anche di indicare quelli installati. Per integrare _marksman_ nella configurazione dei server linguistici dell'editor, è necessario modificare la stringa _local servers_ aggiungendo il nuovo LSP. Aprire NvChad sul file con il comando: @@ -56,7 +56,7 @@ Aprire NvChad sul file con il comando: nvim ~/.config/nvim/lua/configs/lspconfig.lua ``` -E modificare la stringa *local servers*, che al termine avrà il seguente aspetto: +E modificare la stringa _local servers_, che al termine avrà il seguente aspetto: ```lua local servers = { "html", "cssls", "tsserver", "clangd", "marksman" } @@ -76,17 +76,17 @@ Per verificare se il server linguistico viene attivato correttamente, aprire un Configured servers list: cssls, tsserver, clangd, html, yamlls, lua_ls, marksman ``` -Questo indica l'attivazione del server *marksman* per il file aperto e che si è avviato automaticamente (`autostart: true`) poiché viene riconosciuto come file markdown `filetypes: markdown`. Le altre informazioni indicano il percorso dell'eseguibile utilizzato per il controllo del codice `cmd:`, che utilizza la modalità server `marksman server` e che utilizza la directory root `your_directory` per i controlli. +Questo indica l'attivazione del server _marksman_ per il file aperto e che si è avviato automaticamente (`autostart: true`) poiché viene riconosciuto come file markdown `filetypes: markdown`. Le altre informazioni indicano il percorso dell'eseguibile utilizzato per il controllo del codice `cmd:`, che utilizza la modalità server `marksman server` e che utilizza la directory root `your_directory` per i controlli. !!! note "Cartella root" - Il concetto di "cartella root" è importante nell'uso di un server linguistico, in quanto per eseguire controlli sul documento, come collegamenti ad altri file o immagini, deve avere una "visione globale" del progetto. Possiamo dire che le "*cartelle root*" equivalgono ai "*progetti*" presenti negli IDE grafici. + Il concetto di "cartella root" è importante nell'uso di un server linguistico, in quanto per eseguire controlli sul documento, come collegamenti ad altri file o immagini, deve avere una "visione globale" del progetto. Possiamo dire che le "_cartelle root_" equivalgono ai "_progetti_" presenti negli IDE grafici. - La *root directory*, detta anche "directory di lavoro*", utilizzata dall'editor per il file aperto, è visualizzabile con il comando `:pwd`. È modificabile con il comando `:lcd` se non corrisponde a quella desiderata. Questo comando riassegna la *directory di lavoro* solo a quel buffer, senza modificare le impostazioni degli altri buffer aperti nell'editor. + La _root directory_, detta anche "directory di lavoro\*", utilizzata dall'editor per il file aperto, è visualizzabile con il comando `:pwd`. È modificabile con il comando `:lcd` se non corrisponde a quella desiderata. Questo comando riassegna la _directory di lavoro_ solo a quel buffer, senza modificare le impostazioni degli altri buffer aperti nell'editor. ## Uso di marksman -Una volta completati tutti i passaggi per l'inserimento, l'attivazione del server linguistico avviene ogni volta che si apre un file *markdown* nell'editor. Entrando in modalità `INSERT`, quando si digitano determinati caratteri si avranno nuove opzioni nei widget che aiuteranno a scrivere il documento. Nella schermata qui sotto si possono vedere alcuni degli snippet di markdown disponibili in questi widget. +Una volta completati tutti i passaggi per l'inserimento, l'attivazione del server linguistico avviene ogni volta che si apre un file _markdown_ nell'editor. Entrando in modalità `INSERT`, quando si digitano determinati caratteri si avranno nuove opzioni nei widget che aiuteranno a scrivere il documento. Nella schermata qui sotto si possono vedere alcuni degli snippet di markdown disponibili in questi widget. ![Marksman Snippets](./images/marksman_snippets.png) @@ -94,67 +94,33 @@ Una volta completati tutti i passaggi per l'inserimento, l'attivazione del serve Il server linguistico fornisce molte scorciatoie che attivano l'assistenza alla scrittura. Questo include l'inserimento rapido di tag Markdown, la creazione di collegamenti e l'inserimento di immagini nel documento. Di seguito è riportato un elenco non esaustivo dei caratteri che attivano i vari snippet. -Questi snippet vengono visualizzati all'interno di widget che contengono anche altre scorciatoie. Utilizzare il tasto ++tab++ per la navigazione del widget per selezionare quelli forniti da *marksman*.La chiave inserisce il tag *superscript*. TrademarkTM +Questi snippet vengono visualizzati all'interno di widget che contengono anche altre scorciatoie. Utilizzare il tasto ++tab++ per la navigazione del widget per selezionare quelli forniti da _marksman_.La chiave inserisce il tag _superscript_. - - - ++"sub"++ - - - - La chiave inserisce il tag subscript. Note1 - - - - ++"table"++ - - - - Questo tasto consente di creare rapidamente la struttura di una tabella e di scegliere tra numerose strutture di partenza - - - - - - ++"code"++ - - - - Inserisce un blocco di codice in linea posizionando due backtick nella posizione in cui si trova il cursore, posizionandolo al centro dei due backtick. - - - - - - ++"codeblock"++ - - - - Inserisce tre righe, due con triplo backtick e una vuota, dove si inseriscono i blocchi di codice. Da notare che inserisce anche la stringa language, che deve essere compilata con la lingua usata nel blocco. - - - -

- !!! note "Dichiarazione del blocco di codice" -

- -
Le regole del codice Markdown raccomandano di dichiarare sempre il codice utilizzato nel blocco, anche senza evidenziare le caratteristiche per una corretta interpretazione. Se il codice al suo interno è troppo generico, si consiglia di usare "text" per la sua dichiarazione.
-
- -

- Le chiavi di attivazione per le scorciatoie Markdown includono anche altre combinazioni che si possono scoprire con l'uso del server linguistico. -

- - +| Tasto | Snippets | +| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ++"h"++ | Controlla con il comando `id` per verificare che il gruppo sia stato aggiunto. Consente l'inserimento rapido dei titoli (_h1_ a _h6_), ad esempio, inserendo _h4_ e premendo Invio verranno inseriti quattro segni di cancelletto e uno spazio e il cursore sarà già posizionato per inserire il titolo. | +| ++"b"++ | Inserendo questo carattere si attiva la possibilità di utilizzare la scorciatoia per inserire testo in grassetto inserendo quattro asterischi e posizionando il cursore al centro, rendendo molto più veloce la scrittura della parte in **grassetto**. | +| ++"i"++ | Come per il carattere precedente, consente di selezionare l'inserimento rapido di testo _in corsivo_ inserendo due asterischi e posizionando il cursore tra di essi. | +| ++"bi"++ | Questo tasto inserisce sei asterischi posizionando il cursore al centro per scrivere il testo in _**grassetto e corsivo**_. | +| ++"img"++ | Questa parola chiave inserisce la struttura markdown per inserire un'immagine nel documento nel formato `![testo alternativo](percorso)`. Si noti che la scrittura del percorso può essere effettuata utilizzando il completamento automatico fornito dal server. | +| ++"link"++ | Questo parametro crea la struttura del tag markdown per un link `[testo](url)`. Anche in questo caso, se il collegamento fa riferimento a un file nella **directory di lavoro**, sarà possibile utilizzare il completamento automatico e il server verificherà la correttezza del riferimento. | +| ++"list"++ | La digitazione di questa chiave consente di inserire un elenco di tre elementi per iniziare la creazione di un elenco numerato o non ordinato | +| ++"q"++ | Questo parametro consente l'inserimento del tag per una citazione `>` seguito da uno spazio e posiziona il cursore per scrivere la citazione. | +| ++"s"++ | Questo carattere attiva numerose possibilità, tra cui l'inserimento di quattro tildes e il posizionamento del cursore al centro per la scrittura del testo ~~barrato~~ | +| ++"sup"++ | Il parametro inserisce il tag _apice_. TrademarkTM | +| ++"sub"++ | Il parametro inserisce il tag subscript. Note1 | +| ++"table"++ | Questo tasto consente di creare rapidamente la struttura di una tabella e di scegliere tra numerose strutture di partenza | +| ++"code"++ | Inserisce un blocco di codice in linea posizionando due backtick nella posizione in cui si trova il cursore, posizionandolo al centro dei due backtick. | +| ++"codeblock"++ | Inserisce tre righe, due con triplo backtick e una vuota, dove si inseriscono i blocchi di codice. Si noti che inserisce anche la stringa _language_, che deve essere compilata con il linguaggio utilizzato nel blocco. | + +!!! note "Istruzione Code block" + + Le regole del codice Markdown raccomandano di dichiarare sempre il codice utilizzato nel blocco, anche senza funzioni di evidenziazione per una corretta interpretazione. Se il codice al suo interno è troppo generico, si consiglia di utilizzare “testo” per la sua dichiarazione. + +Le chiavi di attivazione per le scorciatoie Markdown includono anche altre combinazioni che si possono scoprire con l'uso del server linguistico. -

- Conclusione -

+## Conclusione -

- Anche se non è strettamente necessario, questo server linguistico può diventare, col tempo, un ottimo compagno nella scrittura della documentazione per Rocky Linux. -

+Anche se non è strettamente necessario, questo server linguistico può diventare, col tempo, un ottimo compagno nella scrittura della documentazione per Rocky Linux. -

- Il suo utilizzo e la conseguente memorizzazione dei principali tasti per l'inserimento dei simboli del codice Markdown consentirà una scrittura più rapida, permettendo di concentrare l'attenzione sul contenuto. -

+Il suo utilizzo e la conseguente memorizzazione dei principali tasti per l'inserimento dei simboli del codice Markdown consentirà una scrittura più rapida, permettendo di concentrare l'attenzione sul contenuto. diff --git a/docs/books/nvchad/nerd_fonts.it.md b/docs/books/nvchad/nerd_fonts.it.md index 02274d219f..7c17cbf7a3 100644 --- a/docs/books/nvchad/nerd_fonts.it.md +++ b/docs/books/nvchad/nerd_fonts.it.md @@ -27,11 +27,13 @@ https://www.nerdfonts.com/font-downloads ### :material-monitor-arrow-down-variant: Procedura di installazione -L'installazione dei Nerd Fonts in Rocky Linux si effettua interamente dalla riga di comando grazie all'implementazione della procedura fornita dal repository del progetto [ryanoasis/nerd-fonts](https://github.com/ryanoasis/nerd-fonts). La procedura utilizza *git* per recuperare i font necessari e *fc-cache* per la loro configurazione. +L'installazione dei Nerd Fonts in Rocky Linux si effettua interamente dalla riga di comando grazie all'implementazione della procedura fornita dal repository del progetto [ryanoasis/nerd-fonts](https://github.com/ryanoasis/nerd-fonts). La procedura utilizza _git_ per recuperare i font necessari e _fc-cache_ per la loro configurazione. -!!! Note "Nota" +!!! Note + ``` Questo metodo può essere usato su tutte le distribuzioni *linux* che usano [fontconfig](https://www.freedesktop.org/wiki/Software/fontconfig/) per la gestione dei font di sistema. + ``` Per iniziare, recuperare i file necessari dal repository del progetto: @@ -39,7 +41,7 @@ Per iniziare, recuperare i file necessari dal repository del progetto: git clone --filter=blob:none --sparse git@github.com:ryanoasis/nerd-fonts ``` -Questo comando scarica solo i file necessari, omettendo i font contenuti in *patched-fonts*, in modo da non appesantire il repository locale con font che poi non verranno utilizzati, consentendo così un'installazione selettiva. +Questo comando scarica solo i file necessari, omettendo i font contenuti in _patched-fonts_, in modo da non appesantire il repository locale con font che poi non verranno utilizzati, consentendo così un'installazione selettiva. Questa guida utilizzerà il font [IBM Plex Mono](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/IBMPlexMono), che offre una visualizzazione pulita e leggermente tipografica, caratteristiche che lo rendono particolarmente adatto alla scrittura di documentazione Markdown. Visitare il sito [dedicato](https://www.programmingfonts.org/#plex-mono) per una panoramica e un'anteprima dei font disponibili. @@ -50,7 +52,7 @@ cd ~/nerd-fonts/ git sparse-checkout add patched-fonts/IBMPlexMono ``` -Il comando scaricherà i font nella cartella *patched-fonts* e al termine sarà possibile installarli con lo script ==install.sh== fornito, digitando: +Il comando scaricherà i font nella cartella _patched-fonts_ e al termine sarà possibile installarli con lo script ==install.sh== fornito, digitando: ```bash ./install.sh IBMPlexMono @@ -58,9 +60,11 @@ Il comando scaricherà i font nella cartella *patched-fonts* e al termine sarà !!! Note "Nome riservato" + ``` Il font durante l'installazione viene rinominato in *BlexMono* per rispettare la SIL Open Font License (OFL) e in particolare il meccanismo [reserved name mechanism](http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web_fonts_and_RFNs#14cbfd4a). + ``` -Lo script *install.sh* copia i font nella cartella utente `~/.local/share/fonts/` e invoca il programma *fc-cache* per registrarli nel sistema. Una volta terminato, i font saranno disponibili per l'emulatore di terminale; in particolare, troveremo installati i seguenti font: +Lo script _install.sh_ copia i font nella cartella utente `~/.local/share/fonts/` e invoca il programma _fc-cache_ per registrarli nel sistema. Una volta terminato, i font saranno disponibili per l'emulatore di terminale; in particolare, troveremo installati i seguenti font: ```text title="~/.local/share/fonts/" NerdFonts/ diff --git a/docs/books/nvchad/template_chadrc.it.md b/docs/books/nvchad/template_chadrc.it.md index 9718ef029b..06b6effb44 100644 --- a/docs/books/nvchad/template_chadrc.it.md +++ b/docs/books/nvchad/template_chadrc.it.md @@ -25,8 +25,9 @@ La cartella viene creata da un modello della repository di NvChad di GitHub: ([e ## :material-monitor-arrow-down-variant: Installazione -=== "Installazione all'avvio" +\=== "Installazione all'avvio" + ``` Per crearla durante l'installazione, rispondere "y" alla domanda che viene posta all'inizio dell'installazione: > Do you want to install example custom config? (y/N): @@ -35,39 +36,42 @@ La cartella viene creata da un modello della repository di NvChad di GitHub: ([e Rimuovendola, la cartella può essere posta sotto un controllo di versione personale. La cartella è pronta e verrà utilizzata al successivo avvio di NvChad per inserire le configurazioni personalizzate nell'editor. + ``` -=== "Installazione dal repository" +\=== "Installazione dal repository" + ```` L'installazione della configurazione fornita da ==example-config== può essere fatta anche dopo l'installazione di NvChad, nel qual caso il repository è ugualmente utilizzato ma viene recuperato con un'operazione manuale. L'installazione standard senza ==example-config== crea comunque una cartella *custom* in cui salvare il file ==chadrc.lua== per le personalizzazioni dell'utente e deve essere cancellata o salvata in un ==backup== per consentire l'esecuzione del clone. Salvare quindi la configurazione esistente con: - + ```bash mv ~/.config/nvim/lua/custom/ ~/.config/nvim/lua/custom.bak ``` - - + + E clonare il repository GitHub nella propria configurazione: - + ```bash git clone https://github.com/NvChad/example_config.git ~/.config/nvim/lua/custom ``` - - + + Il comando copia l'intero contenuto dei repository trovati online nella cartella `~/.config/nvim/lua/custom/`, copiando la cartella nascosta `.git`, che è necessario cancellare manualmente per consentire il passaggio a un controllo di versione personale. Eseguire il comando per la sua rimozione: - + ```bash rm rf ~/.config/nvim/lua/custom/.git/ ``` - - + + La cartella è pronta e verrà utilizzata al successivo avvio di NvChad per inserire le configurazioni personalizzate nell'editor. + ```` ## :material-file-outline: Struttura -La struttura della cartella ==custom== consiste in diversi file di configurazione e in una cartella `configs` contenente i file delle opzioni dei plugin impostati in *plugins.lua*. +La struttura della cartella ==custom== consiste in diversi file di configurazione e in una cartella `configs` contenente i file delle opzioni dei plugin impostati in _plugins.lua_. -L'uso di file separati per le impostazioni dei plugin consente di avere un file *plugins.lua* molto più snello e di lavorare solo sul codice del plugin mentre lo si personalizza. Questo è anche il metodo consigliato per sviluppare i plugin che verranno aggiunti in seguito. +L'uso di file separati per le impostazioni dei plugin consente di avere un file _plugins.lua_ molto più snello e di lavorare solo sul codice del plugin mentre lo si personalizza. Questo è anche il metodo consigliato per sviluppare i plugin che verranno aggiunti in seguito. La struttrua creata è la seguente: @@ -75,15 +79,14 @@ La struttrua creata è la seguente: custom/ ├── chadrc.lua ├── configs -│   ├── conform.lua -│   ├── lspconfig.lua -│   └── overrides.lua +│ ├── conform.lua +│ ├── lspconfig.lua +│ └── overrides.lua ├── highlights.lua ├── init.lua ├── mappings.lua ├── plugins.lua └── README.md - ``` Come si può notare, la cartella contiene alcuni file con lo stesso nome, che si incontrano anche nella struttura di base di NvChad. Questi, ti consentono di integrare la configurazione e sovrascrivere le impostazioni di base dell'editor. @@ -119,7 +122,7 @@ M.mappings = require "custom.mappings" return M ``` -Il file viene inserito nella configurazione di Neovim dalla funzione `load_config`, impostata nel file **~/.config/nvim/lua/core/utils.lua**. La funzione si occupa di caricare le impostazioni predefinite e, se presenti, anche quelle del file *chadrc.lua* nella cartella *custom*: +Il file viene inserito nella configurazione di Neovim dalla funzione `load_config`, impostata nel file **~/.config/nvim/lua/core/utils.lua**. La funzione si occupa di caricare le impostazioni predefinite e, se presenti, anche quelle del file _chadrc.lua_ nella cartella _custom_: ```lua M.load_config = function() @@ -128,13 +131,13 @@ M.load_config = function() ... ``` -La sua funzione è quella di inserire i file della cartella *custom* nella configurazione di NvChad, per poi utilizzarli insieme ai file predefiniti per avviare l'istanza di *Neovim*. I file vengono inseriti nell'albero della configurazione attraverso le funzioni `require`, come ad esempio: +La sua funzione è quella di inserire i file della cartella _custom_ nella configurazione di NvChad, per poi utilizzarli insieme ai file predefiniti per avviare l'istanza di _Neovim_. I file vengono inseriti nell'albero della configurazione attraverso le funzioni `require`, come ad esempio: ```lua require("custom.mappings") ``` -La stringa **custom.mappings** indica il percorso relativo al file senza estensione rispetto al percorso predefinito, che in questo caso è **~/.config/nvim/lua/**. Il punto sostituisce la slash, in quanto questa è la convenzione nel codice scritto in Lua (nel linguaggio *lua* non esiste il concetto di *directory*). +La stringa **custom.mappings** indica il percorso relativo al file senza estensione rispetto al percorso predefinito, che in questo caso è **~/.config/nvim/lua/**. Il punto sostituisce la slash, in quanto questa è la convenzione nel codice scritto in Lua (nel linguaggio _lua_ non esiste il concetto di _directory_). In sintesi, possiamo dire che la chiamata descritta sopra inserisce le configurazioni scritte nel file `custom/mappings.lua` nella mappatura di NvChad, inserendo così le scorciatoie per richiamare i comandi per i plugin impostati in `custom/plugins.lua`. @@ -146,7 +149,7 @@ Alla fine del file viene impostata la chiamata ==require== al file `custom/plugi M.plugins = "custom.plugins" ``` -In questo modo, i plugin impostati in `custom/plugins.lua` vengono passati insieme a quelli che compongono la configurazione di NvChad a *lazy.nvim* per l'installazione e la loro gestione. In questo caso, l'inclusione non è nell'albero di Neovim. Si trova invece nella configurazione di *lazy.nvim*, in quanto questo plugin disabilita completamente la funzionalità correlata dell'editor con la chiamata `vim.go.loadplugins = false`. +In questo modo, i plugin impostati in `custom/plugins.lua` vengono passati insieme a quelli che compongono la configurazione di NvChad a _lazy.nvim_ per l'installazione e la loro gestione. In questo caso, l'inclusione non è nell'albero di Neovim. Si trova invece nella configurazione di _lazy.nvim_, in quanto questo plugin disabilita completamente la funzionalità correlata dell'editor con la chiamata `vim.go.loadplugins = false`. #### :material-language-lua: init.lua @@ -179,9 +182,9 @@ Questo, tra l'altro, sostituisce la tabulazione a 2 spazi con una a 4 spazi, pi Questo file imposta i plugin da aggiungere a quelli presenti nella configurazione di base di NvChad. Le istruzioni per inserire i plugin sono spiegate in dettaglio nella pagina dedicata al [Gestore dei plugin](nvchad_ui/plugins_manager.md). -Il file *plugins.lua* creato dal file *example-config* ha nella prima parte una serie di personalizzazioni che sovrascrivono le opzioni di definizione dei plugin e le loro configurazioni predefinite. Questa parte del file non ha bisogno di essere modificata, in quanto gli sviluppatori hanno preparato dei file speciali per questo scopo, presenti nella cartella *config*. +Il file _plugins.lua_ creato dal file _example-config_ ha nella prima parte una serie di personalizzazioni che sovrascrivono le opzioni di definizione dei plugin e le loro configurazioni predefinite. Questa parte del file non ha bisogno di essere modificata, in quanto gli sviluppatori hanno preparato dei file speciali per questo scopo, presenti nella cartella _config_. -Segue l'installazione di un plugin. Questo è stato creato come esempio, in modo da familiarizzare con il formato utilizzato da *lazy.nvim*. +Segue l'installazione di un plugin. Questo è stato creato come esempio, in modo da familiarizzare con il formato utilizzato da _lazy.nvim_. ```lua -- Install a plugin @@ -214,15 +217,17 @@ Questa mappatura viene inserita per lo stato NORMAL `n =` il carattere ++";"++ u !!! Tip "Suggerimento" + ``` Per gli utenti con tastiere europee (come quella italiana), si consiglia di sostituire il carattere ++";"++ con ++","++. + ``` #### :material-language-lua: highlights.lua -Il file viene utilizzato per personalizzare lo stile dell'editor. Le impostazioni inserite qui servono a modificare aspetti come lo stile dei caratteri (**bold**, *italic*), il colore di sfondo di un elemento, il colore di primo piano e così via. +Il file viene utilizzato per personalizzare lo stile dell'editor. Le impostazioni inserite qui servono a modificare aspetti come lo stile dei caratteri (**bold**, _italic_), il colore di sfondo di un elemento, il colore di primo piano e così via. ### :material-folder-cog-outline: Cartella configs -Questa cartella contiene tutti i file di configurazione utilizzati nel file **custom/plugins.lua** che consentono di modificare le impostazioni predefinite dei plugin che si occupano dei server linguistici (*lspconfig*) e dei linter/formatter (*conform*), e per sovrascrivere le impostazioni di base di **treesitter**, **mason**, e **nvim-tree** (*override*). +Questa cartella contiene tutti i file di configurazione utilizzati nel file **custom/plugins.lua** che consentono di modificare le impostazioni predefinite dei plugin che si occupano dei server linguistici (_lspconfig_) e dei linter/formatter (_conform_), e per sovrascrivere le impostazioni di base di **treesitter**, **mason**, e **nvim-tree** (_override_). ```text configs/ @@ -233,7 +238,7 @@ configs/ #### :material-language-lua: lspconfig.lua -Il file *lspconfig.lua* imposta i server linguistici locali che l'editor può utilizzare. Ciò consentirà di utilizzare funzioni avanzate per i file supportati, come il completamento automatico o gli snippet, per creare rapidamente parti di codice. Per aggiungere il nostro *lsp* alla configurazione, è sufficiente modificare la tabella (in *lua* quello che viene rappresentato qui sotto tra parentesi graffe è una tabella) preparata appositamente dagli sviluppatori di NvChad: +Il file _lspconfig.lua_ imposta i server linguistici locali che l'editor può utilizzare. Ciò consentirà di utilizzare funzioni avanzate per i file supportati, come il completamento automatico o gli snippet, per creare rapidamente parti di codice. Per aggiungere il nostro _lsp_ alla configurazione, è sufficiente modificare la tabella (in _lua_ quello che viene rappresentato qui sotto tra parentesi graffe è una tabella) preparata appositamente dagli sviluppatori di NvChad: ```lua local servers = { "html", "cssls", "tsserver", "clangd" } @@ -247,11 +252,11 @@ Ad esempio, se vogliamo avere anche il supporto per il linguaggio `yaml`, possia local servers = { "html", "cssls", "tsserver", "clangd", "yamlls" } ``` -La modifica del file, tuttavia, non comporta l'installazione del relativo server linguistico. Questo, dev'essere installato separatamente con *Mason*. Il server linguistico che fornisce il supporto a *yaml* è [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) che andrà installato con il comando `:MasonInstall yaml-language-server`. A questo punto avremo, ad esempio, il controllo del codice scritto nelle intestazioni (*frontmatter*) delle pagine di documentazione di Rocky Linux. +La modifica del file, tuttavia, non comporta l'installazione del relativo server linguistico. Questo, dev'essere installato separatamente con _Mason_. Il server linguistico che fornisce il supporto a _yaml_ è [yaml-language-server](https://github.com/redhat-developer/yaml-language-server) che andrà installato con il comando `:MasonInstall yaml-language-server`. A questo punto avremo, ad esempio, il controllo del codice scritto nelle intestazioni (_frontmatter_) delle pagine di documentazione di Rocky Linux. #### :material-language-lua: conform.lua - Questo file configura alcune funzioni orientate al controllo e la formattazione del codice scritto. La modifica di questo file richiede maggiori ricerche per la configurazione rispetto al precedente. Una panoramica dei componenti disponibili si trova nella pagina [dei builtins](https://github.com/stevearc/conform.nvim/tree/master?tab=readme-ov-file#formatters). +Questo file configura alcune funzioni orientate al controllo e la formattazione del codice scritto. La modifica di questo file richiede maggiori ricerche per la configurazione rispetto al precedente. Una panoramica dei componenti disponibili si trova nella pagina [dei builtins](https://github.com/stevearc/conform.nvim/tree/master?tab=readme-ov-file#formatters). Anche in questo caso è stata creata una tabella, la tabella ==formatters_by_ft==, dove inserire le personalizzazioni: @@ -277,7 +282,7 @@ Come si può vedere, nella configurazione iniziale sono stati inclusi solo i for markdown = { "markdownlint" }, ``` -Anche in questo caso, la configurazione richiede l'installazione del pacchetto corrispondente, che viene effettuata con *Mason*: +Anche in questo caso, la configurazione richiede l'installazione del pacchetto corrispondente, che viene effettuata con _Mason_: ```text :MasonInstall markdownlint @@ -285,15 +290,17 @@ Anche in questo caso, la configurazione richiede l'installazione del pacchetto c !!! Note "Nota" + ``` La configurazione di questo formattatore richiede anche la creazione di un file di configurazione nella cartella home, che non verrà trattato in questo documento. + ``` #### :material-language-lua: overrides.lua -Il file *overrides.lua* contiene le modifiche da apportare alle impostazioni predefinite del plugin. I plugin a cui applicare le modifiche sono specificati nella sezione ==-- Override plugin definition options== del file `custom/plugins.lua` tramite l'opzione **opts** (ad esempio `opts = overrides.mason`). +Il file _overrides.lua_ contiene le modifiche da apportare alle impostazioni predefinite del plugin. I plugin a cui applicare le modifiche sono specificati nella sezione ==-- Override plugin definition options== del file `custom/plugins.lua` tramite l'opzione **opts** (ad esempio `opts = overrides.mason`). -Nella configurazione iniziale ci sono tre plugin che devono essere sovrascritti e sono *treesitter*, *mason* e *nvim-tree*. Tralasciando per il momento *nvim-tree*, ci concentreremo sui primi due che ci permettono di cambiare in modo significativo la nostra esperienza di editing. +Nella configurazione iniziale ci sono tre plugin che devono essere sovrascritti e sono _treesitter_, _mason_ e _nvim-tree_. Tralasciando per il momento _nvim-tree_, ci concentreremo sui primi due che ci permettono di cambiare in modo significativo la nostra esperienza di editing. -*treesitter* è un parser di codice che si occupa della sua formattazione in modo interattivo. Ogni volta che viene salvato un file riconosciuto da *treesitter*, questo viene passato al parser, che restituisce un albero di codice indentato ed evidenziato in modo ottimale, rendendo più facile la lettura, l'interpretazione e la modifica del codice nell'editor. +_treesitter_ è un parser di codice che si occupa della sua formattazione in modo interattivo. Ogni volta che viene salvato un file riconosciuto da _treesitter_, questo viene passato al parser, che restituisce un albero di codice indentato ed evidenziato in modo ottimale, rendendo più facile la lettura, l'interpretazione e la modifica del codice nell'editor. La parte del codice che si occupa di questo aspetto è la seguente: @@ -320,7 +327,7 @@ M.treesitter = { } ``` -Ora, seguendo l'esempio precedente, se vogliamo che il *frontmatter* delle nostre pagine di documentazione su Rocky Linux sia evidenziato correttamente, possiamo aggiungere il supporto per *yaml* nella tabella `ensure_installed` dopo l'ultimo parser impostato: +Ora, seguendo l'esempio precedente, se vogliamo che il _frontmatter_ delle nostre pagine di documentazione su Rocky Linux sia evidenziato correttamente, possiamo aggiungere il supporto per _yaml_ nella tabella `ensure_installed` dopo l'ultimo parser impostato: ```text ... @@ -340,7 +347,7 @@ Per avere il parser disponibile direttamente nell'istanza in esecuzione di NvCha :TSInstall yaml ``` -Di seguito nel file è riportata la parte relativa all'installazione dei server da parte di *Mason*. Tutti i server impostati in questa tabella vengono installati in un'unica operazione con il comando `:MasonInstallAll` (questo comando viene richiamato anche durante la creazione della cartella *custom*). La parte è la seguente: +Di seguito nel file è riportata la parte relativa all'installazione dei server da parte di _Mason_. Tutti i server impostati in questa tabella vengono installati in un'unica operazione con il comando `:MasonInstallAll` (questo comando viene richiamato anche durante la creazione della cartella _custom_). La parte è la seguente: ```lua M.mason = { @@ -359,7 +366,7 @@ M.mason = { } ``` -Ancora una volta, seguendo l'esempio iniziale in cui abbiamo abilitato il supporto per *yaml* installando manualmente il server, possiamo assicurarci di averlo sempre installato aggiungendolo alla tabella: +Ancora una volta, seguendo l'esempio iniziale in cui abbiamo abilitato il supporto per _yaml_ installando manualmente il server, possiamo assicurarci di averlo sempre installato aggiungendolo alla tabella: ```text ... @@ -376,13 +383,10 @@ Sebbene questo aspetto possa essere marginale su un'istanza di esecuzione di NvC Ad esempio, supponiamo di aver configurato la nostra cartella `custom` e di volerla trasferire ad un'altra installazione di NvChad. Se si è configurato questo file, dopo aver copiato o clonato la cartella `custom` sarà sufficiente un `:MasonInstallAll` per avere tutti i server pronti all'uso anche sull'altra installazione. - -La parte finale della configurazione, la sezione `M.nvimtree`, si occupa di configurare *nvim-tree* abilitando la funzionalità di visualizzazione dello stato dell'albero dei file relativo al repository git: +La parte finale della configurazione, la sezione `M.nvimtree`, si occupa di configurare _nvim-tree_ abilitando la funzionalità di visualizzazione dello stato dell'albero dei file relativo al repository git: ```lua - git = { - enable = true, - }, + ``` la loro evidenziazione e le icone corrispondenti: @@ -402,4 +406,4 @@ la loro evidenziazione e le icone corrispondenti: L'introduzione in NvChad 2.0 della possibilità di creare una cartella `custom` durante la prima installazione è sicuramente un grande aiuto per tutti quegli utenti che si avvicinano a questo editor per la prima volta. Inoltre, offre anche un notevole risparmio di tempo per coloro che hanno già avuto a che fare con NvChad. -Grazie alla sua introduzione e all'uso di *Mason*, l'integrazione delle proprie funzionalità è semplice e veloce. Bastano poche modifiche e si è subito pronti a utilizzare l'IDE per scrivere del codice. +Grazie alla sua introduzione e all'uso di _Mason_, l'integrazione delle proprie funzionalità è semplice e veloce. Bastano poche modifiche e si è subito pronti a utilizzare l'IDE per scrivere del codice. diff --git a/docs/books/nvchad/vale_nvchad.it.md b/docs/books/nvchad/vale_nvchad.it.md index 5d8625acff..8e5e7fcb83 100644 --- a/docs/books/nvchad/vale_nvchad.it.md +++ b/docs/books/nvchad/vale_nvchad.it.md @@ -15,15 +15,15 @@ tags: ## :material-arrow-bottom-right-bold-outline: Prerequisiti -* È utile la familiarità con NvChad 2.0 -* Possibilità di modificare i file dalla riga di comando utilizzando l'editor preferito. (`vi` o il vostro preferito) -* Il plugin *nvim-lint* correttamente installato in NvChad. +- È utile la familiarità con NvChad 2.0 +- Possibilità di modificare i file dalla riga di comando utilizzando l'editor preferito. (`vi` o il vostro preferito) +- Il plugin _nvim-lint_ correttamente installato in NvChad. ### :material-monitor-arrow-down-variant: Installazione di nvim-lint Il plugin [nvim-lint](https://github.com/mfussenegger/nvim-lint) fornisce il supporto per l'inserimento dei ==linters== nell'editor, fornendo la correzione del codice o del contenuto sia per la parte sintattica che per quella semantica. -Per installare il plugin *nvim-lint*, è sufficiente creare un file **nvim-lint.lua** nella cartella `lua/plugins`; al successivo avvio dell'istanza di Neovim, questo verrà integrato nella configurazione. +Per installare il plugin _nvim-lint_, è sufficiente creare un file **nvim-lint.lua** nella cartella `lua/plugins`; al successivo avvio dell'istanza di Neovim, questo verrà integrato nella configurazione. Il contenuto del file è il seguente: @@ -67,18 +67,17 @@ Invece di consultare l'intero elenco dei pacchetti, utilizziamo la voce del menu Sono disponibili due metodi per configurare `vale`. Si può scegliere il proprio preferito tra le due opzioni sottostanti. Una consiste nel creare i file di configurazione all'interno del percorso del binario `vale`, quindi spostarli nella cartella home, mentre l'altra consiste nel creare i file di configurazione direttamente nella cartella home. Funzionano ugualmente bene. La seconda opzione ha meno passaggi manuali, ma richiede un lungo percorso per il binario `vale`. -!!! tip "Suggerimento" +!!! tip - Per nascondere la cartella "styles" (sotto), modificare leggermente il contenuto di `.vale.ini' durante la creazione, cambiando l'opzione "StylesPath" da "styles" a qualcosa di nascosto, come ".styles" o ".vale_styles." Esempio: - - ``` - StylesPath = .vale_styles - ``` + Per nascondere la cartella "styles" (sotto), modificare leggermente il contenuto di \`.vale.ini' durante la creazione, cambiando l'opzione "StylesPath" da "styles" a qualcosa di nascosto, come ".styles" o ".vale_styles." Esempio: + + ` StylesPath = .vale_styles ` La sola installazione di `vale` non è sufficiente. Sono necessari un paio di elementi aggiuntivi. Per prima cosa, sarà necessario un file `.vale.ini` che verrà collocato nella radice della cartella home. Successivamente, è necessario generare la cartella "styles" usando `vale sync`. -=== "Installazione dal percorso del file binario `vale`" +\=== "Installazione dal percorso del file binario `vale`" + ```` Se vi trovate nel percorso del binario `vale` qui: `~/.local/share/nvim/mason/packages/vale/` si può semplicemente creare il file `.vale.ini` qui, generare la cartella "styles" e poi spostare entrambi nella propria root `~/`. La creazione del file `.vale.ini' è semplice utilizzando l'utilità di configurazione del sito web `vale.sh` (https://vale.sh/generator). Scegliere "Red Hat Documentation Style Guide" per lo stile di base e "alex" per lo stile supplementare. L'uso di 'alex' è facoltativo, ma aiuta a individuare e correggere le parole di genere, polarizzanti, razziali, ecc. Se si scelgono queste opzioni, la schermata dovrebbe apparire come questa: If you choose those options, your screen should look like this: ![vale_ini_nvchad](images/vale_ini_nvchad.png) @@ -86,25 +85,27 @@ La sola installazione di `vale` non è sufficiente. Sono necessari un paio di el È sufficiente copiare il contenuto in basso, creare il file `.vale.ini` con il proprio editor preferito e incollare quanto copiato. È necessario creare la cartella "styles". Per farlo, eseguire il binario `vale` con il comando `sync`. Anche in questo caso, se si sta eseguendo questa operazione dalla directory `~/.local/share/nvim/mason/packages/vale/`, basta fare: - + ```bash ./vale sync ``` - - + + Una volta terminata l'operazione, verrà visualizzato quanto segue: ![vale_sync](images/vale_sync.png) Copiare la cartella `.vale.ini` e la cartella `styles` nella radice della cartella home: - + ```bash cp .vale.ini ~/ cp -rf styles ~/ ``` + ```` -Copiare il file `.vale.ini` e la cartella `styles` nella radice della cartella home: +Copiare il file .vale.ini e la cartella styles nella radice della cartella home: + ```` Se si preferisce non dover copiare i file e si vuole semplicemente crearli nella propria cartella personale, si può usare questo comando da `~/`: Per prima cosa, creare il file `.vale.ini' nella propria cartella personale usando [il sito web `vale.sh`] (https://vale.sh/generator). Anche in questo caso, scegliere "Red Hat Documentation Style Guide" per lo stile di base e "alex" per lo stile supplementare. Quindi copiare il contenuto nel file `.vale.ini`. @@ -112,21 +113,22 @@ Copiare il file `.vale.ini` e la cartella `styles` nella radice della cartella h ![vale_ini_nvchad](images/vale_ini_nvchad.png) Successivamente, eseguire il comando `vale sync`. Poiché ci si trova nella propria home directory, è necessario l'intero percorso del binario: - + ```bash ~/.local/share/nvim/mason/packages/vale/vale sync ``` - - + + ![vale_sync](images/vale_sync.png) In questo caso, non è necessario copiare i file, poiché verranno creati nella directory principale. + ```` ### :material-file-edit-outline: Modifiche al file `lint.lua` È necessario un ultimo passo. È necessario modificare il file `lint.lua` che si trova in `~/.config/nvim/lua/configs/` e aggiungere il linter `vale`. -Utilizzando l'esempio mostrato sopra per aggiungere *vale* al linter disponibile per i file markdown, sarà necessario aggiungere il nuovo linter alla stringa già presente: +Utilizzando l'esempio mostrato sopra per aggiungere _vale_ al linter disponibile per i file markdown, sarà necessario aggiungere il nuovo linter alla stringa già presente: ```lua markdown = { "markdownlint", "vale" }, @@ -145,7 +147,6 @@ vim.api.nvim_create_autocmd({ "BufWritePost" }, { require("lint").try_lint() end, }) - ``` ## Conclusioni e considerazioni finali diff --git a/docs/guides/web/tor_onion_service.de.md b/docs/guides/web/tor_onion_service.de.md index 9b9737d7c2..c1bd891e78 100644 --- a/docs/guides/web/tor_onion_service.de.md +++ b/docs/guides/web/tor_onion_service.de.md @@ -1,5 +1,5 @@ --- -title: Tor Onion Service +title: Tor Onion Dienst author: Neel Chauhan contributors: Ganna Zhrynova tested_with: 9.3 @@ -13,21 +13,21 @@ tags: ## Einleitung -[Tor](https://www.torproject.org/) is an anonymity service and software that routes traffic by way of three volunteer-run servers called relays. The three-hop design is to ensure privacy by resisting surveillance attempts. +[Tor](https://www.torproject.org/) ist ein Anonymisierungsdienst und eine Software, die den Datenverkehr über drei von Freiwilligen betriebene Server, sogenannte Relays, leitet. Das Three-Hop-Design soll die Privatsphäre gewährleisten, indem es Überwachungsversuchen widersteht. -One feature of Tor is that you can run hidden, Tor-exclusive websites called [onion services](https://community.torproject.org/onion-services/). All traffic to an onion service is therefore private and encrypted. +Eine Besonderheit von Tor ist, dass man versteckte, Tor-exklusive Websites betreiben kann, die als [Onion-Dienste](https://community.torproject.org/onion-services/) bezeichnet werden. Der gesamte Datenverkehr zu einem Onion-Dienst ist daher privat und verschlüsselt. ## Voraussetzungen -The following are minimum requirements for using this procedure: +Folgende Mindestvoraussetzungen gelten für die Anwendung dieses Verfahrens: -- The ability to run commands as the root user or use `sudo` to elevate privileges -- Familiarity with a command-line editor. The author is using `vi` or `vim` here, but substitute in your favorite editor -- A web server running on localhost, or another TCP/IP port +- Die Möglichkeit, Befehle als Root-Benutzer auszuführen oder mit `sudo` die Berechtigungen zu erhöhen +- Erfahrung im Umgang mit einem Kommandozeilen-Editor. Der Autor verwendet hier `vi` oder `vim`, Sie können aber Ihren bevorzugten Editor verwenden +- Ein Webserver, der auf localhost oder einem anderen TCP/IP-Port läuft ## Tor-Installation -To install Tor, you need to first install the EPEL (Extra Packages for Enterprise Linux) and run updates: +Zur Installation von Tor müssen Sie zuerst EPEL (Extra Packages for Enterprise Linux) installieren und Updates ausführen: ```bash dnf -y install epel-release && dnf -y update @@ -41,13 +41,13 @@ dnf -y install tor ## Tor-Konfiguration -With the packages installed, you need to configure Tor. The author uses `vi` for this, but if you prefer `nano` or something else, go ahead and substitute that in: +Nach der Installation der Pakete müssen Sie Tor konfigurieren. Der Autor verwendet dafür `vim`, aber wenn Sie `nano` oder etwas anderes bevorzugen, können Sie das gerne entsprechend anpassen: ```bash vi /etc/tor/torrc ``` -The default `torrc` file is pretty descriptive, but can get long if you just want an onion service. A minimum onion service configuration is similar to this: +Die standardmäßige `torrc`-Datei ist recht aussagekräftig, kann aber sehr lang werden, wenn man nur einen Onion-Dienst benötigt. Eine minimale Onion-Service-Konfiguration sieht in etwa so aus: ```bash HiddenServiceDir /var/lib/tor/onion-site/ @@ -56,22 +56,22 @@ HiddenServicePort 80 127.0.0.1:80 ### Genauere Betrachtung -- The "HiddenServiceDir" is the location of your onion service's hostname and cryptographic keys. You are storing these keys at `/var/lib/tor/onion-site/` -- The "HiddenServicePort" is the port forwarding from your local server to the onion service. You are forwarding 127.0.0.1:80 to port 80 on our Tor-facing service +- Das Verzeichnis `HiddenServiceDir` enthält den Hostnamen und die kryptografischen Schlüssel Ihres Onion-Dienstes. Sie speichern diese Schlüssel unter `/var/lib/tor/onion-site/` +- Der `HiddenServicePort` ist die Portweiterleitung von Ihrem lokalen Server zum Onion-Dienst. Sie leiten 127.0.0.1:80 an Port 80 unseres Tor-basierten Dienstes weiter !!! warning - If you plan to use a directory for your onion service signing keys outside of `/var/lib/tor/`, you will need to make sure the permissions are `0700` and the owner is `toranon:toranon`. + Wenn Sie ein Verzeichnis außerhalb von `/var/lib/tor/` für Ihre Onion-Service-Signaturschlüssel verwenden möchten, müssen Sie sicherstellen, dass die Berechtigungen `0700` lauten und der Eigentümer `toranon:toranon` ist. ## Web-Server — Konfiguration -You will also need a web server on our machine to service clients to your onion service. Any web server (Caddy, Apache, or Nginx) is usable. The author prefers Caddy. Der Einfachheit halber installieren wir Caddy: +Sie benötigen außerdem einen Webserver auf Ihrem Rechner, um Clients für Ihren Onion-Dienst zu bedienen. Jeder Webserver (Caddy, Apache oder Nginx) ist verwendbar. Der Autor bevorzugt Caddy. Der Einfachheit halber installieren wir Caddy: ```bash dnf -y install caddy ``` -Next, you will insert the following to `/etc/caddy/Caddyfile`: +Als Nächstes fügen Sie Folgendes in die Datei `/etc/caddy/Caddyfile` ein: ```bash http:// { @@ -82,24 +82,24 @@ http:// { ## Testen und Hochfahren -Once you have set your Tor relay configuration, the next step is to turn up the Tor and Caddy daemons: +Sobald Sie Ihre Tor-Relay-Konfiguration eingerichtet haben, besteht der nächste Schritt darin, die Tor- und Caddy-Daemons zu aktivieren: ```bash systemctl enable --now tor caddy ``` -You can get your onion service's hostname with this command: +Den Hostnamen Ihres Onion-Dienstes erhalten Sie mit diesem Befehl: ```bash cat /var/lib/tor/onion-site/hostname ``` -Within a few minutes, your onion service will propagate via the Tor network and you can view your new onion service in the Tor browser: +Innerhalb weniger Minuten wird Ihr Onion-Dienst über das Tor-Netzwerk verbreitet und Sie können Ihren neuen Onion-Dienst im Tor-Browser anzeigen: ![Tor Browser showing our Onion Service](../images/onion_service.png) ## Zusammenfassung -Onion services are an invaluable tool if you are hosting a website privately or need to bypass your ISP's Carrier Grade NAT using only open source software. +Onion-Dienste sind ein unschätzbares Werkzeug, wenn Sie eine Website privat hosten oder die Carrier-Grade-NAT-Sperre Ihres Internetanbieters ausschließlich mit Open-Source-Software umgehen müssen. -While onion services are not as fast as hosting a website directly (understandable due to Tor's privacy-first design), it is way more secure and private than the public internet. +Auch wenn Onion-Dienste nicht so schnell sind wie das direkte Hosten einer Website (was aufgrund des datenschutzorientierten Designs von Tor verständlich ist), sind sie wesentlich sicherer und privater als das öffentliche Internet. diff --git a/docs/guides/web/tor_onion_service.fr.md b/docs/guides/web/tor_onion_service.fr.md index 4bc8a091a7..9eac5997ba 100644 --- a/docs/guides/web/tor_onion_service.fr.md +++ b/docs/guides/web/tor_onion_service.fr.md @@ -13,21 +13,21 @@ tags: ## Introduction -[Tor](https://www.torproject.org/) is an anonymity service and software that routes traffic by way of three volunteer-run servers called relays. The three-hop design is to ensure privacy by resisting surveillance attempts. +[Tor](https://www.torproject.org/) est un service et un logiciel d'anonymat qui achemine le trafic via trois serveurs gérés par des bénévoles appelés relais. La conception à trois sauts `three-hop` vise à assurer la confidentialité en résistant aux tentatives de surveillance. -One feature of Tor is that you can run hidden, Tor-exclusive websites called [onion services](https://community.torproject.org/onion-services/). All traffic to an onion service is therefore private and encrypted. +Une des caractéristiques de Tor est que vous pouvez exécuter des sites Web cachés et exclusifs à Tor appelés [services onion](https://community.torproject.org/onion-services/). Tout le trafic vers un service Onion est donc privé et crypté. ## Prérequis Les conditions suivantes sont indispensables pour utiliser cette procédure : -- The ability to run commands as the root user or use `sudo` to elevate privileges -- Familiarity with a command-line editor. The author is using `vi` or `vim` here, but substitute in your favorite editor -- A web server running on localhost, or another TCP/IP port +- La capacité d'exécuter des commandes en tant qu'utilisateur root ou d'utiliser `sudo` pour élever les privilèges +- Maîtrise d'un éditeur de ligne de commande. L'auteur utilise ici `vi` ou `vim`, mais vous pouvez le remplacez par votre éditeur préféré +- Un serveur Web fonctionnant sur localhost, ou un autre port TCP/IP ## Installation de `Tor` -To install Tor, you need to first install the EPEL (Extra Packages for Enterprise Linux) and run updates: +Pour installer Tor, vous devez d'abord installer EPEL (Extra Packages for Enterprise Linux) et exécuter les mises à jour : ```bash dnf -y install epel-release && dnf -y update @@ -41,13 +41,13 @@ dnf -y install tor ## Configuration de `Tor` -With the packages installed, you need to configure Tor. The author uses `vi` for this, but if you prefer `nano` or something else, go ahead and substitute that in: +Une fois les paquets installés, vous devez configurer Tor. L'auteur utilise `vi` pour cela, mais si vous préférez `nano` ou un autre éditeur, n'hésitez pas à le remplacer : ```bash vi /etc/tor/torrc ``` -The default `torrc` file is pretty descriptive, but can get long if you just want an onion service. A minimum onion service configuration is similar to this: +Le fichier `torrc` par défaut est assez descriptif, mais il peut devenir long si vous voulez simplement un service onion. A minimum onion service configuration is similar to this: ```bash HiddenServiceDir /var/lib/tor/onion-site/ @@ -65,13 +65,13 @@ HiddenServicePort 80 127.0.0.1:80 ## Configuration de serveur web -You will also need a web server on our machine to service clients to your onion service. Any web server (Caddy, Apache, or Nginx) is usable. L'auteur favorise `Caddy`. Par souci de simplicité, installons Caddy : +Vous aurez également besoin d'un serveur Web sur notre machine pour assurer la liaison aux clients de votre service Onion. N'importe quel serveur Web (Caddy, Apache ou Nginx) est utilisable. L'auteur favorise `Caddy`. Par souci de simplicité, installons Caddy : ```bash dnf -y install caddy ``` -Next, you will insert the following to `/etc/caddy/Caddyfile`: +Ensuite, vous insérerez ce qui suit dans le fichier `/etc/caddy/Caddyfile` : ```bash http:// { @@ -82,13 +82,13 @@ http:// { ## Test et Lancement du Service -Once you have set your Tor relay configuration, the next step is to turn up the Tor and Caddy daemons: +Une fois votre configuration de relais Tor définie, l'étape suivante consiste à activer les daemons Tor et Caddy : ```bash systemctl enable --now tor caddy ``` -You can get your onion service's hostname with this command: +Vous pouvez obtenir le nom d'hôte de votre service Onion grâce à cette commande : ```bash cat /var/lib/tor/onion-site/hostname