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).
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). |
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) | |
/ | 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.
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. |
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). |
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. |
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. | ||
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. |
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. |
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). |
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. |
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
& | 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) | ||
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). | ||
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/
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. | ||
set PATH=($PATH ~/bin)
echo $PATH
rehash
source
(notamment le .tcshrc et des scripts équivalents) :
source <nom>
awk
applique un script à chaque ligne d'un fichier de données. Elle permet
notamment d'écrire des scripts répétitifs, avec des instructions
similaires appliquées à une série de fichiers. Ceci permet
d'automatiser des procédures, ou d'écrire des macros pour certains
logiciels. Chaque champ d'une ligne de fichier est considéré comme un
argument, numéroté $1, $2... Pour les instructions complexes, on peut
utiliser un fichier de script. Exemples :
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} |
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 | 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 | |
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. |
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.
Dernière mise à jour : 4 juillet 2007
Remarques : stephane.erard at obspm.fr |