Discussion: utilitaires UNIX standard que peu ont utilisés et utilisent actuellement

Il y a une semaine, Douglas McIlroy, développeur du pipeline UNIX et auteur du concept de «programmation orientée composants», a parlé de programmes UNIX intéressants et inhabituels qui n'étaient pas largement utilisés. La publication a lancé une discussion active sur Hacker News. Nous avons rassemblé les plus intéressants et serons heureux si vous vous joignez à la discussion.


Photos - Virginia Johnson - Unsplash

Travailler avec du texte


Sur les systèmes d'exploitation de type UNIX, il existe un ensemble standard d'outils de mise en forme du texte. L'utilitaire de faute de frappe vous a permis d'afficher un document pour les fautes de frappe et les hapaks - mots qui n'apparaissent dans le document qu'une seule fois. Fait intéressant, le programme n'utilise pas de dictionnaires pour rechercher des fautes de frappe . Il s'appuie uniquement sur les informations du fichier et effectue une analyse de fréquence sur les trigrammes (une séquence de trois caractères). Dans ce cas, tous les compteurs nécessaires sont stockés dans un tableau 26x26x26. Selon Douglas McIlroy, cette quantité de mémoire était à peine suffisante pour plusieurs compteurs à un octet. Par conséquent, afin de les sauver, ils ont été écrits sous une forme logarithmique.

Aujourd'hui, la faute de frappe a été remplacée par des correcteurs orthographiques basés sur un dictionnaire plus modernes et plus précis. Cependant, l'outil est toujours dans les mémoires - il y a quelques années, un passionné a introduit l'implémentation de typo sur Go. Le référentiel est toujours en cours de mise à jour.

Un autre outil de documentation des années 80 est le Writer's Workbench de Lorinda Cherry et Nina McDonald de Bell Labs. Il comprenait des outils pour déterminer des parties du style de discours et de document, rechercher des tautologies et des phrases trop complexes. Les utilitaires ont été développés pour aider les étudiants, et à un moment donné, ils ont été utilisésétudiants de la Colorado State University aux États-Unis. Mais au début des années 90, le Writer's Workbench avait été oublié car il n'était pas inclus dans la version 7 Unix. Cependant, cet outil a poursuivi le chemin des imitateurs - par exemple, Grammatik pour IBM PC.

UNIX dispose également d'outils standard pour simplifier le travail avec les formules. Il existe un préprocesseur de langage pour le traitement des expressions mathématiques eqn . Il est à noter que pour afficher une formule, il suffit au développeur de la décrire en mots et symboles simples. Les mots-clés vous permettent de déplacer les signes mathématiques verticalement et horizontalement, de modifier leurs tailles et d'autres paramètres. Si vous passez la ligne à l'utilitaire:

sum from { k = 1 } to N { k sup 2 }

La formule suivante sera générée à la sortie:

k=1Nk2


Dans les années 80 et 90, eqn a aidé des professionnels de l'informatique à rédiger des manuels de logiciels. Mais plus tard, il a été remplacé par le système LaTeX, que même Habr utilise . Mais eqn est le premier outil de cette classe, faisant toujours partie d'un système d'exploitation de type UNIX.

Travailler avec des fichiers


Dans le fil thématique, les résidents de Hacker News ont noté plusieurs utilitaires rarement utilisés pour travailler avec des fichiers. L'un d'eux a été comm pour les comparer. Il s'agit d'un analogue simplifié de diff , affiné pour travailler dans des scripts. Il a été écrit par Richard Stallman lui-même avec David MacKenzie.

La sortie du programme se compose de trois colonnes. La première colonne contient des valeurs qui sont uniques au premier fichier, la seconde - unique au deuxième fichier. La troisième colonne contient des valeurs générales. Pour que comm fonctionne correctement, les documents à comparer doivent être triés lexicalement. Par conséquent, l'un des résidents du site a suggéré de travailler avec l'utilitaire sous la forme suivante:

comm <(sort fileA.txt) <(sort fileB.txt)

Comm est utile pour vérifier l'orthographe des mots. Il suffit de les comparer avec le document du dictionnaire de référence. Compte tenu des subtilités associées à la nécessité de trier les fichiers, on pense que Stallman et Mackenzie ont écrit leur utilité exclusivement pour ce cas d'utilisation.


Photo - Marnix Hogendoorn - Unsplash

De plus, un participant à la discussion sur HN a noté les capacités de l'opérateur de pâte , qui n'étaient pas évidentes pour lui. Il vous permet d'alterner les flux de données ou de diviser un flux en deux colonnes pendant la sortie:

$ paste <( echo -e 'foo\nbar' ) <( echo -e 'baz\nqux' )
foo     baz
bar     qux
$ echo -e 'foo\nbar\nbaz\nqux' | paste - -
foo     bar
baz     qux

Un utilisateur a noté que , souvent , ce ne sont pas les solutions les plus optimales à utiliser: en commençant par fmt , ex et se terminant par MLR avec iota et rs .

Quelles fonctionnalités standard des systèmes d'exploitation de type UNIX avez-vous découvertes?

Ce que nous écrivons dans notre blog d'entreprise:

Comment le système de noms de domaine a été développé: ARPANET Era
Historique du système de noms de domaine: Premiers serveurs
DNS Historique DNS: Quand les noms de domaine sont devenus payants
Historique du système de noms de domaine: Protocoles «War»

All Articles