Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa

Pred týždňom Douglas McIlroy, vývojár UNIX pipeline a pôvodca konceptu „komponentovo orientovaného programovania“, povedal som o zaujímavých a nezvyčajných UNIXových programoch, ktoré nie sú veľmi používané. Publikácia spustila aktívnu diskusiu na Hacker News. Zozbierali sme to najzaujímavejšie a budeme radi, ak sa zapojíte do diskusie.

Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa
Foto — Virginia Johnsonová — Odstriekať

Práca s textom

Operačné systémy typu UNIX majú štandardnú sadu nástrojov na formátovanie textu. Utility preklep vám umožnilo skontrolovať dokument, či neobsahuje preklepy a hapaxes - slová, ktoré sa v materiáli vyskytujú iba raz. Zaujímavosťou je program na vyhľadávanie preklepov nepoužíva slovníkov. Spolieha sa iba na informácie v súbore a vykonáva frekvenčnú analýzu pomocou trigramov (postupnosť troch znakov). V tomto prípade všetky potrebné pulty sú držané v poli 26x26x26. Podľa Douglasa McIlroya toto množstvo pamäte sotva stačilo na niekoľko jednobajtových počítadiel. Preto, aby sa ušetrili peniaze, boli napísané v logaritmickej forme.

Dnes boli preklepy nahradené modernejšími a presnejšími kontrolami pravopisu založenými na slovníkoch. Ľudia si však na nástroj stále pamätajú – pred pár rokmi nadšenca predložené implementácia preklepu v Go. Úložisko sa stále aktualizuje.

Ďalším nástrojom na prácu s dokumentmi z 80. rokov je balík Spisovateľský pracovný stôl od Lorindy Cherry a Niny McDonald z Bell Labs. Jeho zloženie zahrnuté nástroje na identifikáciu slovných druhov a štýlu dokumentu, vyhľadávanie tautológií a zbytočne zložitých viet. Pomôcky boli vyvinuté ako pomôcky pre študentov a svojho času aj oni použité študentov na Colorado State University v USA. Začiatkom deväťdesiatych rokov sa však na Writer's Workbench zabudlo, pretože nebol zahrnutý vo verzii 7 Unix. Tento nástroj však pokračoval v ceste k imitátorom – napr. gramatika pre IBM PC.

UNIX tiež poskytuje štandardné nástroje na uľahčenie práce so vzorcami. Na formátovanie matematických výrazov existuje jazykový preprocesor ekv. Je pozoruhodné tým, že na zobrazenie vzorca ho vývojár potrebuje iba opísať jednoduchými slovami a symbolmi. Kľúčové slová umožňujú posúvať matematické symboly vertikálne a horizontálne, meniť ich veľkosti a ďalšie parametre. Ak odovzdáte riadok obslužnému programu:

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

Výstup vygeneruje nasledujúci vzorec:

Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa

V 1980. – 1990. rokoch XNUMX. storočia napr pomohol IT špecialisti píšu manuály pre softvér. Neskôr ho však nahradil systém LaTeX, ktorý používa aj Habr. Ale eqn je prvým nástrojom svojej triedy, ktorý zostáva súčasťou operačných systémov podobných UNIX.

Práca so súbormi

V tematickom vlákne obyvatelia Hacker News zaznamenali niekoľko zriedka používaných nástrojov na prácu so súbormi. Jeden z nich bolo comm porovnať ich. Toto je zjednodušený analóg diff, prispôsobené na prácu v skriptoch. Jeho napísal som Sám Richard Stallman spolu s Davidom MacKenziem.

Výstup programu pozostáva z troch stĺpcov. Prvý stĺpec obsahuje hodnoty jedinečné pre prvý súbor, druhý stĺpec obsahuje hodnoty jedinečné pre druhý súbor. Tretí stĺpec obsahuje celkové hodnoty. Aby komunikácia fungovala správne, musia byť porovnávané dokumenty lexikálne zoradené. Preto jeden z obyvateľov lokality ponúkol pracovať s nástrojom v nasledujúcom tvare:

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

Comm je vhodné použiť na kontrolu pravopisu slov. Stačí ich porovnať s dokumentom referenčného slovníka. Vzhľadom na jemnosti spojené s potrebou triediť súbory, existuje vyhliadka, že Stallman a MacKenzie napísali svoj nástroj výhradne pre tento prípad použitia.

Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa
Foto — Marnix Hogendoorn — Odstriekať

Aj účastník diskusie na HN poznamenal schopnosti operátora cestoviny, ktoré mu neboli zrejmé. Umožňuje vám prekladať dátové toky alebo rozdeliť jeden tok do dvoch stĺpcov pri výstupe:

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

Jeden z užívateľov všimol, že na vykonávanie týchto jednoduchých operácií sa často používajú nie práve najoptimálnejšie riešenia: počnúc fmt, ex a končí mlr с j и rs.

Aké štandardné funkcie operačných systémov podobných UNIX boli pre vás objavom?

O čom píšeme v našom firemnom blogu:

Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa Ako sa vyvinul systém doménových mien: éra ARPANET
Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa História systému doménových mien: prvé servery DNS
Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa História DNS: kedy boli názvy domén platené
Diskusia: štandardné UNIXové nástroje, ktoré málokto používal a stále používa História systému doménových mien: Vojny protokolov

Zdroj: hab.com

Pridať komentár