mywiki/alias-bash.md

3.8 KiB

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

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:

alias alias_name="command_to_run"

Quindi, riprendendo l"esempio precedente:

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:

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:

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:

function_name () {
  [commands]
}

Oppure:

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:

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:

alias

Alias che potrebbero tornare utili

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