Cette section parle du contr�le de l'interface terminal-ordinateur et/ou du changement de configuration du terminal pendant son utilisation. Elle explique (ou pointe vers des explications sur) la mani�re dont l'utilisateur d'un terminal peut contr�ler et inspecter l'interface, et comment utiliser diverses commandes fournies par le pilote de p�riph�rique. Elle n'explique pas comment utiliser les nombreuses applications, shells ou la plupart des utilitaires Linux. Deux commandes utilis�es couramment sur un terminal sont :
�videmment il faut allumer le terminal pour qu'il fonctionne. Si vous ne voyez pas d'invite de login, appuyez sur la touche "Retour" (ou "Entr�e") plusieurs fois. Saisissez ensuite le nom de votre compte (suivi d'un retour/entr�e) et votre mot de passe quand on vous le demande (suivi aussi d'un retour/entr�e). Prenez garde � ne pas tout taper en lettres majuscules. Si vous le faites, l'ordinateur peut croire que vous avez un vieux terminal qui ne peut pas transmettre de lettres minuscules et le pilote s�rie peut se configurer pour n'envoyer que des lettres majuscules au terminal.
Si rien ne se passe, assurez-vous que l'ordinateur h�te va bien. Si l'ordinateur h�te est �teint (pas de courant), ce que vous tapez sur le clavier du terminal peut appara�tre � l'�cran puisque les broches de transmission et de r�ception sur l'ordinateur peuvent �tre reli�es ensemble, ce qui fait que les caract�res sont retourn�s par un ordinateur "�teint". Si vous ne pouvez pas vous logger quand l'ordinateur fonctionne, voyez r�solution des probl�mes.
En tapant sur la ligne de commande, le shell (tel que le shell Bash) lit ce que vous tapez et y r�agit. Ce que vous tapez passe d'abord par la partie pilote de terminal de votre syst�me d'exploitation. Ce pilote peut traduire certains caract�res (comme changer le caract�re "retour" g�n�r� par la touche "retour" en un caract�re "nouvelle ligne" pour les fichiers Linux). Il reconna�t aussi certains codes de contr�le que vous pourriez taper au clavier comme ^C pour interrompre l'ex�cution d'un programme. Il retourne normalement ce que vous tapez � l'�cran. On peut utiliser stty pour configurer le comportement de ce terminal, ce qui comprend l'arr�t de tout ou partie de cette fonctionnalit�.
Il peut y avoir quelques probl�mes pendant l'utilisation d'emacs et de vi sur certains terminaux.
Si le contr�le de flux logiciel est pr�sent, la commande ^S dans Emacs bloquera l'affichage. La commande ^Q d�bloquera l'affichage. La solution est de relier cette commande � une autre touche dans le fichier de configuration de Emacs.
Vi utilise la touche ESC comme commande pour sortir du mode d'insertion. Si on appuie sur une touche fl�ch�e (touche de curseur) une s�quence d'�chappement (d�marrant par le caract�re ESC) est envoy�e � l'h�te. Vi doit faire la diff�rence entre ces deux significations d'ESC. Un vi intelligent (comme vim) doit �tre capable de d�tecter la diff�rence en regardant le temps entre la touche ESC et celle qui suit. Si il s'agit d'un court d�lai, c'est comme si une touche curseur avait �t� press�e. Utilisez "help cursor-keys" dans vim pour en savoir plus.
Il y'a une autre fa�on d'arranger �a.Sur les terminaux VT on peut faire en sorte que la touche fl�che gauche envoie soit ESC [ D soit ESC O D. Les autres touches fl�ch�es sont similaires mais utilisent A, B et C au lieu de D. Si vous avez des probl�mes, choisissez ESC [ D puisque le "O" dans l'autre alternative peut �tre interpr�t�e comme une commande d'"ouverture de ligne". Le "[" devrait �tre interpr�t� par vi pour dire qu'une touche fl�ch�e a �t� press�e. ESC [ D sera envoy� � condition que le "mode application touches fl�ch�es" (Cursor Key Application Mode) n'ait pas �t� activ�. ESC [ D est normalement la valeur par d�faut donc tout devrait �tre correct. Sauf que de nombreux termcaps contiennent une cha�ne (pas la cha�ne d'initialisation) qui positionne ce que vous voulez �viter : "Mode Application". Les �diteurs peuvent envoyer cette cha�ne au terminal quand ils d�marrent. L�, vous avez des probl�mes.
Cette cha�ne poss�de le code termcap "ks" (smkx dans terminfo) qui veut dire activer les touches de fonctions (et similaires, incluant les touches fl�ch�es). Une application active ces touches en envoyant la cha�ne "ks" au terminal. La personne qui a �crit le termcap a conclu que si une application voulait activer ces touches, elles devraient �tre mises en "Mode Application" puisque c'est une "application", mais vous ne voulez pas cela.
La console Linux n'a pas de cha�ne "ks" pour que vous ne tombiez pas dans ce pi�ge sur la console. Pour d'autres terminaux vous aurez besoin d'�diter termcap (ou terminfo) ou d'utiliser une autre entr�e termcap. Vous devez modifier non seulement la cha�ne "ks" mais aussi les d�finitions termcap de ce qu'elle envoie : kd, kl, kr, ku. Lancez ensuite tic pour l'installer.
Pour vim (VI aM�lior�) il y a une mani�re de le configurer pour qu'il fonctionne correctement avec ESC O D (pour que vous ne deviez pas �diter termcap) : cherchez "vt100-cursor-keys" dans l'aide de vim. Vous pouvez lancer "gitkeys" et ensuite appuyer sur les touches fl�ch�es pour voir ce qu'elles envoient mais on peut les configurer pour qu'elles envoient autre chose quand vous �tes dans un �diteur.
Si ls
met en l'air l'�mulation de votre terminal avec la possibilit� de
couleur, arr�tez-la. ls --color
et ls --colour
utilisent la
possibilit� de couleur. Certaines installations font que ls
utilise la
couleur par d�faut. V�rifiez dans /etc/profile
, etc. s'il y a des
alias pour ls
. Voyez
exemple de fonction ls
pour savoir comment faire pour que ls soit en couleur sur la console et en
noir et blanc sur les terminaux.
Les sympt�mes d'un terminal bloqu� sont que ce que vous tapez ne s'affiche
pas sur le terminal (ou dans certains cas s'affiche mais ne fait rien). Si ce
que vous tapez est invisible (ou ne fait rien) tapez ^Q pour relancer le flux
(si le contr�le de flux l'a stopp�). Le blocage peut aussi venir de
:
envoi d'un binaire au terminal ou
un programme s'est termin� de fa�on anormale
Si vous n'avez fait ni l'un ni l'autre, votre programme
peut alors �tre bogg� ou vous avez int�ragi de mani�re fatale avec lui.
Si vous voulez quitter le programme que vous avez lanc� et que vous ne pouvez pas le faire par les m�thodes normales (certains programmes ont des touches sp�ciales que vous devez taper pour sortir) essayez de le tuer � partir d'un autre terminal en utilisant "top" ou "kill". Si le processus refuse de s'arr�ter, vous pouvez essayer de lui envoyer un signal 9 � partir de top qui devrait le forcer � s'arr�ter. Le type de sortie forc�e "9" peut laisser certains fichiers temporaires qui tra�nent ainsi qu'une interface corrompue. Tuer le shell de login devrait relancer getty avec une nouvelle invite de login.
Les personnes d�butantes sous Linux peuvent sans le faire expr�s appuyer sur Ctrl-S (^S) (ou la touche "Arr�t D�fil") qui bloque l'�cran de mani�re myst�rieuse (bien que ce soit ce que cette touche est suppos�e faire si vous utilisez le contr�le de flux logiciel). Pour retrouver une interaction normale avec l'�cran, pressez Ctrl-Q (^Q). Notez que tout ce qui est tap� durant le "blocage" est ex�cut� mais vous n'en verrez rien avant d'appuyer sur ^Q. Ainsi quand il est bloqu�, ne tapez rien de sp�cial qui pourrait effacer des fichiers etc. L'un des arguments en faveur du contr�le de flux mat�riel est qu'il emp�che de tels blocages.
Cela inclut le cas de l'"affichage bloqu�" = "terminal stopp� net" de la section pr�c�dente.
Quand l'affichage ne semble pas correct, ou quand ce que vous tapez ne s'affiche pas correctement (si m�me un affichage se produit), ou que rien ne se passe quand vous tapez une commande, il y a des chances que vous soyez en face d'une corruption de l'interface du terminal. Dans les cas rares o� la partie mat�rielle du port s�rie elle-m�me serait corrompue, le seul rem�de peut �tre de basculer l'interrupteur (�teindre le PC et red�marrer). Le probl�me peut provenir de choses telles qu'un bogue dans le programme que vous utilisez, une panne mat�rielle (ce qui inclut un d�faut mat�riel obscur avec lequel vous pouvez normalement vivre) ou peut-�tre une configuration incorrecte. Si tout fonctionnait correctement mais que �a va soudainement mal, il se peut que l'interface ait �t� corrompue par une de vos actions. Vous pouvez avoir fait l'une de ces trois erreurs :
Votre terminal modifiera ses caract�ristiques si on lui envoie certaines s�quences d'�chappement ou des caract�res de contr�le. Si vous essayez par inadvertance d'afficher un fichier binaire, il peut contenir par hasard de telles s�quences qui peuvent placer votre terminal dans un mode de fonctionnement �trange voire le rendre inutilisable. Visualisez ou �ditez toujours un fichier binaire avec des programmes faits � cet effet pour que cela n'arrive pas. La plupart des �diteurs et des afficheurs manipuleront les binaires de la bonne mani�re afin de ne pas corrompre l'interface. Certains peuvent afficher un message vous avertissant qu'ils ne peuvent �diter du binaire. Par contre, l'utilisation de "cat ...." ou "cp .... /dev/tty.." o� .... est un fichier binaire enverra le binaire au terminal et risque fortement de g�n�rer des probl�mes.
La corruption peut aussi arriver en utilisant un programme de communication o� un ordinateur distant peut envoyer des donn�es binaires � l'�cran. Il y a de nombreuses autres fa�ons pour lesquelles ces probl�mes peuvent arriver, alors soyez-y pr�par�. M�me un fichier qu'on prend pour un fichier ASCII peut contenir des codes de contr�le ind�sirables.
Pour r�soudre ce probl�me, r�-initialisez le terminal. Vous pouvez essayer de taper soit "reset" soit "setterm -reset" (bien que vous ne puissiez pas voir ce que vous tapez). Ceci enverra la cha�ne de r�-initialisation � partir de l'entr�e du terminal dans la base terminfo. Si la configuration correcte a �t� sauv�e � l'int�rieur du terminal, alors l'appui sur certaine(s) touche(s) (peut-�tre en mode de configuration) peut retrouver ce param�trage. Vous voudrez alors ensuite encore utiliser "reset" pour envoyer la cha�ne d'initialisation si vous l'utilisez pour configurer votre terminal.
De grandes applications (comme des �diteurs) utilisent souvent les commandes stty (ou autres) dans leur code pour modifier de mani�re temporaire la configuration stty pendant que vous utilisez ce programme. Cela peut mettre le pilote de p�riph�rique en mode "brut" pour que chaque caract�re que vous tapez aille directement � l'application. L'�cho de retour que fait le pilote est d�sactiv� pour que tout ce que vous voyez � l'�cran vienne directement de l'application. Ainsi de nombreuses commandes de contr�le (comme ^C) peuvent ne pas fonctionner dans certaines applications.
Quand vous quittez de telles applications, celle-ci remet d'abord en place les param�tres stty aux valeurs qu'ils avaient avant le d�marrage de l'application. Si vous quittez le programme de mani�re anormale (vous pouvez deviner que �a s'est pass� ainsi quand ce que vous tapez ne s'affiche plus � l'�cran) vous risquez d'�tre encore en mode "brut" sur la ligne de commande.
Pour sortir du mode brut et revenir aux param�tres stty normaux, tapez "stty sane". Cependant, vous devez taper ceci juste apr�s un "retour" et le terminer par un "retour". Mais l'appui sur la touche "retour" ne donne pas le r�sultat escompt� puisque le code "retour" n'est plus traduit en caract�res nouvelle ligne que le shell attend. Tapez donc simplement nouvelle ligne (^J) � la place de "retour". L'interface de terminal "sane" peut ne pas �tre exactement la m�me que d'habitude mais elle fonctionne en g�n�ral. "stty sane" peut aussi �tre utile pour sortir d'une interface corrompue par d'autres causes.
Un certain nombre de caract�res de contr�le que vous pouvez taper au clavier sont "attrap�s" par le pilote de terminal et effectuent diverses t�ches. Pour voir ces commandes de contr�le tapez : stty -a et regardez les lignes 2 � 4. Elles sont expliqu�es de mani�re vague dans les pages de manuel de stty. On peut modifier les caract�res ou les d�sactiver en utilisant la commande stty. Ainsi vos caract�res de contr�le peuvent diff�rer de ceux d�crits ci-dessous. On les utilise pour l'�dition de la ligne de commande, l'interruption, le d�filement et pour se d�placer sur le caract�re suivant de mani�re transparente.
Alors que le pilote de terminal poss�de quelques commandes pour l'�dition de la ligne de commande, certains shells poss�dent un vrai �diteur int�gr� (comme "readline" dans le shell Bash). Un tel �diteur est normalement activ� par d�faut donc vous n'avez besoin de rien faire pour l'activer. S'il est disponible vous ne devez pas apprendre les commandes suivantes bien qu'elles fonctionnent souvent en plus de l'�diteur de lignes de commande. Les plus importantes � apprendre sont ^C (interruption), ^D et comment arr�ter le d�filement.
Si ce que vous d�sirez voir d�file hors du bas de l'�cran, vous pouvez emp�cher cela en envoyant un signal d'arr�t "stop" (^S ou Xoff) � l'h�te (� condition que le contr�le de flux Xon-Xoff soit activ�). Envoyez un signal de d�part "start" (^Q ou Xon) pour reprendre. Certains terminaux poss�dent une touche "Pas de d�filement" qui enverra de mani�re altern�e Xoff et Xon ou peut-�tre enverra des signaux de contr�le de flux mat�riel ?? Voici ce que font ctrl-S (^S) et ctrl-Q (^Q) :
Si vous voulez � la fois arr�ter le d�filement et quitter, utilisez ^C. Si vous voulez arr�ter le d�filement pour faire autre chose mais voulez garder le programme qui g�n�rait la sortie en m�moire pour que vous puissiez reprendre le d�filement plus tard, utilisez ^Z pour suspendre.
Une m�thode de d�filement diff�rente est d'envoyer la sortie dans un tube vers un afficheur comme more, less ou most. Cependant, la sortie peut ne pas �tre la sortie standard mais peut �tre la sortie d'erreur que l'afficheur ne reconna�t pas. Pour r�soudre ceci vous pouvez utiliser une redirection "2>&1" pour que l'afficheur fonctionne correctement. Il est souvent plus simple d'utiliser simplement ^S et ^Q sauf si vous devez d�filer en arri�re.
Sur une console PC (qui �mule un terminal), vous pouvez d�filer en arri�re en utilisant Shift-PageHaut. Cela est fr�quemment n�cessaire puisque le d�filement est souvent trop rapide � arr�ter en utilisant ^S. Une fois que vous avez d�fil� en arri�re Shift-PageBas d�filera en avant � nouveau.
^V envoie le caract�re tap� suivant (en g�n�ral un caract�re de contr�le) directement au pilote de p�riph�rique sans action ou interpr�tation. En retour deux caract�res ASCII comme ^C sont affich�s.
Certains fichiers texte sont au format Latin1 sur 8 bits (voyez ensembles de caract�res). Si vous avez un terminal qui n'affiche pas les caract�res Latin1 (ou sur lequel on n'a pas s�lectionn� l'ensemble de caract�res Latin1), un symbole de boulet s'affichera comme un 7, etc. En visualisant des pages de manuel (elles sont en Latin1) vous pouvez passer l'option -7 � man afin de traduire les 7, etc. � quelque chose proche d'un boulet (en ASCII). Y a-t-il des afficheurs qui font ces traductions ??
Ces utilitaires vous fourniront des informations sur l'interface du terminal :
Les param�tres du terminal sont normalement positionn�s une fois quand le terminal est install� en utilisant les proc�dures de configuration du manuel du terminal. Cependant, certains param�tres peuvent �tre modifi�s alors que le terminal est en cours d'utilisation. Vous ne donnez normalement aucune commande "stty" ou "setserial" quand le terminal est en cours d'utilisation car elles causeront certainement des probl�mes � l'interface du terminal. Cependant, vous pouvez faire certaines modifications � l'apparence de l'�cran du terminal ou � son comportement sans d�truire l'int�grit� de l'interface. Parfois ces modifications sont faites automatiquement par les applications et donc vous ne devriez pas avoir besoin de vous en occuper.
Une m�thode directe pour effectuer de telles modifications est d'utiliser la touche de configuration (ou autre) sur le terminal et ensuite d'utiliser les menus pour faire les modifications. Pour cela, vous aurez besoin de bien conna�tre le terminal. Les trois autres m�thodes envoient une s�quence d'�chappement de l'ordinateur vers le terminal pour faire les modifications. Ces trois exemples montrent des m�thodes diff�rentes pour faire cela en positionnant la vid�o inverse :
C'est la commande la plus facile � utiliser. Elle utilise des options longues (mais n'utilise pas les -- normaux devant). Elle consulte la base de donn�es terminfo pour d�terminer le code � envoyer. Vous pouvez modifier la couleur, la luminosit�, la coupure de ligne, la vitesse de r�p�tition du clavier, l'apparence du curseur etc.
La commande "tput" est similaire � "setterm" mais au lieu d'utiliser des mots ordinaires comme arguments, vous devez utiliser les abr�viations utilis�es par terminfo. Beaucoup d'abr�viations sont relativement laconiques et difficiles � retenir.
Dans l'exemple "echo ^[[7m" pour positionner la vid�o inverse, ^[ est le caract�re d'�chappement. Pour le taper, tapez ^V^[ (ou ^V suivi de la touche ESC). Pour utiliser cette m�thode "echo" vous devez trouver quel code utiliser � partir d'un manuel de terminal ou � partir de terminfo ou termcap. Il est plus facile d'utiliser setterm ou tput si vous tapez sur la ligne de commande. Puisque "echo ..." s'ex�cutera plus vite (puisqu'il ne fait de requ�te), il est bon pour �tre utilis� dans les scripts shell lanc�s au d�marrage, etc.
Quand vous �teignez le terminal les modifications que vous avez faites seront perdues (sauf si vous les avez sauv�es dans la m�moire permanente du terminal en allant dans le mode configuration et en les sauvant). Si vous voulez les utiliser � nouveau sans devoir les retaper, mettez les commandes dans un script shell ou cr�ez une fonction shell. Lancez-la ensuite quand vous voulez faire les modifications. Une mani�re de rendre les modifications semi-permanentes est de mettre ces commandes dans un fichier lanc� � chaque fois que vous vous loggez ou que vous d�marrez l'ordinateur.
C'est aussi ce que l'on appelle une "console s�rie". Beaucoup de messages en provenance du syst�me ne sont normalement envoy�s que sur la console (Le moniteur). On peut aussi voir sur un terminal certains messages envoy�s sur la console durant le d�marrage apr�s un d�marrage r�ussi en tapant la commande : dmesg. Si le d�marrage ne r�ussit pas, ceci ne sera d'aucun utilit�. Il est possible de modifier le noyau Linux pour qu'un terminal serve de console et re�oive tous les messages de Linux destin�s � la console. Malheureusement, les messages du BIOS (qui s'affiche sur le moniteur quand un PC est d�marr�) seront perdus puisqu'ils ne seront pas affich�s sur le terminal.
Creer une "console s�rie" veut dire que la console (dans la forme d'un terminal) se trouve maintenant sur un port s�rie. Bien s�r, elle n'aura pas les couleurs, les fontes, les capacit�s graphiques, ni les possibilit�s de red�finition du clavier de la vraie console du PC.
Avant le noyau 2.2, vous deviez patcher le noyau � la main. � partir du noyau 2.2, le support est inclus dans le noyau � condition que ce dernier ait �t� configur� pour cela. Ces deux cas sont trait�s dans les deux sous-sections suivantes :
Les instructions pour faire une console s�rie sont incluses dans la documentation livr�e avec le code source dans le fichier : serial-console.txt. Normalement, le p�riph�rique /dev/console est un lien vers tty0 (la console PC). Pour une console s�rie vous cr�ez un nouveau /dev/console qui est un vrai p�riph�rique (et non pas un lien vers autre chose). Vous devez aussi inclure une d�claration � propos de la console s�rie dans /etc/lilo.conf et ensuite lancer lilo. C'est parce que l'�quivalent de "setserial" doit �tre lanc� pour configurer votre console s�rie avant le chargement du noyau. Voyez la documentation ci-mentionn�e pour plus de d�tails.
Le Linux Journal d'avril 1997 avait un article sur la fa�on d'appliquer une rustine au noyau. Vous ajoutez quelques #define au d�but de src/linux/drivers/char/console.c :
<item> #define CONFIG_SERIAL_ECHO <item> #define SERIAL_ECHO_PORT 0x2f8 /* Serial port address */ Ce qui suit n'�tait pas dans l'article de Linux Journal. Dans les noyaux 2.+ (et pr�c�dents ??) vous avez aussi besoin de positionner la vitesse d'�mission (sauf si 9600 est convenable). Cherchez ces deux lignes : serial_echo_outb(0x00, UART_DLM); /* 9600 baud */ serial_echo_outb(0x0c, UART_DLL); Changez 0x0c dans la ligne ci-dessus en (selon la vitesse que vous d�sirez) : 115200 baud: 0x01 19200 baud: 0x06 2400 baud: 0x30 57600 baud: 0x02 9600 baud: 0x0c 1200 baud: 0x60 38400 baud: 0x03 4800 baud: 0x18
Si vous utilisez la console pour s�lectionner quel syst�me d'exploitation d�marrer (avec LILO), mais que vous voudriez le faire � partir d'un terminal, vous devez ajouter une ligne au fichier /etc/lilo.conf. Voyez la page de manuel de lilo.conf et cherchez la cha�ne "serial=".
Oui, en utilisant un terminal et en le faisant passer pour une console comme indiqu� ci-dessus. Vous aurez sans doute quand m�me besoin d'une carte graphique puisque la plupart des BIOS en ont besoin pour d�marrer le PC. Votre BIOS peut aussi avoir besoin d'un clavier pour d�marrer, ou bien il peut avoir une option gr�ce � laquelle vous pouvez indiquer au BIOS qu'il n'a pas besoin de clavier.
Le paquet "screen
" lance des sessions multiples un peu comme les
terminaux virtuels sur la console : voyez
la console : /dev/tty?. Cependant, ce n'est pas comme les "pages" (
section sur les pages) puisque l'image des pages est
stock�e sur l'ordinateur h�te et non � l'int�rieur du terminal comme elles le
sont avec les "pages".
Pour vous d�logger, tapez soit "logout", soit "exit". Dans certains cas votre demande sera refus�e, mais on devrait vous dire pourquoi. L'une des raisons du refus est que vous n'�tes pas sur le m�me shell que celui avec lequel vous vous �tes logg�. Une autre mani�re de vous d�logger est d'appuyer sur ^D. Puisqu'on utilise aussi ^D � d'autres fins, vous ne voudrez pas forc�ment que cette touche vous d�logge. Si vous positionnez la variable IGNOREEOF dans le shell Bash, alors ^D ne vous d�loggera plus.
Si deux personnes logg�es par l'interm�diaire de terminaux sur le m�me ordinateur h�te d�sirent discuter ensemble, ils peuvent utiliser les programmes "write" ou "talk". Sur Internet, on peut discuter en utilisant le navigateur "lynx".
Pour espionner ce qu'une autre personne fait sur son terminal, utilisez le programme "ttysnoop". Dans "ttysnoop", les deux terminaux ont le m�me �tat et tout ce qui est tap� sur l'un des deux claviers appara�t sur les deux �crans (au m�me endroit). Donc si vous espionnez et ne voulez pas �tre d�tect�, vous ne devriez rien taper. On peut utiliser ttysnoop pour s'entra�ner avec un professeur et un �tudiant assis c�te � c�te, chacun sur son terminal. Le professeur peut regarder ce que tape l'�tudiant et peut corriger les erreurs en tapant correctement. L'�tudiant peut regarder ce que tape le professeur et ensuite le r�p�ter lui-m�me. C'est comme s'ils utilisaient un seul terminal, les deux personnes ayant leurs mains sur le clavier en m�me temps.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:43