Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker

For en uke siden, Douglas McIlroy, utvikler av UNIX-rørledningen og opphavsmann til konseptet "komponentorientert programmering", jeg fortalte om interessante og uvanlige UNIX-programmer som ikke er mye brukt. Publikasjonen lanserte en aktiv diskusjon om Hacker News. Vi har samlet de mest interessante tingene og vil bli glad hvis du blir med i diskusjonen.

Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker
Bilder - virginia johnson — unsplash

Arbeid med tekst

UNIX-lignende operativsystemer har et standardsett med verktøy for formatering av tekst. Nytte typo tillot deg å se gjennom dokumentet for skrivefeil og hapaxes - ord som forekommer i materialet kun én gang. Interessant nok programmet for å finne skrivefeil bruker ikke ordbøker. Den er kun avhengig av informasjonen i filen og utfører frekvensanalyse ved hjelp av trigrammer (en sekvens på tre tegn). I dette tilfellet, alle nødvendige tellere holdes i en 26x26x26 matrise. I følge Douglas McIlroy var denne mengden minne knapt nok til flere enkeltbyte-tellere. Derfor, for å spare penger, ble de skrevet i logaritmisk form.

I dag er skrivefeil erstattet av mer moderne og nøyaktige ordbokbaserte stavekontroller. Imidlertid husker folk fortsatt om instrumentet - for noen år siden en entusiast innsendt implementering av skrivefeil i Go. Depotet blir fortsatt oppdatert.

Et annet verktøy for å jobbe med dokumenter fra 80-tallet er pakken Writer's Workbench fra Lorinda Cherry og Nina McDonald fra Bell Labs. Dens sammensetning inkludert verktøy for å identifisere deler av tale og dokumentstil, søke etter tautologier og unødvendig komplekse setninger. Verktøy ble utviklet som hjelpemidler for studenter, og på en gang de brukt studenter ved Colorado State University i USA. Men på begynnelsen av nittitallet ble Writer's Workbench glemt fordi den ikke var inkludert i versjon 7 Unix. Imidlertid fortsatte dette instrumentet sin vei til imitatorer - f.eks. grammatikk for IBM PC.

UNIX tilbyr også standardverktøy for å gjøre arbeidet med formler enklere. Det er en språkforbehandler for formatering av matematiske uttrykk ligning. Det er bemerkelsesverdig for det faktum at for å vise en formel, trenger utvikleren bare å beskrive den med enkle ord og symboler. Nøkkelord lar deg flytte matematiske symboler vertikalt og horisontalt, endre størrelsen og andre parametere. Hvis du sender linjen til verktøyet:

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

Utgangen vil generere følgende formel:

Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker

På 1980–1990-tallet ekv hjalp IT-spesialister skriver manualer for programvare. Men senere ble det erstattet av LaTeX-systemet, som bruker selv Habr. Men eqn er det første verktøyet i sin klasse som forblir en del av UNIX-lignende operativsystemer.

Arbeid med filer

I en tematisk tråd bemerket innbyggere i Hacker News flere sjelden brukte verktøy for å jobbe med filer. En av dem det var comm å sammenligne dem. Dette er en forenklet analog diff, skreddersydd for å jobbe med manus. Hans jeg skrev Richard Stallman selv sammen med David MacKenzie.

Programutgangen består av tre kolonner. Den første kolonnen inneholder verdier som er unike for den første filen, den andre kolonnen inneholder verdier som er unike for den andre filen. Den tredje kolonnen inkluderer de totale verdiene. For at comm skal fungere riktig, må de sammenlignede dokumentene være leksikalsk sortert. Derfor er en av beboerne på stedet предложил arbeid med verktøyet i følgende form:

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

Comm er praktisk å bruke for å kontrollere stavemåten til ord. Det er nok å sammenligne dem med et referanseordbokdokument. Med tanke på finessene knyttet til behovet for å sortere filer, er det utsikt, at Stallman og MacKenzie skrev verktøyet sitt eksklusivt for denne brukssaken.

Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker
Bilder - Marnix Hogendoorn — unsplash

Også diskusjonsdeltaker på HN han bemerket operatørens evner pasta, som ikke var åpenbare for ham. Den lar deg sammenflette datastrømmer eller dele en strøm i to kolonner når du sender ut:

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

En av brukerne lagt merke til, at ofte ikke de mest optimale løsningene brukes til å utføre disse enkle operasjonene: starter med fmt, ex og slutt mlr с døyt и rs.

Hvilke standardfunksjoner i UNIX-lignende operativsystemer var en oppdagelse for deg?

Hva vi skriver om i bedriftsbloggen vår:

Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker Hvordan domenenavnsystemet utviklet seg: ARPANET-æraen
Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker Historien om domenenavnesystemet: De første DNS-serverne
Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker Historie om DNS: når domenenavn ble betalt
Diskusjon: standard UNIX-verktøy som få mennesker har brukt og fortsatt bruker Historien om domenenavnesystemet: Protocol Wars

Kilde: www.habr.com

Legg til en kommentar