Tout d'abord, un mot sur le vocabulaire employé :
Des caractères sont dits « 8 bits » s'ils correspondent à des accents ou à des signes spéciaux comme « § », non inclus dans le standard ASCII
« 7 bits ».
Ce standard, sans accents ni caractères spéciaux, correspond aux 128 (2^7) premiers caractères des 256 (2^8), de 0 à 255.
Pour des raisons historiques (place disponible, inutilité pour les états uniens) seuls les 128 (2^7) premiers caractères ont été normalisés par l'ASCII : par exemple le A qui est le 65e caractère de la table ASCII s'écrit 0100 0001 en notation binaire.
Pour les caractères situés hors de la norme ASCII, différentes « normes » ou « standards » incompatibles, comme l'Unicode, l'iso-8859, le latin, le cp (...) fixent ces correspondances.
Par exemple, dans le standard ASCII étendu par l'iso-8859-1, le 224ème caractère équivalent noté « eb » en hexadécimal correspond à « ë ».
Une police de caractères est une correspondance entre des codes informatiques et des caractères (alphanumériques...) affichables par l'ordinateur.
La police de caractères est l'ensemble des représentations graphiques des caractères d'un standard.
Il existe plusieurs polices de caractères 8 bits pouvant répondre au besoins des francophones.
Je vous recommande de lire à ce sujet l'excellent site de Roman Czyborra qui a fait une thèse sur ce sujet et qui vous donnera une explication fort détaillée
Pour résumer, il est nécessaire de choisir une police de caractères pour que tous les caractères français soient disponibles.
Voici la liste des polices dites « ISO 8859 », mais attention, il existe leurs équivalents en « code page » pour windows (comme cp1252).
De cette longue liste, il convient de ne retenir que :
Les choix de polices de caractères sont souvent des questions ou la raison se heurte aux habitudes.
Pour ma part, si vous hésitez, je vous recommande l'ISO 8859-15 latin 9, pour diverses raisons :
Le Francophones HOWTO utilise donc le latin 9 dans tous les exemples, car il y a de grandes chances que votre système ne soit pas encore compatible latin 9... autant donc vous proposer des manipulations et des travaux pratiques utiles :-)
Toutefois, si vous ne pouvez utiliser l'ISO 8859-15 latin 9 et décidez d'en choisir une autre, je vous recommande d'éviter les cp propres au monde DOS/Windows et de vous rabattre sur l'ISO 8859-1 latin 1 qui est encore un standard fort répandu : dans chaque exemple je vous invite alors à remplacer les « latin9 » par des « latin1 »
Une table de clavier est un fichier permettant de faire correspondre l'empreinte physique des cabochons, « touches » du clavier, au résultat obtenu sur l'écran de l'ordinateur.
Pour linux, ces fichiers sont dans /usr/lib/kbd/keytables/ ou /usr/share/kbd/keytables/
Par exemple, les claviers français AZERTY ont une table de clavier différente des claviers suisse romands QWERTZ, ou des claviers du reste du monde, QWERTY.
Cela ne concerne que l'apparence du clavier, l'empreinte des cabochons, donc disposition relative des caractères sur le clavier, et non son électronique interne ; si votre clavier ne vous convient pas, il vous suffit donc d'utiliser des autocollants pour le transformer en un autre clavier francophone.
Les touches « Home », « End », « Page_Up » et « Page_Down » dont les noms varient selon les claviers sont les touches permettant respectivement d'aller en début/fin de ligne et de monter/descendre d'une page.
Les codes affectes à ces touches sont respectivement 102 et 107 pour « Home » et « End » en mode terminal.
Dans les pictogrammes des claviers ISO 9995-7, ces touches sont représentés par des flèches aux traits appuyés.
Lorsqu'on presse une touche, le clavier émet un code, qui est intercepté par la table de clavier.
La table de clavier, si elle reconnait le code, renvoie la chaine associée à la touche, en l'occurence« "\e[4 » pour « End ».
Lorsque bash ou un autre programme reçoit cette chaine, il ne la connait pas !
Donc il faut lui dire, dans le .inputrc que "\e[4 " signifie "aller à la fin de la ligne"
Donc pour que ces touches fonctionnent dans le shell bash, on ajoutera donc dans le fichier .inputrc (dans votre / ou dans /etc/inputrc) les lignes:
set meta-flag on set convert-meta off set input-meta on set output-meta on set bell-style visible "\e[1~":beginning-of-line "\e[3~":delete-char "\e[4~":end-of-line "\e\C-h": backward-kill-word "\e\e[3~": kill-word
Les premières lignes permettent d'afficher les caractères 8 bits, et de remplacer le « bip » en cas d'erreur par un éclair blanc à l'écran.
Les touches mortes sont des touches qui ne produisent pas de caractères en elles-mêmes, mais qui modifient la façon dont la frappe suivante va être interprétée, par exemple, le tréma ou l'accent circonflexe sont en général des touches mortes.
Une touche morte est une touche qui doit donc être suivie d'un espace pour obtenir l'accent seul, ou dans le cas où elle est suivie d'une voyelle y positionne un accent, par exemple :
« ^ » puis « e » donne « ê » « ^ » puis « espace » donne « ^ »
Les touches mortes sont :
En raison d'une erreur volontaire et historique sous Linux, pour « émuler » le fonctionnement d'un clavier de console VT, ces 2 touches sont fréquemments mélangées, au mieux fonctionnant à l'identique, au pire ne fonctionnant pas du tout.
Commençons donc par bien les définir :
Le pavé numérique offre une touche au marquage identique et à effet identique lorsque « Verr Num » ou « Num Lock » est désactivé.
Ces deux touches correspondent chacune à un de ces codes :
Ceci dans le but d'effacer à gauche du curseur avec BackSpace, à droite du curseur avec Delete.
Chaque partie du monde a sa propre norme horaire, basée sur des fuseaux.
La France se trouve en zone MET, « heure moyenne européenne » soit GMT+1 ; la zone « MET DST » correspond à l'heure d'été activée soit GMT+2.
C'est le temps UTC, défini à Paris, qui sert de référence aux différentes heures légales.
L'acronyme « GMT » est employé 99% du temps pour désigner UTC, mais c'est une erreur ou un abus de langage.
Enfin, à titre purement indicatif, il existe l'heure astronomique, aussi comptée sur des étalons atomiques mais décalée de 4 minutes par jour de l'heure terrestre car se basant sur la position de la terre dans l'espace par rapport aux étoiles.