Springe zum Hauptinhalt

Archiv
next up previous contents
Next: Standard- E/A und Fileumlenkung Up: Bourne-Shell als Kommando- und Previous: Literaturverzeichnis

Kommandos

  • Kommando: Auftrag an das System zur Ausführung einer Funktion. Im Normalfall resultiert hieraus die Ausführung eines Programmes, nur wenige Funktionen sind fest in der Shell ,,verdrahtet`` (built-in-commands).
  • Kommandoaufruf: Folge von ein oder mehreren Worten, die untereinander durch Leerzeichen oder Tabulatorzeichen getrennt sind


    cmd_name [arg1 ... argn ]


    wobei cmd_name den Namen des Kommandos (d.h. des aufzurufenden Programmes) angibt und die restlichen Worte (falls vorhanden) die Kommandoargumente spezifizieren, d.h. zusätzlich Informationen an das Programm übergeben

    • Beispiele:
      $ ls              Listen der Filenamen im aktuellen Verzeichnis
      kap01.tex
      kap02.tex
      kap03.tex
      kap04.tex
      kap05.tex
      abbildungen
      $
      $ ls -l          "lange Liste"
      total 106
      -rw-rw----   1 stb      urz      1802 Feb 23 13:41 kap01.tex
      -rw-rw----   1 stb      urz      4681 Feb 23 14:25 kap02.tex
      -rw-rw----   1 stb      urz      4165 Feb 23 13:29 kap03.tex
      -rw-rw----   1 stb      urz      2898 Feb 23 13:26 kap04.tex
      -rw-rw----   1 stb      urz      3101 Feb 23 13:26 kap05.tex
      drwxrwx---   1 stb      urz       512 Feb  9 16:20 abbildungen
      $
      $ ls abbildungen
      bild01.fig
      bild02.fig
      bild03.fig
      bild04.fig
      bild05.fig
      bild06.fig
      bild07.fig
      $ vi kap01.tex
      
  • Mehrere Kommandos können durch Semikolon auf einer Zeile eingegeben werden, sie werden sequentiell nacheinander abgearbeitet:
    $ cd sort; pg sort.c sort.h subr.c; cd
    
  • Bemerkungen:
    • Arbeitsweise der Shell
    • Argumente werden an das Programm durchgereicht
    • ,,Prompt``-Zeichen
  • Hintergrundprozesse
    $ cmd &          
               
    $ cmd1 & cmd2   $\Rightarrow$ cmd1   als Hintergrundprozeß
               
          cmd2   als Vordergrundprozeß
    • Beispiele:
      $ cc prog.c &
      632
      $ ps
        PID TT STAT  TIME COMMAND
        630 p3 S     0:00 sh
        632 p3 S     0:00 cc prog.c
        634 p3 R     0:00 ps
      $
      $ ls & ps
      652
      kap01.tex
      kap02.tex
      kap03.tex
      kap04.tex
      kap05.tex
      kap06.tex
      kap07.tex
      kap08.tex
      kap09.tex
      prog.c
        PID TT STAT  TIME COMMAND
        640 p4 S     0:00 /usr/openwin/bin/xview/shelltool
        641 p4 IW    0:00 -bin/csh (csh)
        643 p4 IW    0:00 -sh -c umask 006; cd ~bur;newgrp urzbur (csh)
        645 p4 S     0:00 -bin/csh (csh)
        651 p4 S     0:00 sh
        652 p4 R     0:00 ls
        653 p4 R     0:00 ps
         
      $ ps & ls
      654
      kap01.tex
      kap02.tex
      kap03.tex
      kap04.tex
      kap05.tex
      kap06.tex
      kap07.tex
      kap08.tex
      kap09.tex
      prog.c
        PID TT STAT  TIME COMMAND
        640 p4 S     0:02 /usr/openwin/bin/xview/shelltool
        641 p4 IW    0:00 -bin/csh (csh)
        643 p4 IW    0:00 -sh -c umask 006; cd ~bur;newgrp urzbur (csh)
        645 p4 IW    0:00 -bin/csh (csh)
        651 p4 S     0:00 sh
        654 p4 R     0:00 ps
      $
      
    • Bemerkungen:
      • Simultane Kommandoausführung
      • während der Verarbeitung eines Vordergrundkommandos ,,schläft`` die Shell
      • Prozeßnummer des Hintergrundprozesses $\Rightarrow$ Abbruch möglich
      • (evtl.) ,,gemischte`` Ausgaben am Terminal
      • vermeiden: Terminaleingabe für Hintergrundprogramm
        Beispiel: (evtl.) folgendes Script inputst ausführen lassen:
        $ cat inputtst
        
        :
        #
        while true
        do
            echo -n "Soll die Verarbeitung fortgesetzt werden? [j/n]:"
            read ans
            case $ans in
                j|J)    echo JA;continue;;
                n|N)    echo NEIN;break;;
                  *)    echo $ans : FEHLERHAFTE EINGABE;continue;;
            esac
        done
        
        $ inputtst
        soll die Verarbeitung fortgesetzt werden? [j/n]:j
        JA
        Soll die Verarbeitung fortgesetzt werden? [j/n]:n
        NEIN
        $
        $ inputtst & 
        
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
        soll die Verarbeitung fortgesetzt werden? [j/n]:: FEHLERHAFTE EINGABE
         ...
        

next up previous contents
Next: Standard- E/A und Fileumlenkung Up: Bourne-Shell als Kommando- und Previous: Literaturverzeichnis
  • Ki generiertes Bild

    Offen für Argumente geht in die zweite Runde

    Online-Debattenformat der Juniorprofessur Soziologie der TU Chemnitz thematisiert am 10. September 2025 die Rolle der Solarenergie im Zuge der Energiewende …

  • Gruppe vieler Menschen

    Let's run #TUCgether!

    Zum Jubiläum des Chemnitzer Firmenlaufs gingen 266 Laufbegeisterte für die TU Chemnitz an den Start …

  • Menschen stehen vor einer Leinwand

    Erfolgreiche Summer School an der TU Chemnitz

    Professur Medienpsychologie und die Hochschulallianz Across begrüßten zur Summer School „How much science is in science fiction?“ medienbegeisterte Nachwuchswissenschaftlerinnen und -wissenschaftler aus neun verschiedenen Ländern …

  • Menschen stehen vor einem Haus

    Als Azubi an die Uni? Ja, klar!

    Kanzler der TU Chemnitz begrüßte neue Auszubildende und gratulierte Absolventinnen und Absolventen zum erfolgreichen Berufsabschluss – TU Chemnitz bildet aktuell in zehn Berufen aus …