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: