Ce este unix-way și ce mănâncă

Ce este unix-way și ce mănâncă


Toată lumea ar trebui să știe asta :) Voi încerca cu 2 cuvinte pe degete să explic cu un galop în Europa cum Linux diferă de Windows în termeni de organizare de software. În Windows, ați folosit probabil pentru a pune monștrii de program, făcând totul odată. Este necesar să înregistrați un disc - puneți Nero, care scrie și convertește muzică, iar cele mai recente versiuni sunt, de asemenea, arhivate și împărțite în mai multe discuri. Și asta este peste tot. Ca rezultat, avem programe care se apucă imediat pentru tot, și în cele din urmă nu face nimic. Eu, desigur, exagerez, dar la fel. Aceasta este calea Windows. Dar când trebuie să facem ceva bine, am pus un utilitar mic care își face treaba perfect. Deci, Linux constă în întregime din astfel de utilități mici, făcând un singur lucru, dar se descurcă bine. Aceste utilități știu, de asemenea, cum să "comunice" și să transfere date între ele prin intermediul standardelor stdin și stdout (bine, unele au încă timp să scrie în stderr :). Aceasta este calea Unix.

Ce este unix-way și ce mănâncă








Iată același exemplu cu arhivarea pe disc. În Windows: punem Nero sau ceva similar și îndeplinim toate sarcinile din acesta. Dacă ceva nu este potrivit pentru dvs., căutați o alternativă. În Linux, vom combina mai întâi toate fișierele într-un fișier (tar va programa), vom arhiva (folosind gzip, bzip2, Z7 - cineva care prefera), apoi partajați fișierul în mai multe părți (de program split), apoi face toate aceste fișiere ISO ( utilizați mkiso) și scrieți în cele din urmă pe discuri folosind cdrecord. Este înfricoșător? La început, toți speriat. Pentru că se pare că totul trebuie făcut manual. Dar am spus deja că programele Linux pot comunica între ele? Am vorbit. Toată această operație poate fi efectuată de următoarea vrajă în terminal:
// următorul 1 rând
$ tar-cf backup.tar to_backup / *
bzip2 -z -9 backup.tar
mkisofs -joliet-long backup.tar.bz2> backup.iso
cdrecord dev = / dev / cdrw backup.iso

Hm. Păi, la prima vedere, pare ciudat, dar voi explica totul acum :)

În primul rând, știți înseamnă "dacă ceea ce sa făcut fără erori pe stânga, apoi executați ceea ce este pe dreapta". Acum, să examinăm fiecare comandă individual:






tar -cf backup.tar to_backup / * - aici este folosit programul tar. acesta poate combina mai multe fișiere într-una cu căi de salvare și alte atribute. Nu poate face altceva (bine, este scurtă.) Știe de fapt cum să o facă. Sintaxa ei este
tar-cf [fișier generic] [fișiere]
c înseamnă "crearea unei arhive", și f - "ieșire într-un fișier specificat de un spațiu". În cazul nostru, acesta este backup.tar. După aceea, în directorul curent avem un fișier backup.tar. După cum puteți vedea, nimic nu este complicat, c și f sunt chei care spun programului ce să facă și cum. Cheile pot fi urmate de parametri. Aici f este cheia, iar backup.tar este parametrul acestei taste. Cheile încep de obicei cu un semn minus.

Fișierul backup.tar este arhivat cu arhivatorul bzip2, care este pornit cu tastele -z pentru a arhiva și -9 la nivelul maxim de compresie. Și backup.tar nostru se transformă în backup.tar.bz2
Ce am scris cu succes în fișierul backup.iso cu mkisofs. Acesta este un fișier care conține sistemul de fișiere iso, pe lângă datele în care sunt stocate informațiile de pe CD-uri. Aici merită să ne uităm mai atent la acest moment. Am condus echipa
mkisofs -joliet-long backup.tar.bz2> backup.iso. Ei bine, cu lucruri -joliet-lung ar trebui să fie clar - acesta este un parametru care indică normal de mkisofs pentru a crea un sistem de fișiere folosind extensia Joliet, care permite pentru a stoca fișiere cu nume de până la 127 de caractere în lungime. Dar programul rezultat mkisofs va ieși la ieșirea standard de ieșire standard. În mod implicit, stdout este ieșit la terminal. Nu este foarte plăcut să vezi pâlpâirea conținutului unui fișier de 600MB, nu-i așa? ) Prin urmare, redirecționăm stdout-ul nostru la un fișier:
mkisofs -joliet-long backup.tar.bz2> backup.iso. Utilizând> toate stdout (în cazul mkisofs acesta este un fișier .iso) a mers la backup.iso.

cdrecord dev = / dev / cdrw backup.iso> - a scris fișierul pe disc. Aceasta este sintaxa uzuală pentru utilitarul cdrecord.

În general, la început se pare că toate acestea nu sunt necesare și este mult mai ușor și mai general să faceți clic de 30 de ori cu mouse-ul, avansând de-a lungul dialogurilor Nero. Dar acest lucru pare doar la prima vedere. Merită să complici puțin sarcina și Nero nu mai poate face față. Imaginați-vă că directorul to_backup din exemplul anterior este ceva care este adesea actualizat și destul de important, deci trebuie să scrieți arhivele pe disc în fiecare zi. Dacă folosiți Nero, atunci mâna va fi obosită :). Și în Linux există un program cron, care vă permite să rulați alte programe la un program. Dacă o setăm pentru a efectua această vrajă în fiecare zi, vom avea nevoie doar o dată pe zi pentru a obține discul înregistrat și pentru a introduce unul nou. Acolo este puterea.

Probabil ați crezut că nu vă puteți aminti toți parametrii tuturor comenzilor. Da, este imposibil. Dar acest lucru nu este necesar. Cu fiecare program vine documentația, din care puteți afla tot ce aveți nevoie. De exemplu, trebuie să știu ce chei are comanda df, indicând cât spațiu a mai rămas pe șurub. Voi prezenta
$ df --help
și obțineți o scurtă referință. Dacă acest lucru nu este suficient pentru mine, voi folosi un manual mai detaliat pe care mi-l va da comanda omului:
$ man df
Și dacă nu salvează, voi merge online și voi afla. Și nu în ultimul rând, voi apela un guru Linux familiar și îl voi întreba (și răspunsul lui va fi "googleing" :)

Cred că ați înțeles deja că este vorba de prezența a mii de programe mici care pot interacționa între ele și fac Linux atât de flexibil. Aceasta reamintește proiectantul Lego: din setul de cărămizi universale puteți construi un robot, o mașină, un avion, o cărămidă, o rachetă și un aerostat. Și nu poți face asta de la o mașină.

De fapt, am vrut sa scriu despre unele utilitati utile, dar ceva nou a crescut intr-un intreg articol :). Ei bine, atunci altă dată.







Articole similare

Trimiteți-le prietenilor: