mywiki/alias-bash.md

127 lines
3.8 KiB
Markdown

# Alias
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/)