Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Besonderheiten für das Arbeiten mit der POSIX-Shell

&pagelevel(3)&pagelevel

Voreinstellungen in der Benutzerumgebung

Nach erfolgreichem Zugang zum POSIX-Subsystem wird die POSIX-Shell gestartet. Bevor die POSIX-Shell ihr Bereitzeichen ausgibt, werden folgende Voreinstellungen in der Benutzerumgebung getroffen:

  • Die POSIX-Shell initialisiert die Standard-Shell-Variablen. Sie weist den folgenden Variablen ihre Standard-Werte zu: HOME, LANG, LOGNAME, MAIL, PATH, SHELL, TTY, TERM, TZ und USER.
    Falls eine Variable durch die SDF-P-Variable SYSPOSIX bereits definiert ist, wird dieser Wert genommen. Es dürfen jedoch nicht die Shell-Variablen USER, TERM, TYP, LOGNAME, HZ, HOME und MAIL vom Anwender gesetzt werden.

  • Die Datei /etc/profile wird ausgeführt.

  • Die Datei $HOME/.profile wird ausgeführt, falls Sie diese Datei angelegt haben.

Unterstützung von Terminals

POSIX unterstützt neben den im BS2000 verwendeten Blockterminals auch die an Unix-Systemen verwendeten Zeichenterminals. Diese Terminals sind an Unix-Mehrplatzsystemen angeschlossen und werden von POSIX über Netze bedient. Beim Zugriff auf POSIX über eine Workstation wird ein Zeichenterminal emuliert.

Block- und Zeichenterminals haben eine unterschiedliche Funktionsweise:

  • Bei Zeichenterminals wird jedes eingegebene Zeichen sofort an das Unix-System übertragen und von dort als Antwort auf die Eingabe an den Bildschirm übergeben und abgebildet. Kontrollfunktionen, wie Cursorbewegung, Groß-/Kleinschreibung oder Pufferung der Übertragung werden von dem Rechner durchgeführt, an dem das Terminal angeschlossen ist. Bildschirmorientierte Anwendungen sind nur an Zeichenterminals zulässig.

  • Blockterminals dagegen übergeben den gesamten am Bildschirm eingegebenen Text als Datenblock an den Rechner. Kontrollfunktionen werden im Gerät selbst durchgeführt.

Blockterminals sind direkt mit BS2000 und POSIX verbunden. Von diesem Terminaltyp aus können BS2000- und POSIX-Kommandos eingegeben werden.

Aus BS2000 Sicherheitsgründen kann über Blockterminals nur auf ein Terminal der eigenen Prozessgruppe geschrieben werden. So würde z.B. ein cp <datei> /dev/term/xxx für ein Blockterminal einer anderen LOGON-Task mit permission denied abgelehnt.

Manche Eingaben sind terminalabhängig, d.h. sie unterscheiden sich bei Block- und Zeichenterminals:

Blockterminal

Zeichenterminal

@@d

CTRL+D

@@c

CTRL+C

EM DUE

Enter

@@z

CTRL+Z

-

CTRL+S / CTRL+Q ...

Sonderfunktionen (P-Tasten, Ctrl-Taste)

Sie können die P-Tasten P3, P4 und P5 durch den Aufruf des Kommandos bs2pkey folgendermaßen belegen:

P3@@c (CTRL+C)
P4@@d (CTRL+D)
P5@@z (CTRL+Z)

Das Programm wird entweder in der POSIX-Shell (ohne Optionen) aufgerufen oder kann in die Datei /etc/profile aufgenommen werden. Dann wird das Programm bei jedem Aufruf der Shell aktiviert.

Austausch von Dateien

POSIX-Dateien enthalten keine Datensätze, sondern sind byte-orientiert. BS2000-Dateien dagegen enthalten satzorientierte und/oder PAM-Block-orientierte Daten.

POSIX behandelt Dateien standardmäßig im EBCDIC-Format, Unix-Systeme und Windows behandeln Dateien dagegen im ASCII-Format. Im POSIX-Dateisystem abgelegte ASCII-Dateien können in der POSIX-Shell nur bearbeitet werden, wenn sie vorher konvertiert wurden.

Damit POSIX- und BS2000-Dateien ausgetauscht werden können, stehen Konvertierungsroutinen von POSIX nach BS2000 und umgekehrt zur Verfügung. Es wird vom Zeichensatz EBCDIC.DF.03 in den ASCII-ISO-7-Bit-Code konvertiert und umgekehrt (siehe auch Kapitel „Tabellen und Verzeichnisse“). Die Konvertierung ist nur für Textdateien sinnvoll.

Automatische Konvertierung

Mit der Umgebungsvariable IO_CONVERSION wird gesteuert, ob Dateien beim Zugriff mit POSIX-Kommandos (z.B. awk, cat, grep...) auf montierte ASCII-Dateisysteme automatisch konvertiert werden. Standardmäßig ist die Umgebungsvariable IO_CONVERSION mit dem Wert „NO“ belegt, d.h. es erfolgt keine automatische Konvertierung. Die automatische Konvertierung wird mit folgendem Kommando eingeschaltet:

export IO_CONVERSION=YES

Falls die automatische Konvertierung für einen POSIX-Benutzer bereits beim Starten der POSIX-Shell voreingestellt sein soll, muss dieses export-Kommando in die Datei .profile im HOME-Verzeichnis dieses Benutzers eingetragen werden.

Bei Verwendung der folgenden Tools darf die automatische Konvertierung nicht eingeschaltet sein, da diese Tools selbst konvertieren:
dd, iconv, bs2cp mit Schalter -k.

Behandlung von Archiven/Bibliotheken:
ar konvertiert nicht automatisch, da ar-Bibliotheken oft binäre Daten enthalten.

pax und tar konvertieren automatisch. Ein pax- oder tar-Archiv darf jedoch nicht mit cp kopiert werden, wenn die automatische Konvertierung eingeschaltet ist.

Bild 4: Austausch von Dateien

  • Dateien von POSIX nach BS2000 übertragen (aus Sicht der POSIX-Shell):

    Mit dem POSIX-Kommando bs2cp übertragen Sie Dateien von POSIX nach BS2000. Sie müssen nicht die Option -k angeben, wenn in beiden Dateisystemen die Dateien im EBCDIC-Zeichensatz vorliegen.

    Zusätzlich können Sie für die BS2000-Datei noch Dateiattribute bestimmen. Dazu müssen Sie vor dem „Kopier“kommando bs2cp mit dem POSIX-Kommando bs2file die BS2000-Dateiattribute festlegen. bs2file wird auf das BS2000-Kommando SET-FILE-ATTRIBUTES abgebildet.

  • Dateien von BS2000 nach POSIX übertragen (aus Sicht der POSIX-Shell):

    Mit dem POSIX-Kommando bs2cp übertragen Sie Dateien von BS2000 nach POSIX. Sie müssen nicht die Option -k angeben, wenn in beiden Dateisystemen die Dateien im EBCDIC-Zeichensatz vorliegen.
    Abhängig von der Art der BS2000-Datei (SAM, ISAM oder PAM) ist folgendes zu berücksichtigen:

  • PAM-Dateien werden immer binär abgelegt.

  • ISAM-Dateien werden generell als Textdateien im POSIX-Dateisystem abgelegt.

  • Bei SAM-Dateien und LMS-Elementen (Typ S, J, X ,D) können Sie wählen, ob die Datei/das Element als Textdatei, als Binärdatei oder als binäre Textdatei im POSIX-Dateisystem hinterlegt wird. Dazu müssen Sie vor dem Kopierkommando bs2cp noch die Bearbeitungsart der Datei mit dem POSIX-Kommando ftyp festlegen.

  • Zur Konvertierung innerhalb eines POSIX-Dateisystems dient das POSIX-Kommando iconv. Es werden die Datei-Inhalte konvertiert.