8.Elementare Kommandos für Direktories und Files ===================== pwd, cd, ls, mkdir, ... 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 | SS 2010 - 1 |
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-vol6 | | +--+----+-+--------+ +--+-----+-----+------------+ | | | | | | | | . .. bell Meyer . .. mi06 mi96 | | | | +--+--+--+--+--+--+--+ +--+ +--+-----+-+------+--+ +--++ | | | | | | | | | | | | | | | | | . .. d1 f1 f2 d2 f3 f4 . .. . .. mueller . .. | | | +-+---+-+-+ +--+ +--+---+--+--+--+--+ | | | | | | | | | | | | | . .. f1 f9 . .. . .. f1 f2 d1 f3 d3 | | |
next | back | SS 2010 - 2 |
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 im Homedirectory. Namensbildung: absolute Filenamen: Beginnen mit einem "/" (Wurzelverzeichnis) enthalten die Namen aller Directories bis zum konkreten File z.B. /vol/fob-vol4/mi06/mueller/d1/f1 /vol/fob-vol4/mi96/../mi03/d1/f1 relativer Filename: Geht vom "Working Directory" aus. z.B. "Working Directory": /vol/fob-vol4/mi06 d1/f1 ./d1/f1 f1 ./f1 ../mi96 Die Folge der Namen der Directories, die zu einem File führt wird als "Path" (Pfad) bezeichnet. |
next | back | SS 2010 - 3 |
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 | SS 2010 - 4 |
Ä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 | SS 2010 - 5 |
Ich will wissen, was für Files in meinem Directory 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 -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 | SS 2010 - 6 |
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 | SS 2010 - 7 |
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: -p, --parents kein Fehler, wenn vorhanden; übergeordnete Verzeichnissen erzeugen, wenn notwendig --help diese Hilfe anzeigen und beenden. Beispiele: cd /tmp mdkir x1 mkdir x2 mkdir x3/x4 mkdir -p x3/x4 mkdir --help |
next | back | SS 2010 - 8 |
Welchen Inhalt haben meine Files? Kommando: file - determine file type 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. Beispiele: file /etc/passwd file /etc/shadow file /etc/init.d/autofs |
next | back | SS 2010 - 9 |
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 --help Hilfe Beispiele: touch xxx touch yyy zzz tttt touch -a * touch -a -c xxx yyyy cccc |
next | back | SS 2010 - 10 |
Elementare Kommandos für Files ============================== Wie kann ich Files anschauen? Achtung!!! Es gibt ASCII- und Binary-Files. Binary-Files sollte man nur sehr vorsichtig mit den dafür vorgesehenen Werkzeugen anschauen. Bildschirm kann eventuell verloren gehen. Feststellen des Types eines Files: file <filename> # siehe oben |
next | back | SS 2010 - 11 |
Sequentiell von vorn nach hinten (ASCII-Files). Kommando: more - file perusal filter for crt viewing Syntax: more [-dlfpcsu] [-<num>] [+/<pattern>] [+<line>] [file ...] Beschreibung: More ist ein Filterprogramm, das einen Texte Seitenweise auf einem Ausgabegerät anzeigt. Altes Werkzeug. Less ist besser, da leistungsfähiger. Nach jeder Seite wird eine Pause gemacht, die der Nutzer durch eine Eingabe beenden kann. Folgende Eingaben sind Möglich: Leertaste - Seitenvorschub Eingabetaste - Zeilenvorschub. h - Ausgabe eines Hilfsmenü. /<regulärer Ausdruck> - Vorwärtssuchen ! - Ausführung eines Kommandos Weiteres: Siehe Hilfsmenü Beispiele: more unix more -s unix # Leerzeilen zusammenfassen more +30 unix # ab 30.Zeile more +5 /etc/passwd |
next | back | SS 2010 - 12 |
Nocheinmal sequentiell von vorn nach hinten und zurück. Kommando: less - opposite of more Syntax: less -? less --help less -V less --version less [-[+]aABcCdeEfFgGiIJLmMnNqQrRsSuUVwWX~] [-b space] [-h lines] [-j line] [-k keyfile] [-K character set] [-{oO} logfile] [-p pattern] [-P prompt] [-t tag]" [-T tagsfile] [-x tab,...] [-y lines] [-[z] lines] [-# shift] [+[+]cmd] [--] [filename]... Beschreibung: Less ist ein Filterprogramm, das einen Texte Seitenweise auf einem Ausgabegerät anzeigt. Im Gegensatz zu more kann man mit diesem Programm vorwärts und rückwärts in dem angezeigten File blättern. Less versteht die Kommandos von more und vi. Optionen: less --help Beispiele: less unix less /etc/passwd |
next | back | SS 2010 - 13 |
Auch Fileanfänge können interessant sein. Kommando: head - output the first part of files Syntax: head [OPTION]... [FILE]... Beschreibung: head gibt die ersten 10 Zeilen der angegebenen Files auf der Standardausgabe. Vor jedem File wird der Filename als Überschrift ausgegeben, wenn mehr als ein File angegeben wurde. Optionen: -c, --bytes=GRÖSSE erste GRÖSSE Bytes ausgeben -n, --lines=ANZAHL erste ANZAHL Zeilen statt 10 ausgeben --help diese Hilfe anzeigen und beenden. --version Versionsinformation anzeigen und Beispiele: head /etc/passwd # ersten 10 Zeilen head -n 5 /etc/passwd # ersten 5 Zeilen head -c 20 /etc/passwd # ersten 20 Bytes head * # ersten 10 Zeilen von allen Files head -q * # ersten 10 Zeilen von allen # Files ohne Filename |
next | back | SS 2010 - 14 |
Ein schöner Rücken kann auch entzücken. Nur das Ende von Files anschauen. Kommando: tail - output the last part of files Syntax: tail [OPTION]... [FILE]... Beschreibung: Ausgabe der letzten 10 Zeilen der angegebenen Files auf der Standardausgabe (Bildschirm). Wenn mehr als ein File angegeben wurde, wird der Filename mit ausgegeben. Optionen: -f, --follow, follow=<nr> - Ausgabe der an ein File angefügten Daten, für die Betrachtung von Protokollfiles. --help - Hilfsinformationen anzeigen --version - Version ausgeben Beispiele: cd Texte tail unix tail -10 unix tail -n 10 unix tail -c 20 unix tail -v -c 20 unix tail -f /var/log/messages |
next | back | SS 2010 - 15 |
Wenn man es genau wissen will oder was die Welt im innersten zusammenhält. Anschauen von Binär-Files. Kommando: od - dump files in octal and other formats Syntax: od [OPTION]... [FILE]... Beschreibung: Ausgabe der binären Darstellung eines jeden Bytes eines Files. Dabei kann zwischen verschiedenen binären Formaten gewählt werden: oktal (Standard) hexadezimal dezimal Wortformate Kombinationen von obigem Optionen: --help - Hilfe -b - Binäre Ausgabe -c - Character Ausgabe Beispiele: od -bc dat-file od -c dat-file |
next | back | SS 2010 - 16 |
Wir erzeugen unser erstes File. Eingabe eines Files über Standardeingabe. Kommando: cat - concatenate files and print on the standard output Syntax: cat [OPTION] [FILE]... Beschreibung: Verketten von Files oder der Standardeingabe und Ausgabe auf der Standardausgabe. Wenn kein File angegeben wurde wird von der Standardeingabe gelesen. Optionen: --help Hilfe anzeigen und beenden. --version Versionsinformation anzeigen und beenden. Beispiele: cat dat-file # normal cat -T dat-file # TAB's anzeigen cat -A dat-file # Anzeigen aller nichtdruckbaren Zeichen # CNTL, LF, NL, TAB, Umlaute cat > yyy # Erzeugen eines neuen Files # EOF <CNTRL>+D (^D) |
next | back | SS 2010 - 17 |
Wie werde ich Files los? Löschen von Files Kommando: rm - remove files or directories Syntax: rm [OPTION]... FILE... Beschreibung: Löschen des angegeben Files. Standardmäßig werden keine Directories gelöscht. Das File und das Directory, in dem das File steht, müssen schreibar sein. Optionen: -f, --force - File auch löschen, wenn schreibgeschützt, aber prinzipiell für den Nutzer möglich. -i, --interactive - interaktives Löschen, jedes File wird nachgefragt. -r, -R, --recursive - rekursives Löschen von Directories. -v, --verbose - nicht schweigsam --help - Hilfetext auf Standardausgabe anzeigen --version - Versionsnummer anzeigen |
next | back | SS 2010 - 18 |
Beispiele: rm file1 rm file1 file2 file3 rm dir1 rm dir1/file1 rm dir1/file2 rm dir1/file3 rm dir1 rm -r dir1 rm -ri dir2 rm -f dir3 rm -r dir3 rm -fr dir3 rm --help rm --version Für misstrauische Nutzer: shred [-f] [-n] [-u] [-v] [-z] <Filename> shred überschreibt das File erst und löscht es dann. |
next | back | SS 2010 - 19 |
Löschen von Files im grossen Stil. Löschen von Directories Kommando: rmdir - remove empty directories Syntax: rmdir [OPTION]... DIRECTORY... Beschreibung: Löschen eines leeren Directories. Optionen: -v, --verbose Diagnose für jedes bearbeitete Verzeichnis ausgeben --help diese Hilfe anzeigen und beenden. --version Versionsinformation anzeigen und beenden. Beispiele: rmdir rdir1 rmdir -v rdir2 rmdir -v rdir3 rmdir --version |
back | SS 2010 - 20 |