Les alias
Les alias sont un moyen de créer de nouvelles commandes dans votre shell.
Cela peut être très utile lorsque l’on répète des commandes qui sont longues à écrire ou pour automatiser plusieurs actions.
Pour créer un alias, nous allons utiliser la commande alias
qui est disponible dans tous les shells compatibles POSIX (sh, bash, zsh, …).
La commande s’utilise de la manière suivante:
alias affiche="echo"
On définit une nouvelle commande affiche
qui va dans notre dos faire un appel à echo
.
Voici ce que cela donne dans notre shell:
Ici, à la première ligne on constate que notre shell ne connaît pas la commande affiche
. C’est normal, nous n’avons pas encore créé l’alias correspondant.
À la seconde ligne nous créons l’alias, c’est pourquoi à la troisième ligne notre shell est capable de comprendre et d’exécuter la commande affiche
.
Il est possible de supprimer notre alias avec la commande unalias affiche
ou bien alias affiche=
.
Jusqu’à maintenant nous avons défini des alias dans notre shell courant. Si nous ouvrons un autre shell nos alias auront disparu. Pour sauvegarder ces derniers nous pouvons les ajouter au fichier de configuration de notre shell (par exemple: .bashrc
, .zshrc
, …).
La syntaxe est identique que lorsque l’on déclare un alias dans notre shell. Voici un extrait d’un fichier ~/.bashrc
:
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
Dans un shell, pour savoir quels sont les alias déjà défini on peut utiliser la commande alias
. Voici ce qu’elle donne dans mon shell bash:
Quelques alias utiles
Nous l’avons évoqué, un des avantages des alias est de raccourcir des commandes longues que nous utilisons souvent.
Le meilleur moyen de retenir les alias est de définir les vôtre avec votre logique. Apprendre les alias de quelqu’un d’autre n’est pas utile car l’important est de retenir la commande derrière l’alias.
Voici une liste des alias que j’ai dans le fichier de configuration de mon shell pour vous donner des idées:
alias cls="clear"
alias ls="ls --color"
alias la="ls -lah"
alias ll="ls -lh"
alias grep="grep --color=auto"
alias cp="cp -i"
alias mv="mv -i"
alias e="vim"
alias k="kubectl"
alias gtfo="poweroff"
alias please="sudo"
alias ga="git add"
alias gcm="git commit"
alias gh="git push"
alias gl="git pull"
alias gs="git status"
alias gb="git branch"
alias gck="git checkout"
alias gdf="git diff"
alias gm="git merge"
alias gcl="git clone"
alias glg="git log --graph"
alias gfh="git fetch"
alias gsl="git shortlog -sn"
alias grb="git rebase"
alias gsh="git stash"
alias gblm="git blame"
alias dc="docker-compose"
alias dimg="docker image"
alias dctn="docker container"
alias dvlm="docker volume"
alias dsp="docker system prune"
alias dbld="docker build"
On pourrait aussi imaginer des alias plus compliqué comme:
alias gitfuu="git add . && git commit --amend --no-edit && git push --force"
On peut aussi réutiliser des alias précédemment créé dans la définition d’un nouvel alias, avec l’exemple ci-dessus (et les alias que j’ai dans mon fichier de configuration) on pourrait avoir:
alias gitfuu="ga . && gcm --amend --no-edit && gh -f"
Les alias dans Zsh
Ce que nous avons vu précédemment fonctionnne aussi dans zsh.
En plus de ces alias, zsh nous met à disposition d’autres types d’alias. Nous allons en voir ici deux.
Alias suffixe
Zsh nous permet l’exécution d’une commande en fonction de l’extension du fichier que nous tapons.
Par exemple, faire:
% main.go
Peut ouvrir le fichier main.go
dans Vim.
Voici la commande pour définir un alias suffixe:
alias -s go=vim
Alias globaux
Ces alias prennent le dessus sur tout autre alias qui pourrait exister.
Imaginons que nous faisions souvent quelque chose comme suit:
cat file.txt | grep my_name
Nous pouvons créer un alias global comme cela:
alias -g g="| grep"
Et ensuite nous l’utiliseront de cette manière:
cat file.txt g my_name