Configuration de (xm)grace

Grace et plus précisément sa version graphique xmgrace (anciennement xmgr) est un outil permettant de concevoir des graphiques en deux dimensions (XY, polaire, logarithmique, boxplot …) ainsi que faire un peu d’analyse numérique (regression, interpolation, intégration …) et réaliser quelques traitements sur les données. Les graphiques obtenus sont de haute qualité et peuvent être exportés sous divers formats vectoriels (eps, ps, svg) ou non (png, jpg …). Le paquet est disponible sous ubuntu (apt://grace), fedora et la plupart des distributions linux.

site web : plasma-gate.weizmann.ac.il/Grace.

Accents et séparateur des décimaux

Par défaut, les accents ne sont pas pris en charge. Il faut passer un paramètre de langue au lancement de xmgrace pour pouvoir les utiliser. Sur la ligne de commande, lancer xmgrace de la façon suivante :

[user@machine] > LANG=C xmgrace

ou

[user@machine] > LANG=fr_FR xmgrace

Suivant votre distribution, le paramètre LANG=fr_Fr activera les accents et conservera un séparateur des décimaux avec une virgule, tandis que LANG=C activera les accents et changera le séparateur de décimaux en un point. Il est possible d’enregistrer ces paramètres dans un alias pour simplifier l’utilisation. Pour cela, ajouter la ligne suivante dans votre fichier .bashrc ou .profile :

alias xm="LANG=fr_FR xmgrace -geometry 1150x900"

L’option geometry permet quand à elle de faire en sorte que la fenêtre de xmgrace soit suffisamment grande pour voir la totalité du graphique.

Template

Pour éviter d’avoir à saisir systématiquement les mêmes paramètres (épaisseur des bordures, taille du texte …) il est possible de créer un template qui sera chargé automatiquement à l’ouverture du programme. Pour ce faire, créer un graphique vide avec toutes les options qui vous intéressent et sauvegarder le sous le nom Default.agr. Placer ensuite ce fichier dans :

~/.grace/templates/

Si les dossiers n’existent pas, il faut les créer.

Ce fichier Default.agr permet également de définir de nouvelles couleurs pour étoffer un peu la palette proposée par défaut qui est un peu pauvre. Voici, par exemple, les lignes à insérer pour disposer d’une partie des couleurs de bases plus celles de la palette tango. Ces lignes sont à placer à la place de celles définissant les couleurs dans le fichier Default.agr (commençant par @map. Pour ce faire utiliser un éditeur de texte quelconque tel que vim, gedit, emacs …

@map color  0 to (255, 255, 255), "white"
@map color  1 to (  0,   0,   0), "black"
@map color  2 to (255,   0,   0), "red"
@map color  3 to (  0, 255,   0), "green"
@map color  4 to (  0,   0, 255), "blue"
@map color  5 to (148,   0, 211), "violet"
@map color  6 to (255, 165,   0), "orange"
@map color  7 to (  0, 255, 255), "cyan"
@map color  8 to (255,   0, 255), "magenta"
@map color  9 to (114,  33, 188), "indigo"
@map color 10 to (103,   7,  72), "maroon"
@map color 11 to ( 64, 224, 208), "turquoise"
@map color 12 to (  0, 139,   0), "green4"
@map color 13 to (252, 233,  79), "Butter 1"
@map color 14 to (237, 212,   0), "Butter 2"
@map color 15 to (196, 160,   0), "Butter 3"
@map color 16 to (138, 226,  52), "Chameleon 1"
@map color 17 to (115, 210,  22), "Chameleon 2"
@map color 18 to ( 78, 154,   6), "Chameleon 3"
@map color 19 to (252, 175,  62), "Orange 1"
@map color 20 to (245, 121,   0), "Orange 2"
@map color 21 to (206,  92,   0), "Orange 3"
@map color 22 to (114, 159, 207), "Sky Blue 1"
@map color 23 to ( 52, 101, 164), "Sky Blue 2"
@map color 24 to ( 32,  74, 135), "Sky Blue 3"
@map color 25 to (173, 127, 168), "Plum 1"
@map color 26 to (117,  80, 123), "Plum 2"
@map color 27 to ( 92,  53, 102), "Plum 3"
@map color 28 to (233, 185, 110), "Chocolate 1"
@map color 29 to (193, 125,  17), "Chocolate 2"
@map color 30 to (143,  89,   2), "Chocolate 3"
@map color 31 to (239,  41,  41), "Scarlet Red 1"
@map color 32 to (204,   0,   0), "Scarlet Red 2"
@map color 33 to (164,   0,   0), "Scarlet Red 3"
@map color 34 to (238, 238, 236), "Aluminium 1"
@map color 35 to (211, 215, 207), "Aluminium 2"
@map color 36 to (186, 189, 182), "Aluminium 3"
@map color 37 to (136, 138, 133), "Aluminium 4"
@map color 38 to ( 85,  87,  83), "Aluminium 5"
@map color 39 to ( 46,  52,  54), "Aluminium 6"

Lorsque vous choisissez une couleur, vous avez maintenant une palette plus importante :

grace_color

Exportation par défaut

Dans le dossier :

~/.grace/

Créer un fichier gracerc.user contenant les lignes suivantes pour que le format de sortie par défaut soit .eps :

# 
HARDCOPY DEVICE "EPS"

Il sera alors inutile de passer par le menu « print setup » avant d’exporter un graphique. Changer le paramètre "EPS" par le format de sortie qui vous convient.

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]> "

Le terminal linux et l’éditeur vim : une petite introduction

Ce petit document fait 3 pages et rassemble une présentation rapide et un ensemble de commandes de bases du terminal linux et de l’éditeur vim (ou de sa version graphique gvim). La liste de commandes et très loin d’être exhaustives mais elle est suffisante pour débuter. Ce document a été rédigé à l’attention de stagiaires de niveaux L3 à M2 que j’ai encadré.

Aide mémoire pour vim et le terminal linux

Pour aller plus loin :

  • En ligne de commande, la commande man vous donnera accès à la documentation des commandes linux
  • L’éditeur vim contient un tutoriel intégré. Dans un terminal tapez vimtutor pour démarrer.
  • Vous pouvez accéder très simplement à l’aide sur vim en tapant :help en mode normal suivi de la commande sur laquelle vous souhaitez de l’aide
  • Programmez des scripts Bash