Vor einer Woche sprach Douglas McIlroy, Entwickler des UNIX-Pipelines und Urheber des Konzepts "komponentenorientierte Programmierung", über interessante und ungewöhnliche UNIX-Programme, die keine breite Anwendung gefunden haben. Die Veröffentlichung löste eine lebhafte Diskussion auf Hacker News aus. Wir haben die interessantesten Punkte gesammelt und würden uns freuen, wenn Sie an der Diskussion teilnehmen.
Foto – — Unsplash
Arbeiten mit Text
In UNIX-ähnlichen Betriebssystemen gibt es eine Standardausstattung an Werkzeugen zur Textformatierung. Das Utility typo ermöglichte es, Dokumente auf Tippfehler zu überprüfen und - Wörter, die im Material nur einmal vorkommen. Interessanterweise verwendet das Programm zur Fehlersuche Wörterbücher. Es stützt sich ausschließlich auf Informationen aus der Datei und führt eine Frequenzanalyse auf Basis von Trigrammen (drei aufeinanderfolgende Zeichen) durch. Dabei werden alle notwendigen Zähler in einem Array von 26x26x26. Laut Douglas McIlroy reichte dieser Speicher kaum für mehrere Ein-Byte-Zähler aus. Daher wurden sie zur Einsparung in logarithmischer Form geschrieben.
Heute wurden modernere und genauere Rechtschreibprüfungsprogramme auf Basis von Wörterbüchern ersetzt. Dennoch wird das Tool noch immer in Erinnerung gehalten – vor einigen Jahren hatten Enthusiasten die Implementierung von typo in Go. Das Repository wird weiterhin aktualisiert.
Ein weiteres Tool zur Dokumentenbearbeitung aus den 80er-Jahren ist das Paket Writer’s Workbench von Lorinda Cherry und Nina McDonald von Bell Labs. Es beinhaltete benutzten die Studierenden der Colorado State University in den USA. Doch zu Beginn der 90er Jahre geriet Writer’s Workbench in Vergessenheit, da es nicht in Version 7 von Unix integriert wurde. Dennoch setzte dieses Tool seinen Weg durch Nachahmer fort – wie zum Beispiel Studierende der Colorado State University in den USA. Doch zu Beginn der neunziger Jahre geriet Writer’s Workbench in Vergessenheit, da es nicht in Version 7 Unix aufgenommen wurde. Dennoch setzte dieses Werkzeug seinen Weg durch Nachahmer fort – zum Beispiel, für IBM PC.
In UNIX gibt es auch Standardmittel, die die Arbeit mit Formeln erleichtern. Es gibt einen Preprozessor für die Gestaltung mathematischer Ausdrücke. eqn. Er zeichnet sich dadurch aus, dass der Entwickler zur Darstellung der Formel nur einfache Worte und Symbole verwenden muss. Die Schlüsselwörter ermöglichen das Verschieben mathematischer Zeichen sowohl vertikal als auch horizontal, das Ändern ihrer Größe und anderer Parameter. Wenn man der Utility eine Zeile übergibt:
sum from { k = 1 } to N { k sup 2 }Wird die folgende Formel generiert:

In den 1980er und 1990er Jahren half eqn sogar Habr verwendet. Aber eqn ist das erste Tool seiner Art, das Teil der UNIX-ähnlichen Betriebssysteme bleibt. In einem thematischen Thread bemerkten die Mitglieder von Hacker News mehrere wenig genutzte Utilities zur Arbeit mit Dateien. Eine davon
Arbeiten mit Dateien
war zum Vergleichen dieser. Es ist eine vereinfachte Version, die für den Einsatz in Skripten optimiert ist. Es wurde , optimiert für den Einsatz in Skripten. Sein von Richard Stallman zusammen mit David MacKenzie entwickelt.
Die Ausgabe des Programms besteht aus drei Spalten. In die erste Spalte gelangen die Werte, die einzigartig für die erste Datei sind, in die zweite Spalte die Werte, die einzigartig für die zweite Datei sind. Die dritte Spalte umfasst die gemeinsamen Werte. Für die korrekte Funktion von comm müssen die zu vergleichenden Dateien lexikalisch sortiert sein. Daher ist einer der Nutzer auf der Plattform die Nutzung des Dienstprogramms in folgender Form zu zeigen:
comm <(sort fileA.txt) <(sort fileB.txt)Comm eignet sich gut zur Überprüfung der Schreibweise von Wörtern. Es reicht aus, sie mit einem Referenzdokument, wie z. B. einem Wörterbuch, zu vergleichen. Unter Berücksichtigung der Notwendigkeit, die Dateien zu sortieren, gibt es , dass Stallman und McKenzie ihr Dienstprogramm ausschließlich für diesen Anwendungsfall geschrieben haben.

Foto – — Unsplash
war ebenfalls Teilnehmer der Diskussion auf HN Funktionen des Dienstanbieters paste, die ihm nicht offensichtlich waren. Es ermöglicht, Datenströme zu alternieren oder einen Strom in zwei Spalten bei der Ausgabe zu teilen:
$ paste <(echo -e 'foonbar') <(echo -e 'baznqux')
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
Einer der Benutzer , weshalb oft für diese einfachen Operationen nicht die optimalsten Lösungen verwendet werden: angefangen bei , bis hin zu mit und .
Welche Standardfunktionen von UNIX-ähnlichen Betriebssystemen haben Sie überrascht?
In unserem Unternehmensblog schreiben wir über:
![]()
![]()
![]()
![]()
Quelle: habr.com
