Le système d'exploitation GNU-Linux/L'éditeur de texte vi

L'éditeur de textes vi
"vi"' (connu sous ses abréviations anglaises, prononcer vie-ail) est un éditeur de texte présent d'office sur la majorité des systèmes Unix actuels depuis 1976, souvent sous la forme d'un clone du logiciel "vi" originel.
vi est un éditeur modal, c'est-à-dire que la signification des boutons et des touches change selon le mode dans lequel il se trouve. L'un de ses intérêts a longtemps été de ne pas nécessiter de souris et de fonctionner avec un nombre réduit de touches. En effet, la présence de deux modes permet d'avoir un mode où les touches lettres servent à la saisie des caractères, en mode commande aux déplacements et autres commandes. De ce fait l'ensemble des nouvelles touches (flèches, clavier numérique et touches de fonction notamment) est totalement superflus. L'interface est donc la même pour tout ordinateur qu'il soit équipé d'un clavier de minitel ou d'un clavier avec d'innombrables touches.
Vi fut écrit par Bill Joy en 1976, « et ben ça ne nous rajeunit pas les enfants.»
 « Tu connais Notepad ? Ben Vi c'est bien mieux, c'est même super ! »
 « Avec vi, tu vas frimer devant tes potes, et te la jouer hackeur. »
Derrière un aspect rustique qui nécessites une familiarisation, se cache des fonctionnalités d'édition qui ne sont pas présentes dans d'autres éditeurs de texte.
Le minimum à savoir pour utiliser vi est de connaître les deux touches permettant de basculer entre ces deux modes principaux.
 Alors tape dans un Shell avec tes doigts musclés vi et Entrée.
 Là t'as une page blanche, comme pour un nouveau roman d'amitié qui commence entre toi et Linux.
 Tu peux faire plusieurs commandes :
 - Tape i : là par miracle tu peux taper des bêtises dans ta page.
 - Tape < ESC > : là tu ne peux plus rien écrire, mais ... tu peux exécuter des commandes.
 Et vice versa
Il y a donc 2 modes : insertion et commande.
 En mode insertion ----> "tu peux écrire tout ce que tu veux."
 En mode commande ----> "tu peux enregistrer, effacer, quitter, etc."
Il est difficile de savoir si on est en mode insertion ou en mode commande, le plus simple est d'appuyer plusieurs fois sur <ESC> pour être sûr d'être en mode commande.
"vi" est rustique, on le trouve sur tous les systèmes UNIX, même les plus vieux. Il est préférable d'utiliser vim (VI iMproved) quand c'est possible, c'est un éditeur vi amélioré
Après l'installation de "vim", lancez le programme en tapant indifféremment vi ou vim
Vim est plus convivial, il prend en compte les flèches et d'autres fonctions du clavier récent.
Il existe bien entendu d'autres éditeurs de texte dans Linux, du plus perfectionné au plus basique, mais "vi" est celui qu'on trouve partout (même sur notre vieux minitel). Il est donc impératif d'en connaître les commandes de base.
Quelques autres éditeurs :
 1. Ed
 2. Nano
 3. Emacs (editor macro)
 4. Joe
 5. Pico
 6. XEmacs (anciennement Lucid Emacs) est un éditeur de texte pour X-Window, basé sur GNU Emacs.

Photographie/Fabricants/Panasonic/Panasonic Lumix DMC-L10

Photographie/Fabricants/Casio/Casio Exilim EX-V8

Libstdcpp/std namespace
La librairie standard C++ : l'espace de nommage codice_1.
L'ensemble de la librairie standard C++ est définie à l'intérieur d'un espace de nommage codice_1. Chaque classe, fonction ou variable doit donc étre préfixée par le nom de l'espace de nommage et de l'opérateur de contexte codice_3 pour étre utilisée.
 std::string nom("toto");
 std::cout « nom;
Cependant, une déclaration d'utilisation peut être utilisée afin de ne pas avoir à répéter sans cesse ce préfixe. La déclaration d'utilisation globale permet d'utiliser tous les symboles de l'espace indiqué.
 using namespace std;
 string nom("toto");
 cout « nom;
Cette solution est simple mais a l'inconvénient d'importer la totalité des symboles de l'espace codice_1 dans l'espace de nommage global. C'est pourquoi il est possible d'importer individuellement les symboles d'un espace.
 using std::string;
 using std::cout;
 string nom("toto");
 cout « nom;

Le système d'exploitation GNU-Linux/Redirection des entrées/sorties

Les entrées/sorties des processus.
Chaque processus possède 3 flux standards qu'il utilise pour communiquer en général avec l'utilisateur :
Ces flux peuvent être redirigés afin que le processus interagisse avec un autre au lieu d'interagir avec l'utilisateur.
Redirection.
Rediriger la sortie standard.
Quand on exécute une commande, le shell affiche le résultat sur la console de sortie (l'écran par défaut). On peut rediriger cette sortie vers un fichier en utilisant le signe >.
Exemple
 ~$ ls>resultat_ls
Si le fichier existe déjà, il est écrasé.
Concaténation.
Au lieu de créer un fichier, il est possible d'ajouter les sorties d'un processus à un fichier existant en utilisant le double signe ».
Exemple
 ~$ ls»resultat
Si le fichier résultat existe déjà, les affichages sont concaténés.
Syntaxe complète.
En fait, les signes > peuvent être précédés de l'identifiant du flux à rediriger.
Pour la sortie standard, on peut donc utiliser les syntaxes suivantes :
 ~$ ls 1>resultat
 ~$ ls 1»resultat
Ce qui revient au même que les deux premiers exemples ci-dessus (redirection et concaténation).
Rediriger la sortie d'erreur standard.
La redirection du flux de sortie d'erreur standard utilise les mêmes signes, mais précédés de l'identifiant du flux : 2.
Exemples
 ~$ ls 2>erreurs_ls
 ~$ ls 2»erreurs_ls
Rediriger l'entrée standard.
Rediriger l'entrée standard permet d'entrer des données provenant d'un fichier au lieu du clavier.
Exemple
 ~$ cat < mon_fichier.txt
Rediriger un flux vers un autre.
Il est possible de rediriger un flux vers la sortie standard ou la sortie d'erreur en donnant l'identifiant du flux précédé du caractère & à la place du nom de fichier.
Exemple
 ~$ ls 1>stdout_stderr.txt 2>&1
Le fichier codice_4 contient ce qui a été affiché à la fois sur le flux de sortie standard et le flux de sortie d'erreur.
Échange des deux flux de sortie.
L'échange des deux flux de sortie s'effectue en utilisant la syntaxe pour rediriger un flux vers un autre à trois reprises, en utilisant un identifiant de flux fictif comme intermédiaire (3).
Exemple
 ~$ ls 2>&3 1>&2 3>&1
Le pipe (un tube).
Redirige la sortie d'une commande vers l'entrée d'une autre commande. Il s'agit donc d'une chaîne de redirection entre deux processus qui ne passe pas par un fichier, mais par une zone mémoire du système.
Exemples
 $ du | sort -rn 
 $ du | sort -rn | more
 $ ls -1 /usr/bin | wc -l
Explications : L'option -1 de la commande ls affiche un fichier ou répertoire par ligne. La commande wc (word count) avec l'option -l (line) compte le nombre de lignes.
 $ dmesg | grep hd | more
Explications : la commande dmesg affiche les messages du noyau Linux détectés durant le boot. La commande grep n'affiche que les lignes contenant le mot hd. La commande more affiche ces résultats page par page.
Autre exemple : extraire l'adresse IP de la carte réseau eth0 :
 $ ifconfig eth0 | grep 'inet adr' | cut -f2 -d':' | cut -f1 -d' '
 192.168.30.50

Le système d'exploitation GNU-Linux/Propriétaires et droits d'accès