Filosofi FOR UNIX-Utvikling

Jeff Foster
Jeff Foster

Følg

Jul 31, 2019 * 5 min lese

Unix er et fascinerende operativsystem. Opprinnelig tenkt på Bell Labs på slutten Av 1960-tallet, ble det båret ut av frustrasjon MED OS kjent som «Multics» (multiplexed information and computing service). Unix er nå over 50 år gammel (!) Og Linux-implementeringen driver store deler Av Internett .

Så – Hvorfor Er Unix så populært?

I Mitt sinn Kommer Unix suksess fra den filosofiske tilnærmingen til utvikling. UNIX-filosofien er dokumentert Av Doug McIlroy i Bell System Technical Journal i 1978:

1. Gjør hvert program gjøre en ting godt. For å gjøre en ny jobb, bygg på nytt i stedet for å komplisere gamle programmer ved å legge til nye «funksjoner».

2. Forvent utgangen av hvert program for å bli innspill til en annen, som ennå ukjent, program. Ikke rot utgang med overflødig informasjon. Unngå streng kolonneformater eller binære inngangsformater. Ikke insister på interaktive innspill.

3. Design og bygg programvare, selv operativsystemer, for å bli prøvd tidlig, ideelt innen uker. Ikke nøl med å kaste bort de klumpete delene og gjenoppbygge dem.

4. Bruk verktøy i stedet for ufaglært hjelp til å lette en programmeringsoppgave, selv om du må omvei for å bygge verktøyene og forvente å kaste noen av dem ut etter at du er ferdig med å bruke dem.

dette var over 40 år siden, og fanger SOLID (enkelt ansvar prinsipp, åpen / lukket), microservices, funksjonelle rørledninger, agile og ånden Av DevOps!

for langt flere detaljer Om Unix-filosofien, les denne boken (fritt tilgjengelig her, men kjøp en kopi for å støtte forfatteren!).

La oss se på Noen eksempler På Unix-filosofien i aksjon.

Gjør hvert program gjør en ting godt. For å gjøre en ny jobb, bygg på nytt i stedet for å komplisere gamle programmer ved å legge til nye «funksjoner».

cat gjør akkurat en ting. Det setter sammen filer og viser dem på standard utgang. Det er alt den gjør. Det gjør ikke paginering. Det tilbyr ikke søkefunksjonalitet. Det gjør bare akkurat hva det står på tinn og ikke mer.

tr er lik. Det gjør «tekstlig erstatning» ved å lese fra input, gjør noen oversettelser og skrive til utgang.

tr -d aeiouAEIOU < file # Display file without vowels
tr eao 340 < file # Partially leet speak file

true og false er kanskje de beste eksemplene på å gjøre en ting bra. true gjør ingenting, vellykket! false gjør ingenting.

false && echo Hi # does nothing
true && echi Hi # Prints Hi

Komposisjon

«Forvent at utgangen av hvert program blir inngangen til en annen»

I Unix har de fleste operasjoner muligheten til å lese og skrive til standard utdata i et godt forstått tekstformat. Med noen få kommandoer, for eksempel |, > og < kan vi mate utdataene fra ett program til et annet. La oss se på noen eksempler:

i dette eksemplet bruker vi cat for å skrive ut innholdet i en fil og mate utdataene til wc hvem kan telle antall linjer i en fil.

cat foo.txt | wc -l

i dette eksemplet bruker vi history for å finne våre mest brukte kommandoer ved å kombinere den med cut, sort, uniq og head.

history | cut -f5 -d" " | sort -rn | uniq -c | sort -rn | head

xargs er den ultimate swiss-army kniv slik at du kan bygge opp kommandoer fra standard utgang. La oss bruke den til å slette alle».tmp » filer i gjeldende katalog etter bruk find for å finne dem.

find -type f *.tmp | xargs rm

Alt er en fil

I UNIX er alt en fil (eller mer presist, alt er en strøm av byte). Dette betyr at De samme Apiene / kommandoene kan brukes til å lese EN CD-ROM-stasjon, skrive en nettverkskontakt eller finne UT CPU-info.

for eksempel er hele /proc filsystemet på Linux egentlig ikke filer-det er en dynamisk visning av informasjon som er eksponert som en haug med filbeskrivelser.

noen eksempler:

cat /proc/cpuinfo # Displays your CPU info exposed as a filefoo > /dev/null # Redirect output into a file called
# null (which discards everything)od -vAn -N1 -td1 < /dev/urandom # Display a random 1 byte number
# (via https://unix.stackexchange.com/a/268960

Automatisering

Lenge før» automatisere-alt-ting», Var Unix der, feil, automatisere alle tingene

Obligatorisk automatisere alle ting bilde

cron (mer her) har automatisert alle tingene de siste 40 + årene. Cron jobber er planlagte skript som kan kjøre på faste tider eller faste intervaller.

hver Bruker på Et Unix-system har et sett med planlagte oppgaver, synlig ved hjelp av kommandoen crontab. Filen er i et veldig enkelt format som gir dato og klokkeslett for skriptet som kjører.

kommandoen at er et vennligere alternativ, her er et eksempel på å skyte en kommando på 1145 31.Januar (herfra).

echo "cc -o foo foo.c" | at 1145 jan 31

Puppet, Chef, CFEngine, Ansible — Alle Disse DevOps verktøy og født og oppvokst På Unix-baserte systemer.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Previous post Hvordan Vokse Forskjellige Varianter Av Begonier
Next post Vitamin B-100 Complex oral