7. Direktories und Files unter Unix =================================== pwd, cd, ls, mkdir, file, ... |
next | back | WS 2015/16 - 1 |
Was ist ein File? ----------------- File ist eine Folge von Bytes. Es gibt "besondere Files" - für das Betriebssystem (Directories, Geräte, ...) und gewöhnliche Files - für den Nutzer. - Gewöhnliche Files haben für das Betriebssystem keine Struktur. kein EOF, keine Zeilenstruktur, keine Blockstruktur. - Besondere Files haben für das Betriebssystem eine Struktur. - Files haben eine Länge. - Auf Files kann sequentiell oder direkt (Adresse des Bytes) zugegriffen werden. - Die Lage der Bytes eines Files auf den externen Medien ist für den Nutzer geheim. - Files werden durch einen Namen referenziert. Der Name muß in einem Directory verzeichnet sein!!!!! Es gibt keine namenlose Files (Systemfehler!!!!). - Files haben veränderbare Eigenschaften: Eigentumsrechte (Angabe des Besitzer): Eigentuemer Gruppe Zugriffsrechte: lesen, schreiben, ausführen unterteilt nach Eigentümer des Files Gruppe des Files den Rest der Welt (other) also 9 Zugriffsklassen |
next | back | WS 2015/16 - 2 |
Die Files werden hierarchisch angordnet. Die Wurzel allen Übels ist das Wurzeldirectory - "/". In einem Directory können Directories und Files enthalten sein - bunt gemischt. Dateibaum des UNIX: Wurzeldirectory / | Directories +----+----+----+-----+------+-----+------+----+----+-----+----+----+ | | | | | | | | | | | | | . .. etc home bin lib opt dev proc sbin var vol usr | | +--+------+ +--+-------+-------+---+ | | | | | | | . .. unixsoft . .. fob-vol5 | | +--+----+-+--------+ +--+-----+-----+------------+ | | | | | | | | . .. bell Meyer . .. mi06 mi14 | | | | +--+--+--+--+--+--+--+ +--+ +--+-----+-+------+--+ +--++--+ | | | | | | | | | | | | | | | | | | . .. d1 f1 f2 d2 f3 f4 . .. . .. zwang . .. weislenn | | | | +-+---+-+-+ +--+ +--+---+--+--+--+--+ +--+-+-+ | | | | | | | | | | | | | | | | . .. f1 f9 . .. . .. f1 f2 d1 f3 d3 . .. f1 | | |
next | back | WS 2015/16 - 3 |
Spezielle Directory-Namen: . - aktuelles Directory .. - übergeorgnetes Directory Jeder Prozess (Kommando) "steht" in einem Directory - genannt "Working Directory" Aktuelles Directory current directory Nach dem Login (1.Prozess) steht man in seinem Homedirectory. Namensbildung: absolute Filenamen: Beginnen mit einem "/" (Wurzelverzeichnis) enthalten die Namen aller Directories bis zum konkreten File z.B. /vol/fob-vol5/mi14/weislenn/d1/f1 /vol/fob-vol5/mi14/../mi06/d1/f1 relativer Filename: Geht vom "Working Directory" aus. z.B. "Working Directory": /vol/fob-vol4/mi14 d1/f1 ./d1/f1 f1 ./f1 ../mi06 Die Folge der Namen der Directories, die zu einem File führt wird als "Path" (Pfad) bezeichnet. |
next | back | WS 2015/16 - 4 |
Elementare Kommandos für Direktories ==================================== Bestimmen des "Working Directory" --------------------------------- Kommando: pwd - print name of current/working directory Synctax: pwd Beschreibung: Ausgabe des vollen Filenamens (beginnend mit "/") des aktuellen Directories. Beispiele: pwd |
next | back | WS 2015/16 - 5 |
Ändern des "Working Directory" --------------------------------- Kommando: cd,chdir - change working directory Syntax: cd <Directory-Path> chdir <Directory-Path> Beschreibung: Ändern des Working Directories. Das Working Directory wird für den aktuellen Prozess (Shell) auf das angegebenen Directory gesetzt. Voraussetzung: - Das angegebenen Directory exisiert - Der Prozess hat die notwendigen Zugriffsrechte (Ausführen) Der Directory-Path kann absolute oder relativ angegeben werden. Beispiele: cd /tmp/D1 cd .. cd /tmp/D2 |
next | back | WS 2015/16 - 6 |
Ich will wissen, welche Files in meinem Directory enthalten sind. Directory besichtigen. Eigenschaften von Files feststellen. ----------------------------------------------------------- Kommando: ls - list directory contents Syntax: ls [OPTION]... [FILE]... Beschreibung: Ausgabe einer Liste mit Informationen über die Files des aktuellen Directories (wenn nicht anders angegeben). Die Liste ist alphabetische sortiert (wenn nicht anders gefordert). ist ein Filename spezifiziert worden wird die Ausgabe auf dieses File beschränkt. Ist der Filename ein Directory-Name, wird der Inhalt der Directory ausgegeben. Optionen: --help |
next | back | WS 2015/16 - 7 |
Die wichtigsten Optionen ! -a, --all Einträge, die mit . beginnen, nicht verstecken -A, --almost-all implizierte . und .. nicht anzeigen --author den Urheber jeder Datei ausgeben -B, --ignore-backups Einträge, die mit ~ enden, nicht ausgeben ! -c mit -lt: Sortieren nach und Anzeige von ctime (Zeit der letzten Veränderung der Datei-Status- informationen); mit -l: ctime anzeigen und nach Namen sortieren -C Einträge mehrspaltig ausgeben ! -d, --directory Verzeichnis-Einträge statt der Inhalte anzeigen, symbolische Verknüpfungen nicht verfolgen -f nicht sortieren, -aU aktivieren, -lst deaktiviern -g wie -l, aber Eigner nicht auflisten -G, --no-group Ausgabe von Gruppen-Informationen unterdrücken -h, --human-readable Ausgabe von Größen in menschenlesbarem Format (z.B. 1K 234M 2G) --si wie -h, aber mit 1000 statt 1024 als Teiler ! -i, --inode Ausgabe der INode-Nummer. ! -l Lange Listenformat verwenden. -L, --dereference Bei symbolischen Verknüpfungen die Eigenschaften der jeweiligen Zieldatei anzeigen. -n, --numeric-uid-gid Wie -l, aber numerische UIDs und GIDs anzeigen. -N, --literal Rohe Eintragsnamen anzeigen (z. B. Kontroll- zeichen nicht besonders behandeln). -o Wie -l, aber ohne Gruppen-Informationen. -p, --file-type Anhängen eines Zeichens zur Typisierung jedes |
next | back | WS 2015/16 - 8 |
Eintrags (eines aus »/=@|«). ! -r, --reverse Umgekehrte Reihenfolge beim Sortieren. -R, --recursive Unterverzeichnissen rekursive ausgeben. ! -s, --size Größe jeder Datei in Blöcken ausgeben. -S Nach Dateigröße sortieren. ! -t Nach Änderungszeit sortieren. -T, --tabsize=SPALTEN Tabstops auf alle SPALTEN Zeichen setzen statt 8. -u mit -lt: Sortieren nach und Anzeige von Zugriffszeit. Mit -l: Anzeige von Zugriffszeit und sortieren nach Namen. Sonst: Sortieren nach Zugriffszeit. -U Nicht sortieren; Einträge in Reihenfolge des Verzeichnisses auflisten. -x Einträge in Zeilen statt in Spalten auflisten. -X Alphabetisch nach der Erweiterung sortieren. -1 Eine Datei pro Zeile auflisten. --help diese Hilfe anzeigen und beenden. --version Versionsinformation anzeigen und beenden. Wichtige Kombinationen von Optionen: -a - zeigt alle Filenamen an (einschließlich Punkt-Files) -lisa - zeigt alles an -lisac - zeigt alles an, letzte Modifikationszeit wird als Zeitangabe benutzt -lisact - wie -lisac aber nach Modifikationszeit sortiert |
next | back | WS 2015/16 - 9 |
Beispiele: ls # Files ls -a # Files + Punktfiles ls -l # Files + Informationen ls -la # Files + Punktfiles + Informationen ls -lac # ... + Modifikationszeit ls -lact # ... + Sortierung nach Zeit ls -lisa # Alles mit Erzeugungszeit ls -lisat # ... + Sortierung nach Zeit ls -lisact # Alles mit Modifikationszeit ls -g # wie -l ohne Nutzername ls -gG # wie -l ohne Nutzername und Gruppenname ls -gGct # ... + Modifikationszeit und Sortierung ls -lisau # Alles mit Accesstime |
next | back | WS 2015/16 - 10 |
Erzeugen von Directories ------------------------ Kommando: mkdir - make directories Syntax: mkdir [OPTION] DIRECTORY... Beschreibung: Erzeugen des angegebenen Directories. Der Directory-Name kann als relativer oder absoluter Filename angegeben werden Das Directory darf noch nicht existieren. Der Nutzer muß Schreibrechte in dem Directory besitzen, in dem das Directory angelegt werden soll Optionen: -m, --mode=MODUS Zugriffsrechte setzen (wie chmod), nicht rwxrwxrwx - umask. -p, --parents kein Fehler, wenn vorhanden; übergeordnete Verzeichnissen erzeugen, wenn notwendig -v, --verbose für jedes angelegte Verzeichnis eine Meldung ausgeben --help diese Hilfe anzeigen und beenden. --version Versionsinformation anzeigen und beenden. |
next | back | WS 2015/16 - 11 |
Beispiele: cd /tmp mdkir x1 mkdir x2 mkdir x3/x4 mkdir -p x3/x4 mkdir -pv x5/x4 mkdir -m 111 x6 kleine Vorschau: Zugriffsrechte: 1 - ausführen 2 - schreiben 4 - lesen mkdir --help mkdir --version |
next | back | WS 2015/16 - 12 |
Welchen Inhalt haben meine Files? --------------------------------- Kommando: file - Bestimmen des Filetypes Syntax: file [ -bcikLnNsvz ] [ -f namefile ] [ -F separator ] [ -m magicfiles ] file ... file -C [ -m magicfile ] !!!! nur für Profis Beschreibung: Das Programm "file" testet jedes File und versucht das File zu klassifizieren. Folgende Tests werden durchgeführt: - Filesystem-Test - Directory ermitteln - Magic-Number-Test - Filetype bestimmen ASCII, ps, pdf, ..., ausführbares Programm (eventuell Architektur) Type-File: /usr/share/misc/magic - Sprachtest - Programmiersprache (C, perl,...), natürliche Sprache (deutsch, englisch) bestimmen. |
next | back | WS 2015/16 - 13 |
Optionen: -b, --brief - nur Ergebnisausgabe, ohne Filename -c, --checking-printout - zusammen -m für Debugging !!!nur für Profis -C, --compile - Erzeugen eines neuen Magic-Files !!!nur für Profis -f, --files-from <namefile> - Filename werden vom File <namefile> gelesen. Ein Name pro Zeile. -F, --separator <separator-Zeichen> - Trennzeichen zwischen Filename und Ergebnis für die Ausgabe. Standard ":" -i, --mime - Mime-Type-Ausgabe -L, --dereference - Symbolischen Links folgen -m, --magic-file <m1{,m2,...}> - Liste von alternativen Magic-Number-Files -n, --no-buffer - keine Pufferung der Ausgabe -N, --no-pad - Keine Formatierung -s, --special-files - Lesen von Special-Files -v, --version - Version -z, --uncompress - uncompress versuchen --help - Help ausgeben |
next | back | WS 2015/16 - 14 |
Beispiele: cd /tmp file x3 file -n x3 # ohne Pufferung file -N x3 # ohne Formatierung file -N -F = x3 # "=" als Trennzeichen file -s x3 # special Files lesen file y3 # Links nicht folgen file -L y3 # Links folgen file -b * # ohne Filenamen !!!Leistung der Shell: "*" bedeutet: alle Filenamen des akutellen Directories |
next | back | WS 2015/16 - 15 |
Kommando: touch - Erzeugen eines leeren Files, modifizieren der Zugriffszeit Syntax: touch [-a] [-c] [-d date] [-m] [-r referenzfile] [-t [[CC]YY]MMDDhhmm[.ss]][--help][--version] <filename> {<filename>} Beschreibung: Erzeugen eines leeren Files, falls dieses nicht vorhanden ist. Setzen der Zugriffszeit. Optionen: -a nur die Zugriffszeit des Files ändern -c File nicht erzeugen -d date benutze "date" als Zeitangabe -m nur Modifikationszeit des Files ändern -r referenzfile benutze Zeitangaben des Referenzfiles als Zeit -t benutze explizite Zeitangabe --help Hilfe --version Versionsangabe |
next | back | WS 2015/16 - 16 |
Beispiele: touch xxx touch yyy zzz tttt touch -a * touch -a -c xxx yyyy cccc |
back | WS 2015/16 - 17 |