Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti

Pred týždňom Douglas McIlroy, vývojár UNIX pipeline a autor konceptu „komponentne orientovaného programovania“, povedal o zaujímavých a neobvyklých UNIX programoch, ktoré nenabraly široké uplatnenie. Publikácia spustila aktívnu diskusiu na Hacker News. Zhromaždili sme to najzaujímavejšie a budeme radi, ak sa pripojíte k diskusii.

Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti
Foto — Virginia Johnson — Unsplash

Práca s textom

V UNIX-like operačných systémoch je štandardná sada nástrojov na formátovanie textu. Utilita typo umožňovala prehliadať dokument na prítomnosť preklepov a hapax legomena — slová, ktoré sa v materiáli objavia len raz. Zaujímavé je, že na vyhľadávanie preklepov program nepoužíva slovníky. Opiera sa len o informácie v súbore a vykonáva frekvenčnú analýzu na trojgramoch (počet z troch znakov). Pri tom všetky potrebné počítadlá sú uložené v poli 26x26x26. Podľa slov Douglasa McIlroya taký objem pamäte sotva stačil na niekoľko jednobitových počítadiel. Preto ich na úsporu písali v logaritmickej forme.

Dnes typo nahradili modernejšie a presnejšie programy na kontrolu pravopisu založené na slovníkoch. Avšak nástroj sa stále pamätá — pred niekoľkými rokmi nadšenec predstavil realizoval typo v Go. Repozitár sa aktualizuje dodnes.

Ďalším nástrojom na prácu s dokumentmi z 80-tych rokov je balík Writer’s Workbench od Lorindy Cherry a Niny Macdonald z Bell Labs. Jeho súčasťou boli nástroje na určovanie詞,разды, označenie štýlu dokumentu, vyhľadávanie tautológií a zbytočne zložitých viet. Nástroje sa vyvíjali ako podpora pre študentov a jedno časové obdobie ich používali študenti Štátnej univerzity Colorada v USA. Ale na začiatku deväťdesiatych rokov na Writer’s Workbench zabudli, pretože nebol zahrnutý do Version 7 Unix. Aj keď tento nástroj pokračoval, nasledovali ho napodobitelia — napríklad Grammatik pre IBM PC.

V UNIX sú tiež štandardné prostriedky, ktoré zjednodušujú prácu s formulkami. Existuje preprocesor jazyka na formátovanie matematických výrazov. eqnVyniká tým, že na zobrazenie vzorcov stačí, aby ich vývojár opísal jednoduchými slovami a symbolmi. Kľúčové slová umožňujú posúvať matematické znaky vertikálne a horizontálne, meniť ich veľkosti a ďalšie parametre. Ak sa nástroju predloží reťazec:

súčet od { k = 1 } do N { k sup 2 }

Na výstupe bude vygenerovaný nasledujúci vzorec:

Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti

V roku 1980 – 1990 eqn pomáhal IT špecialistom písať manuály k softvéru. Neskôr ho však nahradil systém LaTeX, ktorý používa aj Habr. Ale eqn je prvý nástroj podobného druhu, ktorý zostáva súčasťou UNIX-podobných OS.

Práca so súbormi

V tematickej diskusii si obyvatelia Hacker News všimli niekoľko málo používaných utilít na prácu s súbormi. Jednou z nich kontrola comm na ich porovnanie. Je to zjednodušený ekvivalent diff, zameraný na prácu v skriptoch. Jeho napísal sám Richard Stallman (Richard Stallman) spolu s Davidom MacKenziem (David MacKenzie).

Výstup programu sa skladá z troch stĺpcov. Do prvého stĺpca sa dostanú hodnoty, ktoré sú jedinečné pre prvý súbor, do druhého — jedinečné pre druhý súbor. Tretí stĺpec obsahuje spoločné hodnoty. Pre správne fungovanie komandy comm musia byť porovnávané dokumenty lexikálne usporiadané. Preto jeden z návštevníkov stránky navrhol pracovať s utilitou v nasledujúcej podobe:

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

Comm je vhodné použiť na kontrolu písania slov. Stačí ich porovnávať s referenčným dokumentom — slovníkom. Vzhľadom na detaily spojené s nevyhnutnosťou triedenia súborov existuje názor, že Stallman a MacKenzie napísali svoju utilitu výlučne pre tento prípad použitia.

Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti
Foto — Marnix Hogendoorn — Unsplash

Taktiež účastník diskusie na HN poznamenal možnosti operátora paste, ktoré boli pre neho nejasné. Umožňuje striedať toky dát alebo rozdeliť jeden tok na dva stĺpce pri výstupe:

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

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

Aké štandardné možnosti UNIX-podobných operačných systémov sa stali objavom pre vás?

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

Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti Ako sa vyvíjal systém doménových mien: éra ARPANET
Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti História systému doménových mien: prvé DNS servery
Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti História DNS: kedy sa doménové mená stali platenými
Diskusia: štandardné UNIXové utilitky, ktoré málokto používal a používa v súčasnosti História systému doménových mien: „vojny“ protokolov

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster