Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz

Tydzień temu Douglas McIlroy, twórca potoku UNIX i autor pojęcia 'programowanie oparte na komponentach', opowiedział podzielił się swoimi przemyśleniami na temat interesujących i nietypowych programów UNIX, które nie zdobyły szerokiego uznania. Publikacja zainicjowała ożywioną dyskusję na Hacker News. Zebraliśmy najciekawsze wątki i cieszymy się, jeśli dołączysz do dyskusji.

Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz
Zdjęcie — Virginia Johnson Czym tak naprawdę jest problem

Praca z tekstem

W systemach operacyjnych podobnych do UNIX istnieje standardowy zestaw narzędzi do formatowania tekstu. Narzędzie typo umożliwiało przeglądanie dokumentu pod kątem błędów typograficznych i hapaksów — słów występujących w materiale tylko raz. Co ciekawe, program do wyszukiwania błędów ortograficznych nie korzysta z słowników. Opiera się wyłącznie na informacjach w pliku i przeprowadza analizę częstotliwościową na podstawie trigramów (ciąg trzech znaków). Wszystkie niezbędne liczniki są przechowywane w tablicy 26x26x26. Według słów Douglasa McIlroya, taka ilość pamięci ledwo wystarczała na kilka jednobajtowych liczników. Dlatego z oszczędności pisano je w postaci logarytmicznej.

Dziś typo zostało zastąpione przez nowocześniejsze i dokładniejsze programy sprawdzania pisowni oparte na słownikach. Jednak narzędzie wciąż jest pamiętane — kilka lat temu zapalony programista przedstawił zrealizował typo w języku Go. Repozytorium jest aktualizowane do dziś.

Kolejnym narzędziem do pracy z dokumentami z lat 80. jest pakiet Writer’s Workbench od Lorindy Cherry i Niny McDonald z Bell Labs. W jego skład wchodziły narzędzia do określania części mowy i stylu dokumentu, wyszukiwania tautologii i zbyt skomplikowanych zdań. Używano ich jako wsparcia dla studentów, a przez pewien czas korzystali z nich uczniowie Uniwersytetu Stanowego Kolorado w USA. Jednak na początku lat 90. o Writer’s Workbench zapomniano, ponieważ nie został włączony do Version 7 Unix. Tym niemniej to narzędzie kontynuowało swoją drogę poprzez naśladowców — na przykład Grammatik dla IBM PC. W UNIX istnieją także standardowe narzędzia, które ułatwiają pracę z formułami. Znajduje się tam preprocesor języka do formatowania wyrażeń matematycznych.

W systemie UNIX istnieją również standardowe narzędzia, które ułatwiają pracę z formułami. Jest to preprocesor językowy do formatowania wyrażeń matematycznych. eqnJest znany tym, że do wyświetlenia wzoru programista musi opisać go prostymi słowami i symbolami. Słowa kluczowe pozwalają na przesuwanie znaków matematycznych w pionie i poziomie, zmianę ich rozmiarów oraz innych parametrów. Jeśli przekażesz narzędziu ciąg:

suma od { k = 1 } do N { k sup 2 }

Na wyjściu zostanie wygenerowany następujący wzór:

Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz

W latach 1980-1990 eqn pomagał specjalistom IT w pisaniu podręczników do oprogramowania. Ale później został zastąpiony przez system LaTeX, który używa nawet Habr. Jednak eqn to pierwsze narzędzie tego typu, które pozostaje częścią systemów operacyjnych podobnych do UNIX.

Praca z plikami

W tematycznym wątku członkowie Hacker News wspomnieli kilka rzadko używanych narzędzi do pracy z plikami. Jednym z nich był comm do ich porównania. Jest to uproszczony odpowiednik diff, dostosowany do pracy w skryptach. Jego napisał sam Richard Stallman (Richard Stallman) wraz z Davidem MacKenzie (David MacKenzie).

Wyjście programu składa się z trzech kolumn. W pierwszej kolumnie znajdują się wartości unikalne dla pierwszego pliku, w drugiej — unikalne dla drugiego pliku. Trzecia kolumna zawiera wartości wspólne. Aby comm działał poprawnie, porównywane dokumenty muszą być leksykalnie posortowane. Dlatego jeden z członków serwisu zaproponował pracować z narzędziem w następujący sposób:

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

Comm można wygodnie używać do sprawdzania pisowni słów. Wystarczy porównywać je z dokumentem wzorcowym-słownikiem. Biorąc pod uwagę trudności związane z koniecznością sortowania plików, istnieje opinia, że Stallman i MacKenzie napisali swoje narzędzie wyłącznie dla tego zastosowania.

Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz
Zdjęcie — Marnix Hogendoorn Czym tak naprawdę jest problem

Również uczestnik dyskusji na HN zauważył możliwości operatora paste, które były dla niego nieoczywiste. Pozwala on na przeplatanie strumieni danych lub podział jednego strumienia na dwie kolumny przy wyjściu:

$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo     baz
bar     qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo     bar
baz     qux

Jeden z użytkowników zauważyłem, co często prowadzi do stosowania nieoptymalnych rozwiązań w tych prostych operacjach: zaczynając od fmt, ex i kończąc na mlr z jot i rs.

Jakie standardowe możliwości systemów operacyjnych podobnych do UNIX były dla ciebie odkryciem?

O czym piszemy w naszym korporacyjnym blogu:

Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz Jak rozwijał się system nazw domen: era ARPANET
Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz Historia systemu nazw domen: pierwsze serwery DNS
Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz Historia DNS: kiedy nazwy domen stały się płatne
Dyskusja: standardowe narzędzia UNIX, które mało kto używał i używa teraz Historia systemu nazw domen: „wojny” protokołów

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster