Les alias permettent de redéfinir certaines commandes ou d’en définir de nouvelles, évidemment cela concerne le monde du shell.
Dans cet article, quelques alias que j’utilise.

Ou définir un alias

Lors de l’ouverture d’une session, les fichiers de configuration sont exécutés . Le shell de Linux est généralement bash, ce sont donc les fichiers .bash* qui contiennent la configuration, ils sont situés à la racine du HomeDir :

yvon@web1:~$ ls .bash*
.bash_aliases   .bash_history  .bash_logout  .bashrc
yvon@web1:~

Il y a 4 fichiers qui ont chacun un rôle particulier :

  • .bashrc : il est exécuté lors de l’ouverture de la session, il permet de définir certains paramètres comme le titre de la fenêtre, le contenu du prompt …
  • .bash_logout : ce sont les commandes qui sont exécutés à la fermeture de la session
  • .bash_history : il garde une trace des commande passées lors des sessions
  • .bash_aliases : c’est le fichier qui contient la définition des alias

Remarque : dans d’autres environnements (sh ou csh au lieu de bash), ce sont des fichiers .login et .cshrc ou .profile qui servent à configurer les sessions.

Par déaut, sur un système Ubuntu, le fichier .bash_aliases n’est pas appellé. Il faut modifier le fichier .bashrc :

  • ouvrir le fichier .bashrc avec votre éditeur préféré (personnellement j’utilise vi)
  • rechercher le mot Alias et décommenté les lignes ci après
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
  • sauvegarder le fichier .bashrc

Principe d’un alias

Un alias permet de redéfinir le comportement d’un commande en rajoutant systématiquement des options ou de créer une nouvelle en combinant plusieurs commandes de bases.

La syntaxe à utiliser pour définir un alias est alias <nom>=<commande options>.

Exemple alias ll='ls -lisa |more' : affichage de la liste des fichiers du répertoire courant (commande ls), le détail des fichiers et les fichiers cachés sont affiché (option -lisa), le résultat est redirigé (comande pipe = |) dans la commande more pour un affichage par page

Quelques alias

Dans la liste qui suit, vous trouverez les alias que j’utilise. Les lignes commençant par le caratère # sont des commentaires et elles ne sont donc pas interpètées.

#==============================================================================
# dedinition des alias
# Affiche la chaine recherchee en couleur
alias grep='grep --color=always'
#affiche les tailles en Ko et Go
#alias df='df -kTh'
# Affiche les process du USER en cour
#alias myps='/bin/ps -u "$USER" -o user,pid,ppid,pcpu,pmem,args|less'
# Affiche un calendrier
alias ccal='var=$(cal -m); echo "${var/$(date +%-d)/$(echo -e "\033[1;31m$(date +%-d)\033[0m")}"'
# Calendrier du mois avec le jour en cours en rouge:
#alias cal='var=$(/usr/bin/cal -m); echo "${var/$(date +%-d)/$(echo -e "\033[1;31m$(date +%-d)\033[0m")}"'
# les 10 plus gros fichiers/répertoires du réperoitre en cours
alias topten='du -sk $(/bin/ls -A) | sort -rn | head -10'
# Mise à jour du PC
alias maj='sudo apt-get update && sudo apt-get dist-upgrade'
alias h='history'
# Connexion SSH sur les autres PC avec redirection X
alias p2400='ssh -X 192.168.0.4 -l yvon'
alias michele='ssh -X 192.168.0.6 -l yvon'
alias katell='ssh -X 192.168.0.7 -l yvon'
alias maelle='ssh -X 192.168.0.11 -l yvon'
#==============================================================================

Pour des alias devant utiliser des paramètres, il faut définir des fonctions ; elles sont définies dans le fichier .bash_aliases et vues commes des alias.

#==============================================================================
#  Fonctions
# greps the running process list for the value of $1
psuser() {
#local name=$1
if( $1 = "" )
then
local name=$USER
else
local name=$1
fi
ps aux | grep "${name}" | sed '$d'
unset $name
}
# va dans un répertoire et affiche le contenu
sd() {
clear ; cd $1 ; ls --color=auto
}
# Affichage du contenu d'un repertoire
ll () {
ls -lisaF $1 | more
}
lt () {
ls -lisaFrt $1
}

Remarque : dans un environnement sous csh ou sh (au lieu de bash) il est possible de passer des paramètres à un alias sans être obligé d’utiliser des fonctions.