Acum o săptămână, Douglas McIlroy, dezvoltatorul conductei UNIX și autorul conceptului de „programare orientată pe componente”, a discutat despre programele UNIX interesante și neobișnuite, care nu au avut o utilizare pe scară largă. Publicația a generat o discuție activă pe Hacker News. Am adunat cele mai interesante și ne-ar face plăcere dacă v-ați alătura discuției.
Fotografie — — Unsplash
Lucrul cu textul
În sistemele de operare asemănătoare UNIX există un set standard de instrumente pentru formatarea textului. Utilitarul typo permitea vizualizarea documentelor pentru erori de tipar și — cuvinte care apar doar o dată în material. Ceea ce este interesant este că pentru a găsi erori de tipar, programul se bazează pe dicționare. Se bazează exclusiv pe informațiile din fișier și efectuează o analiză frecvențială pe trigramuri (secvențe de trei caractere). În acest proces, toți contorii necesari într-un tablou de 26x26x26. Conform spuselor lui Douglas McIlroy, această cantitate de memorie era suficientă doar pentru câțiva contori de un byte. Prin urmare, pentru a economisi, aceștia erau scriși în formă logaritmică.
Astăzi, typo a fost înlocuit de programe de verificare a ortografiei mai moderne și precise, bazate pe dicționare. Totuși, instrumentul este încă amintit — acum câțiva ani, un entuziast a realizat o implementare typo în Go. Repozitoriul este încă actualizat.
Un alt instrument pentru lucrul cu documente din anii '80 este pachetul Writer’s Workbench de Lorinda Cherry și Nina McDonald de la Bell Labs. Acesta conținea studenții de la Universitatea de Stat din Colorado, SUA. Însă, la începutul anilor '90, Writer’s Workbench a fost uitat, deoarece nu a fost inclus în Version 7 Unix. Totuși, acest instrument a continuat să inspirе imitatori — de exemplu, Grammatik În UNIX există, de asemenea, instrumente standard care simplifică munca cu formule. Există un preprocesor de limbaj pentru formatarea expresiilor matematice
. Acesta se remarcă prin faptul că pentru a afișa o formulă, dezvoltatorul trebuie doar să o descrie cu cuvinte simple și simboluri. Cuvintele cheie permit mutarea semnelor matematice pe verticală și orizontală, modificarea dimensiunii și altor parametrii. Dacă se transmite utilitarului un șir: eqn. Он примечателен тем, что для отображения формулы разработчику достаточно описать её простыми словами и символами. Ключевые слова позволяют смещать математические знаки по вертикали и горизонтали, менять их размеры и другие параметры. Если передать утилите строку:
suma de { k = 1 } până la N { k sup 2 }Următoarea formulă va fi generată:

În anii 1980-1990 eqn specialiștii IT să scrie manuale pentru software. Însă mai târziu a fost înlocuit de sistemul LaTeX, pe care inclusiv Habr. Dar eqn este primul instrument de acest gen, care rămâne parte a sistemelor de operare de tip UNIX.
Lucrul cu fișierele
Într-un thread tematic, rezidenții Hacker News au menționat câteva utilitare rar folosite pentru gestionarea fișierelor. Una dintre acestea comm pentru compararea lor. Acesta este un echivalent simplificat , destinat utilizării în scripturi. A fost însuși Richard Stallman împreună cu David MacKenzie.
Ieșirea programului constă din trei coloane. În prima coloană se află valorile unice pentru primul fișier, în a doua — cele unice pentru al doilea fișier. A treia coloană include valorile comune. Pentru a funcționa corect, comm documentele comparate trebuie să fie sortate lexicografic. Prin urmare, unul dintre rezidenții platformei să lucreze cu utilitarul în următoarea variantă:
comm <(sort fileA.txt) <(sort fileB.txt)Comm este convenabil de utilizat pentru a verifica scrierea cuvintelor. Este suficient să le compari cu un document-standard de tip dicționar. Având în vedere detaliile legate de necesitatea de a sorta fișierele, există , ceea ce Stallman și MacKenzie au scris utilitarul lor exclusiv pentru acest caz de utilizare.

Fotografie — — Unsplash
De asemenea, participant la discuția de pe HN posibilitățile operatorului paste, care erau neobișnuite pentru el. Acesta permite intercalarea fluxurilor de date sau împărțirea unui flux într-o coloană în timpul ieșirii:
$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
Un utilizator , ceea ce adesea pentru a îndeplini aceste operații simple se folosesc soluții nu cele mai optime: începând cu , și terminând cu de și .
Ce posibilități standard ale sistemelor de operare de tip UNIX au fost o descoperire pentru tine?
Despre ce scriem în blogul nostru corporativ:
![]()
![]()
![]()
![]()
Sursa: habr.com
