SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Downloaden Sie, um offline zu lesen
Grundlagen der Kommandozeile unter
            Unix/Linux

          Dr. Kerstin Puschke

           Workshop, Uni Salzburg


           September 2009




            K. Puschke   Kommandozeilengrundlagen
Lizenz




  Lizenz
  Dieser Text steht unter einer Creative Commons
  Attribution-Share Alike 3.0 Germany Lizenz, siehe
  http://creativecommons.org/licenses/by-sa/3.0/de/




                         K. Puschke   Kommandozeilengrundlagen
Teil I: Einführung



  1   Unix, Linux, . . .

  2   Linux Grundlagen

  3   Warum die Kommandozeile nutzen?




                           K. Puschke   Kommandozeilengrundlagen
Teil II: Erste Schritte




  4   Wie komme ich auf die Kommandozeile?

  5   Erste Befehle




                          K. Puschke   Kommandozeilengrundlagen
Teil III: Dateien und Verzeichnisse verwalten




  6   Unterwegs im Verzeichnisbaum

  7   Anlegen, Entfernen, Verschieben, Kopieren




                         K. Puschke   Kommandozeilengrundlagen
Teil IV: Arbeiten mit der Shell



  8    Befehlssyntax - Argumente und Optionen

  9    Unterstützung bei der Arbeit

  10   Programme steuern




                           K. Puschke   Kommandozeilengrundlagen
Teil V: Inhalt von Textdateien



  11   Inhalte ausgeben

  12   Inhalte bearbeiten

  13   Inhalte durchsuchen - Reguläre Ausdrücke




                            K. Puschke   Kommandozeilengrundlagen
Teil VI: Ein- und Ausgabe




  14   Ein- und Ausgabe




                          K. Puschke   Kommandozeilengrundlagen
Teil VII: Dateien und Verzeichnisse verwalten II




  15   Rechteverwaltung

  16   Links




                          K. Puschke   Kommandozeilengrundlagen
Unix, Linux, . . .
              Linux Grundlagen
Warum die Kommandozeile nutzen?




                                Teil I

                         Einführung




                       K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .
                            Linux Grundlagen
              Warum die Kommandozeile nutzen?


Einführung



  1   Unix, Linux, . . .

  2   Linux Grundlagen

  3   Warum die Kommandozeile nutzen?




                                     K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .
                        Linux Grundlagen
          Warum die Kommandozeile nutzen?


Unix, Linux und Verwandte




     zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . .
     viele Gemeinsamkeiten in der Anwendung
     Kurs fokussiert auf Linux
     das meiste ist übertragbar




                                 K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                            Linux Grundlagen        Verzeichnisbaum
              Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Einführung


  1   Unix, Linux, . . .

  2   Linux Grundlagen
         Multi-User System
         Verzeichnisbaum
         Komponenten eines Linux-Systems

  3   Warum die Kommandozeile nutzen?




                                     K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                        Linux Grundlagen        Verzeichnisbaum
          Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Multi-User System




     gleichzeitig von mehreren nutzbar
     getrennte Bereiche (Einstellungen, Anwendungsdaten etc.)
     strikte Trennung von Anwendung und Administration




                                 K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                         Linux Grundlagen        Verzeichnisbaum
           Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Verzeichnisbaum
     keine Laufwerksbuchstaben
     Wurzel (root) ist oben, Verzeichnis /
     Verzeichnis in Pfadangaben durch / getrennt:
     /home/alice/linuxkurs
     /
        /bin
        /boot
        /dev
        /etc
        /home
           /home/alice
           /home/bob
              /home/bob/linuxkurs
           /home/carol
        /lib
        ...              K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                        Linux Grundlagen        Verzeichnisbaum
          Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Verzeichnisbaum II


     jeder user hat eigenes Homeverzeichnis
         i.d.R. /home/<username>, z.B. /home/alice
         eigene Dateien und Einstellungen
     externe Geräte (z.B. USB-Sticks, externe Festplatten)
         werden in Verzeichnisbaum eingehängt (mount)
         benutzbar wie andere Verzeichnisse
     root bezeichnet
         das Wurzelverzeichnis /,
         den Administrations-Account,
         das Homeverzeichnis des Administrations-Accounts
         (oft /root)



                                 K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                       Linux Grundlagen        Verzeichnisbaum
         Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Komponenten


    Betriebssystem (Operating System, OS)
        Kernel (Hardwareverwaltung)
        System- und Dienstprogramme
        (Hardwarenahe Konfiguration,. . . )
    Schnittstelle (User Interface, UI)
        GUI (Graphical User Interface, grafische Oberfläche)
        CLI (Command Line Interface, Kommandozeile, Shell)
    Anwendungen
        grafisch
        kommandozeilenbasiert
    strikte Trennung zwischen OS und UI



                                K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                           Linux Grundlagen        Verzeichnisbaum
             Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Shell



        Schnittstelle zum Betriebssystem
        Vielzahl von shells existiert, z.B.
            sh Bourne Shell
            bash Bourne Again Shell (im Kurs verwendet)
            csh, tcsh,. . .
        eingetippte Befehle werden sofort ausgeführt
            Anwendungen ausführen/starten
            shell-eigene Befehle
            shell-eigene Programmiersprache




                                    K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .   Multi-User System
                         Linux Grundlagen        Verzeichnisbaum
           Warum die Kommandozeile nutzen?       Komponenten eines Linux-Systems


Philosophie




  Für jede Aufgabe das passende Programm
     kleine, spezialisierte Tools statt riesiger
     rundum-sorglos-Programme
     flexibel kombinierbar




                                  K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .
                            Linux Grundlagen
              Warum die Kommandozeile nutzen?


Einführung



  1   Unix, Linux, . . .

  2   Linux Grundlagen

  3   Warum die Kommandozeile nutzen?




                                     K. Puschke     Kommandozeilengrundlagen
Unix, Linux, . . .
                        Linux Grundlagen
          Warum die Kommandozeile nutzen?


Warum die Kommandozeile nutzen?


     keine grafische Oberfläche nutzbar
         nicht installiert (z.B. Server)
         nicht benutzbar (abgestürzt, kaputtkonfiguriert,. . . )
     Anwendung existiert “nur” für Kommandozeile
     Anwendungen interaktiv kombinieren
     Ressourcen schonen, Bootvorgang verkürzen
     Effizienz und Arbeitsersparnis
         Beispiel: kopiere aus einem Verzeichnis mit 1000 Dateien
         diejenigen, deren Name “salzburg” enthält




                                 K. Puschke     Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                         Erste Befehle




                                   Teil II

                         Erste Schritte




                           K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                   Erste Befehle


Erste Schritte




  4   Wie komme ich auf die Kommandozeile?

  5   Erste Befehle




                                     K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                  Erste Befehle


Auf die Kommandozeile wechseln

  Aus GUI heraus
      Terminal bzw. Konsole starten
      zusätzliche Sitzung ohne GUI starten
           STRG+ALT+F1
           weitere Sitzungen mit STRG+ALT+F2, STRG+ALT+F3,. . .
           zurück zur grafischen Sitzung: STRG+ALT+F7

  Schon da?
     Eingabeaufforderung (Prompt) erscheint, z.B.
     kpuschke@localhost:˜
      ggf. in die bash wechseln


                                    K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                   Erste Befehle


Erste Schritte




  4   Wie komme ich auf die Kommandozeile?

  5   Erste Befehle




                                     K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                    Erste Befehle


Vorsicht




  Achtung
  Groß- und Kleinschreibung sowie Leerzeichen sind relevant!




                                      K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                 Erste Befehle


Erste Befehle




     whoami - Wer bin ich? Mit welchem username bin ich
     eingeloggt?
     hostname - Auf welchem Rechner befinde ich mich?
     pwd - In welchem Verzeichnis bin ich? (print working
     directory)




                                   K. Puschke    Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?
                                Erste Befehle


Aufgaben




  Erste Schritte
  pwd, whoami, hostname




                                  K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
Anlegen, Entfernen, Verschieben, Kopieren




                                     Teil III

  Dateien und Verzeichnisse verwalten




                              K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                  Unterwegs im Verzeichnisbaum
                                                    Pfadangaben
        Anlegen, Entfernen, Verschieben, Kopieren
                                                    Verzeichnisinhalt ausgeben


Dateien und Verzeichnisse verwalten



  6   Unterwegs im Verzeichnisbaum
        Verzeichnis wechseln
        Pfadangaben
        Verzeichnisinhalt ausgeben

  7   Anlegen, Entfernen, Verschieben, Kopieren




                                      K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Navigation im Verzeichnisbaum




  Verzeichnis wechseln
  cd VERZEICHNIS - change directory




                                     K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Aufgaben




  Verzeichnis wechseln
  cd, Pfadangaben




                                     K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                Unterwegs im Verzeichnisbaum
                                                  Pfadangaben
      Anlegen, Entfernen, Verschieben, Kopieren
                                                  Verzeichnisinhalt ausgeben


Verzeichnis wechseln




     cd VERZEICHNIS
     wechselt in Verzeichnis <Verzeichnis>
     cd
     wechselt ins eigene Homeverzeichnis
     cd -
     wechselt ins vorher benutzte Verzeichnis




                                    K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
               Unterwegs im Verzeichnisbaum
                                                 Pfadangaben
     Anlegen, Entfernen, Verschieben, Kopieren
                                                 Verzeichnisinhalt ausgeben


Pfadangaben



    absoluter Pfad
         beginnt im Rootverzeichnis /
         Beispiel: /home/alice/linuxkurs/aufgaben
    relativer Pfad
         relativ zum aktuellen Verzeichnis
         beginnt ohne “/”
         aktuelles Verzeichnis: .
         nächsthöheres Verzeichnis: ..




                                   K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Pfadangaben - Beispiele

  Ausgehend von /home/alice/linuxkurs/ entsprechen
  sich jeweils

  aufgaben
  ./aufgaben
  /home/alice/linuxkurs/aufgaben

  ../mysqlkurs/aufgaben
  /home/alice/mysqlkurs/aufgaben

  ../../bob/linuxkurs
  /home/bob/linuxkurs


                                     K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                  Unterwegs im Verzeichnisbaum
                                                    Pfadangaben
        Anlegen, Entfernen, Verschieben, Kopieren
                                                    Verzeichnisinhalt ausgeben


Verzeichnisinhalt




  Verzeichnisinhalt ausgeben
  ls VERZEICHNIS
  list directory contents (historisch: list segment)




                                      K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Aufgaben




  Verzeichnisinhalt ausgeben
  ls




                                     K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Verzeichnisinhalt


     ls VERZEICHNIS
     Inhalt von <Verzeichnis>
     ls
     Inhalt des aktuellen Verzeichnisses
     ls - -all VERZEICHNIS
     ls -a <Verzeichnis>
     auch versteckte Dateien anzeigen
     (Dateiname beginnt mit .)
     ls -l VERZEICHNIS
     ls - -format=long <Verzeichnis>
     long format, mehr Infos


                                     K. Puschke    Kommandozeilengrundlagen
Verzeichnis wechseln
                 Unterwegs im Verzeichnisbaum
                                                   Pfadangaben
       Anlegen, Entfernen, Verschieben, Kopieren
                                                   Verzeichnisinhalt ausgeben


Verzeichnisinhalt - ls -l

  -rw-r- -r- - 1 alice users 2472 2009-03-14 17:54
  kurs.txt
  drwxr-xr-x 2 alice users 4096 2009-05-23 10:06
  Videos
     Rechte
     Anzahl hard links (Datei) oder
     Unterverzeichnisse (Verzeichnis)
     owner
     group
     Grösse in Bytes
     letzte Änderung
     Name

                                     K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
        Anlegen, Entfernen, Verschieben, Kopieren


Dateien und Verzeichnisse verwalten




  6   Unterwegs im Verzeichnisbaum

  7   Anlegen, Entfernen, Verschieben, Kopieren




                                      K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
      Anlegen, Entfernen, Verschieben, Kopieren


Anlegen und Entfernen

  Anlegen
      mkdir VERZEICHNIS
      make directory
     touch DATEI
     Datei anlegen (bei vorhandener Datei: timestamp setzen)

  Entfernen
      rm DATEI
      remove
     rmdir VERZEICHNIS
     remove directory (entfernt leeres Verzeichnis)
     rm -r VERZEICHNIS
     entfernt Verzeichnis samt Inhalt
                                    K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
      Anlegen, Entfernen, Verschieben, Kopieren


Kopieren, Verschieben, Umbenennen


  Verschieben und Umbenennen
  mv QUELLDATEI ZIELDATEI
  mv DATEI(EN) VERZEICHNIS
  mv QUELLVERZEICHNIS ZIELVERZEICHNIS
  move

  Kopieren
  cp QUELLDATEI ZIELDATEI
  cp DATEI(EN) VERZEICHNIS
  cp -r QUELLVERZEICHNIS ZIELVERZEICHNIS
  copy



                                    K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
        Anlegen, Entfernen, Verschieben, Kopieren


Vorsicht




  Warnung
  U.U. wird ohne Rückfrage gelöscht oder überschrieben!




                                      K. Puschke    Kommandozeilengrundlagen
Unterwegs im Verzeichnisbaum
       Anlegen, Entfernen, Verschieben, Kopieren


Aufgaben




  Dateien und Verzeichnisse
  Anlegen, Entfernen, Kopieren, Verschieben, Umbenennen




                                     K. Puschke    Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
            Unterstützung bei der Arbeit
                    Programme steuern




                                   Teil IV

                 Arbeiten mit der Shell




                            K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                       Unterstützung bei der Arbeit
                               Programme steuern


Arbeiten mit der Shell



  8    Befehlssyntax - Argumente und Optionen

  9    Unterstützung bei der Arbeit

  10   Programme steuern




                                       K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                  Unterstützung bei der Arbeit
                          Programme steuern


Argumente


    Befehle können auf Argumente wirken
    manche Befehle verarbeiten keine Argumente
    z.B. pwd
    manche Argumente sind zwingend
    z.B. Verzeichnisname bei mkdir
    manche Argumente sind optional
    z.B. Verzeichnis bei cd oder
    zweiter Verzeichnisname bei mkdir
    ggf. mehrere Argumente erforderlich
    z.B. Quelle und Ziel bei mv



                                  K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                   Unterstützung bei der Arbeit
                           Programme steuern


Optionen

     Verändern die Wirkung von Befehlen
     rm -r
     Syntax uneinheitlich, gängig sind
           einzelner Buchstabe mit minus davor
           rm -r kurs
           Wort mit doppeltem minus
           rm - -recursive kurs
           Key-Value mit =
           rm - -interactive=always
     teilweise auch nur mit einfachem minus
     Optionen können z.T. kombiniert werden
           oft kann dann abgekürzt werden
           ls -al statt ls -a -l


                                   K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                    Unterstützung bei der Arbeit
                            Programme steuern


Aufgaben




  Befehlssyntax und Arbeitsweisen
  Befehle, Optionen und Argumente, praktische Tips




                                    K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                      Unterstützung bei der Arbeit   Hilfe finden
                              Programme steuern      Wildcards und Klammererweiterung


Arbeiten mit der Shell


  8    Befehlssyntax - Argumente und Optionen

  9    Unterstützung bei der Arbeit
         Arbeitserleichterungen
         Hilfe finden
         Wildcards und Klammererweiterung

  10   Programme steuern




                                      K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                   Unterstützung bei der Arbeit   Hilfe finden
                           Programme steuern      Wildcards und Klammererweiterung


Arbeitserleichterungen



     Blättern mit Shift+PageUp/Down
     Befehlshistorie mit Cursortasten
     Vervollständigung mit Tab
     Copy & Paste:
          Markieren & per mittlerer Maustaste einfügen
          im Terminal oft: STRG+Shift+C, STRG+Shift+V




                                   K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                          Unterstützung bei der Arbeit   Hilfe finden
                                  Programme steuern      Wildcards und Klammererweiterung


Hilfe


        Befehlssyntax abfragen:
        Optionen -h oder - -help
        manpage
        man befehl
        info befehl
        perldoc, texdoc,...
        ...
        Notation: Angaben in eckigen Klammern sind optional




                                          K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                   Unterstützung bei der Arbeit   Hilfe finden
                           Programme steuern      Wildcards und Klammererweiterung


Klammererweiterung




     Ausdruck in geschweiften Klammern wird zu mehreren
     Dateinamen erweitert
     cp /home/alice/{foo,bar} neuerordner
     entspricht
     cp /home/alice/foo /home/alice/bar
     neuerordner




                                   K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                   Unterstützung bei der Arbeit   Hilfe finden
                           Programme steuern      Wildcards und Klammererweiterung


Wildcards

     Platzhalter für Dateioperationen
     Beispielanwendung: Lösche alle Dateien, deren Name mit
     linux beginnt
     je nach shell: ˜ expandiert zum eigenen Homeverzeichnis
     ˜ /linuxkurs entspricht
     /home/<mein_username>/linuxkurs
     ? - genau ein beliebiges Zeichen
     * - beliebig viele beliebige Zeichen
     ! - Verneinung
     [] - Characterclass (“oder”)
     versteckte Dateien werden ggf. ignoriert


                                   K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                          Unterstützung bei der Arbeit   Hilfe finden
                                  Programme steuern      Wildcards und Klammererweiterung


Wildcards
Beispiele




            * - alle Dateien, die nicht versteckt sind
            .* - alle versteckten Dateien
            f* - alle Dateien, deren Name mit f beginnt
            f?o - z.B. foo,flo,f.o
            f[ol]o - foo und flo
            f[!l]o - foo, fio,... aber nicht flo
            [0-9]* - Dateiname beginnt mit Ziffer




                                          K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                     Unterstützung bei der Arbeit   Hilfe finden
                             Programme steuern      Wildcards und Klammererweiterung


Aufgaben




  Arbeitserleichterungen und Hilfe/Doku
  Wildcards, Klammererweiterung, manpages




                                     K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen     Arbeitserleichterungen
                       Unterstützung bei der Arbeit   Hilfe finden
                               Programme steuern      Wildcards und Klammererweiterung


Wildcards
Gefahren




   Welche Dateien werden gelöscht?
   rm -rf .*

   Vorsicht!
   In Kombination mit -r paßt .* auf ../*, d.h. auch auf
   höhergelegende Verzeichnisse!




                                       K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                       Unterstützung bei der Arbeit
                               Programme steuern


Arbeiten mit der Shell



  8    Befehlssyntax - Argumente und Optionen

  9    Unterstützung bei der Arbeit

  10   Programme steuern




                                       K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                       Unterstützung bei der Arbeit
                               Programme steuern


Programme steuern
Starten und Beenden




        Programm starten mit zugehörigem Befehl
        emacs
              Programm im Vordergrund (Shell “blockiert”)
        Programm im Hintergrund starten mit &
        emacs &
              Shell nicht “blockiert”
        Programm beenden
              mit programm-eigenem Befehl
              STRG+C




                                       K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                   Unterstützung bei der Arbeit
                           Programme steuern


Programme steuern



     Programm im Vordergrund anhalten/unterbrechen
     STRG+Z
     im Vordergrund weiterlaufen lassen
     fg
     im Hintergrund weiterlaufen lassen
     bg
     was läuft im Hintergrund?
     jobs




                                   K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                     Unterstützung bei der Arbeit
                             Programme steuern


Programme steuern




  Hinweis
  Die Darstellung der Programmsteuerung ist sehr vereinfacht.
  Wer mehr wissen möchte, sollte sich über Prozesse und
  Threads informieren.




                                     K. Puschke     Kommandozeilengrundlagen
Befehlssyntax - Argumente und Optionen
                    Unterstützung bei der Arbeit
                            Programme steuern


Aufgaben




  Programme steuern
  Aufrufen, Unterbrechen, Beenden, Vorder- und Hintergrund




                                    K. Puschke     Kommandozeilengrundlagen
Inhalte ausgeben
                       Inhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke




                                     Teil V

                  Inhalt von Textdateien




                              K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                                 Inhalte bearbeiten
          Inhalte durchsuchen - Reguläre Ausdrücke


Inhalt von Textdateien



  11   Inhalte ausgeben

  12   Inhalte bearbeiten

  13   Inhalte durchsuchen - Reguläre Ausdrücke




                                        K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                              Inhalte bearbeiten
       Inhalte durchsuchen - Reguläre Ausdrücke


Textdatei ausgeben



     cat gibt Inhalt der Datei aus
     less oder more zum Durchblättern (pager )
     head gibt Anfang der Datei aus
     tail gibt Ende der Datei aus
     sort sortierte Ausgabe
     wc word count - Zeichen, Zeilen oder Wörter zählen




                                     K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                                 Inhalte bearbeiten
          Inhalte durchsuchen - Reguläre Ausdrücke


Inhalt von Textdateien



  11   Inhalte ausgeben

  12   Inhalte bearbeiten

  13   Inhalte durchsuchen - Reguläre Ausdrücke




                                        K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                              Inhalte bearbeiten
       Inhalte durchsuchen - Reguläre Ausdrücke


Textdatei bearbeiten




     klein und einfach: nano, pico
     mittelklasse: joe, jed
     komplex, aber mächtig: emacs, vim
     auf lange Sicht lohnend, einen mächtigen Editor zu
     beherrschen




                                     K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                                 Inhalte bearbeiten
          Inhalte durchsuchen - Reguläre Ausdrücke


Inhalt von Textdateien



  11   Inhalte ausgeben

  12   Inhalte bearbeiten

  13   Inhalte durchsuchen - Reguläre Ausdrücke




                                        K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                                  Inhalte bearbeiten
           Inhalte durchsuchen - Reguläre Ausdrücke


Reguläre Ausdrücke
Zur Suche in Text




         Platzhalter
               . - ein beliebiges Zeichen
               f.o passt auf foo,flo,f9o aber nicht fouo
               [mehrereZeichen] - eines der genannten Zeichen
               f[aei]o passt auf fao, feo, fio aber nicht faeo
         Wiederholungen
               * - beliebig oft (oder gar nicht)
               fo* passt auf foo, fooo, f, fooooooo
               ? - einmal oder gar nicht
               fo?a passt auf fa, foa, aber nicht fooa




                                         K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                              Inhalte bearbeiten
       Inhalte durchsuchen - Reguläre Ausdrücke


Dateien durchsuchen
grep




   Dateien durchsuchen
   grep SUCHMUSTER DATEI(EN)

   Beispiel
   grep bash kursmaterial.txt
   grep ’alice and bob’ /home/alice
   grep ali.* bob.txt




                                     K. Puschke    Kommandozeilengrundlagen
Inhalte ausgeben
                               Inhalte bearbeiten
        Inhalte durchsuchen - Reguläre Ausdrücke


Aufgaben




  Textdateien
  Inhalte von Textdateien ausgeben und ändern, Textdateien
  durchsuchen, Reguläre Ausdrücke




                                      K. Puschke    Kommandozeilengrundlagen
Ein- und Ausgabe




            Teil VI

Ein- und Ausgabe




     K. Puschke    Kommandozeilengrundlagen
Tastatureingabe
                      Ein- und Ausgabe   Ein- und Ausgabe umleiten
                                         Deskriptoren


Ein- und Ausgabe




  14   Ein- und Ausgabe
          Tastatureingabe
          Ein- und Ausgabe umleiten
          Deskriptoren




                           K. Puschke    Kommandozeilengrundlagen
Tastatureingabe
                         Ein- und Ausgabe   Ein- und Ausgabe umleiten
                                            Deskriptoren


Tastatureingabe
Statt Datei einzulesen




         statt Dateinamen - verwendet (je nach Befehl)
         sort -
         Dateinamen weggelassen (je nach Befehl)
         wc
         shell erwartet nun Tastatureingabe
         STRG+d entspricht Dateiende




                              K. Puschke    Kommandozeilengrundlagen
Tastatureingabe
                    Ein- und Ausgabe   Ein- und Ausgabe umleiten
                                       Deskriptoren


Ein- und Ausgabe umleiten


     > - Ausgabe in Datei schreiben
         ls /home/alice/ > alicekram.txt
         vorhandene Datei wird überschrieben
     >> - Ausgabe an Datei anhängen
     | - Pipe: Ausgabe eines Kommandos als Eingabe eines
     weiteren Kommandos
         ls /home/alice | grep bob
     < - Eingabe aus Datei lesen
         sort < foo.txt
         mysql < dump.sql
     nach /dev/null geleitet: unwiderbringlich verschwunden



                         K. Puschke    Kommandozeilengrundlagen
Tastatureingabe
                     Ein- und Ausgabe   Ein- und Ausgabe umleiten
                                        Deskriptoren


Datenströme mit Deskriptoren umleiten

  Datenkanäle
   Kanal                                  Deskriptor            default
   Standardeingabe (stin)                 0                     Tastatur
   Standardausgabe (stdout)               1                     Bildschirm
   Standardfehlerausgabe (stderr)         2                     Bildschirm

      Kanal umleiten: n>
      mv foo bar 2>error.err
      Kanäle bündeln: n>m&
      sort foo 2> bar.txt 1>2&
      erst umleiten, dann bündeln


                          K. Puschke    Kommandozeilengrundlagen
Tastatureingabe
                     Ein- und Ausgabe   Ein- und Ausgabe umleiten
                                        Deskriptoren


Aufgaben




  Ein- und Ausgabe
  Ein- und Ausgabe umleiten, Deskriptoren




                          K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                     Links




                     Teil VII

Dateien und Verzeichnisse verwalten II




               K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                 Links


Dateien und Verzeichnisse verwalten II




  15   Rechteverwaltung

  16   Links




                           K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                     Links


Dateirechte
Was für Rechte gibt es




         Dateien
              r - lesen (read)
              w - schreiben (write)
              x - ausführen (execute)
         Verzeichnisse
              r - Verzeichnisinhalt auslesen
              w - ins Vezeichnis schreiben
              x - ins Verzeichnis wechseln




                               K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                    Links


Dateirechte
Wer hat Rechte?




        user sind in Gruppen groups organisiert
        jede Datei hat einen user als owner
        zu jeder Datei gehört eine Gruppe
        unterschiedliche Rechte für
             user (u) (d.h. owner)
             group (g)
             others (o)




                              K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                     Links


Dateirechte
Notation




           nacheinander für owner, group, others
           - bedeutet: Recht nicht gegeben
           Beispiel: rwxr-xr-x
           owner darf r, w und x, group und others nur r und x




                               K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                               Links


Dateirechte ändern



  Rechte ändern
  chmod MODUS DATEI(EN)

     Wer (ugo) bekommt/verliert (+-) welche Rechte (rwx)?
         chmod ug+r foo.txt
         user und group erhalten Leserechte
         chmod o-w bar.txt
         others verlieren Schreibrechte




                         K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                Links


Aufgaben




  Dateirechte
  Dateirechte verwalten




                          K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                 Links


Dateien und Verzeichnisse verwalten II




  15   Rechteverwaltung

  16   Links




                           K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                      Links


Links
hard links und sym links




         hard link : mehrere Namen für eine Datei
               viele Stolperfallen
         symbolic link, sym link, soft link : Pointer auf einen Namen
               verlinkte Datei/Verzeichnis verschoben/gelöscht: kein
               update des links
               sym link kann andere Rechte haben als verlinkte
               Datei/Verzeichnis
               sehr praktisch im Alltag




                                K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                                  Links


Sym Links




  sym link anlegen
  ln -s ZIEL LINKNAME

  sym link entfernen
  rm LINKNAME




                            K. Puschke    Kommandozeilengrundlagen
Rechteverwaltung
                        Links


Aufgaben




  Links
  Symlinks




                  K. Puschke    Kommandozeilengrundlagen

Weitere ähnliche Inhalte

Was ist angesagt?

Markus schwer jufo
Markus schwer jufoMarkus schwer jufo
Markus schwer jufoMarkusJufo
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeNETWAYS
 
Arbeiten Mit Dateien Linux
Arbeiten Mit Dateien LinuxArbeiten Mit Dateien Linux
Arbeiten Mit Dateien Linuxheiko.vogl
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingB1 Systems GmbH
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeNETWAYS
 
Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenB1 Systems GmbH
 

Was ist angesagt? (6)

Markus schwer jufo
Markus schwer jufoMarkus schwer jufo
Markus schwer jufo
 
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas LangeOSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
 
Arbeiten Mit Dateien Linux
Arbeiten Mit Dateien LinuxArbeiten Mit Dateien Linux
Arbeiten Mit Dateien Linux
 
Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas LangeOSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
OSDC 2011 | FAI - Fully Automatic Installation by Thomas Lange
 
Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreiben
 

Ähnlich wie Grundlagen der Kommandozeile unter Unix/Linux (Folien)

Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Buch des jungen Kämpfers mit AIX V6 - Teil 02
Buch des jungen Kämpfers mit AIX V6 - Teil 02Buch des jungen Kämpfers mit AIX V6 - Teil 02
Buch des jungen Kämpfers mit AIX V6 - Teil 02Andrey Klyachkin
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBrigitte Jellinek
 
Unixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixUnixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixHannes Planatscher
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...NETWAYS
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet B1 Systems GmbH
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with AnsibleSusannSgorzaly
 
freiesMagazin 09-2011
freiesMagazin 09-2011freiesMagazin 09-2011
freiesMagazin 09-2011storminator
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsChristoph Adler
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceB1 Systems GmbH
 
Froxlor
FroxlorFroxlor
FroxlorDerChb
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 

Ähnlich wie Grundlagen der Kommandozeile unter Unix/Linux (Folien) (20)

Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Buch des jungen Kämpfers mit AIX V6 - Teil 02
Buch des jungen Kämpfers mit AIX V6 - Teil 02Buch des jungen Kämpfers mit AIX V6 - Teil 02
Buch des jungen Kämpfers mit AIX V6 - Teil 02
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der PraxisBetriebsysteme: zwei wichtige Konzepte aus der Praxis
Betriebsysteme: zwei wichtige Konzepte aus der Praxis
 
Unixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu UnixUnixkurs 01 - Allgemeines zu Unix
Unixkurs 01 - Allgemeines zu Unix
 
C++ kompakt
C++ kompaktC++ kompakt
C++ kompakt
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
OSMC 2010 | Verwendung von Puppet in verteilten Monitoring Umgebungen by Birg...
 
Bit wisem 2015-wieners-sitzung-08_Betriebssysteme: Metaphern, Datei- und Ress...
Bit wisem 2015-wieners-sitzung-08_Betriebssysteme: Metaphern, Datei- und Ress...Bit wisem 2015-wieners-sitzung-08_Betriebssysteme: Metaphern, Datei- und Ress...
Bit wisem 2015-wieners-sitzung-08_Betriebssysteme: Metaphern, Datei- und Ress...
 
System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet System- & Konfigurationsmanagement mit Foreman & Puppet
System- & Konfigurationsmanagement mit Foreman & Puppet
 
Automation with Ansible
Automation with AnsibleAutomation with Ansible
Automation with Ansible
 
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: BetriebssystemeBIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
BIT I WiSe 2014 | Basisinformationstechnologie I - 07: Betriebssysteme
 
freiesMagazin 09-2011
freiesMagazin 09-2011freiesMagazin 09-2011
freiesMagazin 09-2011
 
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate RelationshipsICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
ICS UserGroup - 2015 - Eclipse and Notes - Love/Hate Relationships
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and SpaceSoftwarepaketierung und Continuous Integration bei Airbus Defence and Space
Softwarepaketierung und Continuous Integration bei Airbus Defence and Space
 
Bit WiSe 2013 | Basisinformationstechnologie I - 07: Betriebssysteme
Bit WiSe 2013 | Basisinformationstechnologie I - 07: BetriebssystemeBit WiSe 2013 | Basisinformationstechnologie I - 07: Betriebssysteme
Bit WiSe 2013 | Basisinformationstechnologie I - 07: Betriebssysteme
 
Froxlor
FroxlorFroxlor
Froxlor
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 

Mehr von Kerstin Puschke

Behind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationBehind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationKerstin Puschke
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLKerstin Puschke
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBKerstin Puschke
 
Not only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenNot only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenKerstin Puschke
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Kerstin Puschke
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Kerstin Puschke
 

Mehr von Kerstin Puschke (9)

Behind the scenes of a grown-up web application
Behind the scenes of a grown-up web applicationBehind the scenes of a grown-up web application
Behind the scenes of a grown-up web application
 
oEmbed (on rails)
oEmbed (on rails)oEmbed (on rails)
oEmbed (on rails)
 
Webentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQLWebentwicklung mit PHP und MySQL
Webentwicklung mit PHP und MySQL
 
CouchDB
CouchDBCouchDB
CouchDB
 
NoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDBNoSQL-Datenbanken am Beispiel CouchDB
NoSQL-Datenbanken am Beispiel CouchDB
 
Not only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-DatenbankenNot only SQL - CouchDB und andere NoSQL-Datenbanken
Not only SQL - CouchDB und andere NoSQL-Datenbanken
 
NoSQL und CouchDB
NoSQL und CouchDBNoSQL und CouchDB
NoSQL und CouchDB
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)
 
Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)Einstieg in relationale Datenbanken mit MySQL (Handout)
Einstieg in relationale Datenbanken mit MySQL (Handout)
 

Grundlagen der Kommandozeile unter Unix/Linux (Folien)

  • 1. Grundlagen der Kommandozeile unter Unix/Linux Dr. Kerstin Puschke Workshop, Uni Salzburg September 2009 K. Puschke Kommandozeilengrundlagen
  • 2. Lizenz Lizenz Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/ K. Puschke Kommandozeilengrundlagen
  • 3. Teil I: Einführung 1 Unix, Linux, . . . 2 Linux Grundlagen 3 Warum die Kommandozeile nutzen? K. Puschke Kommandozeilengrundlagen
  • 4. Teil II: Erste Schritte 4 Wie komme ich auf die Kommandozeile? 5 Erste Befehle K. Puschke Kommandozeilengrundlagen
  • 5. Teil III: Dateien und Verzeichnisse verwalten 6 Unterwegs im Verzeichnisbaum 7 Anlegen, Entfernen, Verschieben, Kopieren K. Puschke Kommandozeilengrundlagen
  • 6. Teil IV: Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen 9 Unterstützung bei der Arbeit 10 Programme steuern K. Puschke Kommandozeilengrundlagen
  • 7. Teil V: Inhalt von Textdateien 11 Inhalte ausgeben 12 Inhalte bearbeiten 13 Inhalte durchsuchen - Reguläre Ausdrücke K. Puschke Kommandozeilengrundlagen
  • 8. Teil VI: Ein- und Ausgabe 14 Ein- und Ausgabe K. Puschke Kommandozeilengrundlagen
  • 9. Teil VII: Dateien und Verzeichnisse verwalten II 15 Rechteverwaltung 16 Links K. Puschke Kommandozeilengrundlagen
  • 10. Unix, Linux, . . . Linux Grundlagen Warum die Kommandozeile nutzen? Teil I Einführung K. Puschke Kommandozeilengrundlagen
  • 11. Unix, Linux, . . . Linux Grundlagen Warum die Kommandozeile nutzen? Einführung 1 Unix, Linux, . . . 2 Linux Grundlagen 3 Warum die Kommandozeile nutzen? K. Puschke Kommandozeilengrundlagen
  • 12. Unix, Linux, . . . Linux Grundlagen Warum die Kommandozeile nutzen? Unix, Linux und Verwandte zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . . viele Gemeinsamkeiten in der Anwendung Kurs fokussiert auf Linux das meiste ist übertragbar K. Puschke Kommandozeilengrundlagen
  • 13. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Einführung 1 Unix, Linux, . . . 2 Linux Grundlagen Multi-User System Verzeichnisbaum Komponenten eines Linux-Systems 3 Warum die Kommandozeile nutzen? K. Puschke Kommandozeilengrundlagen
  • 14. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Multi-User System gleichzeitig von mehreren nutzbar getrennte Bereiche (Einstellungen, Anwendungsdaten etc.) strikte Trennung von Anwendung und Administration K. Puschke Kommandozeilengrundlagen
  • 15. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Verzeichnisbaum keine Laufwerksbuchstaben Wurzel (root) ist oben, Verzeichnis / Verzeichnis in Pfadangaben durch / getrennt: /home/alice/linuxkurs / /bin /boot /dev /etc /home /home/alice /home/bob /home/bob/linuxkurs /home/carol /lib ... K. Puschke Kommandozeilengrundlagen
  • 16. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Verzeichnisbaum II jeder user hat eigenes Homeverzeichnis i.d.R. /home/<username>, z.B. /home/alice eigene Dateien und Einstellungen externe Geräte (z.B. USB-Sticks, externe Festplatten) werden in Verzeichnisbaum eingehängt (mount) benutzbar wie andere Verzeichnisse root bezeichnet das Wurzelverzeichnis /, den Administrations-Account, das Homeverzeichnis des Administrations-Accounts (oft /root) K. Puschke Kommandozeilengrundlagen
  • 17. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Komponenten Betriebssystem (Operating System, OS) Kernel (Hardwareverwaltung) System- und Dienstprogramme (Hardwarenahe Konfiguration,. . . ) Schnittstelle (User Interface, UI) GUI (Graphical User Interface, grafische Oberfläche) CLI (Command Line Interface, Kommandozeile, Shell) Anwendungen grafisch kommandozeilenbasiert strikte Trennung zwischen OS und UI K. Puschke Kommandozeilengrundlagen
  • 18. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Shell Schnittstelle zum Betriebssystem Vielzahl von shells existiert, z.B. sh Bourne Shell bash Bourne Again Shell (im Kurs verwendet) csh, tcsh,. . . eingetippte Befehle werden sofort ausgeführt Anwendungen ausführen/starten shell-eigene Befehle shell-eigene Programmiersprache K. Puschke Kommandozeilengrundlagen
  • 19. Unix, Linux, . . . Multi-User System Linux Grundlagen Verzeichnisbaum Warum die Kommandozeile nutzen? Komponenten eines Linux-Systems Philosophie Für jede Aufgabe das passende Programm kleine, spezialisierte Tools statt riesiger rundum-sorglos-Programme flexibel kombinierbar K. Puschke Kommandozeilengrundlagen
  • 20. Unix, Linux, . . . Linux Grundlagen Warum die Kommandozeile nutzen? Einführung 1 Unix, Linux, . . . 2 Linux Grundlagen 3 Warum die Kommandozeile nutzen? K. Puschke Kommandozeilengrundlagen
  • 21. Unix, Linux, . . . Linux Grundlagen Warum die Kommandozeile nutzen? Warum die Kommandozeile nutzen? keine grafische Oberfläche nutzbar nicht installiert (z.B. Server) nicht benutzbar (abgestürzt, kaputtkonfiguriert,. . . ) Anwendung existiert “nur” für Kommandozeile Anwendungen interaktiv kombinieren Ressourcen schonen, Bootvorgang verkürzen Effizienz und Arbeitsersparnis Beispiel: kopiere aus einem Verzeichnis mit 1000 Dateien diejenigen, deren Name “salzburg” enthält K. Puschke Kommandozeilengrundlagen
  • 22. Wie komme ich auf die Kommandozeile? Erste Befehle Teil II Erste Schritte K. Puschke Kommandozeilengrundlagen
  • 23. Wie komme ich auf die Kommandozeile? Erste Befehle Erste Schritte 4 Wie komme ich auf die Kommandozeile? 5 Erste Befehle K. Puschke Kommandozeilengrundlagen
  • 24. Wie komme ich auf die Kommandozeile? Erste Befehle Auf die Kommandozeile wechseln Aus GUI heraus Terminal bzw. Konsole starten zusätzliche Sitzung ohne GUI starten STRG+ALT+F1 weitere Sitzungen mit STRG+ALT+F2, STRG+ALT+F3,. . . zurück zur grafischen Sitzung: STRG+ALT+F7 Schon da? Eingabeaufforderung (Prompt) erscheint, z.B. kpuschke@localhost:˜ ggf. in die bash wechseln K. Puschke Kommandozeilengrundlagen
  • 25. Wie komme ich auf die Kommandozeile? Erste Befehle Erste Schritte 4 Wie komme ich auf die Kommandozeile? 5 Erste Befehle K. Puschke Kommandozeilengrundlagen
  • 26. Wie komme ich auf die Kommandozeile? Erste Befehle Vorsicht Achtung Groß- und Kleinschreibung sowie Leerzeichen sind relevant! K. Puschke Kommandozeilengrundlagen
  • 27. Wie komme ich auf die Kommandozeile? Erste Befehle Erste Befehle whoami - Wer bin ich? Mit welchem username bin ich eingeloggt? hostname - Auf welchem Rechner befinde ich mich? pwd - In welchem Verzeichnis bin ich? (print working directory) K. Puschke Kommandozeilengrundlagen
  • 28. Wie komme ich auf die Kommandozeile? Erste Befehle Aufgaben Erste Schritte pwd, whoami, hostname K. Puschke Kommandozeilengrundlagen
  • 29. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Teil III Dateien und Verzeichnisse verwalten K. Puschke Kommandozeilengrundlagen
  • 30. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Dateien und Verzeichnisse verwalten 6 Unterwegs im Verzeichnisbaum Verzeichnis wechseln Pfadangaben Verzeichnisinhalt ausgeben 7 Anlegen, Entfernen, Verschieben, Kopieren K. Puschke Kommandozeilengrundlagen
  • 31. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Navigation im Verzeichnisbaum Verzeichnis wechseln cd VERZEICHNIS - change directory K. Puschke Kommandozeilengrundlagen
  • 32. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Aufgaben Verzeichnis wechseln cd, Pfadangaben K. Puschke Kommandozeilengrundlagen
  • 33. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Verzeichnis wechseln cd VERZEICHNIS wechselt in Verzeichnis <Verzeichnis> cd wechselt ins eigene Homeverzeichnis cd - wechselt ins vorher benutzte Verzeichnis K. Puschke Kommandozeilengrundlagen
  • 34. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Pfadangaben absoluter Pfad beginnt im Rootverzeichnis / Beispiel: /home/alice/linuxkurs/aufgaben relativer Pfad relativ zum aktuellen Verzeichnis beginnt ohne “/” aktuelles Verzeichnis: . nächsthöheres Verzeichnis: .. K. Puschke Kommandozeilengrundlagen
  • 35. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Pfadangaben - Beispiele Ausgehend von /home/alice/linuxkurs/ entsprechen sich jeweils aufgaben ./aufgaben /home/alice/linuxkurs/aufgaben ../mysqlkurs/aufgaben /home/alice/mysqlkurs/aufgaben ../../bob/linuxkurs /home/bob/linuxkurs K. Puschke Kommandozeilengrundlagen
  • 36. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Verzeichnisinhalt Verzeichnisinhalt ausgeben ls VERZEICHNIS list directory contents (historisch: list segment) K. Puschke Kommandozeilengrundlagen
  • 37. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Aufgaben Verzeichnisinhalt ausgeben ls K. Puschke Kommandozeilengrundlagen
  • 38. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Verzeichnisinhalt ls VERZEICHNIS Inhalt von <Verzeichnis> ls Inhalt des aktuellen Verzeichnisses ls - -all VERZEICHNIS ls -a <Verzeichnis> auch versteckte Dateien anzeigen (Dateiname beginnt mit .) ls -l VERZEICHNIS ls - -format=long <Verzeichnis> long format, mehr Infos K. Puschke Kommandozeilengrundlagen
  • 39. Verzeichnis wechseln Unterwegs im Verzeichnisbaum Pfadangaben Anlegen, Entfernen, Verschieben, Kopieren Verzeichnisinhalt ausgeben Verzeichnisinhalt - ls -l -rw-r- -r- - 1 alice users 2472 2009-03-14 17:54 kurs.txt drwxr-xr-x 2 alice users 4096 2009-05-23 10:06 Videos Rechte Anzahl hard links (Datei) oder Unterverzeichnisse (Verzeichnis) owner group Grösse in Bytes letzte Änderung Name K. Puschke Kommandozeilengrundlagen
  • 40. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Dateien und Verzeichnisse verwalten 6 Unterwegs im Verzeichnisbaum 7 Anlegen, Entfernen, Verschieben, Kopieren K. Puschke Kommandozeilengrundlagen
  • 41. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Anlegen und Entfernen Anlegen mkdir VERZEICHNIS make directory touch DATEI Datei anlegen (bei vorhandener Datei: timestamp setzen) Entfernen rm DATEI remove rmdir VERZEICHNIS remove directory (entfernt leeres Verzeichnis) rm -r VERZEICHNIS entfernt Verzeichnis samt Inhalt K. Puschke Kommandozeilengrundlagen
  • 42. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Kopieren, Verschieben, Umbenennen Verschieben und Umbenennen mv QUELLDATEI ZIELDATEI mv DATEI(EN) VERZEICHNIS mv QUELLVERZEICHNIS ZIELVERZEICHNIS move Kopieren cp QUELLDATEI ZIELDATEI cp DATEI(EN) VERZEICHNIS cp -r QUELLVERZEICHNIS ZIELVERZEICHNIS copy K. Puschke Kommandozeilengrundlagen
  • 43. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Vorsicht Warnung U.U. wird ohne Rückfrage gelöscht oder überschrieben! K. Puschke Kommandozeilengrundlagen
  • 44. Unterwegs im Verzeichnisbaum Anlegen, Entfernen, Verschieben, Kopieren Aufgaben Dateien und Verzeichnisse Anlegen, Entfernen, Kopieren, Verschieben, Umbenennen K. Puschke Kommandozeilengrundlagen
  • 45. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Teil IV Arbeiten mit der Shell K. Puschke Kommandozeilengrundlagen
  • 46. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen 9 Unterstützung bei der Arbeit 10 Programme steuern K. Puschke Kommandozeilengrundlagen
  • 47. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Argumente Befehle können auf Argumente wirken manche Befehle verarbeiten keine Argumente z.B. pwd manche Argumente sind zwingend z.B. Verzeichnisname bei mkdir manche Argumente sind optional z.B. Verzeichnis bei cd oder zweiter Verzeichnisname bei mkdir ggf. mehrere Argumente erforderlich z.B. Quelle und Ziel bei mv K. Puschke Kommandozeilengrundlagen
  • 48. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Optionen Verändern die Wirkung von Befehlen rm -r Syntax uneinheitlich, gängig sind einzelner Buchstabe mit minus davor rm -r kurs Wort mit doppeltem minus rm - -recursive kurs Key-Value mit = rm - -interactive=always teilweise auch nur mit einfachem minus Optionen können z.T. kombiniert werden oft kann dann abgekürzt werden ls -al statt ls -a -l K. Puschke Kommandozeilengrundlagen
  • 49. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Aufgaben Befehlssyntax und Arbeitsweisen Befehle, Optionen und Argumente, praktische Tips K. Puschke Kommandozeilengrundlagen
  • 50. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen 9 Unterstützung bei der Arbeit Arbeitserleichterungen Hilfe finden Wildcards und Klammererweiterung 10 Programme steuern K. Puschke Kommandozeilengrundlagen
  • 51. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Arbeitserleichterungen Blättern mit Shift+PageUp/Down Befehlshistorie mit Cursortasten Vervollständigung mit Tab Copy & Paste: Markieren & per mittlerer Maustaste einfügen im Terminal oft: STRG+Shift+C, STRG+Shift+V K. Puschke Kommandozeilengrundlagen
  • 52. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Hilfe Befehlssyntax abfragen: Optionen -h oder - -help manpage man befehl info befehl perldoc, texdoc,... ... Notation: Angaben in eckigen Klammern sind optional K. Puschke Kommandozeilengrundlagen
  • 53. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Klammererweiterung Ausdruck in geschweiften Klammern wird zu mehreren Dateinamen erweitert cp /home/alice/{foo,bar} neuerordner entspricht cp /home/alice/foo /home/alice/bar neuerordner K. Puschke Kommandozeilengrundlagen
  • 54. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Wildcards Platzhalter für Dateioperationen Beispielanwendung: Lösche alle Dateien, deren Name mit linux beginnt je nach shell: ˜ expandiert zum eigenen Homeverzeichnis ˜ /linuxkurs entspricht /home/<mein_username>/linuxkurs ? - genau ein beliebiges Zeichen * - beliebig viele beliebige Zeichen ! - Verneinung [] - Characterclass (“oder”) versteckte Dateien werden ggf. ignoriert K. Puschke Kommandozeilengrundlagen
  • 55. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Wildcards Beispiele * - alle Dateien, die nicht versteckt sind .* - alle versteckten Dateien f* - alle Dateien, deren Name mit f beginnt f?o - z.B. foo,flo,f.o f[ol]o - foo und flo f[!l]o - foo, fio,... aber nicht flo [0-9]* - Dateiname beginnt mit Ziffer K. Puschke Kommandozeilengrundlagen
  • 56. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Aufgaben Arbeitserleichterungen und Hilfe/Doku Wildcards, Klammererweiterung, manpages K. Puschke Kommandozeilengrundlagen
  • 57. Befehlssyntax - Argumente und Optionen Arbeitserleichterungen Unterstützung bei der Arbeit Hilfe finden Programme steuern Wildcards und Klammererweiterung Wildcards Gefahren Welche Dateien werden gelöscht? rm -rf .* Vorsicht! In Kombination mit -r paßt .* auf ../*, d.h. auch auf höhergelegende Verzeichnisse! K. Puschke Kommandozeilengrundlagen
  • 58. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen 9 Unterstützung bei der Arbeit 10 Programme steuern K. Puschke Kommandozeilengrundlagen
  • 59. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Programme steuern Starten und Beenden Programm starten mit zugehörigem Befehl emacs Programm im Vordergrund (Shell “blockiert”) Programm im Hintergrund starten mit & emacs & Shell nicht “blockiert” Programm beenden mit programm-eigenem Befehl STRG+C K. Puschke Kommandozeilengrundlagen
  • 60. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Programme steuern Programm im Vordergrund anhalten/unterbrechen STRG+Z im Vordergrund weiterlaufen lassen fg im Hintergrund weiterlaufen lassen bg was läuft im Hintergrund? jobs K. Puschke Kommandozeilengrundlagen
  • 61. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Programme steuern Hinweis Die Darstellung der Programmsteuerung ist sehr vereinfacht. Wer mehr wissen möchte, sollte sich über Prozesse und Threads informieren. K. Puschke Kommandozeilengrundlagen
  • 62. Befehlssyntax - Argumente und Optionen Unterstützung bei der Arbeit Programme steuern Aufgaben Programme steuern Aufrufen, Unterbrechen, Beenden, Vorder- und Hintergrund K. Puschke Kommandozeilengrundlagen
  • 63. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Teil V Inhalt von Textdateien K. Puschke Kommandozeilengrundlagen
  • 64. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Inhalt von Textdateien 11 Inhalte ausgeben 12 Inhalte bearbeiten 13 Inhalte durchsuchen - Reguläre Ausdrücke K. Puschke Kommandozeilengrundlagen
  • 65. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Textdatei ausgeben cat gibt Inhalt der Datei aus less oder more zum Durchblättern (pager ) head gibt Anfang der Datei aus tail gibt Ende der Datei aus sort sortierte Ausgabe wc word count - Zeichen, Zeilen oder Wörter zählen K. Puschke Kommandozeilengrundlagen
  • 66. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Inhalt von Textdateien 11 Inhalte ausgeben 12 Inhalte bearbeiten 13 Inhalte durchsuchen - Reguläre Ausdrücke K. Puschke Kommandozeilengrundlagen
  • 67. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Textdatei bearbeiten klein und einfach: nano, pico mittelklasse: joe, jed komplex, aber mächtig: emacs, vim auf lange Sicht lohnend, einen mächtigen Editor zu beherrschen K. Puschke Kommandozeilengrundlagen
  • 68. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Inhalt von Textdateien 11 Inhalte ausgeben 12 Inhalte bearbeiten 13 Inhalte durchsuchen - Reguläre Ausdrücke K. Puschke Kommandozeilengrundlagen
  • 69. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Reguläre Ausdrücke Zur Suche in Text Platzhalter . - ein beliebiges Zeichen f.o passt auf foo,flo,f9o aber nicht fouo [mehrereZeichen] - eines der genannten Zeichen f[aei]o passt auf fao, feo, fio aber nicht faeo Wiederholungen * - beliebig oft (oder gar nicht) fo* passt auf foo, fooo, f, fooooooo ? - einmal oder gar nicht fo?a passt auf fa, foa, aber nicht fooa K. Puschke Kommandozeilengrundlagen
  • 70. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Dateien durchsuchen grep Dateien durchsuchen grep SUCHMUSTER DATEI(EN) Beispiel grep bash kursmaterial.txt grep ’alice and bob’ /home/alice grep ali.* bob.txt K. Puschke Kommandozeilengrundlagen
  • 71. Inhalte ausgeben Inhalte bearbeiten Inhalte durchsuchen - Reguläre Ausdrücke Aufgaben Textdateien Inhalte von Textdateien ausgeben und ändern, Textdateien durchsuchen, Reguläre Ausdrücke K. Puschke Kommandozeilengrundlagen
  • 72. Ein- und Ausgabe Teil VI Ein- und Ausgabe K. Puschke Kommandozeilengrundlagen
  • 73. Tastatureingabe Ein- und Ausgabe Ein- und Ausgabe umleiten Deskriptoren Ein- und Ausgabe 14 Ein- und Ausgabe Tastatureingabe Ein- und Ausgabe umleiten Deskriptoren K. Puschke Kommandozeilengrundlagen
  • 74. Tastatureingabe Ein- und Ausgabe Ein- und Ausgabe umleiten Deskriptoren Tastatureingabe Statt Datei einzulesen statt Dateinamen - verwendet (je nach Befehl) sort - Dateinamen weggelassen (je nach Befehl) wc shell erwartet nun Tastatureingabe STRG+d entspricht Dateiende K. Puschke Kommandozeilengrundlagen
  • 75. Tastatureingabe Ein- und Ausgabe Ein- und Ausgabe umleiten Deskriptoren Ein- und Ausgabe umleiten > - Ausgabe in Datei schreiben ls /home/alice/ > alicekram.txt vorhandene Datei wird überschrieben >> - Ausgabe an Datei anhängen | - Pipe: Ausgabe eines Kommandos als Eingabe eines weiteren Kommandos ls /home/alice | grep bob < - Eingabe aus Datei lesen sort < foo.txt mysql < dump.sql nach /dev/null geleitet: unwiderbringlich verschwunden K. Puschke Kommandozeilengrundlagen
  • 76. Tastatureingabe Ein- und Ausgabe Ein- und Ausgabe umleiten Deskriptoren Datenströme mit Deskriptoren umleiten Datenkanäle Kanal Deskriptor default Standardeingabe (stin) 0 Tastatur Standardausgabe (stdout) 1 Bildschirm Standardfehlerausgabe (stderr) 2 Bildschirm Kanal umleiten: n> mv foo bar 2>error.err Kanäle bündeln: n>m& sort foo 2> bar.txt 1>2& erst umleiten, dann bündeln K. Puschke Kommandozeilengrundlagen
  • 77. Tastatureingabe Ein- und Ausgabe Ein- und Ausgabe umleiten Deskriptoren Aufgaben Ein- und Ausgabe Ein- und Ausgabe umleiten, Deskriptoren K. Puschke Kommandozeilengrundlagen
  • 78. Rechteverwaltung Links Teil VII Dateien und Verzeichnisse verwalten II K. Puschke Kommandozeilengrundlagen
  • 79. Rechteverwaltung Links Dateien und Verzeichnisse verwalten II 15 Rechteverwaltung 16 Links K. Puschke Kommandozeilengrundlagen
  • 80. Rechteverwaltung Links Dateirechte Was für Rechte gibt es Dateien r - lesen (read) w - schreiben (write) x - ausführen (execute) Verzeichnisse r - Verzeichnisinhalt auslesen w - ins Vezeichnis schreiben x - ins Verzeichnis wechseln K. Puschke Kommandozeilengrundlagen
  • 81. Rechteverwaltung Links Dateirechte Wer hat Rechte? user sind in Gruppen groups organisiert jede Datei hat einen user als owner zu jeder Datei gehört eine Gruppe unterschiedliche Rechte für user (u) (d.h. owner) group (g) others (o) K. Puschke Kommandozeilengrundlagen
  • 82. Rechteverwaltung Links Dateirechte Notation nacheinander für owner, group, others - bedeutet: Recht nicht gegeben Beispiel: rwxr-xr-x owner darf r, w und x, group und others nur r und x K. Puschke Kommandozeilengrundlagen
  • 83. Rechteverwaltung Links Dateirechte ändern Rechte ändern chmod MODUS DATEI(EN) Wer (ugo) bekommt/verliert (+-) welche Rechte (rwx)? chmod ug+r foo.txt user und group erhalten Leserechte chmod o-w bar.txt others verlieren Schreibrechte K. Puschke Kommandozeilengrundlagen
  • 84. Rechteverwaltung Links Aufgaben Dateirechte Dateirechte verwalten K. Puschke Kommandozeilengrundlagen
  • 85. Rechteverwaltung Links Dateien und Verzeichnisse verwalten II 15 Rechteverwaltung 16 Links K. Puschke Kommandozeilengrundlagen
  • 86. Rechteverwaltung Links Links hard links und sym links hard link : mehrere Namen für eine Datei viele Stolperfallen symbolic link, sym link, soft link : Pointer auf einen Namen verlinkte Datei/Verzeichnis verschoben/gelöscht: kein update des links sym link kann andere Rechte haben als verlinkte Datei/Verzeichnis sehr praktisch im Alltag K. Puschke Kommandozeilengrundlagen
  • 87. Rechteverwaltung Links Sym Links sym link anlegen ln -s ZIEL LINKNAME sym link entfernen rm LINKNAME K. Puschke Kommandozeilengrundlagen
  • 88. Rechteverwaltung Links Aufgaben Links Symlinks K. Puschke Kommandozeilengrundlagen