AmigaDOS
Az AmigaDOS az AmigaOS lemez- és I/O kezelő alrendszerének a neve. Bár külön névvel illetjük, szerves részét képezi a rendszernek. Fizikailag az AmigaDOS a Kickstartban helyezkedik el, a dos.library nevű függvénykönyvtárban. Az AmigaDOS külső fejlesztés volt, a Commodore utólag vásárolta meg és integrálta a rendszerbe, miután az eredeti lemezes alrendszer fejlesztése jelentős késéseket szenvedett. Az AmigaDOS-t eredetileg BCPL nyelven írták, míg a rendszer többi része C és M68K assembly nyelven készült. Bár a jelenlegi változatot már újraimplementálták C nyelven, a BCPL hatásának nyomai ma is megtalálhatók az AmigaOS API-ban. A MorphOS és az AROS egy, az AmigaDOS-sal API kompatibilis lemezkezelő alrendszert tartalmaz.
Általános ismertető
Az AmigaDOS érdekes keveréke a CP/M és a Unix rendszereknek. Bár a rendszer a CP/M-hez hasonlóan meghajtókat kezel, ezeknek nem betűjelük, hanem több karakterből alló nevük van, amelyeket tetszés szerint változtathatunk. Például az első floppymeghajtó hagyományos elnevezése DF0:, míg az első CD-meghajtóé általában CD0:. A rendszer nem case-sensitive. Viszont igen erősen a Unixra hasonlít pl. a fájlattribútumok felépítése, vagy az, hogy a kiterjesztések csak jelképes szerepűek, nincs jelentőségük pl. annak megállapításában hogy egy állomány futtatható-e. Az AmigaDOS kezel soft- vagy másnéven symlinkeket és hardlinkeket is. Eszközöket a Unixhoz hasonlóan futási időben csatolhatunk le és fel, tetszőleges fájlrendszer használatával. Az RDB-nek köszönhetően a merevlemezeinken is rugalmasan variálhatjuk a fájlrendszereket. A Commodore eleinte OFS, később FFS filerendszerrel szállította az AmigaOS-t. Ezek a filerendszerek maximum 32 karakteres fájlneveket engedtek meg, bár az elméleti korlát 107 karakter. Az AmigaOS-en ma használt filerendszerek mint pl. az FFS2, a PFS3 és az SFS már képesek kezelni a 32 karakternél hosszabb neveket is. Az rendszer legnagyobb korlátja, hogy maximálisan 2GB-os fájlok kezelését engedi meg. Az ennél nagyobb fájlok kezeléséhez szükséges új API még nem készült el, bár valamennyi Amiga-eredetű rendszer készítői dolgoznak rajta.
A shell
A shellt legegyszerűbben úgy érhetjük el, ha a Workbench menü Execute command... almenüjében kiadjuk a newshell parancsot. Ekkor megjelenik egy shell ablak, amely használatra kész. A prompt alapértelmezésben az éppen használatban lévő meghajtó volume nevét, és az éppen használt könyvtár elérési útját jeleníti meg. Nagyjából igy fest:
Ram Disk:>
- Tipp: MorphOS alatt használhatjuk a Right-Command - N billentyűkombinációt is a shell indításához.
- Tipp: A newshell helyett a newcli parancsot is használhatjuk (CLI).
Alapvető műveletek
Meghajtót úgy válthatunk, ha kiadjuk a meghajtó nevét, mint parancsot. Használhatjuk a volume és a device nevét is mint parancsot. A különbség, hogy pl. floppylemez esetén a device neve mindíg állandó (DF0) míg a volume név az éppen a meghajtóban lévő lemez nevét jelenti. Tehát, ha berakjuk a floppyba mondjuk az Install nevű lemezt, kétféleképpen is átléphetünk rá. A prompt viszont mindig a volume nevet fogja megjeleníteni. Például:
Ram Disk:> Install: Install:> Ram: Ram Disk:> DF0: Install:> System: System:>
Zseniális. A könyvtárakba is hasonló módszerrel léphetünk be. Vagyis, bár létezik cd parancs, könyvtárváltáshoz, azt nem minden esetben szükséges kiadni. A parent directory jele a /, mig az adott meghajtó gyökérkönyvtárát : jelöli. Amennyiben van olyan parancsnév, amilyen könyvtárba be szeretnénk lépni, tegyünk a könyvtárnév végére egy / jelet, így a kiadott parancs biztosan a könyvtárra fog vonatkozni. Vagy ilyen esetben használhatjuk a cd parancsot. A könyvtárváltást összevonhatjuk a meghajtóváltással. Néhány példa:
System:> Devs System:Devs> Monitors System:Devs/Monitors> / System:Devs> :Storage/DOSDrivers System:Storage/DOSDrivers> : System:> Work:Develop/Demo/Breakpoint2006 Work:Develop/Demo/BreakPoint2006> // Work:Develop> System: System:>
- Tipp: A shell alapból tartalmaz history funkciót, azaz megjegyzi korábban kiadott parancsainkat. Ezek között a fel-le gombok lenyomásával "válogathatunk".
Hozzunk létre könyvtárat. Ezt a makedir paranccsal tehetjük meg. Az állományok és a könyvtárak, sőt, a meghajtók nevében is szerepelhet szóköz. Ekkor tegyük az adott nevet idézőjelbe, így a rendszer egy paraméterként fogja kezelni. Viszont könyvtárak esetében ekkor mindenképpen használni kell a cd parancsot. Például:
System:> makedir "Napos Csibe" System:> "Napos Csibe" object not found System:> cd "Napos Csibe" System:Napos Csibe> / System:>
Könyvtárat és állományt egyaránt a delete paranccsal törölhetünk.
System:> delete "Napos Csibe" Napos Csibe Deleted System:>
Fájlok kilistázására két parancs létezik, a dir valamint a list egyelőre elég annyit tudni róluk, hogy a dir parancs egy rövid, csak neveket felsoroló listát, míg a list parancs egy részletesebb listát ad.
System:> Ram: Ram Disk:> dir T (dir) Clipboards (dir) ENV (dir) disk.info Ram Disk:> list T Dir ----rwed Tuesday 22:25:12 Clipboards Dir ----rwed Tuesday 22:25:07 ENV Dir ----rwed Tuesday 22:25:23 disk.info 1648 ----rw-d 17-May-02 12:14:32 1 file - 3 directories - 262 blocks used Ram Disk:>
A shellben a joker karakter a ?. Ha elétesszük egy #-t az azt jelenti, hogy az adott karakter helyén ismeretlen számú karakter van. A joker karaktert többször is alkalmazhatjuk. Például:
Ram Disk:> dir disk#? disk.info Ram Disk:> dir c?ipbo#? Ram Disk:Clipboards (dir) Ram Disk:>
És most néhány fejlettebb trükk. Adott mintát tartalmazó fájlok listázásának tiltása, a ~ (tilde) karakter használatával. A példa nem listázza az .info kiterjesztésű állományokat, egyébként mindent.
Ram Disk:> dir ~(#?.info) Ram Disk:T (dir) Ram Disk:Clipboards (dir) Ram Disk:ENV (dir) Ram Disk:>
Minták kombinálása. Kilistázza a .pas és a .c végű fájlokat. Nem csak kettő, hanem több minta is kombinálható.
Ram Disk:> dir Work:Develop/HelloWorld/#?.(pas|c) example.c first.c first.pas hello.c hello.pas Ram Disk:>
A dir és a list parancs további lehetőségeket is rejt, amelyről bővebben itt olvashatsz.
Az assignok
TODO
Ötletek haladóknak
TODO
TODO: további parancskészlet, assignok, attribútumok, scriptek, stb.
FIXME