Fichier .bashrc, alias et fonctions

Voici quelques alias ou fonction que j’utilise dans le fichier .bashrc ou .profile. Dans un terminal linux, un alias est une sorte de raccourcis permettant de créer des commandes personnelles. L’intérêt d’un alias est de regrouper dans une commande simple une commande ou un ensemble de commandes plus complexes ou comportant de nombreuses options que vous utilisez fréquement. Pour aller plus loin, les fonctions bash permettent de gérer les arguments de cette commandes personnelles.

# Alias basiques
alias ll='ls -lrth'
alias la="ls -a"
alias cp="cp -ip"
alias mv="mv -i"
alias clr="clear; pwd; ls -lrth"
alias le="less"
 
# une fonction pour faire un cd suivi d'un ls
function cl { 
    cd $* && ls 
}
 
alias vi="gvim -geometry 120x50"
alias orthographe="aspell -t check --lang=fr"
 
# fonction pour suivre une commande
function suivre { 
    gnome-terminal -e "watch -n1 $*" 
}
 
# cleantex, fonction pour nettoyer les fichiers output de latex
function cleantex {
    rm -vf $1.aux $1.log $1.out $1.bbl $1.toc $1.lof $1.lot $1.snm $1.nav $1.vrb $1.blg
}
 
# quelque options de compilation
alias gfcomp="gfortran -o exe -g -fbounds-check -fbacktrace -Wall"
alias ifcomp="ifort -o exe -g -traceback -check bounds -check uninit -warn unused"
alias compc="gcc -o exe -O1 -lm -W -Wall -Wuninitialized -fbounds-check "

Il est souvant pratique de faire des alias pour se connecter à diverses machines avec ssh. Une autre possibilité est l’utilisation de sshfs. Cette commande permet de monter un dossier d’une autre machine. Le montage est possible si la machine est accessible par ssh, il est donc inutile de faire un montage réseau. Vos fichiers de la machine distante sont alors accessible depuis votre machine locale comme s’il s’agissait d’une clef usb ou d’un dossier quelconque. Attention, je pense qu’il est quand même préférable que l’id utilisateur soit le même sur la machine distante et la machine locale si vous voulez écrire dans les fichiers de la machine distante.

# connexions ssh
alias machine="ssh -Y user@machine"
 
# montage ssh d'un dossier avec sshfs. Cette commande montera votre dossier 
# utilisateur de la machine distante sur le dossier machine de votre ordinateur
# local.
alias mntmachine="sshfs user@machine:/home/user/ /home/user/machine/"

La variable PATH contient la liste des dossiers dans lesquels se trouvent les exécutables. Si vous voulez installer des programmes ou scripts personnels, mettez les dans un dossier et ajoutez ce dossier à PATH.

# rajout d'un dossier dans le PATH.
export PATH=/home/user/bin/:$PATH

Pour pouvoir utiliser mes modules python n’importe où, je les ai tous mis dans un même dossier et les lignes suivantes ajoutent ces dossiers à la variable PYTHONPATH. Lors de l’importation d’un module, python cherche parmi les dossiers contenu dans PYTHONPATH s’ils contiennent ce module.

# python : recuperation des dossiers contenant les classes python
classDir="/home/user/Python/classes/"
liste=`ls $classDir`
monpath="$classDir:"
for dossier in $liste
do
	monpath="$classDir$dossier:$monpath"
done
export PYTHONPATH=$PYTHONPATH:$monpath

Pour la personnalisation du prompt

  • \e ou \033 sequence d’echappement pour les couleurs
  • \[ \] début et fin de texte non imprimable
  • format : [ format texte ; couleur1; couleur2 m

J’avais utlisé ce lien pour écrire les lignes ci-dessous : Mettez de la couleur dans votre prompt.

# prompt
PS1="\[\e[0;32m\]\n# \u@\h \[\e[1;33m\] \w\[\e[0m\]\n> "
 
# autre variante :
PS1="\[\e[0;34m\]\n# \u@\h \[\e[1;33m\] \w\[\e[0m\]\n> "
 
# sans couleur :
#PS1="[\u@\h \W]> "

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

5 × 2 =