AMIGA REVIEW online
  Uvodná stránka     Software     Hry     Obaly     Download     Amiga na PC     Amiga Forever  

AmigaDOS I.

Jan Hlavatý

Milí přátelé, možná jste si už položili otázku, co se děje těsně po zapnutí Amigy ještě než se objeví známý screen Workbenche. Harddisk chrochtá, disketová mechanika pobíhá sem tam a nic není vidět. Manuál k Workbenchi vám v tomto případě bohužel nepomůže - není to v jeho kompetenci. Co potřebujete je manuál k DOSu a ten se u „low end“ Amig většinou vůbec nedodává. Pro uživatele, které Amiga vůbec nezajímá a jenom potřebují občas něco spustit z Workbenche žádný problém - dokud všechno funguje jak má. Pro tento druh lidí zůstanou názvy jako „startup-sequence“, „user-startup“ nebo „assign“ navždy nesrozumitelným blábolem, o kterém maximálně vědí, že „tam někde“ existuje. Pro ty zvědavé uživatele, kteří neustanou dokud nepochopí Amigu do posledního bajtu aby mohli cele vejít do jejího „kyberprostoru“, které nakonec nic nepřekvapí a kteří nejsou závislí na milosrdenství „zasvěcených“, nebol oni sami jsou zasvěcenými - pro tyto uživatele je určen tento seriálek. Pokusím se v něm zachránit co se dá tedy uvést čtenáře do problematiky DOSu. Kromě úplných základů (které dozajista už většinou znáte, ale jistota je jistota) zde uvedu kompletní seznam příkazů AmigaDOSu 3.0/3.1 včetně jejich praktického použití a probereme zde i problematiku scriptů („startup-sequence“ je speciálním případem scriptu). Patříte-li do oné druhé skupiny uživatelů, čtěte dál! Pokud ne, možná později - pokud vám zvědavost nedá... Tedy do toho!

Úplné základy - pro jistotu
Jak jistě víte, data se obvykle ukládají do tzv. „souborů“ (files). Soubor je skupina bajtů uložená na nějakém médiu, která má svoje unikátní jméno, délku (počet bajtů v souboru) a některé další vlastnosti, jako jsou ochranné příznaky souboru (file attributes) nebo komentář souboru. Nejprve se podíváme podrobněji na tyto základní vlastnosti souborů.
Jméno souboru je maximálně 30 znaků dlouhý řetězec zobrazitelných znaků.
Ve jméně souboru by neměly být obsaženy některé znaky vyhrazené pro speciální účely, tedy konkrétně „:“ (dvojtečka), „;„ (středník), „*“ (hvězdička), „/“ (normální lomítko), ?“ (otazník), „„ (obrácený apostrof, „#“ (křížek, hash) a „%“ (procento).
O významu těchto speciálních znaků se budu šířit později, až se budu zabývat oblastí kde se jejich použití vyskytuje. To, že tyto znaky jsou vyhrazené ještě neznamená, že by do jména souboru dát nešly - některé z nich jdou, ale mohli byste se pak dostat do situace kdy budete chtít zadat jméno dotyčného souboru, ale toto jméno bude (díky speciálnímu znaku) interpretováno jako něco úplně jiného... tedy speciální znaky ve jménech pokud možno nepoužívat! Dalším znakem který sice ve jménu používat lze ale přiděláte si tím práci je mezera. Protože mezera je u příkazů AmigaDOSu používána pro oddělování jednotlivých parametrů příkazu, je-li jako parametr zadáváno jméno souboru které obsahuje mezeru, je nutné ho uzavřít do uvozovek - jinak by bylo rozpoznáno jako více různých parametrů. Jméno souboru je tzv. „case insensitive“ - tedy nečiní se rozdíl mezi malými a velkými písmeny. Tady musím upozornit na určitý zádrhel s češtinou - u starších filesystémů (OFS, FFS) nejsou znaky češtiny - malá a velká písmena s diakritikou, tedy s kódy nad 128 - brána jako jedno písmeno! Malé „č“ tedy není stejné písmeno jako velké „Č“! Proto doporučuji používat „international“ verze filesystémů - FFS INTERNATIONAL a FFS DIRCACHE, pokud chcete ve jménech souborů používat češtinu (což není zase tak špatný nápad).
Adresáře jsou jakési „šuplíčky“ na médiu, do kterých lze vkládat soubory nebo další adresáře (Sorry, experti.. říct sem to musel). Jsou pojmenovávány stejně jako soubory (30 znaků jméno. platí totéž co pro soubory ohledně vyhrazených znaků) a mají i některé podobné atributy (komentář, ochranné příznaky - i když ty fungují trošičku jinak). Adresáře umožňují udělat si v souborech pořádek - mít třeba programy v jednom adresáři se jménem „programy“ a obrázky v druhém se jménem „obrázky“. Adresáře lze vkládat jeden do druhého, takže si uvnitř adresáře „obrázky“ můžete udělat další adresáře, třeba podle druhu obrázku „auta“, „kytičky“, „holky“...
Jak jsem řekl, soubory a adresáře lze vytvářet na médiu. Takové médium, to může být třeba disketa, harddisk nebo paměť počítače. Aby bylo možno tato média rozlišovat, je potřebuje nějak pojmenovat. Navíc je třeba rozlišovat jednotlivá výměnná média. která mohou být vložena do stejné mechaniky. Existují tedy v podstatě dva druhy jmen médií, lišící se ve způsobu odkazu na médium. Prvním druhem jmen jsou jména „dosových zařízení“ (neplést se zařízeními execu nacházejícími se v „DEVS:“). Tato jména se odkazují na konkrétní mechaniku a médium v ní právě vložené. Nečiní tedy rozdílu mezi výměnnými médii. Takovým označením je třeba jméno disketové mechaniky – „DF0:“. Všimněte si dvojtečky na konci jména - to je neklamný znak, že nejedná o jméno média a ne o název souboru nebo adresáře. Jména dosových zařízení (dos devices) jsou obvykle takovéto třípísmenné kryptogramy - „DF0:“, „DF1:“, „HD0:“, „DH0:“, „RAD:“, „RAM:“, „PC0:“ a podobně...
Druhým typem označení je jméno samotného média - tedy ne mechaniky (volume). To je třeba jméno diskety „Workbench3.1:“. V tomto případě se rozlišují jednotlivá média podle jejich pojmenování a nezáleží ve které mechanice se právě nacházejí - to si dos zjistí (a pokud se nenachází v žádné mechanice, dos si o něj řekne známým requesterem...). Jména médií bývají obvykle obsažnější a výstižnější než jména zařízení, aby člověku bylo okamžitě jasné co se na daném médiu nachází. Je to určitá analogie k popisu na nálepce diskety (odtud také označení „volume label“). Když zformátujete novou disketu, přiřadí jí systém obvykle jméno „Empty“ nebo „Prázdný“ v případě české lokalizace. Když na disketu něco nahrajete, je vhodné ji vhodně přejmenovat dle obsahu -jinak se těžko v hromadě stejných disket se jmény „Empty“ něco hledá...
Každé médium má minimálně jeden adresář - tzv. „root“. Ten odpovídá základnímu umístění souborů na médiu bez jakýchkoliv adresářů, přímo na „základní úrovni“. Na root directory média se odkazujeme přímo jménem média. Umístění souboru ve struktuře adresářů na médiu se popisuje tzv. „cestou“ (path). To je v podstatě popis, obsahující jméno média a jména všech adresáře kterými je nutno projít, abychom se dostali k danému souboru a na konci pak jméno souboru. Na výše uvedeném obrázku je nakreslen příklad struktury diskety „Obrázky:“. Na této disketě se nachází pět obrázků ujeden textový soubor „CoJeTu.txt“. Obrázky jsou zařazeny v adresářích podle jejich typů. V adresáři „Auta“jsou dva obrázky - „Formule.iff“ a „Trabant.iff“ V adresáři „Holky“ se nachází obrázek „Buchta.iff“ a adresář „Super“ se dvěma dalšími obrázky – „Girl.gif“ a „Idol.iff“. Na tomto příkladu struktury disku si ukážeme tvorbu cest.
Úplné jméno souboru (tedy včetně cesty) se tvoří tak, že se napíše jméno média s dvojtečkou na konci, za to se připojí jména adresářů kterými procházíme na cestě k souboru (od rootu) s „/“ na konci každého jména adresáře, a nakonec se připojí jméno souboru. Budeme-li chtít například napsat úplný název souboru „Girl.gif“ napíšeme ji jako (sledujte cestu po grafu struktury naší diskety „Obrázky:“):
Obrázky:Holky/Super/Girl.gif
Jak vidíte, část před „:“je jméno média („Obrázky:“), „Holky“ je jméno adresáře v rootu diskety „Obrázky:“. „Super“ je jméno adresáře uvnitř adresáře „Holky“, a „Girl.gif“ je jméno souboru uvnitř adresáře „Super“. Teď už víte, proč se ve jménech souborů a adresářů nesmí vyskytovat znak „/“?
Vypisovat pokaždé úplné jméno souboru by byla „hrozná otrava“. Existuje tedy možnost psát jména souboru relativně vůči nějakému místu ve struktuře média. Takovýto referenční bod od kterého se odvozuje umístění souborů a adresářů zapsaných relativně (neúplná cesta) se jmenuje „implicitní adresář“ (current directory). Toto místo lze různě přesouvat ve struktuře disku podle potřeby. Neúplná (relativní) cesta k souboru se pozná podle toho, že na začátku neobsahuje jméno souboru. Pro ilustraci řekněme, že náš implicitní adresář nastavíme na „Obrázky:Holky“. Odtud se lze na „Girl.gif“ odkázat relativně pomocí:
Super/Girl.gif
Protože „Buchta.iff“ se nachází přímo v implicitním adresáři, lze se na ni odkázat přímo jménem souboru: Buchta.iff
Obecně platí, že jménem implicitního adresáře je prázdný řetězec. U většiny příkazů AmigaDOSu tedy pokud neuvedete jméno adresáře bude jako adresář brán v úvahu implicitní adresář. Pokud je uvedení adresáře vyžadováno, lze implicitní adresář zadat jako prázdný řetězec - „“. Teď bych se měl zmínit o speciálním významu znaků „/“ a „:“ v relativním jménu souboru. Znak „/“ samotný (tedy s prázdným jménem adresáře před ním) označuje adresář nadřazený (parent directory) adresáře nebo souboru - tedy adresář, ve kterém se daný adresář nebo soubor nachází. Z našeho implicitního adresáře „Obrázky:holky“ se tedy můžeme relativně odkazovat i „nahoru“ - třeba na textový soubor „CoJeTu.txt“ se odsud dostaneme:
/CoJeTu.txt
Pokud se jménem a cestou odkazujeme na adresář, je v podstatě jedno jestli na konci uvedeme poslední „/“: „Super“ je totéž co „Super/“. Lomítko na konci se používá obvykle jen v případě že za jménem adresáře následuje další jméno (ať už souboru nebo adresáře). Pokud bychom napsali „Super//“, jedná se o adresář nadřazený podadresáři „Super“ implicitního adresáře, skončíme tedy zpátky v implicitním adresáři: jsou tu dvě jména adresářů „Super“ (což nás přenese dovnitř adresáře „Super“) a prázdné jméno „“, což označuje nadřazený adresář (což nás přenese zpět). Nic nám samozřejmě nebrání postupovat od nadřazeného adresáře zase „dolů“ - třeba k souboru „Trabant.iff“:
/auta/trabant.iff
Jdou provozovat i naprosté šílenosti typu:
/auta/trabant.iff//
což je odkaz na adresář „Auta“ všimněte si že „trabant.iff“je jméno souboru! Praktické využití něčeho takového je snad jediné - matení uživatele.
Druhým znakem se speciálním významem je „:“. Je to v podstatě prázdné jméno média - prázdné jméno ukončené „:“. Tato konstrukce označuje „root“ adresář média, na kterém se nachází náš implicitní adresář. Tímto způsobem se například můžeme odkazovat na soubor „CoJeTu.txt“ v rootu diskety pokud máme implicitní adresář kdekoli na této disketě:
:CoJeTu.txt
Všimněte si, že root už nemá žádný nadřazený adresář! Konstrukce typu
:/
tedy skončí chybou „objekt nenalezen“. Teď nám zbývá už jenom popsat co je to „assign“. Assign (přiřazení?) je způsob, jak si udělat jakési „záložky“ ve struktuře disků (myslím tím médií obecně). Můžete si vybrat nějaké místo ve struktuře média, a toto místo si označit. Tuto značku nějak pojmenujete - a ta se pak chová podobně jako jméno média - má na konci „:“. Na rozdíl od jména média však nemusí nutně ukazovat na root a pozor - nemusí nutně ukazovat ani na adresář! Je proveditelné přiřazení assignu na soubor (!!). Tento druh assignu však není příliš využitelný a dokáže zastihnout leckterý program nepřipravený... jediné co se mi povedlo s ním provést bylo přiřazení assignu na jméno spustitelného souboru a následné spuštění tohoto souboru pomocí assignu a ne jména. Prosím raději nepoužívat! Existuje několik druhů assignů (tedy tři):
První („normální“) assign přiřadí okamžitě po jeho vytvoření daný objekt jménu assignu. Pokud třeba dáte assign na nějaký adresář na disketě, DOS si od vás tuto disketu vyžádá a pak natrvalo vytvoří assign na tento konkrétní adresář. Pokud se později odkážete na tento assign a disketa na které se onen adresář nachází nebude zrovna v mechanice, DOS si ji opět od vás vyžádá.
Druhý („opožděný“) druh assignu je shodný s druhem prvním s tím rozdílem že si danou disketu nevyžádá ihned ale až při prvním vašem odkazu na ni - do té doby existuje jen jakýsi „zárodek“ assignu.
Třetí („nestálý?“) druh assignu funguje trochu jinak - assign se nepřiřadí natrvalo, ale při každém odkazu na jméno tohoto assignu se zadaná cesta vyhodnocuje znovu. Pokud například vytvoříte assign tohoto druhu se jménem „CC:“ který se odkazuje na „DF0:c“, při každém odkazu na „CC:“ se bude jednat o adresář „C“ na jakékoli disketě která je v mechanice „DF0:“!
Druhou oblastí na kterou se dnes podíváme jsou patterny. Pattern („vzor?“) je způsob, jak popsat jméno souboru na základě neúplné informace, nebo jak zadat skupinu jmen souborů s určitými vlastnostmi. Mechanismus patternů je v AmigaDOSu poměrně komplikovaný, ale o to silnější.
Funkce patternu je asi takováto: Program prohledá všechny položky v daném adresáři a jméno každé z nich porovná s patternem. Pokud vyhovuje, je tato položka použita. Pro vyjádření vzorů se používá několik vyhrazených znaků:
„?“ (otazník) - zastupuje právě jeden jakýkoliv znak
„(“<znaky>„)“ - skupina znaků která se bude brát jako jeden prvek
„#“<znak> - znamená že znak následující za „#“ (nebo kombinace znaků uzavřených do kulatých závorek) se ve jménu může vyskytovat kolikrát chce - včetně žádného výskytu.
<znak>„|“<znak> - seznam znaků oddělených svislou čárou znamená, že na daném místě jména se může vyskytovat jeden ze zde uvedených znaků. Místo jednotí. znaků zde mohou zase být skupiny znaků v kulatých závorkách.
„~“<znak> - (vlnovka) - na tomto místě se nesmí vyskytovat tento znak (nebo skupina znaků).
„%“ (procento) - označuje žádný znak. Vhodné pro seznam znaků (viz „|“) jako jedna z možností.
„[“<znak>„-“<znak>„]“ - označuje rozsah znaků (např.[A-Z]jsou všechna písmena)
Pokud se ve jméně souboru vyskytuje některý z těchto znaků (např. závorka), lze přidáním „`“ (apostrofu) před kritický znak sdělit že tento znak se má brát tak jak je, ne jako součást definice patternu. Následuje několik příkladů na patterny:
#? - jakýkoli počet jakýchkoli znaků = cokoli. Jako „*“ na PC.
?hoj -jméno začíná jakýmkoli znakem a končí „hoj“. Vyhovuje např. „Ahoj“, „ohoj“, „zhoj“, „_hoj“
#?.txt - jméno musí končit na „.txt“. Vyhovuje např. „test.txt“, „1 .txt“, „.txt“
test#? - všechno co začíná „test“ vyhovuje např. „test“, „test.asm“
a#?z - všechno co začíná na „a“ a končí na „z“ - vyhovuje třeba „az“, „abcdefghiz“
ba#af! - všechno co začíná „b“, má uprostřed nejméně jedno „a“ a končí „f!“ - vyhovuje např. „baf!“, „baaf!“, „baaaaaaaaaaaaaaf!“
rata#(ta)! - všechno co začíná „ra“, uprostřed má minimálně jednou „ta“ a končí „!“ - vyhovuje např. „rata!“, „ratatata!“, „ratatatatatatatatatatatatata!“ (šílený kulometčík)
#`?.(txt|koi) - jméno musí končit na „.txt“ nebo „.koi“
b(a|u|%)f - jméno které začíná „b“, končí „t“ a uprostřed muže mít „a“ nebo „u“ nebo nic - vyhovuje: „baf`, „buf“, „bf“
-(#?.info|#?.auts|#?.bak) - všechno co nekončí na „.info“, „.auts“ nebo „.bak“
([A-Z]|_)#([A-Z]|[0-9]|_) - jméno složené z písmen, číslic a podtržítka, které nesmí začínat číslicí - syntaxe symbolů ve většině programovacích jazyků
Abyste si mohli získané poznatky náležitě vyzkoušet, popíšu už dnes některé příkazy AmigaDOSu, i když jen zevrubně. Příkazy AmigaDOSu ze zadávají většinou v okně Shellu, nebo můžete použít menu Workbench/Execute command... (nebo Workbench/Vykonat příkaz...). K vytvoření okna shellu můžete použít ikonu „Shell“ v adresáři „Syslem“ bootovacího disku, nebo zadat příkaz „NEWSHELL“ do requesteru Workbenche který se zobrazí po volbě položky menu „Workbench/Execute command...“. Takto vytvořené okno lze zavřít Close gadgetem okna, nebo příkazem „ENDSHELL“ nebo „ENDCLI“. V tomto okně Shellu můžete zadávat příkazy AmigaDOSu a ten je bude okamžitě vykonávat. Standardně má dotaz AmigaDOSu na příkaz (tzv. „prompt“) tvar: <číslo procesu shellu>„.“<implicitní adresář>„>“ a za ním se nachází kurzor. Nyní můžete psát jméno příkazu který chcete vykonat, případně mezeru a parametry příkazu oddělené mezerami. Zkuste si tyto příkazy:
CD - bez parametrů vypíše současné umístění vašeho implicitního adresáře
CD <adresář> - pokud jako parametr zadáte cestu (jméno adresáře), přesunete svůj implicitní adresář do tohoto adresáře.
DIR - bez parametrů vypíše přehled objektů (souborů a adresářů) nacházejících se v implicitním adresáři DIR <adresář> - pokud napíšete jako parametr adresář, vypíše se obsah tohoto adresáře
TYPE <jméno souboru> - vypíše obsah textového souboru do okna Shellu. Zkuste třeba „TYPE startup-sequence“
MAKEDIR <jméno adresáře> vytvoří nový adresář. „MAKEDIR Ahoj“ se pokusí vytvořit nový adresář ve vašem implicitním adresáři.
DELETE <jméno souboru> - smaže soubor nebo prázdný adresář (pozor! nesmažte si něco! Pokusy dělejte pokud možno v RAM:)
ECHO <text> - vypíše text do okna Shellu. Pokud výstup příkazu přesměrujete (o čemž si povíme příště) do souboru, můžete si vytvořit malý textový souborek. Např. „ECHO >RAM:test.txt Nazdárek!“ vytvoří v RAM: textový soubor „test.txt“, který si můžete vypsat příkazem „TYPE RAM:test.txt“
DATE - vypíše aktuální systémové datum a čas
RENAME <původní jméno> <nové jméno> - přejmenuje soubor nebo adresář. Lze jím také přesouvat objekt v rámci jednoho zařízení (média), pokud napíšete u nového jména cestu lišící se od původní.
LIST - podobně jako DIR obsah adresáře, ale zobrazí vypisuje mnohem více informací o souboru a umožňuje některé zajímavé věci. Zkuste třeba tohle:
LIST <adresář> FILES LFORMAT „soubor %s má délku %l!“
To je pro dnešek vše - na závěr ještě jedna rada: pokuste se sehnat si prográmek jménem „KingCon“ umožňuje pohodlnější práci s okny Shellu. Pilně experimentujte, a příště se podíváme na příkazy AmigaDOSu blíže.

Vytlačiť článok


© ATLANTIDA Publishing Všechna práva vyhrazena.
Žádna část nesmí být reprodukována nebo jinak šířena bez písemného svolení vydavatele.



Amiga na Vašem PC rychle, snadno a zdarma!


none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )