UNIX-Einführung - 11.File-Kommandos
  
                           13. Nützliche Hilfen
                           ====================
  
  Ändern der Zugriffsrechten von Files
  ------------------------------------
  
  Ändern des Eigentümers von Files
  
     chown [-R] <Nutzername> <Filename> {<Filename>}
  
     Ändern des Eigentümers der Files in den 
     spezifizierten neuen Nutzernamen. 
  
       -R  - Eigentümer rekursiv absteigend ändern
  
  Ändern  der Gruppe von Files
  
      chgrp [-R] <Gruppenname> <Filename> {<Filename>}
  
      Ändern der Gruppenzugehörigkeit der Files in den 
      spezifizierten neuen Gruppennamen. 
  
       -R  - Gruppe rekursiv absteigend ändern






nextback          SS 2010 - 1





  
  Ändern der Zugriffsmodies von Files
  
     chmod [-R] <Zugriffsrechte> <Filename> {<Filename>}
  
     <Zugriffsrechte>:=<numerische Zugriffsrechte> |
                       <symbolische Zugriffsrechte>
       numerische Zugriffsrechte:
         400  -  Leserechte Eigentümer
         200  -  Schreibrechte Eigentümer
         100  -  Ausführungsrechte Eigentümer
         040  -  Leserechte Gruppe
         020  -  Schreibrechte Gruppe
         010  -  Ausführungsrechte Gruppe
         004  -  Leserechte Welt
         002  -  Schreibrechte Welt
         001  -  Ausführungsrechte Welt
  
        Kombinationen sind zulässig z.B.
           755 - alles für den Eigentümer, der Rest
                 darf alles ausser verändern.
      Beispiel:
        chmod 755 xyz abc
        chmod -R 700 xyz abc Dab






nextback          SS 2010 - 2





  
      symbolische Zugriffsrechte:
  
        [<Ziel>]<Operator>[<Recht>]
  
           Rechte:
            r - lesen
            w - schreiben
            x - ausführen
          Ziel
            u - Nutzer
            g - Gruppe
            o - Welt
          Operatioren
            +  - Recht hinzufügen
            -  - Recht streichen
            =  - Recht absolute setzen
  
      Beispiele:
          chmod u=rx xxx
          chmod og= xxx
  








nextback          SS 2010 - 3





  
  
  Verwalten der File-Creation-Maske
  
    umask  [<Maske>]
  
    Setzen und Anzeigen der Bits der File-Creation-Maske eines Prozesses.
    Wird kein Parameter angegeben werden die gesetzten Bits der 
    File-Creation-Maske angezeigt. In der Maske werden die Bits oktal
    kodiert, für die beim Erzeugen eines neuen Files keine Zugriffsrechte
    gegeben werden sollen.
  
    Beispiele:
  
      umask      - Anzeigen der File-Creation-Maske des Prozesses
      umask 022  - Schreibrechte für Gruppe und Other bei neuen Files
                   prinzipiell gelöscht.
      umask 077  - alle Zugriffsrechte für Gruppe und Other bei neuen 
                   Files prinzipiell gelöscht.
                 
  









nextback          SS 2010 - 4





  
  Benennung von Files
  -------------------
  
  Umbenennen von Files 
  
     mv [-fi] <Quellfile> <Ziel-Direktory>
     mv [-fi] <Quellfile> <Ziel-File>
  
    Umbenennen des Quellfiles(alt) in das Zielfile(neu). Ist das Zielfile
    ein Direktory, wird der Basis-Name des Quellfiles der Filename im
    Zieldirektory.
  
         -f  - überschreiben von bestehenden Files ohne nachfragen
         -i  - interaktiv
  
      Beispiele:
  
        mv xxx yyy     - umbenennen des Files xxx in yyy
        mv xxx Yyy     - Yyy ist eine Direktory. Das File
                         wird in Yyy/xxx umbenannt.
  








nextback          SS 2010 - 5





  
  
  Erzeugen eines neuen Namens für ein File
  
     ln [-fns] <Quellfile> <Zielfile>
  
     Erzeugen eines neuen Namens <Zielfile> für ein bestehendes File
     <Quellfile>. 
       -s   - erzeugen eines symbolischen Namens
       -n   - bestehende Files nicht ueberschreiben
       -f   - Erzeugen des neuen Files ohne Nachfrage
  
     Beispiele:
  
      ln xxx yyy
      ln -x /vol/fob-vol3/mi99/xxx xxx
  













nextback          SS 2010 - 6





  
  Kopieren von Files
  
    cp [-i|-p] <Quellfile>  <Zielfile>
  
    cp [-i|-p] <Quellfile1> {<Quellfile2>} <Zieldirektory>
  
    cp [-i|-p] [-r|-R] <Quelldirektory> <Zieldirektory>
  
  Kopieren eines oder mehrer Files in ein anderes File bzw. in
  eine andere Direktory. Direktories können rekursiv kopiert werden
  ( Option -r ).
    -i  - interaktiv (beim Überschreiben von Files)
    -p  - Kopieren der Zugriffsrechte und Zeiten
    -r  - rekursives Kopieren
    -R  - rekursives Kopieren ohne Pipes
  













nextback          SS 2010 - 7





  
  Operationen über Files
  ----------------------
  
  Berechnen der Anzahl von Zeilen, Wörtern und Zeichen in einem
  File
  
    wc [-c][-m][-l][-w] <Filename> {<Filename>}
  
       -c    Anzahl der Bytes ausgeben
  
       -m    Anzahl der Zeichen ausgeben
  
       -l    Anzahl der Zeilen
   
       -w    Anzahl der Worte
  
     Beispiele:
  
      > wc mkthml
        11     50   409   mkhtml
      >








nextback          SS 2010 - 8





  
  Inhalt eines Files nach verschiedenen Gesichtspunkten sortieren
  
     sort  [Optionen]  [<Filename>]
  
     Inhalt des Files (oder Standardeingabe) nach verschiedenen
     Gesichtspunkten (Optionen) sortieren und auf Standard-
     ausgabe ausgeben.
  
        -b   ignorieren führender Leerzeichen
        -f   ignorieren Groß-Klein-Schreibung
        -i   ignorieren nicht-druckbare Zeichen
        -n   numerische Sortierung
        -r   reverse Sortierung
        u.s.w.
  
     Beispiele:
  
        sort abc
        sort -r abc
  









nextback          SS 2010 - 9





  Files vergleichen
  -----------------
  
  Vergleichen von Files Zeile bei Zeile
  
    diff  [Optionen]  <Filename1> <Filename2>
    diff  [Optionen]  <Directoryname1> <Directoryname2>
  
    Optionen:
      für Files
       -b        - führende Leerzeichen ignorieren
       -i        - ignoriere Groß-/Kleinbuchstaben
       -t        - Tabulatoren expandieren
       -w        - ignoriere Leerzeilen (einschließlich Blanks und Tabs)
       -c        - Differenzprotokoll mit 3 Zeilen Umgebung der Differenz
       -e        - erzeugen eines Scriptes fuer ed
       -n        - ähnlich -e
       -C number - Differenzprotokoll mit <number> Zeilen Umgebung
      für Directories
       -s        - identische Files anzeigen
       -l        - langes Format
       -r        - rekursiv
       
  
  Vergleich von Files Zeiche bei Zeichen
  
    cmp  [-l][-s]  <Filename1> <Filename2>
  
        -l   - Ausgabe der Zeichen oktal und Adresse dezimal
        -s   - nur Rückkehrwert erzeugen, keine Ausgabe
nextback          SS 2010 - 10





  Suchen 
  ------
  
  Suchen von Zeichenketten in Files
  
    grep    [-chn] [-l] [-q]  "Zeichenkette" <File1> {<File>}
    egrep   [Optionen]  <regulärer Ausdruck> <File1> {<File>}
  
      -c  - nur zählen
      -h  - Filename unterdrücken
      -l  - nur Filenamen anzeigen
      -q  
      -n  - Zeilennummern ausgeben
      -s  - keine Fehlerausgabe
      -v  - inverse Ausgabe (Zeilen, die Zeichenkette nicht enthalten)
  
    Beispiele:
  
      grep mail *
      grep -cl mail *
  
  








nextback          SS 2010 - 11





  Suchen von Files im Filesystem
  
    find <Direktory> [Optionen] [Aktionen]
  
       Optionen
        -name <name>      - suche File mit Namen <name>
        -ctime <n>        - suche Files, deren Status vor <n> Tagen
                              +n   älter als n Tage
                               n   genau n Tage
                              -n   weniger als n Tage
                            geändert wurde
        -group <name>     - suche Files der Gruppe <name>
        -user  <name>     - suche Files des Nutzers <name>
        -perm  <mode>     - suche Files mit Zugriffsrechten <mode>
                                 - genau diese Bits gesetzt
                               - - diese Bits sind auch gesetzt
        -type c           - Filetype (b,c,d,f,l,p,s)
  
       Aktionen
          -exec <Kommando>  - ausführen des Kommandos <Kommando> für
                              das gefundene File
          -print            - gefundenen Filename ausgeben
  
     Beispiele:
        find / -name core -print
        find / -name core -exec rm {} \;
        find /usr/bin -perm 4111 -user root -print
        find /usr/bin -perm -4111 -user root -print
        find /usr/bin -perm -4000 -user root -print

nextback          SS 2010 - 12





  
  Informationen abzweigen
  -----------------------
  Lesen von Stadardeingabe und Schreiben auf Standardausgabe und
  in ein File
  
    tee [-ai]  <File>
  
    Optionen
    
        -a    - Anfügen der Ausgabe an das File
        -i    - ignoriere Interrupts
  
    Beispiel:
  
       ls -lisa | tee xxx
  
  












nextback          SS 2010 - 13





  
  Kompremieren von Files
  ----------------------
  
  GNU-Zip - Packen und Entpacken von Files mittels Lempel-Ziv-Kodierung
  
  Gepackte Files haben die Endung:  .gz
  
    gzip [ -acdfhlLnNrtvV19 ] [-S <suffix>] [ <name> ... ]
    gunzip [ -acfhlLnNrtvV ] [-S <suffix>] [ <name> ... ]
    gzcat [ -fhLV ] [ name ... ]
  
      gzip   - packen
      gunzip - entpacken
      gzcat  - anzeigen auf Standardausgabe
  
    Beispiele:
  
        gzip abc         # es entsteht   abc.gz
        gunzip abc.gz    #  es entsteht abc
        gcat   abc.gz    #  abc wird nach Standardausgabe ausgegeben
                         #  abc.gz bleibt unverändert








nextback          SS 2010 - 14





  
  GNU-BZip - Packen und Entpacken von Files mittels 
             Block-Sorting-Text-Compremierung (Burrows-Wheeler) 
  
  Gepackte Files haben die Endung: bz2
  
    bzip2 [ -cdfkstvzVL123456789 ] [ <filenames> ... ]
    bunzip2  [ -fkvsVL ] [ <filenames> ... ]
    bzcat [ -s ] [ <filenames> ... ]
    bzip2recover  <filename>
  
      bzip2         - packen
      bunzip2       - entpacken
      bzcat         - anzeigen auf Standardausgabe
      bzip2recover  - entpacken mit fehlerhafter Prüfsumme
  
    Beispiele:
  
        bzip2 abc            # packen, es entsteht   abc.bz2
        bunzip2 abc.bz2      # entpacken, es entsteht abc
        bzcat   abc.bz2      # abc wird nach Standardausgabe ausgegeben
                             # abc.bz2 bleibt unverändert
        bzip2recover abc.bz2 # entpacken mit fehlerhafter Prüfsumme
  






nextback          SS 2010 - 15





  
  Einpacken von Files und Directories
  -----------------------------------
  
  Erzeugen und entpacken von Bandarchiven
  tar - tape archive
  
  Erzeugen eines Tapearchives:
  
    tar  c[bBeEfFhiklnopPqvwX[0-7]] [block] [tar-file] [exclude-file] 
         {-I include-file | -C directory | file  | file }  ...
  
    Beispiel:
       tar -cvf xyz.tar  ./xyz
  
  Erzeugen eines Inhaltsverzeichnisses eines Tapearchives
  
    tar  t[BefFhiklnqvX[0-7]] [tarfile] [exclude-file] 
         {-I include-file | file}  ...
  
    Beispiel:
       tar -tvf xyz.tar
  
  Auspacken eines Tapearchives
  
    tar x[BefFhiklmnopqvwX[0-7]] [tarfile] [exclude-file] [file ...]
  
    Beispiel:
       tar -xvf xyz.tar

nextback          SS 2010 - 16





  
  Informationskommandos
  ---------------------
  
  Grafische Oberfläche zum Lesen von Manuals
  
      xman
  
  
  Suchen von Files in Locate-Datenbasis
  
    locate [-d path | --database=path] [-e | --existing] 
           [-i | --ignore-case ] [--version] [--help] pattern...
  
  
  Bestimmen von Binaries, Sources und Manual-Pages von Kommando-Files
  
     whereis [-bmsu]  [-B|M|S directory  ... -f] filename ...
  
  
  
  Bestimmen des benutzten Filenamen oder Aliases für ein Kommando
  
     which [ filename ....]
  





nextback          SS 2010 - 17





  
  Bestimmen der Plattenbelegung 
  
    df [-F FSType] [-abegklntV] [-oFSType-specific_options] 
         [block_device | directory | file | resource ... ]
  
    Beispiele:
       df
       df -k
       df -k /vol/fob-vol3
  
  
  Bestimmen der Größe von Direktories und Files 
  
    du [-adkLr] [-o|-s] [file ...]
  
    Beispiele:
      du
      du .
      du -sk .
      du -sk abc
  
  







nextback          SS 2010 - 18





  
  Drucken von Files
  -----------------
  
  Druckauftrag absenden
  
      lp [-c]  [-m]  [-p]  [-s]  [-w]  [-d destination] 
         [-f form-name]  [-H special-handling]  [-n number]
         [-o option]  [-P page-list]  [-q priority-level]
         [-S character-set | print-wheel]   [-t title]
         [ -T content-type  [-r]] [-y mode-list]  [ file ... ]
  
       Beispiel:
           lp -d lpbeat   postscritptfile
           lp -d lpemu    postscritptfile
  
  Druckauftrag absenden
  
       lpr [-P destination]  [-# number]  [-C class]
           [-J job]  [-T title]  [-i  [ indent ]]
           [-1 | -2 | -3 | -4 font] [-w cols] [-m]
           [-h] [-s] [-filter_option]  [ file ... ]
  
      Beispiele
         lpr -P lpbeat  postscritptfile
         lpr -P lpemu    postscritptfile




nextback          SS 2010 - 19





  
  
  Druckerwarteschlange anschauen
  
       lpq [-P destination]  [-l]  [+[ interval]] [request-ID ... ]
            [user ...]
  
      Beispiel:
         /usr/ucb/lpq -l
  
  
  
  Druckzustand anschauen
  
      lpstat  [-d] [-r] [-R] [-s] [-t] [-a [list]]
              [-c [list]] [-f [list] [-l]] [-o [list]]
              [-p [list] [-D] [-l]]  [-S [list] [-l]]
              [-u [login-ID-list]] [-v [list]]
  
      Beispiel:
         lpstat -t
  








nextback          SS 2010 - 20





  
  Druckerauftrag löschen
  
     für Aufträge, die mit lpr abgeschickt wurden:
  
         lprm [-P destination]  [-]  [request-ID  ...] [user ...]
  
     Beispiele:
         lprm -P lpemu  607
         lprm    301
  
     für Aufträge, die mit lp abgeschickt wurden:
  
        cancel [request-ID ... ]  [destination ...]
        cancel -u user ...  [destination ...]
  
     Beispiele:
        cancel lpbeat-607












nextback          SS 2010 - 21





  
  
  Postsriptfile erzeugen
  
  
      a2ps   [Optionen]  --output=<Ausgabefile>  [<Eingabefile>]
  
  
  a2ps konvertiert ASCII-Files in Postscriptfiles. Standardmäßig wird von
  Standardeingabe gelesen und auf den Standarddrucker gedruckt.
  
  
     Beispiele:
  
       a2ps --help                - anzeigen aller Optionen (Hilfe)
       a2ps  xxx                  - Die Datei xxx wird auf dem 
                                    Standarddrucker gedruckt
       a2ps --output=xxx.ps  xxx  - Die Datei xxx wird in das
                                    File xxx.ps umgewandelt
       lp xxx.ps
  









nextback          SS 2010 - 22





  
  SVN - Versionsverwaltungssysteme
  ================================
  
             Wie verwaltet man komplexe Quelltexte ohne daß  
             man mal vor dem Nichts steht
  
  Versionsverwaltungssystem:
  
     Was wird verwaltet?
        Gewöhnliche Dateien - Text-Files, in der Regel keine Binärdaten
              z.B.:  Quelltexte, Texte, Makefiles, Konfigurationsfiles,...
        Mehrere Versionen werden aufbegehoben  und bei Bedarf
               wieder erzeugt.
  
     Ziele von Versionsverwaltungssystemen:
       Kontrollierten Zugriff ermöglichen
       Frühere Versionen wiederherstellen
       Kontinuierliche Generationsfolge sichern
       Dokumentation der Änderungen
       Parallelen Zugriff organisieren - Synchronisation
       Speicherplatz sparen
       Kosten reduzieren
       Zeit sparen
  





nextback          SS 2010 - 23





  
  SVN - subversion (Next Generation Open Source Version Control)
  
  Open Source Versions Control System
  Erste Ideen 2000. Abgeleitet von CVS. Beseitigt die 
  Unzulänglichkeiten von alten Systemen:
                 Direktory Versionierung
                 bessere Fileverwaltung (History)
                 Metadatenverwaltung
                 Verbesserter Netzwerkzugriffe 
                       (Apache, SSH, separater Server)
                 gut strukturiert
                 gut verwaltbar
                 sicherer als CVS.
  Besteht aus einem Nutzerkommando und mehreren Administrations-
  kommandos, Anbindung an Eclipse
  
  Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato
  Version Control with Subversion
  O'Reilly 2004, ISBN 0-596-00448-6
  
  Institut betreibt einen zentralen SVN-Server
  
         https://svn.informatik.hu-berlin.de/
  





nextback          SS 2010 - 24





  
  Arbeitsweise von Versionsverwaltungssystemen:
  
      Versionsverwaltungssysteme benutzen in der Regel ein Repository als
      Speicher für die Daten. Die Nutzer agieren grundsätzlich in Sandboxes,
      die Kopien des Repositories darstellen. Die Verwaltungssysteme 
      organisieren den Datentransport zwischen Repository und Sandbox.
  
      Initialisierung einer Datenbasis
           init
  
      Füllen der Datenbasis mit einem Anfangszustand
           import
  
      Ausgeben von Daten der Datenbasis an die Nutzer (Programmierer)
           checkout
  
      Einfügen von Daten der Nutzer in die Datenbasis
           commit
  
      Bilden einer neuen Version
           import
  
      Aktualisieren der Datenbasis eines Nutzers
           update





nextback          SS 2010 - 25





  
  Subversion Kommandos - Übersicht
  
     svn
             Kommandozeilen Client-Programm
     svnversion
             Programm zum Erzeugen eines Statusreports für eine Kopie
     svnlook
             Tool zur Inspektion eines Subversion-Repository
     svnadmin
             Tool zur Administration des Subversion-Repository
     svndumpfilter
             Tool zur Erzeugung eines Dumpfiles
     svnserve
             Standalone Server, auch mit SSH nutzbar
  
     Hilfe:
         man svn
         svn help
         svn help <subcommando>










nextback          SS 2010 - 26





  Arbeiten mit svn help
  ---------------------
  
  svn help
  
  Aufruf: svn UNTERBEFEHL [Optionen] [Parameter]
  Geben Sie 'svn help UNTERBEFEHL' ein, um Hilfe zu einem Unterbefehl
  zu erhalten.
  
  Die meisten Unterbefehle akzeptieren Datei und/oder Verzeichnisparameter,
  wobei die Verzeichnisse rekursiv durchlaufen werden. Wenn keine Parameter
  angegeben werden, durchläuft der Befehl das aktuelle Verzeichnis rekursiv.
  
  Verfügbare Unterbefehle:
     add
     blame (praise, annotate, ann)
     cat
     checkout (co)
     cleanup
     commit (ci)
     copy (cp)
     delete (del, remove, rm)
     diff (di)
     export
     help (?, h)
     import
     info
     list (ls)
     log
     merge
nextback          SS 2010 - 27





     mkdir
     move (mv, rename, ren)
     propdel (pdel, pd)
     propedit (pedit, pe)
     propget (pget, pg)
     proplist (plist, pl)
     propset (pset, ps)
     resolved
     revert
     status (stat, st)
     switch (sw)
     update (up)
  
  Subversion ist ein Programm zur Versionskontrolle.
  Für weitere Informationen siehe: http://subversion.tigris.org/
  














nextback          SS 2010 - 28





  
  svn help update
  
  update (up): Aktualisiert die Arbeitskopie mit Änderungen aus dem Projektarchiv.
  Aufruf: update [PFAD...]
  
    Ist keine Revision angegeben, wird die Arbeitskopie auf den aktuellen
    Stand der HEAD-Revision gebracht. Ansonsten wird die Arbeitskopie mit der
    durch -r angegebenen Revision synchronisiert.
    Für jedes aktualisierte Objekt wird eine Zeile mit einem Buchstaben für die
    Aktion ausgegeben. Diese haben die folgenden Bedeutungen
  
      A  Added    - Hinzugefügt
      D  Deleted  - Gelöscht
      U  Updated  - Aktualisiert
      C  Conflict - Konflikt
      G  merGed   - Zusammengeführt
  
    Ein Buchstabe in der ersten Spalte symbolisiert eine Aktualisierung der
    Datei, während Aktualisierungen der Dateieigenschaften in der zweiten Spalte
    angezeigt werden.
  
  Gültige Optionen:
    -r [--revision] arg      : ARG (manche Befehle akzeptieren auch Wertebereiche ARG1:ARG2)
                               Ein Revisions Parameter kann sein:
                                  NUMBER       Revisionsnummer
                                  "{" DATE "}" Revision zum Startdatum
                                  "HEAD"       Neueste im Projektarchiv
                                  "BASE"       Basisrevision der Arbeitskopie
                                  "COMMITTED"  Letzte übertragene Revision bei
nextback          SS 2010 - 29





                                                 oder vor BASE
                                  "PREV"       Letzte Revision vor COMMITTED
    -N [--non-recursive]     : Nicht rekursiv hinabsteigen
    -q [--quiet]             : So wenig wie möglich ausgeben
    --diff3-cmd arg          : Verwende ARG als Merge Programm
    --username arg           : Benutzername ARG angeben
    --password arg           : Passwort ARG angeben
    --no-auth-cache          : Anmeldeinformation nicht zwischenspeichern
    --non-interactive        : Keine interaktiven Rückfragen ausgeben
    --config-dir arg         : Benutzerkonfigurationsdateien aus dem Verzeichnis ARG lesen
  



















nextback          SS 2010 - 30





  
  Kurzfassung Subversion-Nutzung
  ------------------------------
  
  Möglichkeiten des Zugriffs auf ein Repository für Nutzer:
  
      file:///pfad        - lokales Filesystem
  
      http://host/pfad    - Zugriff über http und WebDAV             *
                            über Apache-Server                       *
                                                                     *
      https://host/pfad   - Zugriff über http und WebDAV             *
                            über Apache-Server aber mit SSL          *
  
      svn://host/pfad     - Zugriff über svnserve-Server
  
      svn+ssh://host/pfad - Zugriff über ssh und svn, 
                            wie svn aber über ssh-Tunnel
  











nextback          SS 2010 - 31





  
  Arbeiten mit den Daten eines Repositories
  
  mkdir Sandbox      # Sandbox erzeugen
  cd Sandbox
  # Füllen der Sandbox
  svn checkout https://svn.informatik.hu-berlin.de/svn/unix-09/Einleitung  mein
  ls mein
  Makefile  README sysconf2.c  sysconf.c
  cd mein
  vi sysconf.c      # ändern
  # Senden der Änderung
  svn commit
      
  
  Anzeigen:
  
  svn ls https://svn.informatik.hu-berlin.de/svn/unix-09/Einleitung
  svn log https://svn.informatik.hu-berlin.de/svn/unix-09/Einleitung
  
  
  Im Browser unter 
  
         https://svn.informatik.hu-berlin.de/svn/unix-09/Einleitung
  
  anzeigbar.




back               SS 2010 - 32

Zurück zur Gliederung
Di 6. Apr 17:36:35 CEST 2010 J-P Bell