rearranged the repository structure

This commit is contained in:
piccihud
2023-05-17 15:24:22 +02:00
parent c203b8305d
commit a38bd885c5
220 changed files with 20 additions and 1231 deletions

136
linux/bash/alias-bash.md Normal file
View 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
View 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
View File

@ -0,0 +1 @@
/home/davide/.bashrc

1
linux/bash/inputrc Symbolic link
View File

@ -0,0 +1 @@
/home/davide/.inputrc