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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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.
|
| next | back | 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.
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
>
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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 *
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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 ....]
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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/
|
| next | back | 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
|
| next | back | 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>
|
| next | back | 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
|
| next | back | 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/
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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
|
| next | back | 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 |