Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta

Tydzień temu Douglas McIlroy, twórca potoku UNIX i twórca koncepcji „programowania zorientowanego komponentowo”, powiedziano o ciekawych i nietypowych programach UNIX, które nie są powszechnie używane. Publikacja wywołała aktywną dyskusję w serwisie Hacker News. Zebraliśmy najciekawsze rzeczy i będzie nam miło, jeśli dołączysz do dyskusji.

Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta
Фото - Wirginia Johnson — Rozpryskiwanie

Pracuj z tekstem

Systemy operacyjne typu UNIX mają standardowy zestaw narzędzi do formatowania tekstu. Pożytek literówka umożliwiło Ci przejrzenie dokumentu pod kątem literówek i hapaxy - słowa, które pojawiają się w materiale tylko raz. Co ciekawe, program do wyszukiwania literówek nie używa słowniki. Opiera się wyłącznie na informacjach zawartych w pliku i przeprowadza analizę częstotliwości za pomocą trygramów (ciągu trzech znaków). W tym przypadku wszystkie niezbędne liczniki są trzymane w układzie 26x26x26. Według Douglasa McIlroya ta ilość pamięci ledwo wystarczała dla kilku jednobajtowych liczników. Dlatego, aby zaoszczędzić pieniądze, zapisano je w formie logarytmicznej.

Obecnie literówki zostały zastąpione nowocześniejszymi i dokładniejszymi modułami sprawdzania pisowni opartymi na słownikach. Jednak ludzie wciąż pamiętają o instrumencie - kilka lat temu pasjonat wprowadzono implementacja literówki w Go. Repozytorium jest wciąż aktualizowane.

Kolejnym narzędziem do pracy z dokumentami z lat 80-tych jest pakiet Warsztat pisarza od Lorindy Cherry i Niny McDonald z Bell Labs. Jego skład dołączony narzędzia do identyfikacji części mowy i stylu dokumentu, wyszukiwania tautologii i niepotrzebnie skomplikowanych zdań. Narzędzia zostały opracowane jako pomoce dla studentów, a kiedyś tak używany studenci Colorado State University w USA. Jednak na początku lat dziewięćdziesiątych o programie Writer's Workbench zapomniano, ponieważ nie został on zawarty w wersji 7 Uniksa. Instrument ten jednak kontynuował swoją drogę do naśladowców – np. gramatyka dla IBM PC.

UNIX udostępnia także standardowe narzędzia ułatwiające pracę z formułami. Istnieje preprocesor języka do formatowania wyrażeń matematycznych równo. Godne uwagi jest to, że aby wyświetlić formułę, programista musi jedynie opisać ją prostymi słowami i symbolami. Słowa kluczowe umożliwiają przesuwanie symboli matematycznych w pionie i poziomie, zmianę ich rozmiarów i innych parametrów. Jeśli przekażesz linię do narzędzia:

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

Dane wyjściowe wygenerują następującą formułę:

Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta

W latach 1980. – 1990. XX w pomógł Specjaliści IT piszą podręczniki do oprogramowania. Ale później został zastąpiony przez system LaTeX, który używa nawet Habr. Jednak eqn jest pierwszym narzędziem w swojej klasie, które pozostaje częścią systemów operacyjnych typu UNIX.

Praca z plikami

W wątku tematycznym mieszkańcy Hacker News zwrócili uwagę na kilka rzadko używanych narzędzi do pracy z plikami. Jeden z nich było comm żeby je porównać. To uproszczony analog diff, przystosowane do pracy w skryptach. Jego napisał Sam Richard Stallman wraz z Davidem MacKenzie.

Wynik programu składa się z trzech kolumn. Pierwsza kolumna zawiera wartości unikalne dla pierwszego pliku, druga kolumna zawiera wartości unikalne dla drugiego pliku. Trzecia kolumna zawiera wartości całkowite. Aby komunikacja działała poprawnie, porównywane dokumenty muszą być posortowane leksykalnie. Dlatego jeden z mieszkańców witryny sugerowane pracuj z narzędziem w następującej formie:

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

Comm jest wygodny w użyciu do sprawdzania pisowni słów. Wystarczy porównać je z dokumentem słownika referencyjnego. Biorąc pod uwagę subtelności związane z koniecznością sortowania plików, istnieje opinia, że Stallman i MacKenzie napisali swoje narzędzie wyłącznie dla tego przypadku użycia.

Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta
Фото - Marnixa Hogendoorna — Rozpryskiwanie

Również uczestnik dyskusji na temat HN zanotowano możliwości operatora makaronktóre nie były dla niego oczywiste. Umożliwia przeplatanie strumieni danych lub dzielenie jednego strumienia na dwie kolumny podczas wyprowadzania:

$ 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, że często do wykonania tych prostych operacji stosuje się nie najbardziej optymalne rozwiązania: zaczynając od fmt, ex i zakończenie mlr с odrobina и rs.

Jakie standardowe funkcje systemów operacyjnych typu UNIX były dla Ciebie odkryciem?

O czym piszemy na naszym firmowym blogu:

Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta Jak ewoluował system nazw domen: era ARPANET
Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta Historia systemu nazw domen: pierwsze serwery DNS
Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta Historia DNS: kiedy nazwy domen stały się płatne
Dyskusja: standardowe narzędzia UNIX-owe, z których niewiele osób korzystało i nadal korzysta Historia systemu nazw domen: wojny protokołów

Źródło: www.habr.com

Dodaj komentarz