Quelques gri-gris pour survivre malgré Unix









 

 

 

 

Système

Login

Shell

Le shell est le niveau zéro de l'interface utilisateur. Il inclut un mécanisme d'entrée de commandes en ligne, un interpréteur de commandes, et un éditeur de texte minimal. Il permet notamment de manipuler des fichiers, de régler le fonctionnement du système, et de lancer des applications et des programmes. Un shell est lancé chaque fois qu'on ouvre une session sur une machine, par exemple à chaque ouverture d'une fenêtre terminal.

Il existe plusieurs types de shell : C-shell a un prompt %, Bourne-Shell utilise $. Les stations HP et les Mac sous OS X en particulier utilisent par défaut un C-shell amélioré qui utilise une syntaxe proche du C et permet l'édition sur la ligne de commandes. Toutes les commandes de cette page sont relatives à ce shell tcsh (depuis la version 10.4, Mac OS X utilise par défaut le bash). À chaque lancement le système exécute le fichier .tcshrc du répertoire de départ, qui définit des variables d'environnement, des alias, des raccourcis, lance des scripts...

tcsh
Lance un nouveau TC-shell à la main.
history
Liste des dernières commandes entrées.
chsh -s <nvshell> user
Change le shell par défaut de user
 

Sur la ligne de commande, l'éditeur dispose de nombreux raccourcis d'édition (en plus des flèches de navigation). Les plus utiles sont listés ci-dessous (le signe ^ représente la touche CTRL, Esc représente la touche Escape, à faire suivre très rapidement de la 2e touche) :

bindkey
Liste les raccourcis définis
bindkey -l
Liste les fonctions possibles (qu'on peut associer à une séquence de touches)
flèches de navigation
Déplacement sur la ligne ou dans l'historique de commandes
^A
Retour en début de ligne
^E
Va en fin de ligne
Esc-B
Début du mot précédent
Esc-F
Début du mot suivant
Esc-D
Efface le mot suivant
Esc-U ou L
Change la casse du mot suivant (majuscules/minuscules)
 

Les commandes du shell invoquent généralement des programmes qu'on retrouve en principe d'un système à l'autre. En fait, certaines peuvent ne pas être installées dans une version donnée d'Unix, ou dans un shell particulier.

Les commandes utilisent des arguments, et fréquemment des modificateurs introduits par "–" (moins/tiret court) entre la commande et l'argument. Ces modificateurs sont le plus souvent une lettre unique, dont la casse est prise en compte (p. ex., les options -r et -R donnent des résultats différents). Plusieurs options simultannées s'introduisent en général avec un seul - (p. ex. ls -rt).

Sessions / Informations

uname
Renvoie les caractéristiques du système.
tty
Renvoie le nom du terminal.
who am I
Renvoie le nom d'utilisateur.
man <commande> Décrit le fonctionnement des commandes ; si on ne trouve pas celle qu'on cherche, essayer avec une commande assimilée, elles sont documentées par groupes. On avance d'une page avec espace, on sort avec q.
man -k <clef> Documentation sur mot-clef.
man  3 getopt Les pages man renvoient souvent sur des liens tels que getopt(3). On y accède de cette façon (en indiquant la section de manuel).
xman
Sur terminal X, fenêtre d'aide avec un index complet (installé sur certaines machines).

    

Ecriture des commandes

Noms de commandes / noms de fichiers

Caractères jokers / wildcards

Caractères de contrôle

Certaines séquences clavier ont un usage particulier, notamment :

^D
Termine une séquence entrée au clavier
^L
Rafraîchit l'écran
^C
Arrête une tâche en cours
^V
Introduit une séquence ANSI (contrôle d'affichage)



Chemins

/       Séparateur de répertoires. Tout seul, ça désigne la racine du disque système (au-dessus de usr).
~
Désigne le répertoire d'accueil de l'utilisateur.
~mapomme
Désigne le répertoire de base de l'utilisateur mapomme.
/rep/fichier.dat
Désigne fichier.dat dans le répertoire rep de la racine (chemin absolu).
rep/fichier.dat
Désigne fichier.dat dans le sous-répertoire rep du répertoire courant (chemin relatif).
.
Désigne le répertoire courant.
..
Désigne le répertoire supérieur : ../dir2 désigne le répertoire dir2 situé au même niveau que le répertoire courant.
cd <chemin>
Change de répertoire. Tout seul, retourne dans le répertoire d'accueil (~).
cd $MACHIN
Va dans le répertoire contenu dans la variable d'environnement MACHIN.
*
Dans un chemin ou dans ls, désigne le contenu du répertoire et des sous-répertoires immédiatement inférieurs (un seul niveau en-dessous du répertoire courant). Si le résultat est curieux, essayer de mettre la chaîne entre " ".



Dans certaines situations, le système a du mal à retrouver un fichier dans le répertoire courant. On peut essayer de le désigner comme :

./fichier.dat

pour forcer la recherche.

 

Fichiers

Manipulations

cp  fich1 fich2 Copie le fichier fich1 sous le nom fich2. Écrase un fichier fich2 préexistant.

-i
Vérifie avant si un fichier fich2 existe déjà (à utiliser par défaut).
cp fich2 dir Copie le fichier fich2 dans un répertoire dir préexistant (peut copier plusieurs fichiers à la fois).




rm

Efface un fichier (attention c'est irrémédiable ! La notion de poubelle n'existe pas depuis la ligne de commande). Une confirmation n'est demandée que pour effacer si le fichier est protégé (444 mode ?). Répondre N pour laisser le fichier intact.
rm -i
Demande systématiquement confirmation avant d'effacer (à régler soi-même, mais ça vaut mieux !).
rm -r
Efface tous les fichiers d'une hiérarchie, ie. vide tous les sous-répertoires de manière irrémédiable.
A éviter absolument !!!
mv fich1 fich2 Renomme un fichier.
mv fich2 rep/fich1 Déplace un fichier.

-i
Vérifie s'il existe un fichier de même nom avant d'écraser b (à utiliser par défaut).

 

cmp -l
Compare deux fichiers de texte octet par octet. -l affiche toutes les différences (n'affiche que la première sinon).
diff

Plus sophistiqué, capable de se resynchroniser sur les lignes.
Permet aussi de comparer des répertoires.
ln vx nv Crée un lien sur vx, c'est à dire un autre nom pour le même fichier, à un autre endroit : modifier l'un modifie l'autre (ne fonctionne que sur un même volume logique).
mv et rm n'affectent que le fichier argument, mais écraser l'un avec cp écrase l'autre aussi.
ln fich* rep Crée dans rep des liens sur tous les fichiers pointés.




                                                    

Affichages

more fich
Affichage paginé du fichier (on avance avec espace, on sort avec q).
less fich
Idem, plus puissant (b permet notamment de remonter d'une page).
cat fich
Affichage non paginé du fichier (utile avec une redirection vers un autre fichier ou vers une commande).
cat nom1 nom2 > nom3 Concatène deux fichiers dans un 3e.
head

Affiche les premières lignes.
tail

Affiche les dernières lignes.
nl

Listing avec lignes numérotées (seul moyen simple de connaître le nombre de lignes dans un fichier).
troff

Formatage à l'écran (lourd).
tee

Duplique les sorties écran dans un fichier.
cut -b l1 l2 fich Extrait les colonnes en position l1 à l2 d'un fichier texte (affichage à l'écran : ajouter "> fich2" pour diriger la sortie vers un autre fichier).
paste fich1 fich2 Concatène les colonnes des deux fichiers (vers l'écran).
sort

Trie les lignes alphabétiquement à l'affichage (ne change pas le fichier lui-même).

-r
Tri inverse.

-n
Tri sur premier mot numérique.

-o fich2 Écrit dans un autre fichier (éviter la Redirection >, qui ne marche pas très bien)

-f
Néglige la casse (min/Maj)

-b
Néglige les espaces initiaux

-c
Néglige la ponctuation
tr a b < fich Affiche fich en remplaçant les a par des b




pr fich
Permet d'enjoliver les sorties à l'écran.

-h "titre" Ajoute un titre en en-tête de page

-l 60 Impose 60 lignes/page

-t
Vire le titre de pr et les marges en hat et en bas.

-2
Impose l'impression sur deux colonnes (ou plus).

 

Impression

lp
fich Imprime un fichier sur la queue par défaut.

-d<chose> fich Dirige sur la queue chose (sans blanc après -d).

-r
Efface le fichier quand il a fini (pas une très bonne idée : attention aux plantages).
lpstat -a
Donne l'état de toutes les queues avec les numéros de job #.
lpstat -o
Liste les sorties en cours sur toutes les queues.
cancel <chose> <# job> Stoppe une impression sur la queue chose.
pr fichier | lp Permet d'enjoliver les sorties à l'impression (ajoute date et numéro de page en en-tête). Les options sont listées ci-dessus.
enscript -p fich.ps  fich.txt Ecrit un fichier Postscript fich.ps à partir d'un fichier texte fich.txt. Sait également écrire du html et du rtf.

 

Protections

Les fichiers et répertoires possèdent des autorisations d'accès modifiables :

Pour un fichier, les autorisations sont les suivantes :

Pour un répertoire, les autorisations sont les suivantes :

L'administrateur du système a des privilèges particuliers (superuser) qui permettent de faire à peu près n'importe quoi. Sous Mac OS X, l'utilisateur principal a de tels privilèges, qui peuvent être dangereux. Pour les opérations courantes, il vaut mieux utiliser un compte secondaire sans privilèges administrateur.

ls -l
Liste les protections de fichiers et de répertoires :
-rwxrwxrwx fichier indique pour chaque catégorie (propriétaire, groupe, autres) les autorisations d'accès : read, write, execute. Le premier caractère indique la nature du document (fichier -, répertoire d, lien l). Cette option liste aussi le propriétaire du fichier et son groupe.
chmod ugo+wrx fichier Modifie les autorisations (user, group, other ; write, read, execute). Utilise + ou - pour les étendre ou les réduire.

 

whoami

Renvoie le nom d'utilisateur (login)
id

Renvoie les identificateurs de l'utilisateur et des groupes auquels il appartient.
chown

Change le propriétaire du fichier (lui seul et le superuser peuvent le faire). Le propriétaire d'une copie est celui qui la fait (ce qui permet de changer les accès à un fichier avec cp).
chgrp

Change le groupe (par défaut celui du propriétaire).
umask

Fixe les autorisations appliquées par défaut aux nouveaux fichiers.




Listes et recherches

ls

Liste le répertoire courant (sans les fichiers invisibles).
ls
chemin Liste un autre répertoire.
ls -kl
Affiche les propriétés des fichiers (autorisations, propriétaire et groupe, taille en octets, date de création). L'option k affiche la taille totale en koctets plutôt qu'en blocs de 512 ko.

-a
Liste également les fichiers invisibles (commençant par .).

-F
Identifie clairement les répertoires et les fichers exécutables.

-t
Trie les fichiers par date (faire -rt pour inverser le sens).

-R
Liste également les sous-répertoires (faire -RF pour examiner facilement une hiérarchie).

| more
Liste paginée.

-l
| wc -l
Donne le nombre d'éléments dans un répertoire (faire quand même des essais pour vérifier le nombre !)
locate chaine
Liste tous les fichiers dont le nom contient chaine (ie, *chaine*). Utilise un fichier d'index remis à jour périodiquement. Cette option n'est pas forcément installée sur un système donné.
file *
Affiche le type de fichiers (data quand il n'y comprend rien).
dircmp

Compare le contenu de deux répertoires et vérifie si les fichiers homonymes sont identiques.




Pour faire une opération longue sur des fichiers (notamment un find), on a tout intérêt à travailler sur la machine où ils se trouvent plutôt que de passer par le réseau.

find orig -name <fich> -print Cherche le fichier fich dans l'arborescence en aval de orig, et affiche le chemin. Penser à mettre la chaîne entre " " si elle contient un *. Ça peut être très long : rediriger vers un fichier et lancer en tâche de fond (ajouter " > result &").
find . -name <rep> -type d -print Cherche un répertoire rep sous le répertoire courant.
find / -name fich* -exec lp {} ";" L'option -exec applique une série de commandes au résultat de la recherche (le code ";" marque la fin des commandes à exécuter). Dans ce cas, on imprime tous les fichiers trouvés à partir de la racine ! Éviter de faire un rm de cette façon…

-ok Identique à -exec mais demande confirmation pour chaque fichier.
grep "chaine" * Cherche la chaîne dans tous les fichiers du répertoire courant. Si les caractères . * [ ] ^ $ apparaissent dans la chaîne, ils doivent être précédés de \ (ils sont compris comme des options de la commande sinon). Renvoie les lignes de fichier contenant la chaîne.
grep -l Renvoie les noms de fichiers contenant la chaîne cherchée.
grep -i Ne distingue pas les casses.

 
find . -type f -print | xargs grep "chaine" /dev/null


Cherche la chaîne dans toute l'arborescence en-dessous du répertoire courant (le fichier /dev/null représente un terminal fictif).
L'utilitaire xargs appelle grep en lui fournissant un par un les champs de texte renvoyés par find (représentant les noms de fichiers trouvés), ce que ne fait pas -exec.
find . -name "*.pro" -print | xargs grep -l "chaine" /dev/null


Idem, mais ne cherche que dans les fichiers *.pro, et renvoie les noms de fichiers au lieu des lignes complètes.

  

Commandes sur répertoires

pwd

Affiche le répertoire courant.
cd chemin
Change de répertoire (retour dans le répertoire d'accueil par défaut).
mkdir

En crée un nouveau.
rmdir

En détruit un (qui doit être vide). Ne détruit jamais le répertoire courant. On vide un répertoire avec rm *, une hiérarchie avec rm -r (encore une fois, c'est dangereux !). Si ça coince encore, vérifier qu'il ne reste pas de fichier invisible.
mv

Sait renommer un répertoire (s'utilise depuis le niveau supérieur).
cp -R /rep1/rep2/* . Recopie toute une hiérarchie dans le répertoire courant (.). Eviter l'option -r (minuscule) qui copie incorrectement certains fichiers. On peut facilement lancer une boucle infinie de cette façon ; si ça devient très long, arrêter et vérifier ce qui se passe.

 

Organisation de fichiers

df
Indique la place libre sur les disques en nombre de blocs de 512 Ko.
df -k Idem, résultat en koctets.
quota -v Liste les répertoires qui contiennent des fichiers dont on est propriétaire, et les périphériques sur lequels ils sont montés (/dev désigne un disque local, la fct nomme explicitement la machine sinon).
du -s * Taille des sous-répertoires du niveau courant (et des fichiers).

  

Compression et archivage

compress -v
Comprime un fichier et donne la performance. Résultat = machin.Z
uncompress

Décomprime machin.Z
gzip
* Comprime séparemment tous les fichiers d'un répertoire.
gzip -r * Comprime séparemment tous les fichiers, y compris ceux des sous-répertoires.
zcat

Affiche la version décomprimée sans tuer l'archive. Intéressant avec redirection vers un autre fichier, ou avec more.
uuencode
uudecode
< truc
Code et décode le binaire pour passage au mail (important aussi pour les textes accentués).


 
tar

Archivage sur bande (ou DAT). Permet surtout de stocker toute un hiérarchie dans un seul fichier (pour faciliter des transferts ou des installations).
tar -cvf truc.tar <liste de fichiers ou répertoire>



Crée l'archive truc.tar
tar -xvf truc.tar Extrait tous les fichiers de l'archive truc. L'option -xfv le force à raconter ce qu'il fait.
tar -xvf /dev/tape "rep:*"



Extrait tous les fichiers du répertoire rep de la bande installée sur dev/tape, qui désigne le lecteur de bande (de nos jours, c'est typiquement un lecteur de DAT). Les guillemets sont obligatoires.

 

Commandes

Redirection des commandes

La plupart des commandes attendent une entrée et une sortie (par exemple des noms de fichiers). Si on ne leur fournit pas, le système utilise l'entrée et la sortie standard à la place (respectivement le clavier et l'écran). Par exemple, pr tout seul attend un texte au clavier (terminé par ^D) et l'affiche à l'écran après formatage. Les opérateurs de redirection permettent de subsituer des fichiers à l'entrée et à la sortie standard, ou de chaîner des commandes entre elles.


>
Redirige la sortie d'une commande vers un fichier :
ls > dir.dat Stocke la liste du répertoire dans un fichier dir.dat. Par défaut, écrase une version préexistante de dir.dat.





>>
Idem, mais concatène la sortie et le fichier :
ls >> dir.dat Ajoute la liste au fichier dir.dat





<
Redirige l'entrée vers la commande :
lp < truc.dat Met une copie du fichier dans la file d'attente, ce qui permet de modifier ou d'effacer le fichier avant qu'il ne sorte (drôle d'idée...).





|
("pipe", Option-shift-L sur un clavier Mac) Redirige la sortie d'une commande vers l'entrée d'une 2e commande :
ls | more Fournit la liste du répertoire à l'utilitaire more qui pagine sur écran.
ls | sort -r Trie dans l'ordre alpha inverse le répertoire courant.
ls | lp Imprime le répertoire.
cat fich | grep "chaine" Affiche toutes les lignes de "fichier" qui contiennent chaine.





Attention avec la redirection

• L'instruction :

cat toto tata > toto


ne permet pas de concaténer deux fichiers dans l'un des deux. Elle crée une boucle infinie, le fichier se recopiant dans lui-même jusqu'a saturation du disque ! Il vaut mieux faire :

cat tata >> toto

 • La redirection ne vérifie par défaut si le fichier de sortie existe déjà avant de l'écraser. On peut empêcher un écrasement par redirection (et seulement pour ça) avec l'instruction :

set noclobber

 

Contrôle de tâches

&

En fin de commande, impose une exécution en tâche de fond (libère la ligne de commande).
nice <prog> & Exécution en priorité réduite.
^Z

Suspend le job courant
^Y

Tue le job courant (parfois)
jobs

Liste les jobs en cours (suspendus ou non) avec un numéro #. Celui marqué + est le plus récemment lancé ou arrêté.
fg %<#>
Relance en avant-plan le job # (on peut y mettre %nom).
bg %<#>
Relance en arrière-plan le job #.
kill %<#>
Tue le job #.
stty tostop
Interdit l'accès du terminal aux tâches de fond.
stty -tostop
Réactive l'accès.

 

ps

Liste les process lancés depuis le terminal, avec leur numéro (PID). $$ désigne le PID du shell courant. Un job peut être une séquence de plusieurs process.

-f
Affiche la filiation des process

-u
Liste tous les process lancés par l'utilisateur (quel que soit le terminal).
^C

Tue le process courant.
^\

Le tue vraiment (si ^C ne donne rien). Crée un fichier core qu'on peut jeter immédiatement.
kill PID
Tue (parfois) un process arrêté avec ^Z (attention, il s'agit du numéro de process PID, pas du numéro de job #).
kill -9 PID
Le tue tout à fait s'il résiste.
 


^J
stty
sane
^J


Cette séquence remet le terminal dans un état décent après une interruption violente
top

Liste l'utilisation du temps CPU par les utilisateurs (faire ^C pour sortir)




                  

Temporisation et batch

Bizarrement, on n'a droit au batch qu'à condition d'y être autorisé par le système. À négocier avec le responsable de la machine.

date

Affiche le jour et l'heure système.
sleep <s>
Fige le process pendant le nb de secondes demandé :
sleep 600; lp fic Va imprimer fic après 10 minutes. On force un réveil anticipé avec ^C ou <Del>.
at <heure date> Exécute tout ce qui suit (jusqu'à ^D) après l'heure dite. Les affichages sont renvoyés par email à l'utilisateur.
time

Donne le temps d'exécution de la dernière commande.
batch

Envoie un fichier de commandes à l'heure dite (session détachée des consoles).
nohup

Continuera l'exécution d'une commande en tâche de fond après logout (permet de sortir d'une session sans arrêter une tâche).




  

Pseudo utilisateur

On peut avoir besoin d'émettre une commande en se faisant passer pour quelqu'un d'autre. C'est notamment le cas sous Mac OS X lorsqu'on doit émettre des commandes sensibles depuis un compte administrateur. Les commandes qui nécessitent confirmation (ou qui portent sur des fichiers protégés) doivent être introduites par la commande sudo. Le système demande alors explicitement le mot de passe administrateur avant exécution - celui-ci reste actif pendant environ 5 minutes. On change de cette façon les noms de propriétaires d'une hiérarchie de fichiers :

sudo chown -R mysql data/

  

Automatisation des tâches

Variables d'environnement

Les variables d'environnement sont définies au niveau du shell utilisateur ou du système. Elles s'écrivent forcément en majuscules. Les wildcards sont inactifs dans les noms de variables.

echo $MACHIN
Affiche la valeur de machin
setenv MACHIN valeur Fixe la valeur
setenv
printenv
env



Listent les variables d'environnement définies.
setenv | grep TR
Liste toutes celles qui commencent par TR
PATH

Chemin de recherche des fichiers (en principe, le chemin par défaut est défini au niveau système, pas dans le .tcshrc)
set

Liste des variables définies.
unset

Tue une variable.








  

Scripts

cat <fichier> | grep "chaîne" | akw {print $3}



Affiche le 3e champ des lignes de "fichier" qui contiennent "chaîne" (dans ce cas, le fichier de données est remplacé par la sortie de grep, le script est donné explicitement et se réduit à print $3).
awk -f script.dat fichier.lis



Applique les instructions contenues dans script.dat à chaque ligne de fichier.lis (qui contient souvent une liste de fichiers de données à traiter).
awk -f script.dat fichier.lis > script2.tex



Idem, mais sauvegarde le résultat dans un fichier script2.tex (qui peut représenter une macro pour un logiciel donné, IDL ou ISIS par exemple, à exécuter depuis ce logiciel). Le fichier script.dat est de la forme :
BEGIN {ici des instructions exécutées une fois, non appliquées aux données}

{ ici les instructions appliquées }

{ à chaque chaque ligne du fichier de données }
END {ici les instructions exécutées à la fin du fichier}

 

Applications

                                           

Editeurs

vi
Editeur pleine page à l'ancienne mode. On passe en mode d'insertion en tapant i sur la ligne de commande, on revient en mode commande avec ESC. On sort avec ":q!". Certains aiment ça.
emacs
Moins repoussant et plus puissant.
pico
Editeur pleine page léger avec une interface de type Pine, auto-explicative.
xemacs
Editeur en fenêtre plus convivial. Possède des modes de configuration pour certains environnements, notamment c, Latex et IDL.
nedit
Editeur en fenêtre plus léger et utilisable que Xemacs.
gedit, kate…
Autres editeurs de textes modernes, plus sympatiques, installés sur certains systèmes.

  

Latex et Postscript

latex fich
Compile, et écrit fich.dvi
xdvi fich
Visualisation à l'écran du .dvi
dvips -o doc.ps doc.dvi Ecrit la version PostScript (doc.ps)
ghostview fichier
Visualisation à l'écran du fichier PostScript (les versions récentes proposent une interface de sélection de fichiers). 
gs fichier
Idem avec ghostscript
ps2pdf fichier
Convertit en PDF, permet de fixer les options à la main




       

Utilitaires réseau

who
Liste les utilisateurs actuels et leur console.
finger
Avec un nom d'utilisateur, donne plus de détails (renseigne aussi sur des systèmes distants)
rwho
Tous les utilisateurs du réseau local.
write
Utilitaires de causerie (en direct).
talk

^L
Rafraîchit l'écran.
telnet
Ouvre une émulation terminal sur une autre machine. En cas de pb pour sortir, utiliser le caractère d'échappement (en général ^], telnet l'indique au moment du login).
ssh
Connexion sécurisée avec d'autres machines sous Unix. Si ssh n'est pas installé, essayer rlogin (non sécurisé). Faire "~." si ça refuse de sortir.
scp vx nv  Copie sécurisée depuis une autre machine Unix. Les chaînes sont du genre user@machine:fichier (:~user2/nom désigne un autre répertoire utilisateur). Si scp n'est pas installé, essayer rcp (non sécurisé).
sftp
Fait tout le reste (ftp sécurisé). Les commandes varient selon la version installée, mais sont du type Unix (par ex. : cd change de répertoire sur la machine distante ; faire help pour une liste de commandes). Si sftp n'est pas installé, essayer ftp.
netscape
Lance le navigateur. Ne pas l'utiliser en même temps qu'une application graphique sur les terminaux 8 bits, ils n'ont pas assez de mémoire pour tout gérer en même temps (et pas assez de couleurs).
pine
Utilitaire de mail sur fenêtre terminal. Les commandes sont toujours disponibles sur la ligne du bas.

Accès graphique à une machine distante

On a fréquemment besoin de faire tourner une application graphique sur une autre machine, en affichant les résultats sur sa console - c'est notamment le cas lorsqu'on fait tourner IDL sur une machine distante.

Côté console, il faut autoriser la machine distante à afficher des fenêtres :

xhost +hote.fr

Côté distant, il faut demander l'affichage des fenêtres sur l'écran principal de la console :

setenv DISPLAY console.fr:0.0

  

Pour faire tourner IDL sur une machine Unix et afficher les résultats sur un Mac utilisé comme terminal, la procédure est un peu différente. La meilleure méthode est d'utiliser "Apple X11" (serveur X intégré dans le système) plutôt qu'un émulateur. Cette application fournit un système de fenétrage X aux applications qui l'utilisent (c'est la méthode normale pour faire tourner IDL localement en Mac OS X par exemple). Par contre son interface est peu pratique : la fenêtre de commande ne permet notamment pas de déplacer le curseur rapidement sur une ligne à éditer, ne gère pas le copier-coller habituel du Mac, et ne permet pas de remonter très haut dans les affichages. Une fois Apple X11 lancé, rien n'interdit d'utiliser la fenêtre Terminal qui est plus souple d'emploi. Côté Mac, on doit faire :

xhost +hote.fr
ssh -X user@hote.fr

L'option -X permet de faire transiter des informations d'affichage à travers ssh.

Côté serveur, il faut normalement déclarer la console d'affichage :

setenv DISPLAY localhost:0.0

En fait, cette déclaration peut perturber l'affichage. En cas de problème, essayer de laisser le serveur trouver son chemin tout seul (retirer le setenv du .tcshrc), et vérifier s'il le déclare automatiquement.

Pour éditer des routines IDL sur la machine distante en parallèle avec leur exécution, il suffit de lancer Xemacs ou nedit sur la machine hôte depuis une autre fenêtre Terminal.

 

 



Retour
Retour à la page informatique
http://www.lesia.obspm.fr/~erard
Dernière mise à jour : 4 juillet 2007
Remarques : stephane.erard at obspm.fr