Springe zum Hauptinhalt

Archiv

Konzepte von UNIX/Linux

Shell


  1. Shells
  2. Konfiguration der Nutzerumgebung
  3. job-control

  4.  

  1. Shells
  2. Sind Programme/Kommandos wie andere UNIX-Kommandos, mit der Besonderheit, daß im Kommandomodus immer eine sog. Login-Shell aktiv ist!
    Eine Shell ist ein Kommando-Interpreter und somit auch als Programmiersprache nutzbar ( siehe Kurs Shell-Programmierung )

    • Verschiedene Shells
      • bash - GNU Bourne-Again Shell (Standard-Shell)

      • für interaktive Nutzung sowie Programmierung geeignet
      • tcsh - Turbo C-Shell

      • für interaktive Nutzung geeignet (zweite vom URZ unterstützte Shell)
        (file name expansion, command line editing)
      • csh - C-Shell

      • der Programmiersprache C angelehnte Shell
      • sh - Bourne Shell

      • für Programmierung empfohlen
      Informationen siehe  /afs/tu-chemnitz.de/www/root/urz/system/shells/shells_im_urz.html
       
    • Aktivierung/uni/global/bin/tcsh
      • automatisch über den Nutzereintrag in /etc/passwd

      • siehe letztes Feld --> /uni/global/bin/bash oder /uni/global/bin/tcsh
      • durch Aufruf eines Kommandos (hinter dem sich ein Shell-Programm verbirgt)

      • z.B.: prompt: bash
        (siehe Prozeßhierarchie)

  3. Konfiguration der Nutzerumgebung

  4.  
    • Umgebungsvariablen
    • Kommando env --> liefert aktuelle Umgebung (environment)
      z.B.: folgende Variablen gesetzt: MAIL, HOME, EDITOR, PWD, LOGNAME, TERM, ENV, ...

      Anzeigen einer Variable:  echo $MAIL $EDITOR
      --> bewirkt Variablensubstitution

      Art der Variablendefinition sowie Variablennamen sind abhängig von der verwendeten Shell (siehe Beschreibung)

      Beispiel für Variable PATH (ein Kommando wird nur in den Verzeichnissen gesucht, die in PATH angegeben sind) verändern:

      setenv PATH ${PATH}:/usr/home/privatbin    # gilt für tcsh

      PATH=${PATH}:/usr/home/privatbin               # gilt für bash

      Variable wird gesetzt oder ein Wert zugewiesen
      (ignoreeof --> EOF ignorieren (<CTRL D> ), noclobber --> Fehlermeldung, wenn bei Ausgabeumlenkung File existiert --> explizits Überschreiben mit ! nötig)
       

    • Startup-Files
    • Bei Aktivierung einer Shell können Variablen mit Standardwerten belegt werden, mit Hilfe sog. Startup-Files. Diese werden beim Programmstart (Shell-Start) gelesen/ausgwertet!
      z.B. $HOME/.login, $HOME/.cshrc, $HOME/.profile, ...

      Dieser Mechanismus wird auch für andere UNIX-Programme genutzt, wie netscape (.netscape), vi (.virc), X (.xinitrc, ...), news (.newsrc), pine (.pinerc), ...
       

    • Aufruf eines Kommandos
    • Das erste Wort einer Eingabezeile wird als Kommandoname interpretiert.
      Die Shell sucht das zugehörige ausführbare File in allen in Variable PATH definierten Verzeichnissen.

      Fehlerquellen:

      • Kommandoname falsch geschrieben
        Achtung! UNIX arbeitet case sensitiv, es wird zwischen Groß- und Kleinbuchstaben unterschieden.
      • das kommandoenthaltende Verzeichnis fehlt in Variable PATH
  5. job-control

  6.  
    • Komando job --> Anzeige der im Hintergrunf laufenden Prozesse ( siehe Pkt. Prozesse --> & )

    • Ein solcher Hintergrundprozeß kann mittels fg %id in den Vordergrund geholt werden.
      Ein im Vordergrund laufender  (Interaktivitäten blockierender) Prozeß kann mittles suspend-Signal in den Hintergrund "geschoben" werden: <CTRL Z> sowie Kommando bg (letzteres zur Aktivierung dieses Prozesses --> Einordnung in die run-queue --> Bewerbung um CPU-Ressource)

      Frame verlassen Zur Homepage des URZ
      Christoph Ziegler, letzte Änderung 25.02. 1999