Il y a une semaine, Douglas McIlroy, développeur du pipeline UNIX et auteur du concept de « programmation orientée composant » au sujet de programmes UNIX intéressants et inhabituels qui n'ont pas été largement adoptés. La publication a suscité des discussions actives sur Hacker News. Nous avons rassemblé les points les plus intéressants et nous serions ravis que vous vous joigniez à la discussion.
Photo — — Unsplash
Travailler avec le texte
Dans les systèmes d'exploitation de type UNIX, il existe un ensemble standard d'outils pour le formatage du texte. L'utilitaire typo permettait de visualiser le document à la recherche de fautes de frappe et — des mots apparaissant dans le contenu uniquement une fois. Ce qui est intéressant, c'est que pour rechercher les fautes de frappe, le programme dictionnaires. Il s'appuie uniquement sur les informations dans le fichier et effectue une analyse de fréquence sur les trigrammes (séquence de trois caractères). Tous les compteurs nécessaires dans un tableau 26x26x26. Selon Douglas McIlroy, cette quantité de mémoire était à peine suffisante pour quelques compteurs sur un octet. Par conséquent, afin d'économiser, ils étaient écrits en notation logarithmique.
Aujourd'hui, des programmes de correction orthographique plus modernes et précis basés sur des dictionnaires ont remplacé typo. Cependant, l'outil est encore dans les mémoires — il y a quelques années, un passionné a porté typo sur Go. Le dépôt est encore mis à jour.
Un autre outil pour travailler avec des documents des années 80 est le paquet Writer’s Workbench de Lorinda Cherry et Nina McDonald des Bell Labs. Il comprenait été utilisés par les étudiants de l'Université d'État du Colorado aux États-Unis. Mais au début des années 90, Writer’s Workbench a été oublié, car il n'a pas été inclus dans la Version 7 de Unix. Cependant, cet outil a continué son chemin à travers ses imitateurs — par exemple, Grammatik Il existe également des outils standards dans UNIX facilitant le travail avec des formules. Il y a un préprocesseur de langage pour le formatage des expressions mathématiques
eqn . Il est remarquable en ce sens que pour afficher une formule, le développeur doit simplement la décrire avec des mots et des symboles simples. Les mots-clés permettent de déplacer les signes mathématiques verticalement et horizontalement, de changer leurs tailles et d'autres paramètres. Si l'on transmet à l'utilitaire une chaîne :. Il est remarquable que pour afficher la formule, il suffit au développeur de la décrire avec des mots simples et des symboles. Les mots-clés permettent de décaler les signes mathématiques verticalement et horizontalement, de modifier leurs tailles et d'autres paramètres. Si l'on transmet à l'utilitaire une chaîne :
somme de { k = 1 } à N { k sup 2 }La formule suivante sera générée :

Dans les années 1980-1990, eqn les spécialistes IT à rédiger des manuels pour les logiciels. Mais plus tard, il a été remplacé par le système LaTeX, qui même Habr. Mais eqn est le premier outil de ce type, restant une partie des systèmes d'exploitation de type UNIX.
Travailler avec des fichiers
Dans un fil thématique, les résidents de Hacker News ont noté plusieurs utilitaires peu utilisés pour travailler avec des fichiers. L'un d'eux comm pour leur comparaison. C'est une version simplifiée , conçue pour être utilisée dans des scripts. Son même Richard Stallman avec David MacKenzie.
La sortie du programme se compose de trois colonnes. La première colonne contient des valeurs uniques pour le premier fichier, la deuxième - uniques pour le deuxième fichier. La troisième colonne inclut des valeurs communes. Pour que comm fonctionne correctement, les documents comparés doivent être triés lexicalement. C'est pourquoi l'un des résidents du site travailler avec l'utilitaire de la manière suivante :
comm <(sort fileA.txt) <(sort fileB.txt)Comm est pratique pour vérifier l'orthographe des mots. Il suffit de les comparer avec un document de référence-dictionnaire. Compte tenu des nuances liées à la nécessité de trier les fichiers, il existe , que Stallman et MacKenzie ont écrit leur utilitaire exclusivement pour ce cas d'utilisation.

Photo — — Unsplash
Également participant à la discussion sur HN les fonctionnalités de l'opérateur paste, qui n'étaient pas évidentes pour lui. Il permet d'alterner des flux de données ou de diviser un flux en deux colonnes lors de l'affichage :
$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
Un utilisateur , ce qui montre que souvent pour effectuer ces opérations simples, des solutions sous-optimales sont appliquées : en commençant par , et en finissant par avec et .
Quelles fonctionnalités standard des systèmes d'exploitation de type UNIX ont été une découverte pour vous ?
De quoi écrivons-nous dans notre blog d'entreprise :
![]()
![]()
![]()
![]()
Source : habr.com
