rearranged the repository structure
1
linux/alacritty/alacritty.yml
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/davide/.config/alacritty/alacritty.yml
|
0
linux/ansible.md
Normal file
BIN
linux/asset/calcurse/calcurse.png
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
linux/asset/fsh/fsh.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
linux/asset/runlevel/grubedit.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
linux/asset/runlevel/initbash.jpg
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
linux/asset/runlevel/initbash.png
Normal file
After Width: | Height: | Size: 22 KiB |
136
linux/bash/alias-bash.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# Alias
|
||||
<!-- vim-markdown-toc GFM -->
|
||||
|
||||
* [Creazione di alias in Bash](#creazione-di-alias-in-bash)
|
||||
* [Creare alias permanenti](#creare-alias-permanenti)
|
||||
* [Creazione di alias Bash con argomenti (funzioni)](#creazione-di-alias-bash-con-argomenti-funzioni)
|
||||
* [List all Alias](#list-all-alias)
|
||||
* [Alias che potrebbero tornare utili](#alias-che-potrebbero-tornare-utili)
|
||||
* [Collegamenti](#collegamenti)
|
||||
|
||||
<!-- vim-markdown-toc -->
|
||||
|
||||
In un sistema GNU/Linux è possibile personalizzare la shell impostando degli `alias`, cioè delle scorciatoie per i comandi lunghi utilizzati frequentemente. Ad esempio, digitando il comando
|
||||
|
||||
```bash
|
||||
ls -a --color=auto
|
||||
```
|
||||
|
||||
in un terminale otteniamo l"elenco delle cartelle e dei file (ls), compresi i file nascosti (-a), il tutto reso mediante una colorazione che automaticamente differenzia gli elementi (--color=auto). Con la definizione di un alias per il comando ls si può fare in modo che venga eseguito completo dei parametri senza bisogno di specificarli.
|
||||
|
||||
## Creazione di alias in Bash
|
||||
|
||||
La creazione di alias in bash è molto semplice. La sintassi è la seguente:
|
||||
|
||||
```bash
|
||||
alias alias_name="command_to_run"
|
||||
```
|
||||
|
||||
Quindi, riprendendo l"esempio precedente:
|
||||
|
||||
```bash
|
||||
alias lsc="ls -a --color=auto"
|
||||
```
|
||||
|
||||
Ora, se si digita il comando `lsc` sulla console, si otterrà lo stesso output che si avrebbe digitando `ls -a --color=auto`.
|
||||
|
||||
## Creare alias permanenti
|
||||
|
||||
L"alias sarà disponibile solo nella sessione di shell corrente: se si esce dalla sessione o si apre una nuova sessione da un altro terminale, l"alias non sarà utilizzabile.
|
||||
|
||||
Per rendere persistente l"alias è necessario dichiararlo nel file `~/.bash_profile` o `~/.bashrc`.
|
||||
|
||||
Aprire il file `~/.bashrc` e aggiungere i propri alias:
|
||||
|
||||
```bash
|
||||
nano ~/.bashrc
|
||||
|
||||
...
|
||||
|
||||
# Aliases
|
||||
# alias alias_name="command_to_run"
|
||||
|
||||
# color ls
|
||||
alias ll="ls -la"
|
||||
```
|
||||
|
||||
Una volta fatto, salvare e chiudere il file. Per rendere disponibili gli alias nella sessione corrente digitare:
|
||||
|
||||
```bash
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
## Creazione di alias Bash con argomenti (funzioni)
|
||||
|
||||
A volte potrebbe essere necessario creare un alias che accetta uno o più argomenti, ecco dove le funzioni bash sono utili.
|
||||
|
||||
La sintassi per creare una funzione bash è molto semplice. Possono essere dichiarati in due diversi formati:
|
||||
|
||||
```bash
|
||||
function_name () {
|
||||
[commands]
|
||||
}
|
||||
```
|
||||
|
||||
Oppure:
|
||||
|
||||
```bash
|
||||
function function_name {
|
||||
[commands]
|
||||
}
|
||||
```
|
||||
|
||||
Per passare un numero qualsiasi di argomenti alla funzione bash, si deve inserirli subito dopo il nome della funzione, separati da uno spazio. I parametri passati sono $1, $2, $3 , ecc, dove il numero indica la posizione del parametro dopo il nome della funzione. La variabile $0 è riservata per il nome della funzione.
|
||||
|
||||
Ecco una semplice funzione bash che creerà una directory e poi si sposterà in essa:
|
||||
|
||||
```bash
|
||||
mkcd ()
|
||||
{
|
||||
mkdir -p -- "$1" && cd -P -- "$1"
|
||||
}
|
||||
```
|
||||
|
||||
Come per gli alias, bisogna aggiungere la funzione al file `~/.bashrc` ed eseguire il comando `source ~/.bashrc` per ricaricare il file.
|
||||
|
||||
Quindi, invece di utilizzare `mkdir` creare una nuova directory e il comando `cd` spostarsi in quella directory, è possibile digitare:
|
||||
|
||||
`mkcd nuova_cartella`
|
||||
|
||||
## List all Alias
|
||||
|
||||
Per vedere gli alias presenti, basta il seguente comando:
|
||||
|
||||
```bash
|
||||
alias
|
||||
```
|
||||
|
||||
## Alias che potrebbero tornare utili
|
||||
|
||||
```bash
|
||||
## Terminal shortcuts
|
||||
alias ..="cd ../"
|
||||
alias ...="cd ../../"
|
||||
alias ....="cd ../../../"
|
||||
alias .....="cd ../../../../"
|
||||
alias ll="ls -alhF --color=auto"
|
||||
alias lc="ls -l --color=auto"
|
||||
alias lsd="exa -lha --icons"
|
||||
alias update="sudo apt update ; sudo apt -y upgrade ; sudo apt -y autoremove ; flatpak upgrade -y; flatpak uninstall --unused -y; sudo pkcon refresh ; sudo pkcon -y update"
|
||||
alias install="sudo apt install -y"
|
||||
alias reboot="sudo /sbin/reboot"
|
||||
alias poweroff="sudo /sbin/poweroff"
|
||||
alias grep="grep --color=auto"
|
||||
alias egrep="egrep --color=auto"
|
||||
|
||||
## Github shortcuts
|
||||
alias repo="gh repo create"
|
||||
alias gi="git init"
|
||||
alias ga="git add -A"
|
||||
alias gc="git commit -m"
|
||||
```
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://guide.debianizzati.org/index.php/Alias](https://guide.debianizzati.org/index.php/Alias)
|
||||
- [https://noviello.it/come-creare-alias-bash-su-linux/](https://noviello.it/come-creare-alias-bash-su-linux/)
|
154
linux/bash/bash_ps1.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# Personalizzare Bash
|
||||
|
||||
Il prompt di default della riga comandi di Linux può essere personalizzato facilmente modificando la variabile di ambiente PS1.
|
||||
|
||||
`PS1="[stringa]"`
|
||||
|
||||
La composizione della stringa nel comando PS1 determina come apparirà il prompt.
|
||||
|
||||
## Come visualizzare la stringa del prompt corrente
|
||||
|
||||
Pe vedere la configurazione attuale del prompt basta digitare sulla riga comandi
|
||||
|
||||
`ECHO $PS1`
|
||||
|
||||
Sullo schermo viene visualizzata la stringa corrente, quella che definisce l'aspetto attuale del prompt. Ad esempio:
|
||||
|
||||
```bash
|
||||
echo $PS1
|
||||
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
|
||||
```
|
||||
|
||||
## Le principali opzioni
|
||||
|
||||
Le principali opzioni per comporre la stringa sono le seguenti:
|
||||
|
||||
- `\d` visualizza la data formato "Giorno-della-settimana Mese Data" ("Tue May 26");
|
||||
- `\H` visualizza il nome dell'host;
|
||||
- `\t` visualizza l'ora nel formato a 24 ore ( HH:MM:SS);
|
||||
- `\A` visualizza l'ora nel formato a 24 ore ( HH:MM );
|
||||
- `\u` visualizza il nome dell'utente corrente;
|
||||
- `\w` visualizza il nome della directory corrente o la tilde nel caso della directory $HOME;
|
||||
- `\$` visualizza il simbolo $ per gli utenti normali o # per l'utente root;
|
||||
- `\\` visualizza un singolo backslash;
|
||||
- `\n` il carattere "newline";
|
||||
- `\r` il carattere "carriage return";
|
||||
- `\s` il nome della shell, il nome base di $0;
|
||||
- `\!` il numero cronologico (history number) di questo comando;
|
||||
- `\[` comuncia una sequenza di caratteri non stampabili, che potrebbero essere usati per inserire una sequenza di controllo del terminale nel prompt;
|
||||
- `\]` termina la sequenza di caratteri non stampabili.
|
||||
|
||||
Si possono anche utilizzare colori, icone e altri elementi grafici utilizzando codici di colore ANSI e icone speciali. Il formato è
|
||||
|
||||
`\[\033[CODICE;COLOREm\]`
|
||||
|
||||
## Modificare la variabile $PS1
|
||||
|
||||
Per modificare la variabile PS1 si può usare il comando
|
||||
|
||||
`export PS1="nuova stringa di prompt"`
|
||||
|
||||
ad esempio
|
||||
|
||||
`export PS1="\u@\h:\w$ "`
|
||||
|
||||
visualizzerà il nome dell'utente, il nome del host e la directory corrente.
|
||||
|
||||
### Salvare le modifiche
|
||||
|
||||
Per rendere permanenti le modifiche alla variabile PS1 si può aggiungere il comando export alla fine del file `.bashrc` presente nella home dell'utente.
|
||||
|
||||
```bash
|
||||
# codici dei colori
|
||||
DEFAULT="\[\033[0m\]"
|
||||
RED="\[\033[1;31m\]"
|
||||
GREEN="\[\033[0;32m\]"
|
||||
BLUE="\[\033[1;34m\]"
|
||||
EBLACK="\[\033[1;30m\]"
|
||||
PURPLE="\[\033[35m\]"
|
||||
YELLOW="\[\033[1;33m\]"
|
||||
CYAN="\[\033[1;36m\]"
|
||||
|
||||
parse_git_branch() {
|
||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
|
||||
}
|
||||
|
||||
export PS1="$GREEN[\A \d]$CYAN\u$BLUE@\h $DEFAULT(\!):$YELLOW\w $PURPLE\n\$(parse_git_branch)$DEFAULT > "
|
||||
```
|
||||
|
||||
Riavviare il terminale o eseguire il comando `source ~/.bashrc` per rendere effettive le modifiche.
|
||||
|
||||
La funzione `parse_git_branch` è una funzione personalizzata che consente di visualizzare il nome della branch corrente del repository git sulla riga di comando.
|
||||
|
||||
In particolare:
|
||||
|
||||
- `git branch 2> /dev/null`: esegue il comando git branch e reindirizza l'output di errore in `/dev/null`, in modo che non venga visualizzato alcun messaggio di errore se non si è in un repository git;
|
||||
- `sed -e '/^[^*]/d'`: utilizza sed per eliminare tutte le righe che non iniziano con un asterisco;
|
||||
- `-e 's/* \(.*\)/\1/'`: utilizza sed per sostituire la riga restante con solo il contenuto dopo l'asterisco (che è il nome della branch corrente).
|
||||
|
||||
La funzione utilizzando questi comandi, restituirà solo il nome della branch corrente del repository git.
|
||||
|
||||
```bash
|
||||
[23:05 lun gen 16]davide@laptop (2000):~/Documenti/Appunti.wiki
|
||||
master >
|
||||
```
|
||||
|
||||
## Come avere una lunghezza indefinita della history
|
||||
|
||||
```bash
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=-1
|
||||
HISTFILESIZE=-1
|
||||
```
|
||||
|
||||
Basta impostare a `-1` questi valori nel file `.bashrc`.
|
||||
|
||||
## Ricerca nella history
|
||||
|
||||
Per ricercare aventi e indietro nella cronologia dei comandi, mentre questi vengono digitati, tramite i tasti PAGUP e PAGDOWN, aggiungere il seguente testo nel file `~/.inputrc`:
|
||||
|
||||
```bash
|
||||
"\e[5~": history-search-backward
|
||||
"\e[6~": history-search-forward
|
||||
```
|
||||
|
||||
I tasti `\e[5` e `\e[6` sono proprio PAGUP e PAGDOWN.
|
||||
|
||||
In ogni caso, la pressione dei tasti CTRL+R permette di effettuare la ricerca ricorsiva dei comandi precedentemente digitati.
|
||||
|
||||
### Hstr
|
||||
|
||||
`hstr` è un comando che aiuta a navigare in maniera più efficace nella history. Per installarlo basta digitare questo semplice comando:
|
||||
|
||||
```bash
|
||||
sudo apt install hstr
|
||||
```
|
||||
|
||||
Ora, con la combinazione `CTRL+r` si accederà alla ricerca dei comandi.
|
||||
|
||||
Hstr può essere configurato per fornire suggerimenti di ricerca durante la digitazione, simile ai suggerimenti che vengono visualizzati in genere in un browser Web e in altre applicazioni.
|
||||
|
||||
Suggerisce i comandi utilizzati più spesso e li mantiene in cima alla lista. È inoltre possibile aggiungere manualmente i comandi ai preferiti per un accesso facile e veloce.
|
||||
|
||||
Aggiungere il testo seguente al file `.bashrc` per la configurazione:
|
||||
|
||||
```bash
|
||||
# HSTR configuration - add this to ~/.bashrc
|
||||
|
||||
alias hh=hstr # hh to be alias for hstr
|
||||
export HSTR_CONFIG=monochromatic # get more colors
|
||||
shopt -s histappend # append new history items to .bash_history
|
||||
export HISTCONTROL=ignorespace # leading space hides commands from history
|
||||
export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"
|
||||
# if this is interactive shell, then bind hstr to Ctrl-r (for Vi mode check doc)
|
||||
if [[ $- =~ .*i.* ]]; then bind '"\C-r": "\C-a hstr -- \C-j"'; fi
|
||||
# if this is interactive shell, then bind 'kill last command' to Ctrl-x k
|
||||
if [[ $- =~ .*i.* ]]; then bind '"\C-xk": "\C-a hstr -k \C-j"'; fi
|
||||
```
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://linuxhint.com/bash-ps1-customization/](https://linuxhint.com/bash-ps1-customization/)
|
||||
- [http://www.megalab.it/5827/8/come-cambiare-il-prompt-di-bash](http://www.megalab.it/5827/8/come-cambiare-il-prompt-di-bash)
|
||||
- [http://www.pluto.it/sites/default/files/ildp/HOWTO/Bash-Prompt-HOWTO/Bash-Prompt-HOWTO-2.html](http://www.pluto.it/sites/default/files/ildp/HOWTO/Bash-Prompt-HOWTO/Bash-Prompt-HOWTO-2.html)
|
||||
- [https://linuxhint.com/hstr-command-history-browser-in-linux/](https://linuxhint.com/hstr-command-history-browser-in-linux/)
|
1
linux/bash/bashrc
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/davide/.bashrc
|
1
linux/bash/inputrc
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/davide/.inputrc
|
154
linux/calcurse.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# Calcurse
|
||||
|
||||
Calcurse è un calendario e un'applicazione di pianificazione per la riga di comando. Aiuta a tenere traccia di eventi, appuntamenti e attività quotidiane. Supporta la sincronizzazione tramite protocollo
|
||||
CalDAV.
|
||||
|
||||
Maggiori informazioni: [Calcurse](https://calcurse.org/)
|
||||
|
||||
## Installazione
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
wget -c https://calcurse.org/files/calcurse-4.8.0.tar.gz
|
||||
```
|
||||
|
||||
Quindi procedere coi seguenti comandi:
|
||||
|
||||
```bash
|
||||
tar xvf calcurse-4.8.0.tar.gz
|
||||
cd calcurse-4.8.0/
|
||||
|
||||
# Se non presente, installare la seguente libreria
|
||||
# sudo apt install install libncursesw5-dev
|
||||
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Ora è possibile eseguire il programma:
|
||||
|
||||
```bash
|
||||
calcurse
|
||||
```
|
||||
|
||||
Premendo il tasto `C` si accede alla configurazione.
|
||||
|
||||
```bash
|
||||
cat ~/.calcurse/conf
|
||||
|
||||
appearance.calendarview=monthly
|
||||
appearance.compactpanels=no
|
||||
appearance.defaultpanel=calendar
|
||||
appearance.layout=4
|
||||
appearance.headerline=yes
|
||||
appearance.eventseparator=yes
|
||||
appearance.dayseparator=yes
|
||||
appearance.emptyline=yes
|
||||
appearance.emptyday=--
|
||||
appearance.notifybar=yes
|
||||
appearance.sidebarwidth=3
|
||||
appearance.theme=magenta on default
|
||||
appearance.todoview=hide-completed
|
||||
appearance.headingpos=right-justified
|
||||
daemon.enable=no
|
||||
daemon.log=no
|
||||
format.inputdate=1
|
||||
format.notifydate=%a %F
|
||||
format.notifytime=%T
|
||||
format.outputdate=%D
|
||||
format.dayheading=%B %e, %Y
|
||||
general.autogc=no
|
||||
general.autosave=yes
|
||||
general.confirmdelete=yes
|
||||
general.confirmquit=yes
|
||||
general.firstdayofweek=monday
|
||||
general.multipledays=yes
|
||||
general.periodicsave=0
|
||||
general.systemevents=yes
|
||||
notification.command=printf '\a'
|
||||
notification.notifyall=flagged-only
|
||||
notification.warning=300
|
||||
format.appointmenttime=%H:%M
|
||||
```
|
||||
|
||||
## Configurazione
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
calcurse -C .calcurse/
|
||||
|
||||
cd .calcurse/caldav/
|
||||
|
||||
vim config
|
||||
|
||||
[General]
|
||||
Binary = calcurse
|
||||
Hostname = murena.io
|
||||
Path = /remote.php/dav/calendars/login@e.email/personal
|
||||
AuthMethod = basic
|
||||
InsecureSSL = No
|
||||
HTTPS = Yes
|
||||
SyncFilter = cal,todo
|
||||
DryRun = No
|
||||
Verbose = No
|
||||
|
||||
[Auth]
|
||||
Username = user@e.email
|
||||
Password = *******************
|
||||
|
||||
# Quindi abilitare la sincronizzazione
|
||||
|
||||
calcurse-caldav --init=two-way
|
||||
```
|
||||
|
||||
### Sincronizzazione
|
||||
|
||||
Le modifiche vengono caricate in remoto e scaricate in locale col comando:
|
||||
|
||||
```bash
|
||||
calcurse-caldav
|
||||
```
|
||||
|
||||
Per la sincronizzazione automatica è possibile abilitare un cronjob ogni 5 minuti, oppure crearsi un alias, in questo modo:
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
vim .bashrc
|
||||
|
||||
alias cc="calcurse-caldav >> ~/calcurse.log && calcurse -q"
|
||||
|
||||
source .bashrc
|
||||
```
|
||||
|
||||
oppure:
|
||||
|
||||
```
|
||||
crontab -e
|
||||
|
||||
*/5 * * * * echo -e "\n" >> ~/calcurse.log && date >> ~/calcurse.log && calcurse-caldav >> ~/calcurse.log
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Comandi rapidi
|
||||
|
||||
```bash
|
||||
calcurse -a # stampa gli appuntamenti del giorno
|
||||
calcurse -d n # stampa gli appuntamenti da oggi e per gli "n" giorni successivi
|
||||
calcurse -d 3
|
||||
calcurse -d gg/mm/aaaa # stampa gli appuntamenti per uno specifico giorno ù
|
||||
calcurse -d 13/12/2022
|
||||
calcurse -n # stampa il prossimo appuntamento entro le 24 ore (quello più vicino)
|
||||
calcurse -t(n) # stampa la lista delle attività. Opzionalmente si può indicare il livello di priorità
|
||||
calcurse t2 # stampa attività di priorità 2)
|
||||
```
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://community.e.foundation/t/calendar-sync-ecloud-x-calcurse-calcurse-caldav/33134](https://community.e.foundation/t/calendar-sync-ecloud-x-calcurse-calcurse-caldav/33134)
|
||||
- [https://calcurse.org/files/calcurse-caldav.html](https://calcurse.org/files/calcurse-caldav.html)
|
||||
- [https://calcurse.org/files/manual.html](https://calcurse.org/files/manual.html)
|
||||
- [https://github.com/lfos/calcurse/issues/301](https://github.com/lfos/calcurse/issues/301)
|
||||
- [https://github.com/lfos/calcurse/blob/pu/contrib/caldav/config.sample](https://github.com/lfos/calcurse/blob/pu/contrib/caldav/config.sample)
|
||||
- [https://github.com/lfos/calcurse](https://github.com/lfos/calcurse)
|
BIN
linux/debian/asset/debian/bismuth.png
Normal file
After Width: | Height: | Size: 643 KiB |
BIN
linux/debian/asset/debian/firefox.jpeg
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
linux/debian/asset/debian/libreoffice1.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
linux/debian/asset/debian/libreoffice2.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
linux/debian/asset/debian/papirus.png
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
linux/debian/asset/kde/1f2430.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
linux/debian/asset/kde/firefox.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
linux/debian/asset/kde/kde.png
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
linux/debian/asset/kde/ly.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
linux/debian/asset/kde/material.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
linux/debian/asset/kde/material2.png
Normal file
After Width: | Height: | Size: 157 KiB |
BIN
linux/debian/asset/kde/reader-menu.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
linux/debian/asset/kde/reader.png
Normal file
After Width: | Height: | Size: 744 KiB |
BIN
linux/debian/asset/kde/statusbar.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
linux/debian/asset/minidebian/debian1.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
linux/debian/asset/minidebian/debian10.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
linux/debian/asset/minidebian/debian11.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
linux/debian/asset/minidebian/debian12.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
linux/debian/asset/minidebian/debian13.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
linux/debian/asset/minidebian/debian14.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
linux/debian/asset/minidebian/debian15.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
linux/debian/asset/minidebian/debian16.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
linux/debian/asset/minidebian/debian17.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
linux/debian/asset/minidebian/debian18.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
linux/debian/asset/minidebian/debian19.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
linux/debian/asset/minidebian/debian2.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
linux/debian/asset/minidebian/debian20.png
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
linux/debian/asset/minidebian/debian21.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
linux/debian/asset/minidebian/debian22.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
linux/debian/asset/minidebian/debian23.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
linux/debian/asset/minidebian/debian24.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
linux/debian/asset/minidebian/debian25.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
linux/debian/asset/minidebian/debian26.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
linux/debian/asset/minidebian/debian27.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
linux/debian/asset/minidebian/debian28.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
linux/debian/asset/minidebian/debian29.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
linux/debian/asset/minidebian/debian3.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
linux/debian/asset/minidebian/debian30.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
linux/debian/asset/minidebian/debian31.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
linux/debian/asset/minidebian/debian32.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
linux/debian/asset/minidebian/debian33.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
linux/debian/asset/minidebian/debian34.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
linux/debian/asset/minidebian/debian35.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
linux/debian/asset/minidebian/debian36.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
linux/debian/asset/minidebian/debian37.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
linux/debian/asset/minidebian/debian38.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
linux/debian/asset/minidebian/debian39.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
linux/debian/asset/minidebian/debian4.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
linux/debian/asset/minidebian/debian40.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
linux/debian/asset/minidebian/debian41.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
BIN
linux/debian/asset/minidebian/debian42.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
linux/debian/asset/minidebian/debian43.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
linux/debian/asset/minidebian/debian44.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
linux/debian/asset/minidebian/debian45.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
linux/debian/asset/minidebian/debian46.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
linux/debian/asset/minidebian/debian47.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
linux/debian/asset/minidebian/debian48.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
linux/debian/asset/minidebian/debian49.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
linux/debian/asset/minidebian/debian5.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
linux/debian/asset/minidebian/debian50.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
linux/debian/asset/minidebian/debian51.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
linux/debian/asset/minidebian/debian52.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
linux/debian/asset/minidebian/debian53.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
linux/debian/asset/minidebian/debian54.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
linux/debian/asset/minidebian/debian55.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
linux/debian/asset/minidebian/debian56.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
linux/debian/asset/minidebian/debian57.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
linux/debian/asset/minidebian/debian6.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
linux/debian/asset/minidebian/debian7.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
linux/debian/asset/minidebian/debian8.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
linux/debian/asset/minidebian/debian9.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
146
linux/debian/asset/rofi/config.rasi
Normal file
@@ -0,0 +1,146 @@
|
||||
configuration {
|
||||
modi: "drun,window,run,ssh";
|
||||
width: 900;
|
||||
lines: 15;
|
||||
columns: 1;
|
||||
font: "Open Sans 13";
|
||||
bw: 1;
|
||||
/* location: 0;*/
|
||||
/* padding: 5;*/
|
||||
/* yoffset: 0;*/
|
||||
/* xoffset: 0;*/
|
||||
/* fixed-num-lines: true;*/
|
||||
show-icons: true;
|
||||
terminal: "konsole";
|
||||
/* ssh-client: "ssh";*/
|
||||
/* ssh-command: "{terminal} -e {ssh-client} {host}";*/
|
||||
run-command: "{cmd}";
|
||||
/* run-list-command: "";*/
|
||||
run-shell-command: "{terminal} -e {cmd}";
|
||||
/* window-command: "xkill -id {window}";*/
|
||||
/* window-match-fields: "all";*/
|
||||
/* drun-icon-theme: ;*/
|
||||
drun-match-fields: "name,generic,exec,categories";
|
||||
/* drun-show-actions: true; */
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
/* disable-history: false;*/
|
||||
/* ignored-prefixes: "";*/
|
||||
/* sort: false;*/
|
||||
/* sorting-method: ;*/
|
||||
case-sensitive: false;
|
||||
/* cycle: true;*/
|
||||
sidebar-mode: true;
|
||||
/* eh: 1;*/
|
||||
/* auto-select: false;*/
|
||||
/* parse-hosts: false;*/
|
||||
/* parse-known-hosts: true;*/
|
||||
combi-modi: "drun,run,window";
|
||||
matching: "fuzzy";
|
||||
/* tokenize: true;*/
|
||||
/* m: "-5";*/
|
||||
/* line-margin: 2;*/
|
||||
/* line-padding: 1;*/
|
||||
/* filter: ;*/
|
||||
/* separator-style: "dash";*/
|
||||
/* hide-scrollbar: false;*/
|
||||
/* fullscreen: false;*/
|
||||
/* fake-transparency: false;*/
|
||||
/* dpi: -1;*/
|
||||
/* threads: 0;*/
|
||||
/* scrollbar-width: 8;*/
|
||||
/* scroll-method: 0;*/
|
||||
/* fake-background: "screenshot";*/
|
||||
/* window-format: "{w} {c} {t}";*/
|
||||
/* click-to-exit: true;*/
|
||||
/* show-match: true;*/
|
||||
/* theme: ;*/
|
||||
/* color-normal: ;*/
|
||||
/* color-urgent: ;*/
|
||||
/* color-active: ;*/
|
||||
/* color-window: ;*/
|
||||
/* max-history-size: 25;*/
|
||||
combi-hide-mode-prefix: true;
|
||||
/* matching-negate-char: '-' /* unsupported */;*/
|
||||
/* cache-dir: ;*/
|
||||
/* pid: "/run/user/19201007/rofi.pid";*/
|
||||
display-window: true;
|
||||
/* display-windowcd: ;*/
|
||||
display-run: true;
|
||||
display-ssh: true;
|
||||
display-drun: true;
|
||||
display-combi: true;
|
||||
/* display-keys: ;*/
|
||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||
/* kb-clear-line: "Control+w";*/
|
||||
/* kb-move-front: "Control+a";*/
|
||||
/* kb-move-end: "Control+e";*/
|
||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||
/* kb-move-char-back: "Left,Control+b";*/
|
||||
/* kb-move-char-forward: "Right,Control+f";*/
|
||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||
/* kb-remove-to-eol: "Control+k";*/
|
||||
/* kb-remove-to-sol: "Control+u";*/
|
||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||
/* kb-accept-custom: "Control+Return";*/
|
||||
/* kb-accept-alt: "Shift+Return";*/
|
||||
/* kb-delete-entry: "Shift+Delete";*/
|
||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||
/* kb-row-left: "Control+Page_Up";*/
|
||||
/* kb-row-right: "Control+Page_Down";*/
|
||||
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
|
||||
/* kb-row-down: "Down,Control+n";*/
|
||||
/* kb-row-tab: "Tab";*/
|
||||
/* kb-page-prev: "Page_Up";*/
|
||||
/* kb-page-next: "Page_Down";*/
|
||||
/* kb-row-first: "Home,KP_Home";*/
|
||||
/* kb-row-last: "End,KP_End";*/
|
||||
/* kb-row-select: "Control+space";*/
|
||||
/* kb-screenshot: "Alt+S";*/
|
||||
/* kb-ellipsize: "Alt+period";*/
|
||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||
/* kb-toggle-sort: "Alt+grave";*/
|
||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||
/* kb-custom-1: "Alt+1";*/
|
||||
/* kb-custom-2: "Alt+2";*/
|
||||
/* kb-custom-3: "Alt+3";*/
|
||||
/* kb-custom-4: "Alt+4";*/
|
||||
/* kb-custom-5: "Alt+5";*/
|
||||
/* kb-custom-6: "Alt+6";*/
|
||||
/* kb-custom-7: "Alt+7";*/
|
||||
/* kb-custom-8: "Alt+8";*/
|
||||
/* kb-custom-9: "Alt+9";*/
|
||||
/* kb-custom-10: "Alt+0";*/
|
||||
/* kb-custom-11: "Alt+exclam";*/
|
||||
/* kb-custom-12: "Alt+at";*/
|
||||
/* kb-custom-13: "Alt+numbersign";*/
|
||||
/* kb-custom-14: "Alt+dollar";*/
|
||||
/* kb-custom-15: "Alt+percent";*/
|
||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||
/* kb-custom-17: "Alt+ampersand";*/
|
||||
/* kb-custom-18: "Alt+asterisk";*/
|
||||
/* kb-custom-19: "Alt+parenleft";*/
|
||||
kb-select-1: "Super+1";
|
||||
kb-select-2: "Super+2";
|
||||
kb-select-3: "Super+3";
|
||||
kb-select-4: "Super+4";
|
||||
kb-select-5: "Super+5";
|
||||
kb-select-6: "Super+6";
|
||||
kb-select-7: "Super+7";
|
||||
kb-select-8: "Super+8";
|
||||
kb-select-9: "Super+9";
|
||||
kb-select-10: "Super+0";
|
||||
/* ml-row-left: "ScrollLeft";*/
|
||||
/* ml-row-right: "ScrollRight";*/
|
||||
/* ml-row-up: "ScrollUp";*/
|
||||
/* ml-row-down: "ScrollDown";*/
|
||||
/* me-select-entry: "MousePrimary";*/
|
||||
/* me-accept-entry: "MouseDPrimary";*/
|
||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||
}
|
||||
@import "/home/piccihud/.local/share/rofi/themes/nord-oneline.rasi"
|
BIN
linux/debian/asset/rofi/final.png
Normal file
After Width: | Height: | Size: 469 KiB |
BIN
linux/debian/asset/rofi/rofi.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
linux/debian/asset/rofi/wifi.png
Normal file
After Width: | Height: | Size: 271 KiB |
185
linux/debian/debian.md
Normal file
@@ -0,0 +1,185 @@
|
||||
# Debian KDE
|
||||
|
||||
Come prima cosa, occorre scaricare la .iso della distro in questione:
|
||||
|
||||
[https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/11.6.0-live+nonfree/amd64/iso-hybrid/](https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/11.6.0-live+nonfree/amd64/iso-hybrid/)
|
||||
|
||||
Nell'esempio, `Debian 11 KDE`.
|
||||
|
||||
Al termine del download, creare la chiavetta con la live, al fine di poter intraprendere l'installazione.
|
||||
|
||||
## Balena Etcher
|
||||
|
||||
Come prima cosa, importare i repository:
|
||||
|
||||
```bash
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' | sudo -E bash
|
||||
```
|
||||
|
||||
Quindi procedere con l'installazione:
|
||||
|
||||
```bash
|
||||
sudo apt update ; sudo apt install balena-etcher-electron -y
|
||||
```
|
||||
|
||||
Adesso è possibile avviare il programma, seleziore l'.iso scaricata precedentemente, il supporto corretto ed avviare la procedura.
|
||||
|
||||
## Installazione di Debian
|
||||
|
||||
Avviare la live e da qui procedere con l'installazione guidata, cliccando sull'icona. Rispetto al 'graphic installer' del menù, è decisamente più semplice.
|
||||
|
||||
## Modificare i repository
|
||||
|
||||
Al fine di avere una distribuzione con pacchetti più aggiornati, occorre modificare il file `/etc/apt/source.list`.
|
||||
|
||||
[https://guide.debianizzati.org/index.php/Repository_ufficiali](https://guide.debianizzati.org/index.php/Repository_ufficiali)
|
||||
|
||||
Se si vuole restare sempre con la versione testing di Debian, a prescindere dai rilasci di Debian, scegliere questa configurazione:
|
||||
|
||||
```bash
|
||||
# Debian testing
|
||||
deb http://deb.debian.org/debian/ testing main
|
||||
deb-src http://deb.debian.org/debian/ testing main
|
||||
|
||||
# Aggiornamenti di sicurezza
|
||||
deb http://security.debian.org/debian-security testing-security main
|
||||
deb-src http://security.debian.org/debian-security testing-security main
|
||||
|
||||
# Gli aggiornamenti raccomandati per testing (testing-updates) sono disabilitati
|
||||
```
|
||||
|
||||
Quindi procedere con l'aggiornamento dei pacchetti:
|
||||
|
||||
```bash
|
||||
sudo apt update ; sudo apt -y upgrade ; sudo apt autoremove -y ; sudo apt autoclean -y ; pkcon refresh ; pkcon update -y
|
||||
```
|
||||
|
||||
## Bismuth
|
||||
|
||||
```bash
|
||||
echo "deb http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list > /dev/null
|
||||
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
|
||||
sudo apt update && sudo apt install kwin-bismuth
|
||||
```
|
||||
Tramite `Bismuth`, uno script per KDE, è possibile avere semplicemente un tiling window manager.
|
||||
|
||||
[https://github.com/Bismuth-Forge/bismuth](https://github.com/Bismuth-Forge/bismuth)
|
||||
|
||||

|
||||
|
||||
## Papirus Icon
|
||||
|
||||
[https://github.com/PapirusDevelopmentTeam/papirus-icon-theme](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme)
|
||||
|
||||
Il miglior icon pack per Gnu/Linux!
|
||||
|
||||
```bash
|
||||
sudo apt update ; sudo apt install papirus-icon-theme -y
|
||||
```
|
||||
|
||||

|
||||
|
||||
### Papirus Theme for LibreOffice
|
||||
|
||||
[https://sourcedigit.com/23703-install-papirus-theme-for-libreoffice-papirus-libreoffice-theme/](https://sourcedigit.com/23703-install-papirus-theme-for-libreoffice-papirus-libreoffice-theme/)
|
||||
|
||||
```bash
|
||||
wget -qO- https://raw.githubusercontent.com/PapirusDevelopmentTeam/papirus-libreoffice-theme/master/install-papirus-root.sh | sh
|
||||
```
|
||||
|
||||
In questo modo si installa il tema per LibreOffice, indipendentemente dalla distro.
|
||||
|
||||

|
||||

|
||||
|
||||
## Firefox
|
||||
|
||||
Per installare la versione normale, non quella ESR (Extended Release Support), di Firefox su Debian Testing, seguire questa guida:
|
||||
|
||||
[https://wiki.debian.org/it/Firefox](https://wiki.debian.org/it/Firefox)
|
||||
|
||||
Basta scaricare il file .deb e procedere con l'installazione:
|
||||
|
||||
[https://packages.debian.org/sid/amd64/firefox/download](https://packages.debian.org/sid/amd64/firefox/download)
|
||||
|
||||
```txt
|
||||
davide@piccihud:~/Scaricati$ ls -1lh
|
||||
totale 88M
|
||||
-rw-r--r-- 1 davide davide 57M 24 set 14.11 firefox_105.0-1_amd64.deb
|
||||
|
||||
sudo apt install ./firefox_105.0-1_amd64.deb
|
||||
sudo apt purge -y firefox-esr
|
||||
sudo rm firefox_105.0-1_amd64.deb
|
||||
```
|
||||
|
||||
> NOTA: in questo modo l'applicazione si aggiornerà solo manualmente
|
||||
|
||||

|
||||
|
||||
## Rofi
|
||||
|
||||
Installare Rofi e poi procedere con le sue configurazioni: 
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt install -y rofi
|
||||
```
|
||||
|
||||
## .NET
|
||||
|
||||
[https://learn.microsoft.com/it-it/dotnet/core/install/linux-debian](https://learn.microsoft.com/it-it/dotnet/core/install/linux-debian)
|
||||
|
||||
## Brave Browser
|
||||
|
||||
[https://brave.com/linux/#nightly-channel-installation](https://brave.com/linux/#nightly-channel-installation)
|
||||
|
||||
## Newsboat : RSS/Atom feedreader
|
||||
|
||||
Si tratta di un lettore RSS testuale. Si installa direttamente dai repo ufficiali di Debian:
|
||||
|
||||
```bash
|
||||
sudo apt update ; sudo apt install newsboat
|
||||
```
|
||||
|
||||
Per le varie configurazioni, seguire la documentazione ufficiale:
|
||||
|
||||
[https://newsboat.org/releases/2.29/docs/newsboat.html](https://newsboat.org/releases/2.29/docs/newsboat.html)
|
||||
|
||||
Per aggiungere un feed, basta inserirle URL in questo file:
|
||||
|
||||
```bash
|
||||
~/.newsboat/urls
|
||||
```
|
||||
|
||||
Oppure è possibile importare un file OPML con il seguente comando:
|
||||
|
||||
```bash
|
||||
newsboat -i file.opml
|
||||
```
|
||||
|
||||
I comandi base:
|
||||
|
||||
- `Shift+R`: download degli articoli dai feed inseriti;
|
||||
|
||||
- `/`: ricerca all'interno di tutti i files;
|
||||
|
||||
- `A`: marca il feed come letto;
|
||||
|
||||
- `Q`: chiude Newsboat;
|
||||
|
||||
- `O`: apre l'articolo nel browser;
|
||||
|
||||
- `Q`: permette di ritornare nel terminale.
|
||||
|
||||
### Fluent Reader
|
||||
|
||||
Una valida alternativa:
|
||||
|
||||
[https://hyliu.me/fluent-reader/](https://hyliu.me/fluent-reader/)
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://wiki.debian.org/it/SourcesList](https://wiki.debian.org/it/SourcesList)
|
||||
|
||||
- [https://www.debian.org/devel/testing](https://www.debian.org/devel/testing)
|
||||
|
||||
- [https://it.linux-console.net/?p=348#gsc.tab=0](https://it.linux-console.net/?p=348#gsc.tab=0)
|
252
linux/debian/debian_minimal.md
Normal file
@@ -0,0 +1,252 @@
|
||||
# Debian minimale
|
||||
|
||||
La iso può essere scaricata da qui: [https://cdimage.debian.org/cdimage/unofficial/non-free/images-including-firmware/current/amd64/iso-cd/](https://cdimage.debian.org/cdimage/unofficial/non-free/images-including-firmware/current/amd64/iso-cd/)
|
||||
|
||||
Oppure esiste anche la mini.iso, dal peso di circa 50 MB: [https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/](https://deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/)
|
||||
|
||||
Selezionare `Advance options ...`
|
||||
|
||||

|
||||
|
||||
quindi `Expert install`
|
||||
|
||||

|
||||
|
||||
Impostare la lingua desiderata. Qui sarà scelta la lingua *italiana*. Lo stesso vale per il layout della tastiera.
|
||||
|
||||
Il punto successivo, *Access software for a blind person using a braille display* può essere eluso
|
||||
|
||||

|
||||
|
||||
Rilevare e montare i supporti di installazione
|
||||
|
||||

|
||||
|
||||
Caricare i seguenti moduli aggiuntivi, che tuttavia, come specificato nella descrizione, non sono necessari
|
||||
|
||||

|
||||
|
||||
Configurare la rete automaticamente, tramite il DHCP
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Stabilire il nome dell'host
|
||||
|
||||

|
||||
|
||||
Abilitare le `shadow password`
|
||||
|
||||

|
||||
|
||||
Non permettere l'accesso a root
|
||||
|
||||

|
||||
|
||||
Stabilire il nome dell'utente e assegnargli una password
|
||||
|
||||

|
||||
|
||||
### Partizionamento manuale
|
||||
|
||||

|
||||
|
||||
Selezionare il disco corretto
|
||||
|
||||

|
||||
|
||||
Creare una nuova tabella delle partizioni di tipo `GPT`
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Selezionare nuovamente il disco e creare la partizione `/boot/efi`
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
100 MB sono sufficienti
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Completare il partizionamento. Importante che sia avviabile
|
||||
|
||||

|
||||
|
||||
Procedere allo stesso modo per la partizione `/boot`, sempre di 100 MB. Usare come file-system `ext2`
|
||||
|
||||

|
||||
|
||||
Quindi creare la partizione di root `/`. Volendo è possibile creare una partizione `/home` separata.
|
||||
|
||||
Come file-system va benissimo sia `ext4` che `btrfs`
|
||||
|
||||

|
||||
|
||||
#### Cifrare la partizione root
|
||||
|
||||

|
||||
|
||||
Selezionare la partizione `/`
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Dopo aver completato la cifratura, selezionare il volume e assegnargli il punto di mount corretto e pure il tipo di file-system
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Saltare la creazione della partizione di swap
|
||||
|
||||

|
||||
|
||||
Proseguire con l'installazione del sistema di base
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Per evitare problemi di compatibilità, installare tutti di driver disponibili
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Partizionamento manuale con LVM
|
||||
|
||||
Qualora si desiderasse utilizzare LVM, dopo aver creato una nuova tabella delle partizioni GPT
|
||||
|
||||

|
||||
|
||||
Selezionare partizionamento manuale
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Dopo aver creato la partizione `boot/efi` e la partizione di `/boot` di almeno 150 MB,
|
||||
procedere con la creazione del LVM. Per maggiori informazioni leggere qui: [LVM](https://it.wikipedia.org/wiki/Gestore_logico_dei_volumi)
|
||||
|
||||

|
||||
|
||||
Creare il gruppo di volumi (nell'esempio composto da un solo disco) con nome a piacere
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Creare quindi il *volume logico*, assegnando tutto la spazio a disposizione
|
||||
|
||||

|
||||
|
||||
#### Cifrare partizione di root-LVM
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Questa la situazione finale. Se si volesse, è sempre possibile creare una partizione `/home` separata
|
||||
|
||||

|
||||
|
||||
### Configurare il gestore pachetti
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Utilizzare il *software non libero* a scelta, in base anche al proprio hardware
|
||||
|
||||

|
||||
|
||||
Abilitare anche i software *backported*
|
||||
|
||||

|
||||
|
||||
Installare automaticamente gli aggiornamenti di sicurezza
|
||||
|
||||

|
||||
|
||||
Per un installazione minimale, selezionare solo `Utilità di sistema standard`. Il DE verrà installato successivamente
|
||||
|
||||

|
||||
|
||||
### Installazione di GRUB
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Terminare quindi l'installazione
|
||||
|
||||

|
||||
|
||||
#### Configurazioni di GRUB
|
||||
|
||||
Dopo aver avviato il pc, modificare il file `/etc/default/grub` in questo modo:
|
||||
|
||||
```bash
|
||||
|
||||
# If you change this file, run 'update-grub' afterwards to update
|
||||
# /boot/grub/grub.cfg.
|
||||
# For full documentation of the options in this file, see:
|
||||
# info -f grub -n 'Simple configuration'
|
||||
|
||||
GRUB_DEFAULT=0
|
||||
GRUB_TIMEOUT_STYLE=hidden
|
||||
GRUB_TIMEOUT=0
|
||||
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
|
||||
GRUB_CMDLINE_LINUX=""
|
||||
```
|
||||
|
||||

|
||||
|
||||
Dare quindi il comando `sudo update-grub` e riavviare la macchina.
|
||||
|
||||
In questo caso GRUB non verrà mostrato all'avvio e ci si troverà davanti immediatamente la schermata per de-crittografare la partizione `/`
|
||||
|
||||

|
||||
|
||||
Questa la situazione finale dei dischi
|
||||
|
||||

|
||||
|
||||
### Debian Testing
|
||||
|
||||
Per Debian testing, modificare il file `/etc/apt/sources.list` nel seguente modo:
|
||||
|
||||
```bash
|
||||
# Debian testing
|
||||
deb http://deb.debian.org/debian/ testing main contrib non-free non-free-firmware
|
||||
deb-src http://deb.debian.org/debian/ testing main contrib non-free non-free-firmware
|
||||
|
||||
# Aggiornamenti di sicurezza
|
||||
deb http://security.debian.org/debian-security testing-security main contrib non-free non-free-firmware
|
||||
deb-src http://security.debian.org/debian-security testing-security main contrib non-free non-free-firmware
|
||||
|
||||
# Gli aggiornamenti raccomandati per testing (testing-updates) sono disabilitati
|
||||
```
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://ubuntuhandbook.org/index.php/2020/06/hide-grub-boot-menu-ubuntu-20-04-lts/](https://ubuntuhandbook.org/index.php/2020/06/hide-grub-boot-menu-ubuntu-20-04-lts/)
|
||||
- [https://unix.stackexchange.com/questions/577379/how-can-i-install-debian-with-full-disk-encryption-and-a-custom-sized-swapfile](https://unix.stackexchange.com/questions/577379/how-can-i-install-debian-with-full-disk-encryption-and-a-custom-sized-swapfile)
|
||||
- [https://it.linux-console.net/?p=2525](https://it.linux-console.net/?p=2525)
|
||||
- [https://debian-handbook.info/browse/it-IT/stable/sect.installation-steps.html](https://debian-handbook.info/browse/it-IT/stable/sect.installation-steps.html)
|
||||
- [https://www.blakehartshorn.com/installing-debian-on-existing-encrypted-lvm/](https://www.blakehartshorn.com/installing-debian-on-existing-encrypted-lvm/)
|
||||
- [https://www.paritybit.ca/blog/debian-with-btrfs](https://www.paritybit.ca/blog/debian-with-btrfs)
|
||||
- [https://guide.debianizzati.org/index.php/Installare_Debian:_configurazione_LVM](https://guide.debianizzati.org/index.php/Installare_Debian:_configurazione_LVM)
|
138
linux/debian/kde.md
Normal file
@@ -0,0 +1,138 @@
|
||||
## Personalizzare KDE
|
||||
|
||||
Ecco alcuni temi molto interessanti compatibili in toto con KDE Plasma:
|
||||
|
||||
- [https://github.com/catppuccin/catppuccin](https://github.com/catppuccin/catppuccin)
|
||||
|
||||
- [https://draculatheme.com](https://draculatheme.com)
|
||||
|
||||
1. Clonare questo repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/catppuccin/KDE && cd KDE/kde-store-archives/global-theme
|
||||
```
|
||||
|
||||
2. Installare il tema con questo comando:
|
||||
|
||||
```bash
|
||||
kpackagetool5 -i catppuccin.tar.gz
|
||||
```
|
||||
|
||||

|
||||
|
||||
Un tema molto bello per le icone della barra di stato è **Materia Theme**, installabile con questo comando:
|
||||
|
||||
```bash
|
||||
wget -qO- https://raw.githubusercontent.com/PapirusDevelopmentTeam/materia-kde/master/install.sh | sh
|
||||
```
|
||||
|
||||
Qui maggiori informazioni:
|
||||
|
||||
[https://github.com/PapirusDevelopmentTeam/materia-kde](https://github.com/PapirusDevelopmentTeam/materia-kde)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Nelle impostazioni di KDE, impostare `#1f2430` come colore di sfondo delle finestre:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Konsole
|
||||
|
||||
Per personalizzare la shell e il prompt dei comandi, si può utilizzare **Starship Shell**:
|
||||
|
||||
[https://github.com/starship/starship/blob/master/docs/it-IT/guide/README.md](https://github.com/starship/starship/blob/master/docs/it-IT/guide/README.md)
|
||||
|
||||
Questo è il link per la personalizzazione dello schema dei colori:
|
||||
|
||||
[https://github.com/catppuccin/konsole](https://github.com/catppuccin/konsole)
|
||||
|
||||
## Vim
|
||||
|
||||
[https://github.com/catppuccin/vim](https://github.com/catppuccin/vim)
|
||||
|
||||
Ecco delle impostazioni base per Vim:
|
||||
|
||||
```bash
|
||||
davide@piccihud:~$ cat .vimrc
|
||||
set number
|
||||
colorscheme catppuccin_mocha
|
||||
set spell spelllang=it
|
||||
syntax enable
|
||||
set termguicolors
|
||||
```
|
||||
|
||||
Il tema viene installato in questo modo:
|
||||
|
||||
```bash
|
||||
cd ~
|
||||
git clone https://github.com/catppuccin/vim.git
|
||||
mv colors/ .vim/
|
||||
```
|
||||
Inserire la seguente riga nel file `.vimrc`:
|
||||
|
||||
```vim
|
||||
colorscheme catppuccin_mocha
|
||||
```
|
||||
|
||||
## Firefox
|
||||
|
||||
Qui si trovano moltissimi temi CSS per Firefox:
|
||||
|
||||
[https://firefoxcss-store.github.io/](https://firefoxcss-store.github.io/)
|
||||
|
||||
Uno dei migliori:
|
||||
|
||||
[https://github.com/crambaud/waterfall](https://github.com/crambaud/waterfall)
|
||||
|
||||

|
||||
|
||||
### Dark Reader
|
||||
|
||||
[https://github.com/catppuccin/dark-reader](https://github.com/catppuccin/dark-reader)
|
||||
|
||||
> Mocha
|
||||
|
||||
```css
|
||||
Background #1e1e2e
|
||||
|
||||
Text #cdd6f4
|
||||
|
||||
Selection #585b70
|
||||
```
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Cambiare Display manager
|
||||
|
||||
[https://github.com/fairyglade/ly](https://github.com/fairyglade/ly)
|
||||
|
||||
Per prima cosa, bisogna installare le dipendenze:
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
|
||||
apt install build-essential libpam0g-dev libxcb-xkb-dev
|
||||
```
|
||||
|
||||
Quindi clonare il repository Git e seguire le istruzioni per l'installazione:
|
||||
|
||||
```bash
|
||||
git clone --recurse-submodules https://github.com/fairyglade/ly
|
||||
cd ly
|
||||
make
|
||||
make install installsystemd
|
||||
systemctl enable ly.service
|
||||
```
|
||||
|
||||
Maggiori informazioni alla pagina sopra elencata. Di seguito il risultato ottenuto:
|
||||
|
||||

|
||||
|
||||
Il file di configurazione si trova in `/etc/ly/config.ini`.
|
||||
|
218
linux/debian/rofi.md
Normal file
@@ -0,0 +1,218 @@
|
||||
# Rofi
|
||||
|
||||
Rofi non è solo un lanciatore di applicazioni, ma permette di fare molte più cose, tra cui:
|
||||
|
||||
- aprire file;
|
||||
- eseguire comandi bash;
|
||||
- navigare tra le finestre aperte;
|
||||
- ...
|
||||
|
||||
## Modalità
|
||||
|
||||
Rofi ha diverse modalità integrate che implementano casi d'uso comuni e possono essere estese da vari script o plugin.
|
||||
|
||||
Di seguito è riportato un elenco delle diverse modalità:
|
||||
|
||||
- **run**: permette di lanciare eseguibili nel terminale, a partire dal loro `$PATH`;
|
||||
- **drun**: avvia le applicazioni installate nel sistema;
|
||||
- **window**: permette di passare tra le varie finestre aperte;
|
||||
- **ssh**: avvia il collegamento a un host remoto via ssh;
|
||||
- **combi**: combina più modalità.
|
||||
|
||||
## Installazione su Debian e derivate
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt install -y rofi
|
||||
```
|
||||
|
||||
## Configurazione
|
||||
|
||||
Per generare il file di configurazione predefinito:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/rofi
|
||||
rofi -dump-config > ~/.config/rofi/config.rasi
|
||||
```
|
||||
|
||||
Questo comando crea un file chiamato `config.rasi` nel seguente percorso: `~/.config/rofi/`. È possibile modificare questo file per personalizzare rofi, anche graficamente con dei temi personalizzati.
|
||||
|
||||
Eccone un esempio: [config.rasi](./asset/rofi//config.rasi)
|
||||
|
||||
### Abilitare le varie modalità
|
||||
|
||||
È sufficiente specificare un elenco ordinato e separato da virgole delle modalità da abilitare. Ecco un esempio, con abilitate solo le modalità `run` e `ssh`:
|
||||
|
||||
```bash
|
||||
rofi -modes "run,ssh" -show run
|
||||
```
|
||||
|
||||
Per ottenere una visione combinata di due o più modalità:
|
||||
|
||||
```bash
|
||||
rofi -show combi -combi-modes "window,run,ssh" -modes combi
|
||||
```
|
||||
|
||||
## Temi personalizzati
|
||||
|
||||
Qui si trovano moltissimi temi:
|
||||
|
||||
[https://github.com/adi1090x/rofi](https://github.com/adi1090x/rofi)
|
||||
|
||||
Dopo aver installato `rofi`, clonare il precedente repository:
|
||||
|
||||
```bash
|
||||
git clone --depth=1 https://github.com/adi1090x/rofi.git
|
||||
cd rofi
|
||||
chmod 755 setup.sh
|
||||
./setup.sh
|
||||
```
|
||||
Quindi, per scegliere lo stile, modificare il file `~/.config/rofi/launchers/type-X/launcher.sh`, dove `X` è un numero da 1 a 7, inserendo lo stile prescelto.
|
||||
|
||||
Nell'esempio:
|
||||
|
||||
```bash
|
||||
theme='style-10'
|
||||
```
|
||||
Ecco il file in questione:
|
||||
|
||||
```
|
||||
davide@piccihud:~$ cat ~/.config/rofi/launchers/type-4/launcher.sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya (adi1090x)
|
||||
## Github : @adi1090x
|
||||
#
|
||||
## Rofi : Launcher (Modi Drun, Run, File Browser, Window)
|
||||
#
|
||||
## Available Styles
|
||||
#
|
||||
## style-1 style-2 style-3 style-4 style-5
|
||||
## style-6 style-7 style-8 style-9 style-10
|
||||
|
||||
dir="$HOME/.config/rofi/launchers/type-4"
|
||||
theme='style-10'
|
||||
|
||||
## Run
|
||||
rofi \
|
||||
-show drun \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
```
|
||||
|
||||
Come prima, per cambiare i colori predefiniti del tema, modificare il seguente file:
|
||||
|
||||
```bash
|
||||
davide@piccihud:~$ cat ~/.config/rofi/launchers/type-4/shared/colors.rasi
|
||||
/**
|
||||
*
|
||||
* Author : Aditya Shakya (adi1090x)
|
||||
* Github : @adi1090x
|
||||
*
|
||||
* Colors
|
||||
*
|
||||
* Available Colors Schemes
|
||||
*
|
||||
* adapta catppuccin everforest navy paper
|
||||
* arc cyberpunk gruvbox nord solarized
|
||||
* black dracula lovelace onedark yousai
|
||||
*
|
||||
**/
|
||||
|
||||
/* Import color-scheme from `colors` directory */
|
||||
|
||||
@import "~/.config/rofi/colors/dracula.rasi" #Inserire il colore prescelto
|
||||
```
|
||||
|
||||
Questo è tutto. Ora basta inserire nel file `config.rasi` la seguente riga, una volta scelto lo stile del tema:
|
||||
|
||||
```bash
|
||||
davide@piccihud:~$ cat .config/rofi/config.rasi
|
||||
@theme "~/.config/rofi/launchers/type-4/style-10.rasi"
|
||||
```
|
||||
|
||||

|
||||
|
||||
### Alcune aggiunte al tema
|
||||
|
||||
`~/.config/rofi/launchers/type-4/style-10.rasi`
|
||||
|
||||
```bash
|
||||
10 /*****----- Configuration -----*****/
|
||||
11 configuration {
|
||||
12 modi: "drun,window,run"; /*aggiunte alcune modalità, come quella per mostrare le finestre attive o per eseguire comandi da terminale*/
|
||||
13 show-icons: true; /*le icone sono visibili*/
|
||||
14 display-drun: " Apps";
|
||||
15 display-run: "";
|
||||
16 display-filebrowser: "";
|
||||
17 display-window: "";
|
||||
18 /* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; */
|
||||
19 drun-display-format: "{name}"; /*solo il nome dell'applicazione diventa visibile, senza descrizione, come sopra*/
|
||||
20 window-format: "{w} · {c} · {t}";
|
||||
21 }
|
||||
|
||||
[..]
|
||||
|
||||
53 /*****----- Main Window -----*****/
|
||||
54 window {
|
||||
55 /* properties for window widget */
|
||||
56 transparency: "real";
|
||||
57 location: south; /*rofi è posizionato in basso*/
|
||||
58 anchor: south;
|
||||
59 fullscreen: false;
|
||||
60 width: 100%;
|
||||
61 x-offset: 0px;
|
||||
62 y-offset: 0px;
|
||||
```
|
||||
Quindi modificare il file `.config/rodi/config.rasi`:
|
||||
|
||||
```bash
|
||||
1 configuration {
|
||||
3 terminal: "konsole";
|
||||
4 run-command: "{cmd}";
|
||||
5 run-list-command: "";
|
||||
6 run-shell-command: "{terminal} -e {cmd}"; /*Questa è la sintassi del comando*/
|
||||
7 kb-select-1: "Super+1";
|
||||
8 kb-select-2: "Super+2";
|
||||
9 kb-select-3: "Super+3";
|
||||
10 kb-select-4: "Super+4";
|
||||
11 kb-select-5: "Super+5";
|
||||
12 kb-select-6: "Super+6";
|
||||
13 kb-select-7: "Super+7";
|
||||
14 kb-select-8: "Super+8";
|
||||
15 kb-select-9: "Super+9";
|
||||
16 kb-select-10: "Super+0";
|
||||
17 }
|
||||
18 @theme "~/.config/rofi/launchers/type-4/style-10.rasi"
|
||||
```
|
||||
|
||||
In questo modo, è possibile lanciare comandi bash direttamente da rofi, tramite la seguente sintassi:
|
||||
|
||||
```bash
|
||||
terminal_name command
|
||||
|
||||
konsole ncdu
|
||||
```
|
||||
|
||||
oppure passare tra le finestre attive, infine selezionare i risultati con delle scorciatoie (`Alt+X`), dove `X` indica un numero maggiore o uguale a 1, corrispondente al risultato dell'applicazione che si desidera avviare.
|
||||
|
||||
Il risultato finale:
|
||||
|
||||

|
||||
|
||||
### Gestire le connessioni di rete
|
||||
|
||||
Rofi può essere esteso tramite plugin. Eccone uno per poter controllare la connessione ad intenet:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ericmurphyxyz/rofi-wifi-menu.git
|
||||
cd rofi-wifi-menu
|
||||
mv rofi-wifi-menu.sh ~/bin
|
||||
```
|
||||
È possibile richiamare lo script dopo aver assegnato una scorciatoria da tastiera: `$HOME/bin/rofi-wifi-menu.sh`
|
||||
|
||||

|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://github.com/davatorium/rofi](https://github.com/davatorium/rofi)
|
||||
- [https://github.com/adi1090x/rofi](https://github.com/adi1090x/rofi)
|
||||
- [https://github.com/adi1090x/rofi/blob/master/files/config.rasi](https://github.com/adi1090x/rofi/blob/master/files/config.rasi)
|
99
linux/diff.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Confrontare file
|
||||
|
||||
Il comando `diff` confronta due file e produce una lista delle loro differenze. Per essere più precisi, produce un elenco delle modifiche che dovrebbero essere apportate al primo file, per farlo corrispondere al secondo file.
|
||||
|
||||
```bash
|
||||
diff file1 file2
|
||||
```
|
||||
Ecco un esempio:
|
||||
|
||||
```bash
|
||||
> cat file1
|
||||
file1
|
||||
|
||||
> cat file2
|
||||
file2
|
||||
file3
|
||||
file1
|
||||
|
||||
> diff file1 file2
|
||||
0a1,2
|
||||
> file2
|
||||
> file3
|
||||
```
|
||||
|
||||
Ogni differenza è elencata a sua volta in una singola colonna e ogni differenza viene etichettata. L'etichetta è composta da due numeri che circondano una lettera, come nell'esempio `0a1`.
|
||||
Il primo numero è il numero di riga in file1, e il secondo numero è il numero di riga in file2. La lettera nel mezzo può essere:
|
||||
|
||||
- `c`: la riga nel primo file deve essere modificata per corrispondere alla riga nel secondo file;
|
||||
- `d`: la riga nel primo file deve essere eliminata;
|
||||
- `a`: il contenuto extra deve essere aggiunto al primo file per farlo corrispondere al secondo file.
|
||||
|
||||
I parametri `-s` e `-q` indicano, rispettivamente, se i due file sono identici ovvero differenti:
|
||||
|
||||
```bash
|
||||
> diff -s file2 file3
|
||||
I file file2 e file3 sono identici
|
||||
|
||||
> diff -q file1 file2
|
||||
I file file1 e file2 sono diversi
|
||||
```
|
||||
|
||||
## Una vista alternativa
|
||||
|
||||
```bash
|
||||
> diff -y -W 70 file1 file3
|
||||
> file2
|
||||
|
||||
file5 | file3
|
||||
file1 file1
|
||||
file4 <
|
||||
```
|
||||
L'opzione `-y` (side by side) utilizza un layout diverso per mostrare le differenze tra i file. Spesso è conveniente specificare la larghezza `-W` per limitare il numero di colonne visualizzate.
|
||||
|
||||
Il primo file viene visualizzato a sinistra mentre il secondo è mostrato sulla destra. Le righe di ogni file vengono visualizzate fianco a fianco.
|
||||
Ci sono caratteri indicatori accanto alle varie righe:
|
||||
|
||||
- `|`: una riga che è differente nel secondo file;
|
||||
- `<`: una riga che non è presente nel secondo file;
|
||||
- `>`: una riga che non è presente nel primo file
|
||||
|
||||
## Uno spruzzo di colore
|
||||
|
||||
```bash
|
||||
sudo apt-get install colordiff
|
||||
```
|
||||
|
||||
Il comando `colordiff` aggiunge colore all'output di `diff`.
|
||||
|
||||
## Confrontare directories
|
||||
|
||||
Il comando diff permette anche di confrontare cartelle tra loro. La sintassi è molto semplice:
|
||||
|
||||
```bash
|
||||
diff -r dir1 dir2
|
||||
```
|
||||
Vengono mostrati i nomi dei file/directories differenti e le differenze tra i files. Con l'opzione `-q` viene mostrato solo il nome dei files diversi.
|
||||
|
||||
```bash
|
||||
ls -R
|
||||
.:
|
||||
dir1 dir2
|
||||
|
||||
./dir1:
|
||||
file1
|
||||
|
||||
./dir2:
|
||||
|
||||
colordiff -rq dir1 dir2
|
||||
Solo in dir1: file1
|
||||
```
|
||||
|
||||
## Vimdiff
|
||||
|
||||
Per chi utilizza vim, esiste `vimdiff`
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://www.howtogeek.com/410532/how-to-compare-two-text-files-in-the-linux-terminal/](https://www.howtogeek.com/410532/how-to-compare-two-text-files-in-the-linux-terminal/)
|
||||
- [https://linuxhandbook.com/compare-directories/](https://linuxhandbook.com/compare-directories/)
|
19
linux/epson_wf2510.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Epson WF2510
|
||||
|
||||
Qui i driver: [Epson WF2510](https://download.ebz.epson.net/dsc/search/01/search/searchModule)
|
||||
|
||||
## Installazione
|
||||
|
||||
```bash
|
||||
> sudo apt install ./epson-inkjet-printer-escpr_1.7.21-1lsb3.2_amd64.deb
|
||||
|
||||
Lettura elenco dei pacchetti... Fatto
|
||||
Generazione albero delle dipendenze
|
||||
Lettura informazioni sullo stato... Fatto
|
||||
È utile eseguire "apt --fix-broken install" per correggere ciò.
|
||||
I seguenti pacchetti hanno dipendenze non soddisfatte:
|
||||
epson-inkjet-printer-escpr : Dipende: lsb (>= 3.2) ma non è installato
|
||||
E: Dipendenze non soddisfatte. Provare "apt --fix-broken install" senza pacchetti (o specificare una soluzione).
|
||||
|
||||
> sudo apt --fix-broken install
|
||||
```
|
1
linux/feh/keys
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/davide/.config/feh/keys
|
1
linux/feh/themes
Symbolic link
@@ -0,0 +1 @@
|
||||
/home/davide/.config/feh/themes
|
143
linux/find.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# find
|
||||
|
||||
Il comando **find** permette di cercare files e non solo da riga di comando.
|
||||
|
||||
Se il percorso del file non è specificato, viene ricercato nella directory corrente e nelle sue sottodirectory.
|
||||
|
||||
Questa la sua struttura generale:
|
||||
|
||||
```bash
|
||||
find path pattern
|
||||
```
|
||||
## Ricercare un file per nome
|
||||
|
||||
```bash
|
||||
find -iname abc.txt
|
||||
```
|
||||
In questo modo, viene cercato il file abc.txt (-i sta per insensitive) nella cartella corrente.
|
||||
|
||||
### Specificare il tipo del pattern
|
||||
|
||||
```bash
|
||||
find /etc -type f -name "*.conf"
|
||||
```
|
||||
dove il tipo del file può essere:
|
||||
|
||||
| -type | Descrizione |
|
||||
|-------|-------------|
|
||||
| f | File |
|
||||
| d | Directory |
|
||||
| l | Link |
|
||||
|
||||
## Ricercare in più cartelle
|
||||
|
||||
```bash
|
||||
find ~/Desktop/example1/ ~/Desktop/example2/ -name 'abc*.*'
|
||||
```
|
||||
|
||||
## size
|
||||
|
||||
Ricercare solo file più grandi di...
|
||||
|
||||
```bash
|
||||
find -size +2000M
|
||||
```
|
||||
|
||||
## Esclusione di alcuni file dalla ricerca
|
||||
|
||||
Il comando find può anche escludere alcuni tipi di file dal risultato della ricerca:
|
||||
|
||||
```bash
|
||||
find -name '*abc*' -type f \( ! -name '*.msi' \)
|
||||
```
|
||||
Nell'esempio, vengono esclusi tutti i file *\*abc\*.msi*
|
||||
|
||||
## exec
|
||||
|
||||
È possibile eseguire comandi sui risultati di find.
|
||||
|
||||
La sintassi di base per eseguire la ricerca con exec è la seguente:
|
||||
|
||||
```bash
|
||||
find [path] [arguments] -exec [command] {} \;
|
||||
```
|
||||
|
||||
- *[comand]* il comando da eseguire;
|
||||
- *{}* è un segnaposto per i risultati dati dal comando find;
|
||||
- *\;* che per ogni risultato trovato, il [comand] viene eseguito, ossia, come se fossero passati in questo modo:
|
||||
|
||||
```bash
|
||||
ls file1.txt
|
||||
ls file2.txt
|
||||
ls file3.txt
|
||||
```
|
||||
|
||||
### Alcuni esempi
|
||||
|
||||
Rinominare i file
|
||||
|
||||
```bash
|
||||
> sudo find . -type f -name file\* -exec ls -l {} \;
|
||||
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file2.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file7.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file4.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file8.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file10.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file1.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file9.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file5.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file3.txt
|
||||
-rw-r--r-- 1 davide davide 0 9 apr 15.50 ./file6.txt
|
||||
|
||||
> sudo find . -type f -name file\* -exec mv {} {}_renamed \;
|
||||
> ll
|
||||
|
||||
Permissions Size User Date Modified Name
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file1.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file2.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file3.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file4.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file5.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file6.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file7.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file8.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file9.txt_renamed
|
||||
.rw-r--r-- 0 davide 9 apr 15:50 file10.txt_renamed
|
||||
```
|
||||
|
||||
Eliminare i file più grandi di...
|
||||
|
||||
```bash
|
||||
find ~/Desktop -size +100M -exec rm {} \;
|
||||
```
|
||||
Modificare proprietario dei file:
|
||||
|
||||
```bash
|
||||
> sudo find . -type f -name file\* -exec chown root:root {} \;
|
||||
> ll
|
||||
|
||||
Permissions Size User Date Modified Name
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file1.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file2.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file3.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file4.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file5.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file6.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file7.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file8.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file9.txt_renamed
|
||||
.rw-r--r-- 0 root 9 apr 15:50 file10.txt_renamed
|
||||
```
|
||||
Eliminare tutti i file corrispondenti ad un pattern di ricerca:
|
||||
|
||||
```bash
|
||||
> sudo find . -type f -name file\* -exec rm -rf {} \;
|
||||
> ll
|
||||
```
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://linuxhandbook.com/find-files-by-name/](https://linuxhandbook.com/find-files-by-name/)
|
||||
- [https://linuxhandbook.com/find-exec-command/](https://linuxhandbook.com/find-exec-command/)
|
||||
- [https://www.ionos.it/digitalguide/server/configurazione/comando-find-di-linux/](https://www.ionos.it/digitalguide/server/configurazione/comando-find-di-linux/)
|
BIN
linux/hardware/asset/fstab/fstab.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
144
linux/hardware/dd.md
Normal file
@@ -0,0 +1,144 @@
|
||||
# dd
|
||||
|
||||
`dd` è un comando che serve a copiare `blocchi di dati` grezzi da una sorgente verso una destinazione.
|
||||
Il concetto è molto differente dalla semplice copia, infatti agisce direttamente a basso livello, cioé bit per bit.
|
||||
|
||||
Normalmente questo strumento è utilizzato per le seguenti motivazioni:
|
||||
|
||||
- formattazione a basso livello;
|
||||
- backup di intere partizioni;
|
||||
- creazione di dischi di avvio.
|
||||
|
||||
## Sintassi
|
||||
|
||||
La sintassi base di dd è la seguente:
|
||||
|
||||
```bash
|
||||
dd if=FILEINPUT of=FILEOUTPUT
|
||||
```
|
||||
|
||||
È doverosa qui una precisazione: su un sistema UNIX `qualunque cosa è un file`, anche un drive esterno.
|
||||
|
||||
## Specificare la dimensione dei blocchi
|
||||
|
||||
Quando si scrive a basso livello è bene ricordarsi che i byte scritti vengono sempre inviati nel file di uscita a blocchi.
|
||||
|
||||
Per specificare la dimensione di questi blocchi vi sono essenzialmente tre possibili parametri:
|
||||
|
||||
- `ibs`= numero di byte per la dimensione del blocco in ingresso;
|
||||
- `obs`= numero di byte per la dimensione del blocco in uscita;
|
||||
- `bs`= numero di byte per la dimensione di entrambi i blocchi
|
||||
|
||||
Il valore default di questi parametri è 512.
|
||||
|
||||
Si possono specificare delle unità di misura, come Kilo (K), Mega (M), Giga (G) e così via…
|
||||
|
||||
Ad esempio per trasferire 8 Mega alla volta:
|
||||
|
||||
```bash
|
||||
dd if=nomefile of=nomefile bs=8M
|
||||
```
|
||||
|
||||
### Numero blocchi trasferiti
|
||||
|
||||
Si può inserire il numero di blocchi che devono essere trasferiti con il parametro `count`. Ad esempio per trasferire 4MB bisogna scrivere:
|
||||
|
||||
```bash
|
||||
dd if=nomefile of=nomefile count=8000 iflag=fullblock
|
||||
```
|
||||
|
||||
> Ad esempio, per trasferire 2GiB in blocchi da 8M, sono necessari $2048/8 = 256$ blocchi
|
||||
|
||||
Il flag `iflag=fullblock` assicura che vengano trasferiti i blocchi nella dimensione intera.
|
||||
|
||||
## Visualizzare lo stato del comando
|
||||
|
||||
Il flag `status=progress` consente di visualizzare lo stato di avanzamento del comando:
|
||||
|
||||
```bash
|
||||
dd if=FILEINPUT of=FILEOUTPUT status=progress
|
||||
```
|
||||
|
||||
## Esempi d’uso
|
||||
|
||||
Per individuare una periferica di archiviazione attaccata utilizziare il comando:
|
||||
|
||||
```bash
|
||||
blkid
|
||||
```
|
||||
|
||||
Un output tipo potrebbe essere:
|
||||
|
||||
```bash
|
||||
/dev/sda1: UUID="b4c1041e-7027-4619-aaa5-900e24c1fdee" BLOCK_SIZE="4096" TYPE="ext4"
|
||||
/dev/sda2: UUID="dc1014fd-6c84-4dcd-acc3-13e914685136" TYPE="swap"
|
||||
/dev/sdb1: UUID="3255683f-53a2-4fdf-91cf-b4c1041e2a62" BLOCK_SIZE="4096" TYPE="ext4"
|
||||
```
|
||||
|
||||
Quello sull’estrema sinistra è un identificativo che rappresenta una particolare partizione del disco, nel primo caso è /dev/sda1 e nell’ultimo /dev/sdb1.
|
||||
La lettera rappresenta univocamente il disco, mentre il numero la partizione.
|
||||
|
||||
Nel caso di nvme e di supporti sd potrebbe cambiare la nomenclatura, ma il concetto è sempre simile.
|
||||
|
||||
### Scrittura di un immagine iso
|
||||
|
||||
L’utilizzo più famoso è forse quello di scrittura di un immagine iso in una pen-drive. Per prima cosa si deve creare il file-system col comando [mkfs](./mount.md)
|
||||
|
||||
Scaricato e individuato il file iso (ad esempio /percorso/file/immagine.iso) bisogna prima individuare il supporto d’uscita, utilizzando il comando `blkid`.
|
||||
|
||||
Quindi nel comando dd utilizzare come file di INPUT l’immagine iso e come file di OUTPUT il disco.
|
||||
Il block size dovrebbe essere allineato alla capacità di scrittura della pen-drive e della porta usb del pc, affinché sia possibile sfruttare più buffer:
|
||||
|
||||
```bash
|
||||
dd if=/percorso/file/immagine.iso of=/dev/sda status=progress bs=8M
|
||||
```
|
||||
|
||||
### Formattare un dispositivo
|
||||
|
||||
Per azzerare un dispositivo viene utilizzato un file virtuale creato da GNU/Linux contenente tutti e soli zeri che si trova nel percorso `/dev/zero`.
|
||||
|
||||
Quindi scrivere il comando dd utilizzando come file di INPUT /dev/null, mentre come file di OUTPUT il disco.
|
||||
|
||||
```bash
|
||||
dd if=/dev/zero of=/dev/sda status=progress bs=8M
|
||||
```
|
||||
|
||||
### Backup
|
||||
|
||||
Con dd si può effettuare il backup di interi dischi.
|
||||
|
||||
Quindi utilizzare il disco come parametro di INPUT e un file come parametro di OUTPUT. Il file sarà necessariamente un file IMG (immagine disco).
|
||||
|
||||
```bash
|
||||
dd if=/dev/sda of=/percorso/backup.img status=progress bs=8M
|
||||
```
|
||||
|
||||
Si può poi ripristinare invertendo gli operandi. Si può applicare il concetto anche alle partizioni:
|
||||
|
||||
```bash
|
||||
dd if=/dev/sda1 of=/percorso/backupp1.img status=progress bs=8M
|
||||
```
|
||||
|
||||
#### Backup e compressione
|
||||
|
||||
Se non viene specificato alcun file di output, viene utilizzato lo standard output del sistema.
|
||||
Questo permette di concatenare `dd` con altri comandi, ad esempio gzip, in modo da poter fare un backup che viene compresso al volo:
|
||||
|
||||
```bash
|
||||
dd if=/dev/sda | gzip > /percorso/backup.gz
|
||||
```
|
||||
### Clonazione di un disco
|
||||
|
||||
`dd` copia bit a bit. Questo significa che se si tenta di duplicare una partizione o un disco, copierà anche lo spazio libero.
|
||||
Quindi, ad esempio, se si clona un disco rigido con 4 TB, si avrà bisogno di un'unità di destinazione con almeno 4 TB.
|
||||
|
||||
```bash
|
||||
dd if=/dev/sda of=/dev/sdb status=progress bs=8M conv=noerror,sync
|
||||
```
|
||||
Con l'opzione `conv-noerror` eventuali errori saranno ignorati. Il programma proseguirà fino al blocco finale senza fermarsi.
|
||||
Se utilizzato in combinazione con `noerror`, `sync` assicurerà che eventuali blocchi di dati mancanti vengano automaticamente riempiti con informazioni nulle.
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://linuxhub.it/articles/howto-usare-dd/](https://linuxhub.it/articles/howto-usare-dd/)
|
||||
- [https://linuxhandbook.com/dd-command/](https://linuxhandbook.com/dd-command/)
|
200
linux/hardware/formatfs.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# Formattare un device da terminale
|
||||
|
||||
## Identificare la periferica
|
||||
|
||||
Per identificare la periferica in questione si possono utilizzare diversi comandi:
|
||||
|
||||
```bash
|
||||
sudo fdisk -l
|
||||
|
||||
sudo blkid
|
||||
|
||||
df
|
||||
```
|
||||
Ecco un esempio:
|
||||
|
||||
```bash
|
||||
sudo blkid
|
||||
|
||||
[sudo] password di davide:
|
||||
/dev/mapper/luks-44d72477-5d0f-4d0d-a54b-f721a7e5a320: UUID="cd370d97-dd7c-41d1-9b53-1504c89f64fd" TYPE="swap"
|
||||
/dev/nvme0n1p1: UUID="487ce502-4541-488c-b07f-ea2ac4e91b9f" TYPE="crypto_LUKS" PARTUUID="0559b9a4-01"
|
||||
/dev/nvme0n1p2: UUID="44d72477-5d0f-4d0d-a54b-f721a7e5a320" TYPE="crypto_LUKS" PARTUUID="0559b9a4-02"
|
||||
/dev/mapper/luks-487ce502-4541-488c-b07f-ea2ac4e91b9f: UUID="ce884a78-4404-4ea9-b6e7-d543bfb38a41" BLOCK_SIZE="4096" TYPE="ext4"
|
||||
/dev/sda1: BLOCK_SIZE="2048" UUID="2022-12-17-13-13-38-00" LABEL="d-live nf 11.6.0 kd amd64" TYPE="iso9660" PTUUID="66641822" PTTYPE="dos" PARTUUID="66641822-01"
|
||||
/dev/sda2: SEC_TYPE="msdos" UUID="DEB0-0001" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="66641822-02"
|
||||
```
|
||||
oppure
|
||||
|
||||
```bash
|
||||
df
|
||||
|
||||
File system 1K-blocchi Usati Disponib. Uso% Montato su
|
||||
udev 7084012 0 7084012 0% /dev
|
||||
tmpfs 1426036 2380 1423656 1% /run
|
||||
/dev/dm-0 446217344 113436124 310041144 27% /
|
||||
tmpfs 7130160 6748 7123412 1% /dev/shm
|
||||
tmpfs 5120 16 5104 1% /run/lock
|
||||
tmpfs 1426032 164 1425868 1% /run/user/1000
|
||||
/dev/sda1 3600960 3600960 0 100% /media/davide/d-live nf 11.6.0 kd amd64
|
||||
```
|
||||
La chiavetta USB è identificata in questo caso come `/dev/sda` (/dev/sda1 e /dev/sda2 sono le due partizioni).
|
||||
|
||||
Per il comando `blkid` e sull'uuid vedere [qui](./uuid.md)
|
||||
|
||||
## Partizionare un disco con fdisk
|
||||
|
||||
Il programma più comune per partizionare un disco utilizzando la shell è `fdisk`. Il comando fdisk chiederà di specificare come argomento il nome del disco fisso da partizionare:
|
||||
|
||||
```bash
|
||||
fdisk /dev/hdb
|
||||
```
|
||||
|
||||
Nell'elenco che segue sono riportati i comandi di utilizzo più comune:
|
||||
|
||||
```bash
|
||||
m: visualizza l'help
|
||||
p: visualizza la tabella corrente delle partizioni
|
||||
d: cancella una partizione
|
||||
n: crea una nuova partizione
|
||||
w: scrive la tabella delle partizioni sul disco
|
||||
t: imposta il tipo di filesystem previsto per la partizione
|
||||
a: abilita/disabilita il flag che rende la partizione avviabile (boot flag)
|
||||
l: visualizza l'elenco dei tipi di filesystem utilizzabili
|
||||
q: chiude fdisk senza modificare il disco
|
||||
|
||||
Create a new label
|
||||
g create a new empty GPT partition table
|
||||
G create a new empty SGI (IRIX) partition table
|
||||
o create a new empty DOS partition table
|
||||
s create a new empty Sun partition table
|
||||
```
|
||||
|
||||
fdisk supporta diversi schemi di partizionamento. `MBR` e `GPT` sono i due standard più popolari. GPT è uno standard più recente che consente molti vantaggi rispetto all'MBR.
|
||||
I punti principali da considerare quando si sceglie quale standard di partizionamento usare:
|
||||
|
||||
- Utilizzare MBR per avviare il disco in modalità BIOS legacy;
|
||||
- Utilizzare GPT per avviare il disco in modalità UEFI;
|
||||
- Lo standard MBR supporta la creazione di una partizione del disco fino a 2 TiB. Altrimenti usare GPT;
|
||||
- MBR ha un limite di 4 partizioni primarie, GPT fino a 128 partizioni
|
||||
|
||||
Premere `g` per creare una nuova tabella delle partizioni GPT:
|
||||
|
||||
L'output sarà simile al seguente:
|
||||
|
||||
```bash
|
||||
Created a new GPT disklabel (GUID: 034596B2-1998-B241-BD8A-029063BDB87E).
|
||||
```
|
||||
|
||||
Il prossimo passo sarà creare le nuove partizioni.
|
||||
|
||||
Premere `n` per creare una nuova partizione.
|
||||
|
||||
Verrà richiesto di inserire il numero di partizione. Premere [Invio] per utilizzare il valore predefinito (1):
|
||||
|
||||
```bash
|
||||
Partition number (1-128, default 1): 1
|
||||
```
|
||||
|
||||
Successivamente, il comando chiederà di specificare il primo settore. Generalmente si consiglia sempre di utilizzare i valori predefiniti. Premere [Invio] per utilizzare il valore predefinito (2048):
|
||||
|
||||
```bash
|
||||
First sector (2048-500118158, default 2048):
|
||||
```
|
||||
|
||||
Ora è necessario inserire l'ultimo settore. È possibile utilizzare un valore assoluto oppure un valore relativo al settore iniziale, utilizzando il simbolo + seguito dalla dimensione della partizione. La dimensione può essere specificata in kilobyte (K), megabytes (M), gigabytes (G), terabytes (T) o petabytes (P).
|
||||
|
||||
Ad esempio, per creare una partizione di 100 GB, digitare `+100G` e premere [Invio]:
|
||||
|
||||
```bash
|
||||
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G
|
||||
|
||||
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
|
||||
```
|
||||
|
||||
Per impostazione predefinita, il tipo di partizione è impostato su *filesystem Linux*, che dovrebbe andare bene per la maggior parte dei casi. Se si desidera modificare il tipo, premere `l` per ottenere un elenco di tipi di partizione, quindi premere `t` per modificare il tipo.
|
||||
|
||||
Infine premere `w` per scrivere le modifiche.
|
||||
|
||||
## Formattazione della periferica
|
||||
|
||||
Smontare la chiavetta USB:
|
||||
|
||||
```bash
|
||||
sudo umount /dev/sda
|
||||
```
|
||||
|
||||
### NTFS
|
||||
|
||||
Smontata la chiavetta dal sistema, digitare:
|
||||
|
||||
```bash
|
||||
mkfs.ntfs /dev/sda -v
|
||||
```
|
||||
### EXT4
|
||||
|
||||
```bash
|
||||
mkfs.ext4 /dev/sda -v
|
||||
```
|
||||
|
||||
Un esempio:
|
||||
|
||||
```bash
|
||||
sudo mkfs.ext4 -L "DAVIDE4GB" /dev/sda -v
|
||||
|
||||
mke2fs 1.46.6 (1-Feb-2023)
|
||||
fs_types for mke2fs.conf resolution: 'ext4'
|
||||
/dev/sda contains a ext4 file system
|
||||
last mounted on Sun Mar 19 12:18:08 2023
|
||||
Proceed anyway? (y,N) y
|
||||
Filesystem label=DAVIDE4GB
|
||||
OS type: Linux
|
||||
Block size=4096 (log=2)
|
||||
Fragment size=4096 (log=2)
|
||||
Stride=0 blocks, Stripe width=0 blocks
|
||||
237104 inodes, 947456 blocks
|
||||
47372 blocks (5.00%) reserved for the super user
|
||||
First data block=0
|
||||
Maximum filesystem blocks=970981376
|
||||
29 block groups
|
||||
32768 blocks per group, 32768 fragments per group
|
||||
8176 inodes per group
|
||||
Filesystem UUID: 62fd2424-ae9d-45f8-84d9-5a3b63020661
|
||||
Superblock backups stored on blocks:
|
||||
32768, 98304, 163840, 229376, 294912, 819200, 884736
|
||||
|
||||
Allocating group tables: done
|
||||
Writing inode tables: done
|
||||
Creating journal (16384 blocks): done
|
||||
Writing superblocks and filesystem accounting information: done
|
||||
```
|
||||
dove `-L` specifica il nome del filesystem, così che sia identificabile più facilmente. L'opzione `-v` indica *verbose*.
|
||||
|
||||
## Verificare la Formattazione
|
||||
|
||||
```bash
|
||||
sudo fsck /dev/sda
|
||||
|
||||
sudo fsck /dev/sda
|
||||
fsck da util-linux 2.38.1
|
||||
e2fsck 1.46.6 (1-Feb-2023)
|
||||
/dev/sda is mounted.
|
||||
e2fsck: Cannot continue, aborting.
|
||||
```
|
||||
Oppure col comando:
|
||||
|
||||
```bash
|
||||
sudo file -sL /dev/sda
|
||||
```
|
||||
Ora che le partizioni sono state create, il passaggio successivo consiste nel formattare le partizioni e montarle.
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [https://www.chimerarevo.com/guide/linux-formattare-pendrive-usb-terminale-411029/](https://www.chimerarevo.com/guide/linux-formattare-pendrive-usb-terminale-411029/)
|
||||
- [https://phoenixnap.com/kb/linux-format-usb](https://phoenixnap.com/kb/linux-format-usb)
|
||||
- [https://wiki.archlinux.org/title/File_systems](https://wiki.archlinux.org/title/File_systems)
|
||||
- [https://linuxhandbook.com/mkfs-command/](https://linuxhandbook.com/mkfs-command/)
|
||||
- [https://www.thegeekdiary.com/mkfs-ext4-command-examples-in-linux/](https://www.thegeekdiary.com/mkfs-ext4-command-examples-in-linux/)
|
||||
- [https://guide.debianizzati.org/index.php/Guida_alla_formattazione_dei_dischi_con_fdisk](https://guide.debianizzati.org/index.php/Guida_alla_formattazione_dei_dischi_con_fdisk)
|
||||
- [https://guide.debianizzati.org/index.php/Guida_ai_comandi_da_terminale_-_Gestione_del_File_System](https://guide.debianizzati.org/index.php/Guida_ai_comandi_da_terminale_-_Gestione_del_File_System)
|
||||
- [https://noviello.it/come-creare-partizioni-con-fdisk-su-linux/](https://noviello.it/come-creare-partizioni-con-fdisk-su-linux/)
|
87
linux/hardware/fstab.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# fstab
|
||||
|
||||
Il file di configurazione `/etc/fstab` contiene le informazioni necessarie al montaggio delle periferiche di memorizzazione del sistema.
|
||||
Tale file viene letto all'avvio del sistema per determinare quali opzioni utilizzare per montare una specifica periferica o una partizione.
|
||||
|
||||

|
||||
|
||||
Per visualizzare il contenuto del file, digitare:
|
||||
|
||||
```bash
|
||||
cat /etc/fstab
|
||||
|
||||
# /etc/fstab: static file system information.
|
||||
#
|
||||
# Use 'blkid' to print the universally unique identifier for a
|
||||
# device; this may be used with UUID= as a more robust way to name devices
|
||||
# that works even if disks are added and removed. See fstab(5).
|
||||
#
|
||||
# <file system> <mount point> <type> <options> <dump> <pass>
|
||||
# /dev/sda1
|
||||
UUID=12102C02102CEB83 /media/windows ntfs silent,umask=0,locale=it_IT.utf8 0 0
|
||||
# /dev/sda2
|
||||
UUID=cee15eca-5b2e-48ad-9735-eae5ac14bc90 none swap sw 0 0
|
||||
# /dev/sda3
|
||||
UUID=98E0-6D24 /media/dati vfat defaults,utf8,umask=007,uid=0,gid=46,auto,rw,nouser 0 0
|
||||
# /dev/sda4
|
||||
UUID=0aa86c61-0df9-4f1a-8b0b-34abbee6b769 / ext3 nouser,defaults,errors=remount-ro,atime,auto,rw,dev,exec,suid 0 0
|
||||
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
|
||||
```
|
||||
|
||||
Le periferiche vengono identificate dal proprio *Universally Unified IDentifier* o [UUID](./uuid.md). Quest'ultimo è un particolare codice identificativo, virtualmente univoco, che viene assegnato dal programma di generazione del filesystem, quando la partizione viene creata o formattata.
|
||||
|
||||
## Parametri
|
||||
|
||||
| Campo | Descrizione
|
||||
|----|----|
|
||||
file system | indica il dispositivo
|
||||
mount point | indica la directory (o mount point) dalla quale sarà possibile accedere al contenuto del dispositivo (per la swap non è richiesto il mount point)
|
||||
type | tipo di file system
|
||||
options | opzioni di accesso al dispositivo (per maggiori informazioni consultare la tabella successiva)
|
||||
dump | attiva/disattiva il backup del filesystem (comando dump)
|
||||
pass | attiva/disattiva il controllo di coerenza del disco (comando fsck) i valori possibili sono 0, 1 e 2. In genere si dovrebbe usare 1 per il filesystem di root, 2 per tutti gli altri filesystem montati normalmente e 0 per i filesystem che non sono montati di default.
|
||||
|
||||
### Opzioni
|
||||
|
||||
| Opzioni | Descrizione
|
||||
|----|----|
|
||||
auto | la partizione sarà montata all'avvio del sistema, oppure con il comando mount -a
|
||||
noauto | la partizione può essere montata solo manualmente
|
||||
defaults | assegna le impostazioni di default: per ext4 sono "rw,suid,dev,exec,auto,nouser,async"
|
||||
exec | abilita l'esecuzione dei programmi presenti sulla partizione
|
||||
noexec | inibisce l'esecuzione programmi presenti sulla partizione
|
||||
relatime | aggiorna nell'inode solo i tempi di accesso al file system
|
||||
noatime | non aggiorna l'inode con i tempi di accesso al file system
|
||||
nodiratime | non aggiorna l'inode delle directory coi tempi di accesso al file system
|
||||
ro | il mount della partizione può avvenire in sola lettura
|
||||
rw | il mount della partizione può avvenire in lettura e scrittura
|
||||
sync | operazioni di scrittura/lettura della partizione sincrone
|
||||
async | operazioni di scrittura/lettura della partizione asincrone
|
||||
suid | consente le operazioni di suid e sgid (esecuzione dei programmi con maggiori privilegi)
|
||||
nosuid | inibisce le operazioni di suid e sgid
|
||||
user | consente a tutti gli utenti di montare la partizione, con le opzioni di default:noexec,nosuid,nodev
|
||||
users | permette agli utenti appartenenti al gruppo users di montare il filesystem
|
||||
nouser | limita solo a root la possibilità di effettuare il mount del file system
|
||||
owner | permette il mount al solo proprietario del punto di mount
|
||||
nofail | da usarsi per dispositivi esterni (chiavette, dischi, fotocamere, ecc.) per evitare di avere messaggi di errore al boot
|
||||
dev | interpreta le periferiche a blocchi o periferiche speciali all'interno del filesystem
|
||||
nodev | impedisce l'interpretazione di periferiche a blocchi o periferiche speciali all'interno del filesystem
|
||||
uid | imposta l'ID utente che verrà utilizzato per accedere al file system
|
||||
gid | imposta l'ID del gruppo che verrà utilizzato per accedere al file system
|
||||
x-gvfs-show | controlla se il file system viene visualizzato nell'interfaccia utente
|
||||
umask | rappresenta la negazione dei permessi. In origine tutti i file e le directory hanno il permesso 0777. La maschera li riduce. Ad esempio, una maschera 0111 riduce i permessi da 0777 a 0666. In pratica, suggerisce ai programmi avviati successivamente quali permessi negare al momento della creazione di nuovi file e directory. Differisce da chmod sia perché quest'ultimo modifica i permessi successivamente alla creazione dei file o directory, sia perché i permessi forniti con chmod sono quelli effettivi e non quelli negati.
|
||||
|
||||
|
||||
Per verificare di aver scritto tutto correttamente, provare il comando:
|
||||
|
||||
```bash
|
||||
mount /punto/di/mount/in/fstab
|
||||
```
|
||||
Se non vengono restituiti errori, l'operazione è andata a buon fine.
|
||||
|
||||
## Collegamenti
|
||||
|
||||
- [http://linuxguide.altervista.org/fstab.html](http://linuxguide.altervista.org/fstab.html)
|
||||
- [https://wiki.ubuntu-it.org/AmministrazioneSistema/Fstab](https://wiki.ubuntu-it.org/AmministrazioneSistema/Fstab)
|
||||
- [https://www.andreaminini.com/linux/maschera-permessi-linux-umask](https://www.andreaminini.com/linux/maschera-permessi-linux-umask)
|
||||
- [https://it.wikipedia.org/wiki/Umask](https://it.wikipedia.org/wiki/Umask)
|