För en vecka sedan diskuterade Douglas McIlroy, utvecklaren av UNIX-röret och skaparen av begreppet "komponentbaserad programmering", intressanta och ovanliga UNIX-program som inte fÄtt stort genomslag. Publikationen satte igÄng en aktiv diskussion pÄ Hacker News. Vi har samlat det mest intressanta och vi ser fram emot att du ansluter dig till diskussionen.
Foto â â Unsplash
Arbeta med text
I UNIX-liknande operativsystem finns det en standarduppsĂ€ttning verktyg för textformatering. Verktyget typo gjorde det möjligt att granska dokument för stavfel och â ord som förekommer endast en gĂ„ng i materialet. Intressant nog anvĂ€nder programmet ordlistor. Det Ă€r helt och hĂ„llet baserat pĂ„ informationen i filen och utför frekvensanalys av trigram (en sekvens av tre tecken). Alla nödvĂ€ndiga rĂ€knare i en 26x26x26-matris. Enligt Douglas McIlroy rĂ€ckte det hĂ€r minnet knappt till för nĂ„gra enbyte rĂ€knare. För att spara minne skrev de dem i logaritmisk form.
Idag har typo ersatts av mer moderna och exakta stavningskontrollprogram baserade pĂ„ ordlistor. Men verktyget Ă€r fortfarande ihĂ„gkommet â för nĂ„gra Ă„r sedan skapade en entusiast en implementation av typo i Go. Repositoriet uppdateras fortfarande.
Ett annat verktyg för dokumentarbete frĂ„n 80-talet Ă€r paketet Writerâs Workbench frĂ„n Lorinda Cherry och Nina McDonald vid Bell Labs. Det innehöll studenter vid Colorado State University i USA. Men vid tidpunkten för början av 90-talet hade Writerâs Workbench glömts bort, eftersom det inte ingick i Version 7 Unix. Men det hĂ€r verktyget fortsatte sin vĂ€g med efterliknare â till exempel, Grammatik Det finns Ă€ven standardverktyg i UNIX som förenklar arbetet med formler. Det finns en preprocessorer för att formatera matematiska uttryck
eqn eqn. Den Àr anmÀrkningsvÀrd eftersom det för att visa formeln rÀcker med att utvecklaren beskriver den med enkla ord och symboler. Nyckelorden gör det möjligt att justera matematiska tecken vertikalt och horisontellt, Àndra deras storlek och andra parametrar. Om man skickar en strÀng till verktyget:
sum from { k = 1 } to N { k sup 2 }Utdata kommer att generera följande formel:

Under 1980-1990-talet eqn IT-specialister att skriva manualer för mjukvaran. Men senare ersattes den av systemet LaTeX, vilket Àven Habr. Men eqn Àr det första verktyget av detta slag som fortfarande Àr en del av UNIX-liknande OS.
Arbete med filer
I det tematiska trÄden noterade medlemmarna pÄ Hacker News flera sÀllan anvÀnda verktyg för att arbeta med filer. Ett av dem comm för deras jÀmförelse. Det Àr en förenklad motsvarighet , anpassad för att fungera i skript. Den sjÀlv Richard Stallman tillsammans med David MacKenzie.
Programmets utdata bestĂ„r av tre kolumner. I den första kolumnen hamnar vĂ€rden som Ă€r unika för den första filen, i den andra â unika för den andra filen. Tredje kolumnen innehĂ„ller gemensamma vĂ€rden. För att comm ska fungera korrekt mĂ„ste de jĂ€mförda dokumenten vara lexikaliskt sorterade. DĂ€rför föreslog en av medlemmarna pĂ„ plattformen att arbeta med verktyget i följande form:
comm <(sort fileA.txt) <(sort fileB.txt)Comm Ă€r praktiskt att anvĂ€nda för att kontrollera stavningen av ord. Det rĂ€cker att jĂ€mföra dem med ett referensdokument â en ordlista. Med tanke pĂ„ detaljerna kring behovet av att sortera filer finns det , att Stallman och MacKenzie skrev sitt verktyg uteslutande för detta anvĂ€ndningsfall.

Foto â â Unsplash
Ăven deltagare i diskussionen pĂ„ HN möjligheterna med operatorn paste, som var oklara för honom. Den gör det möjligt att vĂ€xla mellan datastreams eller dela en stream i tvĂ„ kolumner vid utdata:
$ paste <( echo -e 'foonbar' ) <( echo -e 'baznqux' )
foo baz
bar qux
$ echo -e 'foonbarnbaznqux' | paste - -
foo bar
baz qux
En av anvÀndarna , att man ofta anvÀnder inte helt optimala lösningar för att utföra dessa enkla operationer: allt frÄn , och slutar med med och .
Vilka standardmöjligheter i UNIX-liknande operativsystem har varit en ögonöppnare för dig?
Vad skriver vi om i vÄr företagsblogg:
![]()
![]()
![]()
![]()
KĂ€lla: habr.com
