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