Tydzień temu Douglas McIlroy, twórca potoku UNIX i autor pojęcia 'programowanie oparte na komponentach', 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.
Zdjęcie — 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 — słów występujących w materiale tylko raz. Co ciekawe, program do wyszukiwania błędów ortograficznych 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 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 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 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 Grammatik 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:

W latach 1980-1990 eqn specjalistom IT w pisaniu podręczników do oprogramowania. Ale później został zastąpiony przez system LaTeX, który 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 comm do ich porównania. Jest to uproszczony odpowiednik , dostosowany do pracy w skryptach. Jego 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 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 , że Stallman i MacKenzie napisali swoje narzędzie wyłącznie dla tego zastosowania.

Zdjęcie — Czym tak naprawdę jest problem
Również uczestnik dyskusji na HN 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 , co często prowadzi do stosowania nieoptymalnych rozwiązań w tych prostych operacjach: zaczynając od , i kończąc na z i .
Jakie standardowe możliwości systemów operacyjnych podobnych do UNIX były dla ciebie odkryciem?
O czym piszemy w naszym korporacyjnym blogu:
![]()
![]()
![]()
![]()
Źródło: habr.com
