Mi az unix-út és mit eszik
Ezt mindenkinek tudnia kell :) Megpróbálom két szóval az ujjaimon, hogy egy európai galoppal magyarázza meg, hogy a Linux különbözik-e a Windows-tól a szoftverszervezés szempontjából. A Windows-ban valószínűleg a program-szörnyek elhelyezésére használtad, mindent egyszerre csinálsz. Szükség van egy lemez rögzítésére - a Nero-ra, amely írja és átalakítja a zenét, valamint a legújabb verziók is archiválódnak és több lemezre vannak felosztva. És ez mindenütt. Ennek eredményeképpen olyan programok vannak, amelyek egyszerre mindent megragadnak, és a végén nem igazán csinálnak semmit. Természetesen eltúlozok, de ugyanúgy. Ez a Windows-módszer. De amikor valamit meg kell tennünk, egy kis segédprogramot készítünk, amely tökéletesen végzi munkáját. Tehát a Linux teljes egészében ilyen kis segédprogramokból áll, egy dolgot csinál, de jól működik. Ezek a segédprogramok is tudják, hogyan kommunikáljanak és adják át az adatokat egymásnak szabványos stdin és stdout streamen keresztül (nos, vannak még időnk arra, hogy írjanak stderr :). Ez a Unix-út.
Ugyanez a példa a lemezre történő archiválással. A Windows-ban: Nero-ot vagy valami hasonlóat teszünk, és elvégezzük az összes feladatot. Ha valami nem felel meg neked, keressen alternatívát. A Linux, először össze az összes fájlt egy fájlba (tar fog programozni), archiváljuk (gzip, bzip2, Z7 - valaki, hogy tetszik), akkor megoszthatja a fájlt több részre (split program), majd töltsük mindezt iso-fájlok ( használd a mkiso-t), és írd a lemezeket a cdrecord használatával. Ez félelmetes? Minden először megijedt. Mert úgy tűnik, hogy mindent manuálisan kell elvégezni. De már azt mondtam, hogy a Linux programok egymással kommunikálhatnak? Beszéltem. Ez a művelet a következő varázslattal végezhető el:
// következő 1 sor
$ tar -cf backup.tar to_backup / *
bzip2 -z -9 backup.tar
mkisofs -joliet-hosszú backup.tar.bz2> backup.iso
cdrecord dev = / dev / cdrw backup.iso
Ühüm. Nos, első pillantásra elgondolkodtatónak tűnik, de most elmagyarázom mindent :)
Először is, tudom azt jelenti, hogy "ha baloldali hibák nélkül történt, akkor hajtsa végre a jobb oldali" kifejezést. Most nézzük meg az egyes parancsokat:
tar -cf backup.tar to_backup / * - itt van a tar program. több fájlt egyesíthet egy mentési útvonalakkal és más attribútumokkal. Nem tehet mást (nos, rövid.) Valójában tudja, hogyan kell csinálni. A szintaxisa
tar -cf [generikus fájl] [fájlok]
c jelentése egy "archívum létrehozása", és f - "kimenet egy fájl által meghatározott fájlhoz". A mi esetünkben ez a backup.tar. Ezután az aktuális könyvtárban van egy backup.tar fájl. Amint láthatja, semmi sem bonyolult, c és f kulcsok, amelyek megmondják a programnak, hogy mit és hogyan. A kulcsokat paraméterek követhetik. Itt f a kulcs, és a backup.tar a kulcs paramétere. A gombok általában mínusz jellel kezdődnek.
A backup.tar fájl archiválva van a bzip2 archiválóval, amelyet a -z billentyűkkel indítanak el archiválásra és a -9-et a maximális tömörítési szinten. A backup.tar pedig backup.tar.bz2-be fordul
Amit sikeresen írunk a backup.iso fájlba az mkisofs-el. Ez egy olyan fájl, amely tartalmazza az iso fájlrendszert, azon adatok mellett, amelyeken a CD-ken tárolt információk tárolásra kerülnek. Itt érdemes jobban megvizsgálni ebben a pillanatban. Mi futottunk a csapattal
mkisofs -joliet-hosszú backup.tar.bz2> backup.iso. Nos, a -joliet-hosszúsággal mindennek világosnak kell lennie - ez egy normál paraméter, amely meghatározza az mkisofs-ot, hogy egy joliet kiterjesztésű fájlrendszert hozzon létre, amely lehetővé teszi a legfeljebb 127 karakter hosszúságú fájlok tárolását. De az eredményül kapott mkisofs program a szabványos kimeneti stream stdout-ba kerül. Alapértelmezés szerint a stdout a terminálra kerül. Ez nem túl kellemes ahhoz, hogy megnézze a 600 megabyte-os fájl tartalmának villogását, nem igaz. ) Ezért a stdout fájlt átirányítjuk:
mkisofs -joliet-hosszú backup.tar.bz2> backup.iso. Az összes stdout használatával (az mkisofs esetében ez egy .iso fájl) a backup.iso fájlba ment.
cdrecord dev = / dev / cdrw backup.iso> - írta a fájlt a lemezre. Ez a cdrecord segédprogram szokásos szintaxisa.
Általánosságban először úgy tűnik, hogy mindez szükségtelenné vált, és sokkal könnyebb és általánosabban 30-szor kattintani az egérrel, a Nero párbeszédek mentén. De ez csak első pillantásra tűnik. Érdemes egy kicsit bonyolítani a feladatot, és a Nero már nem képes megbirkózni. Képzeljük el, hogy az előző példából származó to_backup könyvtár gyakran frissítésre és eléggé fontos, ezért naponta meg kell írni az archívumot a lemezre. Ha Nero-t használsz, akkor a kéz rázkódni fog :). És Linuxban van egy programcron, amely lehetővé teszi, hogy más programokat futtasson menetrend szerint. Ha naponta végrehajtja ezt a varázslatot, akkor naponta egyszer lesz szükségünk a felvett lemez megszerzéséhez, és új beillesztést. Ez az a hatalom.
Valószínűleg úgy gondoltad, hogy nem emlékszik az összes parancs paramétereire. Igen, lehetetlen. De ez nem szükséges. Minden programhoz tartozik dokumentáció, amelyből mindent megtalál, amire szüksége van. Például tudnom kell, hogy a df parancs milyen kulcsokkal rendelkezik, jelezve, hogy mennyi hely marad a csavarral. Be fogom mutatni
$ df --help
és kap egy rövid hivatkozást. Ha ez nem elég nekem, akkor egy részletesebb kézikönyvet fogok használni, amelyet az ember parancsol:
$ man df
És ha nem ment meg, akkor megyek online és megtudom. Végül, de nem utolsósorban hívok egy ismerős Linux gurut, és megkérdezem (és a válasz "googleing" lesz :)
Azt hiszem, már megértetted, hogy több ezer olyan kis program jelen van, amely kölcsönhatásba léphet egymással és a Linuxot olyan rugalmasabbá teszi. Emlékezteti a Lego tervezőjét: az univerzális téglák halmazából robotot, gépet, repülőgépet, téglát, rakétát és aerosztátot építhet. És ezt nem teheti meg egy autóból.
Valójában néhány hasznos segédprogramról akartam írni, de valami újdonság lett egy egész cikkre :). Hát akkor még egyszer.