Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Podstawowe zasady wprowadzania zleceń w DCL (DIGITAL Command Language)

Większość użytkowników miała do czynienia lub przynajmniej słyszała o systemach Uniksowych. Do komunikacji z nimi służą powłoki systemowe takie jak sh (powłoka Bourne’a), ksh (powłoka Korna), csh (powłoka C) czy najbardziej populara – bash.

Ja w tym krótkim wpisie chciałem napisać o innym systemie operacyjnym powstałym w nieistniejącej już firmie Digital, mianowicie o OpenVMS. System ten powstał w drugiej połowie lat 70. Pierwotnie napisany został dla komputerów VAX. Jednym z liderów projektu był Dave Cutler, późniejszy współtwórca Windows NT. Na początku lat 90 system został napisany dla platformy AXP Alpha.
Po zakupie Firmy Digital przez innego potentata Compaqa system był dalej rozwijany. Po rezygnacji Compaqa z dalszego rozwijania platformy Alpha, właściciel systemu zapowiedział przeniesienie go do głośno zachwalanej wówczas platformy Itanium. Po zakupie Compaqa przez HP system jest rozwijany dalej w szczególności dla serwerów Integrity (opartej na platformie Itanium), ale także równolegle dla platformy alpha.

DCL (DIGITAL Command Language) jest językiem poleceń, zestawem instrukcji, które informują system operacyjny (w naszym przypadku OpenVMS) w jaki sposób wykonać określone działanie lub zadanie. DCL zapewnia ponad 200 poleceń i funkcji do wykorzystania w komunikacji z systemem operacyjnym w celu realizacji różnych zadań.
DCL jak każdy język ma swoje słownictwo i zasady korzystania z niego. Składa się ze słów wpisywanych w odpowiedniej kolejności.

Ogólny format poleceń w DCL ma następującą postać:

$POLECENIE[/KWALIFIKATOR] PARAMETR[/KWALIFIKATOR] PARAMETR[/KWALIFIKATOR] […]

W nawiasach kwadratowych ujęte zostały elementy opcjonalne. Jeżeli taki element nie zostanie wprowadzony to interpreter stosuje wartość domyślną. Co najmniej jeden znak odstępu lub tabulacji musi oddzielić polecenie od pierwszego parametru. Tak samo muszą być oddzielone poszczególne parametry od siebie. Każdy kwalifikator musi rozpoczynać się znakiem (/). Po tym znaku lub przed nim można użyć dowolnej liczby odstępów. Przy wprowadzaniu formuły zlecenia można użyć dowolnej kombinacji małych i dużych liter. Dla DCL wielkość liter nie ma znaczenie w przeciwieństwie do powłok Uniksowych. DCL konwertuje wszystkie słowa nie ujęte w cudzysłów na duże litery. W moim opracowaniu stosuje wielkie litery.

Przykład:

$ PRINT/COPIES=3 PLIK.TXT

Znak dolara $ jest domyślnym początkiem polecenia. Podczas interaktywnej pracy z DCL określa gotowość przyjęcia polecenia.

POLECENIE (zlecenie, komenda) to słowo określające nazwę polecenia. Zleceniem może być poleceniem wbudowanym w interpreter DCL, poleceniem które wywołuje program lub zleceniem obcym. Mówi nam jaka operacja ma być wykonana. W tym przykładzie zleceniem jest komenda PRINT czyli drukuj.

KWALIFIKATOR. Kwalifikator opisuje dokladniej lub modyfikuje działanie komendy. Kwalifikatory modyfikują całe polecenia, inne mogą modyfikować określony parametr. Niektóre kwalifikatory mogą przyjąć pewne wartości. W zleceniu może występować większa liczka kwalifikatorów, zarówno dotyczących komendy jak i parametru. Kwalifikator zawsze poprzedzony jest poprzecznym ukośnikiem (/). W naszym przykładzie kwalifikatorem jest /COPIES.

WARTOŚĆ. Wartość to zmienna kwalifikatora i często jest poprzedzana znakiem równości (=). Wartością może być odpowiedni plik, ciąg znaków, liczba lub słowo kluczowe interpetatora DCL. W naszym przypadku warością jest cyfra 3.

PARAMETR. Parametr określa obiekt (którym może być plik lub nazwa logiczna) nad którym pracuje komenda. Parametr należy ustawić w określonej kolejności w formacie polecenia. W naszym przykładzie parametrem jest plik PLIK.TXT

Podsumowując: komenda opisuje co zrobić, kwalifikator opisuje jak to zrobić, a parametr podaje na jakim obiekcie należy wykonać zlecenie.

W formacie zlecenia występują czasami także inne elementy takie jak: ETYKIETY, SŁOWA KLUCZOWE, SYMBOLE WIELOZNACZNE.
Słowa kluczowe określają ich stosowanie w pewnych określonych formułach. Słowa kluczowe czasami zachowują się jak parametry, a innym razem służą jako wartości dla kwalifikatorów. Słowami kluczowymi są zawsze zdefiniowane słowa, a nie dowolny ciąg znaków.

Przykład:

$ DIRECTORY LOGIN.COM /DATE=MODIFIED

Polecenie DIRECTORY nakazuje pokazać datę modyfikacji pliku LOGIN.COM W tym przykładzie słowem kluczowym jest MODIFIED dla kwalifikatora /DATA. Plik LOGIN.COM jest w tutaj parametrem.

Symbolami wieloznacznymi są gwiazdki (*), znak procentu (%), wielokropek (…), czy myślnik (-). Mogą być stosowane wewnątrz, w nazwie pliku lub nazwie rodzaju pliku.

Niektóre komendy jak COPY lub RENAME akceptują wiele parametrów oddzielonych spacją. Inne polecenia jak PRINT lub DELETE akceptują listę parametrów oddzielonych przecinkami (,) lub znakiem plus (+).

Powrócę do mojego przykładu:

$ PRINT/COPIES=3 PLIK.TXT

Polecenie to oznacza wydrukuj 3 kopie pliku o nazwie PLIK.TXT. Zlecenie to jest równoważne formule:

$ PRINT PLIK.TXT/COPIES=3

Oznaczające wydrukuj plik PLIK.TXT w trzech egzemplarzach.

Teraz rozważmy to samo polecenie ale z pewnymi zmianami, które pokazują znaczenie kwalifikatorów. Jak ich pozycja ma wpływ na zmianę sensu polecenia.

$PRINT/COPIES=2 PLIK.TXT, DRUGI_PLIK.TXT

W powyższym przykładzie kwalifikator /COPIES występuje po komendzie PRINT. Oznacza to że kwalifikator ten ma zastosowanie do obudwu parametrów, w tym przykładzie plików PLIK.TXT oraz DRUGI_PLIK.TXT. Jednym zdaniem zostaną wydrukowane po dwie kopie obydwu plików.

Oto drugie polecenie:

$PRINT PLIK.TXT, DRUGI_PLIK.TXT/COPIES=2

W tym przykładzie kwalifikator /COPIES występuje po parametrze DRUGI_PLIK.TXT i odnosi się tylko do tego parametru. W tym przykładzie zostanie wydrukowany jeden egzemplarz pliku PLIK.TXT oraz dwie kopie pliku DRUGI_PLIK.TXT

Ten krótki wpis miał zaznajomić z procedurami wpisywania poleceń w DCL. W następnym wpisie pokażę przykłady tworzenia, kopiowania i usuwania plików i katalogów. Zachęcam do zainteresowania się systemem OpenVMS. Nie tylko Uniksem człowiek żyje. W poszukiwaniu informacji na temat tego systemu Google (i nie tylko) naszym przyjacielem. 

oprogramowanie porady

Komentarze

0 nowych
Demagog   4 #1 23.01.2012 12:10

Ale tak może, wiem wyjdę na barana i lamera, ale po co wpis o systemie z lat 70.
Może kolejny wpis napisz o użyteczności samego systemu i celu nauki kolejnego shella.
A tak z ciekawości to system ten jest rozwijany, czy jest martwy.
Bo jak tak to

martwy nie warty głębszej nauki

etam   9 #2 23.01.2012 18:19

@Demagog
https://en.wikipedia.org/wiki/OpenVMS

Working state: Current
Latest stable release: OpenVMS 8.4 / June 21, 2010; 18 months ago

Demagog   4 #3 23.01.2012 23:21

Ok. Zwracam honor.

Może zerknę na te cudeńko ;)
Ciekawe tylko, czy na vboxie ruszy.

  #4 24.01.2012 10:01

System jest wykorzystywany i rozwijany. Aktualna wersja to 8.4. System jest wyjątkowo stabilny i bezpieczny i dlatego używany jest przez agencje rządowe. Jest też sporo systemów billingowych i medycznych na świecie i w Polsce działających na OpenVMS.

  #5 24.01.2012 10:07

Na vbox nie ruszy ponieważ vbox nie emuluje ani procesorów Alpha ani Itanium ale istnieje klon http://www.freevms.net/ w którym można pogrzebać oraz kilka darmowych emulatorów Alphy, które umożliwiają uruchomienie OVMS (np. SIMH). Był też program community, w którym można było dostać komercyjną wersję systemu za jakieś 30$ do uruchomienia na emulatorach albo na jakimś starym serwerze Alpha z eBay.

  #6 24.01.2012 11:05

To nie jest system "pod strzechy". Jest komercyjny i nie jest tani. Jedyny, który ma prawdziwy klaster. Zastosowania jak wyżej, plus bankowość, telekomunikacja, wojsko, internet, aplikacje także dla produktów OpenSoure.
Licencje dla hobbystów: http://www.openvmshobbyist.com
Inne, poza stronami HP: http://www.openvms.org
tam się znajdzie również wersja na laptopa (do nauki)

  #7 20.07.2012 15:30

Dobry artykuł dla początkujących. THX. Pozdro