Filozofie UNIXU Rozvoj

Jeff Foster
Jeff Foster

Následovat

Jul 31, 2019 · 5 min číst

Unix je fascinující operační systém. Původně koncipován v Bell Labs v pozdní 1960, to bylo mít z frustrace s OS známý jako „Multics“ (multiplexed information and computing service). Unix je nyní starší 50 let (!) a implementace Linuxu pohání obrovské množství internetu.

takže-proč je Unix tak populární?

podle mého názoru úspěch Unixu vychází z filozofického přístupu k vývoji. Filosofii Unixu dokumentuje Doug McIlroy v odborném časopise Bell System V 1978:

1. Aby každý program udělal jednu věc dobře. Chcete-li udělat novou práci, stavět znovu, spíše než komplikovat staré programy přidáním nových „funkcí“.

2. Očekávejte, že výstup každého programu se stane vstupem do jiného, dosud neznámého programu. Nenechte nepořádek výstup s cizími informacemi. Vyhněte se striktně sloupcovým nebo binárním vstupním formátům. Netrvejte na interaktivním vstupu.

3. Navrhujte a vytvářejte software, dokonce i operační systémy, které mají být vyzkoušeny brzy, ideálně během několika týdnů. Neváhejte zahodit nemotorné části a znovu je postavit.

4. Použijte nástroje přednostně nekvalifikované pomoci odlehčit programovací úkol, i když budete muset Objížďka stavět nástroje a očekávat, že vyhodit některé z nich po dokončení jejich použití.

To bylo před více než 40 lety, a zachycuje PEVNÉ (dělená odpovědnost principu otevřeno/zavřeno), microservices, funkční potrubí, agilní a ducha DevOps!

pro více podrobností o filozofii Unixu si přečtěte tuto knihu (volně k dispozici zde, ale kupte si kopii na podporu autora!).

podívejme se na některé příklady filozofie Unixu v akci.

aby každý program udělal jednu věc dobře. Chcete-li udělat novou práci, stavět znovu, spíše než komplikovat staré programy přidáním nových „funkcí“.

cat dělá přesně jednu věc. Spojuje soubory a zobrazuje je na standardním výstupu. To je vše, co dělá. Nedělá to stránkování. Nenabízí funkce vyhledávání. Prostě dělá přesně to, co říká na plechovce a nic víc.

tr je podobný. Dělá „textovou náhradu“ čtením ze vstupu, provedením jakýchkoli překladů a zápisem na výstup.

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

true a false jsou možná nejlepší příklady toho, jak dělat jednu věc dobře. true nedělá nic, úspěšně! false nedělá nic.

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

Složení

„Očekávat, že výstup každý program, aby se stal vstup do jiného“

V Unix, většina operací mají schopnost číst a psát na standardní výstup v dobře pochopil, textové podobě. Pomocí několika příkazů, například |, > a <, můžeme přenášet výstup jednoho programu do druhého. Pojďme se podívat na některé příklady:

V tomto příkladu budeme používat cat na výstup obsah souboru a krmit výstup do wc kdo může spočítat počet řádků v souboru.

cat foo.txt | wc -l

v tomto příkladu používáme history k nalezení našich nejčastěji používaných příkazů kombinací s cut, sort, uniq a head.

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

xargs je konečný švýcarský armádní nůž, který vám umožní vytvářet příkazy ze standardního výstupu. Použijme to k odstranění všech „.tmp “ soubory v aktuálním adresáři po použití find k jejich vyhledání.

find -type f *.tmp | xargs rm

vše je soubor

v Unixu je vše soubor (nebo přesněji, vše je proud bajtů). To znamená, že stejné API / příkazy lze použít pro čtení jednotky CD-ROM, zápis síťové zásuvky nebo zjištění informací o CPU.

například celý souborový systém /proc v systému Linux není ve skutečnosti soubory-Je to dynamické zobrazení informací, které jsou vystaveny jako banda deskriptorů souborů.

některé příklady:

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

Automatizace

Dlouho předtím, než „automatizaci-všechny-věci“, Unix tam byl, errr, že automatizuje všechny věci

Povinné automatizovat všechny věci, obraz

cron (více tady) byl automatizaci všech věcí, které za posledních 40+ let. Cron úlohy jsou naplánované skripty, které lze spustit v pevně stanovených časech nebo pevných intervalech.

každý uživatel v systému Unix má sadu naplánovaných úloh, viditelné pomocí příkazu crontab. Soubor je ve velmi jednoduchém formátu, který udává datum a čas spuštěného skriptu.

příkaz at je přátelštější alternativou, zde je příklad vypálení příkazu na 1145 31. Ledna (odtud).

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

loutka, kuchař, CFEngine, Ansible-všechny tyto nástroje DevOps a narozené a chované na systémech založených na Unixu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post Jak Pěstovat Různé Odrůdy Begónie
Next post Vitamín B-100 Komplexní perorální