12,90 € TTC
p. 08 Traitement de données avec sed et awk
p. 18 Automatiser des tâches récurrentes avec cron
p. 24 Synchroniser ses données avec rsync
p. 30 Surveiller les modifications au sein des fichiers
p. 38 Connaître le matériel dont on dispose
p. 46 Mettre en place une connexion Bluetooth
p. 52 Identifier les causes d'un ralentissement
p. 58 VirtualBox en ligne de commandes
p. 66 Un stockage plus « souple » avec Logical Volume Manager
p. 82 OpenSSH, l'accès à distance en toute sécurité
p. 94 Contrôler son bureau à distance
p. 98 Quelques commandes pour jouer avec TLS/SSL
p. 106 ImageMagick, le traitement d'images en ligne de commandes
p. 118 Traitement vidéo et titrage avec Libav et ImageMagick
De nos jours, l'écrasante majorité des systèmes informatiques proposent une interface graphique afin de simplifier, en apparence, le fonctionnement des ordinateurs. Mais les interfaces graphiques ont un défaut très pesant : elles ne permettent de faire que ce pour quoi elles sont prévues, car elles ne sont pas interconnectables.
La ligne de commandes, c'est « l'ancêtre » des interfaces informatiques : on tape des instructions au clavier, celles-ci sont exécutées et leur réponse est affichée. Mais des couches intermédiaires rendent ce fonctionnement réellement puissant. En réalité, un logiciel n'attend pas des entrées « du clavier » : il attend des données « sur l'entrée standard » ; de même, il n'affiche pas « à l'écran » ; il retourne des données « sur la sortie standard ». Le fait est que, dans le cadre d'un terminal, le clavier est dirigé vers l'entrée standard et la sortie standard est renvoyée vers l'écran. Notons aussi que toutes ces communications ne sont que des échanges de texte : il n'y a pas de format particulier à respecter, une entrée et une sortie ce n'est que du flux de texte.
Grâce aux opérateurs de redirection, on peut alors envoyer (rediriger) la sortie (textuelle) d'un programme sur l'entrée (textuelle) d'un autre. On parle alors de « KISS », pour « Keep It Simple, Stupid » : chaque commande ne sait faire qu'une chose, mais elle la fait bien. C'est l'enchaînement de ces commandes qui fait la puissance de la ligne de commandes. C'est par exemple tout l'intérêt de commandes comme sed et awk : elles traitent et transforment du texte.
En ligne de commandes, on peut aussi simplement vouloir exécuter des actions sans devoir lancer une interface graphique, à distance par exemple : il est largement plus facile de faire transiter du « texte pur » qu'une interface graphique, qui n'est après tout pas très différente d'une vidéo : des mises à jour plusieurs fois par seconde, des données lourdes à transférer, tout cela nécessitant une bande passante imposante. On se rend compte alors qu'on peut tout faire en ligne de commandes, l'interface graphique n'étant qu'une surcouche rendant certaines tâches plus agréables.
Pour toutes ces raisons (et bien d'autres encore), la ligne de commandes a de beaux jours devant elle : simple mais puissante, elle est bien plus flexible qu'une interface graphique figée, qui n'est capable que de faire ce pour quoi elle est prévue...
La rédaction
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...

Le gestionnaire de versions Git est devenu omniprésent et son utilisation a depuis longtemps dépassé le cadre des projets logiciels. Cet article est le premier d'une série qui s'adresse tout autant à ceux qui connaissent tout juste trois ou quatre commandes Git qu'à ceux qui ont une utilisation avancée et souhaitent une compréhension plus profonde. Cet article décrit les concepts sous-jacents à Git : le commit (non, ça n'est pas un diff), la branche (non, ça n'est pas une séquence de commits), HEAD… L'article introduit une représentation graphique de ces concepts et liste rapidement quelques représentations alternatives que l'on peut trouver ailleurs. Pour permettre une compréhension profonde de l'outil, cet article détaille enfin comment Git stocke vos informations dans le système de fichiers. Les articles suivants de la série présenteront différentes façons de travailler avec Git, en étudiant par exemple l'impact des commandes merge et rebase. Ils expliqueront de nombreuses commandes Git et leurs options en s'appuyant sur votre nouvelle compréhension des concepts et sur notre représentation graphique.
Rappelez-vous, je vous avais laissé dans un état de tension insupportable à l’issue de mon précédent article sur la première partie de l’énigme du 17e jour de l’Advent of Code (ce fameux mini calendrier de l’avent du code). Voici le moment de vous révéler ce qui nous attendait dans la seconde partie…
Le bit de parité est semblable à ce brave petit soldat qui sonne l’alerte, avec ses moyens réduits et quand il le peut, pour que la cavalerie vienne s’occuper du problème. Mais cet humble bit obéit aux lois de l’information et laisse passer une erreur sur deux. Grâce aux codes Gray, configurés de façon inhabituelle, nous pourrons mieux filtrer les erreurs, sans augmenter considérablement la taille du circuit ni déployer des théories (trop) complexes.