290 likes | 376 Views
Verzeichnisse und Dateien. Meine Dateien. CV.doc. Bilder. Musik. Bild1.jpg. Plan.svg. Hits42.cda. Jam.mp3. Vereinfacht: Eine Datei ist Daten plus Namen. Um diese Dateien hierarchisch zu ordnen, verwendet man Verzeichnisse.
E N D
Verzeichnisse und Dateien Meine Dateien CV.doc Bilder Musik Bild1.jpg Plan.svg Hits42.cda Jam.mp3 • Vereinfacht: Eine Datei ist Daten plus Namen. • Um diese Dateien hierarchisch zuordnen, verwendet man Verzeichnisse. • Jedes Verzeichnis kann Dateienund wiederum Verzeichnisseenthalten. • In Anlehnung an frühereBüros werden Verzeichnisseauch Ordner (engl. Folders)genannt. • Dadurch ergibt sichein so genannterVerzeichnisbaum(Directory Tree) ->
Verzeichnispfad und Dateinamen CV.doc CV.doc • Zwei Dateien müssen verschiedene Namen haben, • es sei denn, sie liegen in verschiedenen Verzeichnissen • Um eine Datei eindeutig zu identifizieren verwendet man dann den so genannten Pfad • path, Verzeichnispfad, Dateipfad • Im rechten Beispiel gibt es CV.doc zweimal in verschiedenen Verzeichnissen (Pfaden): • Eigene Dateien\CV.doc • Eigene Dateien\Alt\CV.doc • Den Backslash \ nennt man "Pfadtrennzeichen" oder "Path-Separator". Meine Dateien Alt
Windows: Verzeichnisse • Unter Windows (Dateimanager Explorer) sieht der Dateibaum so aus: • Es sieht so aus, als sei der Desktop das oberste Verzeichnis. • In Wirklichkeit wird unter Windows aber alles relativ zu einer Festplatte angesprochen, z.B. • C:\Programme\Winamp\ • D:\Kurs\Einleitung.pdf • Das Trennzeichen ist ein Backslash \.
Linux: Verzeichnisse • Unter Linux (z.B. Dateimanager Konqueror) ist dies anders: • Es gibt tatsächlich nur ein oberstes Verzeichnis: / auch root directory oder Wurzelverzeichnis genannt. • Achtung: der Administrator des Linux-Computers wird auch Root genannt. • Die verschiedenen Festplatten werden dann an unterschiedlichen Stellen in diesen Baum eingebunden (mounted). • Das Trennzeichen ist der Slash/(nicht der Backslash): • /home/oezbek/kurs/einleitung.pdf • /usr/bin/xine
Datei-Namensendungen unter Linux • Unter Windows bestimmt die Dateiendung (File-Extension), welcher Typ von Datei vorliegt. • exe und com sind ausführbar. • dll ist eine Programmbibliothek. • txt, doc, rtf sind Textformate... • Unter Linux ist dieser Zwang gelockert. • Unter Linux gibt es ein spezielles Bit, das anzeigt, ob eine Datei ausgeführt werden darf (eXecute-Flag). • Deshalb sind keine Endungen nötig. • Auf der anderen Seite ist es ohne die Endungen oft schwieriger zu erkennen, was die Datei für einen Typ hat. • Viele Benutzer behalten deshalb Dateiendungen bei. • Im Prinzip gibt es aber keinen Unterschied ob ihr eine Datei hallo oder hallo.txt nennt.
Groß- und Kleinschreibung • Windows unterscheidet nicht • Linux aber schon • Man kann also unter Linux die folgenden Dateien haben: • hallo • Hallo • HALLO • ...und sie sind alle unterschiedlich. • Also Achtung beim Aufrufen von Befehlen und Programmen.
Kommandozeile • Wie viele haben noch Computer kennen gelernt, bei denen die Kommandozeile die Haupteingabeform war?
Ein anderes Paradigma • Als mehrfarbige Bildschirme noch teuer waren und auch die Hardware nicht so leistungsfähig war, verwendete man folgenden Ansatz für die Kommunikation mit dem Rechner: • Der Benutzer bekommt vom Computer einen textuellen Prompt vorgegebenen. • Auf diese Eingabeauforderung antwortet der Benutzer durch Eintippen eines Befehls. • Wird dieser Befehl mit Enter bestätigt, führt der Computer diesen aus und zeigt das Ergebnis der Ausführung an. • Anschließend wartet der Computer wieder auf Eingabe.
Der Terminal-Ansatz • Wenn man noch weiter zurück geht, war es sogar so, dass man einen zentralen Rechner hatte und viele verbundene Bildschirme mit Tastatur. • Diese Bildschirm empfingen Zeichen vom Zentralrechner und zeigten sie an und schickten die Eingabe des Benutzers zurück an den Rechner. • Man nannte diese "dummen" Bildschirme ohne Festplatte und Prozessor auch Terminals. • Dementsprechend werden Programme, die heute die Funktion des Terminals ersetzen, auch als Terminal-Emulatoren bezeichnet.
Vergleich zur graphischen Eingabe • Macht euch klar, dass die Eingabeaufforderung nichts anderes ist, als eine andere Sicht auf das System. • Zugrunde liegen die gleiche Hardware und gleichen Daten. Die meisten Tätigkeiten lassen sich in beiden Welten gut lösen. • Aber es gibt Unterschiede: • Textuelle Befehle kann man kopieren. • Bei Mausklicks ist das schwieriger. • Graphisch lassen sich aber vieleInformationen besser darstellen. • Die Kommandozeile ist linear. • Graphische Oberflächen sind 2D(vielleicht kann man sogar 3D sagenaka Fenster im Hintergrund).
Bereiche, wo die Kommandozeile vorherrscht • Überall dort, wo Aktionen im Dateisystem automatisiert und vom Computer gesteuert werden sollen, hat die Kommandozeile deutliche Vorteile: • Alle Dateien mit Endung htm in Endung html umbenennen. • for f in *.htm; do mv $f `basename $f .htm`.html; done; • Das geht mit graphischen Mitteln nur schwierig bzw. mit speziellen Werkzeugen. • Insgesamt aber verliert die Kommandozeile gegenüber graphischen Oberflächen mehr und mehr an Bedeutung. • Unter MacOS X gibt es z.B. den Automator -> • Unter Windows hat man als Benutzerkaum noch Kontakt mit der "Shell".
Wie komme ich auf eine Kommandozeile? • Windows: cmd steht für command. Die Kommandozeile häufig auch Command Line Interface (CLI) oder Command Shell oder nur Shell genannt.
Linux • Wenn ihr an einem Linuxrechner sitzt, dann heißt ein entsprechendes Programm, welches ein solches Fenster anzeigt: • Konsole (KDE) • Term (kurz für Terminal Emulator) oder auch X-Term • Shell • Darüber hinaus redet man auch gerne von dem Programm, welche die Kommandozeile in dem Fenster verwaltet: • Bash, Csh, Ksh, Zsh, Shell • Ihr könnt an einem Linux-Rechner (auch gerne Linux-Kiste genannt) aber auch STRG+ALT+F1 bis F6* drücken und seht dann Linux ohne graphische Oberfläche (Zurück mit STRG-ALT+F7).
Namensverwirrung • Hier noch mal alle Namen, die alle letztlich oft einfach dafür verwendet werden, die Kommandozeile zu benennen: • Kommandozeile / Command-Line / CMD • Kommandoprompt / Prompt • CLI (Command-Line Interface) • Eingabefenster / Eingabeaufforderung • Terminal Emulator / Terminal / X-Term / Term • Konsole • Alles, was mit Sh wie Shell endet: • Bash, CSh (sprich Cee-Shell), Ksh • Beliebt auch Namen der Windows-Programme und Protokolle: SSH Client, Putty, SSH Shell, Telnet, Hyperterm • Nicht irre machen lassen ;-)
Wie bewegt man sich im Dateisystem alt alp1 alp2 • Angenommen ihr seid im Verzeichnis brueckenkurs. • Wie kommt man nach alt? • cd alt • Wie kommt man nach alp1? • cd uebungsblaetter • cd alp1 • oder • cd uebungsblaetter/alp1 • Wie kommt man von alt nachbrueckenkurs? • cd .. • Wie kommt man von alp1 nach alt? • cd ../../alt(alternativ auch cd ../../alt/../alt) brueckenkurs uebungsblaetter
Die wichtigsten Befehle - Achtung mit <...> • man <befehl> (manual) – Ruft die Hilfe zu einem Befehl auf z.B. • Beispie: man rm • apropos <begriff> – Sucht nach einem Befehl, der den Begriff in der Beschreibung enthält. • Beispiel: apropos remove • Achtung: Da kommt oft zuviel zurück! • Sucht ihr einen Befehl, funktioniert der Befehlapropos remove | grep '(1)' besser • <befehl> --help– Gibt oft eine Minimalhilfe zurück. • cd <verzeichnis> (change directory) - Wechselt in ein Verzeichnis. • cd .. – Wechselt ein Verzeichnis nach oben. Space!! • cd – Wechselt in eurer Heimatverzeichnis.
Mehr Befehle • exit – Loggt euch aus. • rm <Datei> (remove) – Löschen • cp <quelle> <ziel> (copy) – Kopieren • mv <quelle> <ziel> (move) – Bewegen • Mit -r auch jeweils für Unterverzeichnisse. • ls (list) – Listet Dateien im Verzeichnis auf. • less <Datei> – Zeigt eine Datei an (Beenden mit q). • killall <Befehl> – Beendet alle laufenden Versionen des Befehls. • tar -xvzf <Datei>.tar.gz – Datei entpacken. • tar -cvzf <Ziel>.tar.gz <Quelle> – Quelle packen. • unzip <Datei>.zip – Zip-Datei entpacken. • zip <Ziel>.zip <Quelle> – Datei mit Zip-Packen.
Noch mehr • mkdir <Verzeichnis> (make directory) – Verzeichnis anlegen. • rmdir <Verzeichnis> (remove dir) – Verz. löschen. • chmod (change permissions) – Zugriffsrechte auf Dateien ändern. • quota -v – Freien Festplattenplatz anzeigen. • sort – Sortiert die Eingabe. • locate <Name> – Sucht eine Datei in der Dateidatenbank. • find . -iname <Name> – Sucht eine Datei im aktuellen Verzeichnis und dessen Unterverzeichnissen. • grep -r "Text" * – Sucht den Text in allen Dateien im aktuellen Verzeichnis und den Unterordnern.
Uff – Erst einmal verschnaufen! • Was kommt noch? • Editoren • Platzhalter, Jokerzeichen, Wildcards • Weiterleitung von Dateien | Pipes • Rechtevergabe • Sicheres Kopieren zwischen Rechnern (SCP) • Auflistung von früheren Befehlen (Historie) • Wichtigste Tastenkürzel • Sonderzeichen • Seht die folgenden Themen auch als Nachschlagewerk an.
Text-Editoren • Text-Editoren unter Linux sind für Windows-User oft ein Graus! Sie bestehen aus lauter Tastenkombinationen. • joe <Datei> – Öffnet einen einfachen Texteditor: • Beenden STRG+C (funktioniert generell zum Abbrechen) • Hilfe STRG+K H • Speichern STRG+K X • emacs <Datei> – Der Über-Editor (kann Tetris) • Beenden STRG-X C • Abbrechen STRG-G (Achtung: STRG-C funktioniert nicht) • Speichern STRG-X S • vi <Datei> – Der Unter-Editor • Ohne Tutorial nicht zu bedienen. Sorry. Einstieg: man vim • Beenden: ": q !" • Speichern: ": x !"
Platzhalter • Oft ist es umständlich, bei Befehlen alle Dateien einzeln zu benennen. • Zur Vereinfachung dienen so genannte Wildcards. • Aus DOS-Zeiten kennt man *.* = alle Dateien. • Unter Linux geht dies einfach mit *. • rm -rf * löscht alle Dateien ohne Fragen. Vorsicht! ;-) • Was der Computer macht, ist, dass er * durch keins oder eine Reihe von beliebigen Zeichen ersetzt. • Urlaub*.jpg – z.B. Urlaub01.jpg, aber auch Urlaub.jpg • ? = genau ein beliebiges Zeichen • z.B. hallo.??? löscht hallo.txt, hallo.zip aber nicht hallo.html
Pipes – Rohre für Daten • Das ist schon ein fortgeschrittenes Konzept. • Damit leitet man Daten zwischen Dateien und Programmen hin und her. • date > jetzt.txt • Schreibt die Ausgabe des Befehls date (für Datum) in die Datei jetzt.txt und überschreibt den bisherigen Inhalt. • date >> jetzt.txt • Hängt die Ausgabe an die Datei an. • sort -r < jetzt.txt • Verwendet den Inhalt von jetzt.txt als Eingabe für sort. • find . -iname paper | less • Sucht eine Datei mit names paper und leitet das Ergebnis an das Anzeigeprogramm less weiter.
Wer hat das Recht? • Wie bekommt man unter Linux raus, wer auf eine Datei zugreifen darf? => ls -l • Die wichtigen Informationen stehen ganz am Anfang. • Ignoriert das erste Zeichen. • Dann folgen 3 mal 3 Zeichen. • 3 für den Benutzer, 3 für die Gruppe, 3 für alle anderen. • Dabei steht r für Read, w für Write und x für eXecute, d.h. also lesen, schreiben, ausführen. • Ändern könnt ihr das mittels des Befehls chmod • chmod u+x <Datei> = Für den Benutzer ausführbar machen • u = User/Benutzer, g = group/Gruppe, o = other/Andere
Von Rechner zu Rechner • Um von einem Rechner zum nächsten zu gehen: • ssh -l <Benutzername> <Rechnername> • Um Dateien einem anderen Benutzer zu kopieren: • scp <Quelldatei> <Benutzername>@<Rechner>: • scp <Quelldatei> <Benutzername>@<Rechner>:~/ziel/ • Beides mal müsst ihr das Passwort des Benutzers eingeben. • Achtung beim Kopieren! • Es gibt keine Warnung beim Überschreiben
Historie – Was habe ich letztens so getan... • Die Bash-Shell merkt sich alle eure Befehle. • Anzeigen mit less ~/.bash_history • Mit den Pfeiltasten hoch und runter könnt ihr auch direkt zum vorherigen/nächsten Befehl gehen. • Praktisch, wenn man faul beim Tippen ist oder ein ziemlicher komplizierter Befehl einem nicht mehr einfällt. • Mit STRG-R könnt ihr in der History suchen:
Die wichtigsten Tasten-Kombinationen (I) • TAB = Versucht, eure Eingabe zu vervollständigen! • ENTER = Ausführen • BACKSPACE = Zeichen löschen • STRG-D(elete) = nächstes Zeichen löschen (wie Entf) • Auf leerer Zeile => ausloggen • STRG-K(ill) = bis ans Ende der Zeile löschen • STRG-A(nfang) = an den Anfang der Zeile gehen • STRG-E(nde) = an das Ende der Zeile gehen • STRG-S(croll) = Nicht scrollen • STRG-Q(?) = Scrollen wieder anschalten • SHIFT-Seite/Bild/Page = Hoch scrollen. • SHIFT-Seite/Bild/Page = Runter scrollen
Tasten-Kombinationen (II) • PFEIL HOCH = vorherigen Befehl anzeigen • PFEIL RUNTER = nächsten Befehl anzeigen • STRG-R(everse Search) = in der Befehls-Historie suchen • STRG-ALT-BACKSPACE = Graphische Oberfläche (KDE, Gnome, X-Server ) abschießen • STRG-C(ancel) = laufendes Programm abbrechen • STRG-Z(zz) = Programm in den Hintergrund • Zurückholen mit dem Befehl fg (=Foreground) • STRG-Einfg = markierten Text aus der Shell kopieren • SHIFT-Einfg = Text in die Shell kopieren
Die wichtigsten Sonderzeichen • ~ (Tilde) Wird ersetzt durch euer Heimatverzeichnis • & (Ampersand) Programm im Hintergrund starten • | Ausgabe eines Programms an anderes weiterleiten • > Ausgabe wird in Datei geschrieben • >> Ausgabe wird an Datei angehängt • < Eingabe wird aus Datei gelesen • ? Ein beliebiges Zeichen • * Beliebig viele beliebige oder auch kein Zeichen • $ Durch Wert der Umgebungsvariable ersetzen • ' ' Sonderzeichen nicht umwandeln • / Trennzeichen zwischen Verzeichnissen (Linux) • ; Führt Befehle nacheinander aus (rm a.txt; rm b.txt) • . Das aktuelle Verzeichnis (.. = das übergeordnete)