• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Grundlagen der Kommandozeile unter Unix/Linux (Handout)
 

Grundlagen der Kommandozeile unter Unix/Linux (Handout)

on

  • 1,489 views

Handout zum Workshop "Grundlagen der Kommandozeile unter Unix/Linux", September 2009

Handout zum Workshop "Grundlagen der Kommandozeile unter Unix/Linux", September 2009

Statistics

Views

Total Views
1,489
Views on SlideShare
1,487
Embed Views
2

Actions

Likes
0
Downloads
10
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Grundlagen der Kommandozeile unter Unix/Linux (Handout) Grundlagen der Kommandozeile unter Unix/Linux (Handout) Document Transcript

    • Grundlagen der Kommandozeile unter Unix/Linux Dr. Kerstin Puschke September 2009 1
    • Lizenz Lizenz Dieser Text steht unter einer Creative Commons Attribution-Share Alike 3.0 Germany Lizenz, siehe http://creativecommons.org/licenses/by-sa/3.0/de/
    • Inhaltsverzeichnis I Einführung 4 1 Unix, Linux, . . . 4 2 Linux Grundlagen 4 2.1 Multi-User System . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Verzeichnisbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Komponenten eines Linux-Systems . . . . . . . . . . . . . . . . . . 5 3 Warum die Kommandozeile nutzen? 6 II Erste Schritte 7 4 Wie komme ich auf die Kommandozeile? 7 5 Erste Befehle 7 III Dateien und Verzeichnisse verwalten 8 6 Unterwegs im Verzeichnisbaum 8 6.1 Verzeichnis wechseln . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6.2 Pfadangaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 6.3 Verzeichnisinhalt ausgeben . . . . . . . . . . . . . . . . . . . . . . . 9 7 Anlegen, Entfernen, Verschieben, Kopieren 10 IV Arbeiten mit der Shell 11 8 Befehlssyntax - Argumente und Optionen 11 9 Unterstützung bei der Arbeit 11 9.1 Arbeitserleichterungen . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.2 Hilfe finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.3 Wildcards und Klammererweiterung . . . . . . . . . . . . . . . . . . 12 10 Programme steuern 13 V Inhalt von Textdateien 14 11 Inhalte ausgeben 14 12 Inhalte bearbeiten 14 13 Inhalte durchsuchen - Reguläre Ausdrücke 14 2
    • VI Ein- und Ausgabe 16 14 Ein- und Ausgabe 16 14.1 Tastatureingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 14.2 Ein- und Ausgabe umleiten . . . . . . . . . . . . . . . . . . . . . . . 16 14.3 Deskriptoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 VII Dateien und Verzeichnisse verwalten II 18 15 Rechteverwaltung 18 16 Links 19 3
    • Teil I Einführung 1 Unix, Linux, . . . Unix, Linux und Verwandte • zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . . • viele Gemeinsamkeiten in der Anwendung • Kurs fokussiert auf Linux • das meiste ist übertragbar 2 Linux Grundlagen 2.1 Multi-User System Multi-User System • gleichzeitig von mehreren nutzbar • getrennte Bereiche (Einstellungen, Anwendungsdaten etc.) • strikte Trennung von Anwendung und Administration 2.2 Verzeichnisbaum Verzeichnisbaum • keine Laufwerksbuchstaben • Wurzel (root) ist oben, Verzeichnis / • Verzeichnis in Pfadangaben durch / getrennt: /home/alice/linuxkurs / /bin /boot /dev /etc /home • /home/alice /home/bob /home/bob/linuxkurs /home/carol /lib ... 4
    • Verzeichnisbaum II • jeder user hat eigenes Homeverzeichnis – i.d.R. /home/<username>, z.B. /home/alice – eigene Dateien und Einstellungen • externe Geräte (z.B. USB-Sticks, externe Festplatten) – werden in Verzeichnisbaum eingehängt (mount) – benutzbar wie andere Verzeichnisse • root bezeichnet – das Wurzelverzeichnis /, – den Administrations-Account, – das Homeverzeichnis des Administrations-Accounts (oft /root) 2.3 Komponenten eines Linux-Systems Komponenten • Betriebssystem (Operating System, OS) – Kernel (Hardwareverwaltung) – System- und Dienstprogramme (Hardwarenahe Konfiguration,. . . ) • Schnittstelle (User Interface, UI) – GUI (Graphical User Interface, grafische Oberfläche) – CLI (Command Line Interface, Kommandozeile, Shell) • Anwendungen – grafisch – kommandozeilenbasiert • strikte Trennung zwischen OS und UI Shell • Schnittstelle zum Betriebssystem • Vielzahl von shells existiert, z.B. – sh Bourne Shell – bash Bourne Again Shell (im Kurs verwendet) – csh, tcsh,. . . • eingetippte Befehle werden sofort ausgeführt – Anwendungen ausführen/starten – shell-eigene Befehle – shell-eigene Programmiersprache 5
    • Philosophie Für jede Aufgabe das passende Programm • kleine, spezialisierte Tools statt riesiger rundum-sorglos-Programme • flexibel kombinierbar 3 Warum die Kommandozeile nutzen? Warum die Kommandozeile nutzen? • keine grafische Oberfläche nutzbar – nicht installiert (z.B. Server) – nicht benutzbar (abgestürzt, kaputtkonfiguriert,. . . ) • Anwendung existiert “nur” für Kommandozeile • Anwendungen interaktiv kombinieren • Ressourcen schonen, Bootvorgang verkürzen • Effizienz und Arbeitsersparnis – Beispiel: kopiere aus einem Verzeichnis mit 1000 Dateien diejenigen, deren Name “salzburg” enthält 6
    • Teil II Erste Schritte 4 Wie komme ich auf die Kommandozeile? Auf die Kommandozeile wechseln Aus GUI heraus • Terminal bzw. Konsole starten • zusätzliche Sitzung ohne GUI starten – STRG+ALT+F1 – weitere Sitzungen mit STRG+ALT+F2, STRG+ALT+F3,. . . – zurück zur grafischen Sitzung: STRG+ALT+F7 Schon da? • Eingabeaufforderung (Prompt) erscheint, z.B.kpuschke@localhost:˜ • ggf. in die bash wechseln 5 Erste Befehle Vorsicht Achtung Groß- und Kleinschreibung sowie Leerzeichen sind relevant! Erste Befehle • whoami - Wer bin ich? Mit welchem username bin ich eingeloggt? • hostname - Auf welchem Rechner befinde ich mich? • pwd - In welchem Verzeichnis bin ich? (print working directory) Aufgaben Erste Schritte pwd, whoami, hostname 7
    • Teil III Dateien und Verzeichnisse verwalten 6 Unterwegs im Verzeichnisbaum 6.1 Verzeichnis wechseln Navigation im Verzeichnisbaum Verzeichnis wechseln cd VERZEICHNIS - change directory Aufgaben Verzeichnis wechseln cd, Pfadangaben Verzeichnis wechseln • cd VERZEICHNIS wechselt in Verzeichnis <Verzeichnis> • cd wechselt ins eigene Homeverzeichnis • cd - wechselt ins vorher benutzte Verzeichnis 6.2 Pfadangaben Pfadangaben • absoluter Pfad – beginnt im Rootverzeichnis / – Beispiel: /home/alice/linuxkurs/aufgaben • relativer Pfad – relativ zum aktuellen Verzeichnis – beginnt ohne “/” – aktuelles Verzeichnis: . – nächsthöheres Verzeichnis: .. Pfadangaben - Beispiele Ausgehend von /home/alice/linuxkurs/ entsprechen sich jeweils aufgaben ./aufgaben /home/alice/linuxkurs/aufgaben 8
    • ../mysqlkurs/aufgaben /home/alice/mysqlkurs/aufgaben ../../bob/linuxkurs /home/bob/linuxkurs 6.3 Verzeichnisinhalt ausgeben Verzeichnisinhalt Verzeichnisinhalt ausgeben ls VERZEICHNIS list directory contents (historisch: list segment) Aufgaben Verzeichnisinhalt ausgeben ls Verzeichnisinhalt • ls VERZEICHNIS Inhalt von <Verzeichnis> • ls Inhalt des aktuellen Verzeichnisses • ls - -all VERZEICHNIS ls -a <Verzeichnis> auch versteckte Dateien anzeigen (Dateiname beginnt mit .) • ls -l VERZEICHNIS ls - -format=long <Verzeichnis> long format, mehr Infos Verzeichnisinhalt - ls -l -rw-r- -r- - 1 alice users 2472 2009-03-14 17:54 kurs.txt drwxr-xr-x 2 alice users 4096 2009-05-23 10:06 Videos • Rechte • Anzahl hard links (Datei) oder Unterverzeichnisse (Verzeichnis) • owner • group • Grösse in Bytes • letzte Änderung • Name 9
    • 7 Anlegen, Entfernen, Verschieben, Kopieren Anlegen und Entfernen Anlegen • mkdir VERZEICHNIS make directory • touch DATEI Datei anlegen (bei vorhandener Datei: timestamp setzen) Entfernen • rm DATEI remove • rmdir VERZEICHNISremove directory (entfernt leeres Verzeichnis) • rm -r VERZEICHNISentfernt Verzeichnis samt Inhalt Kopieren, Verschieben, Umbenennen Verschieben und Umbenennen mv QUELLDATEI ZIELDATEI mv DATEI(EN) VERZEICHNIS mv QUELLVERZEICHNIS ZIELVERZEICHNIS move Kopieren cp QUELLDATEI ZIELDATEI cp DATEI(EN) VERZEICHNIS cp -r QUELLVERZEICHNIS ZIELVERZEICHNIS copy Vorsicht Warnung U.U. wird ohne Rückfrage gelöscht oder überschrieben! Aufgaben Dateien und Verzeichnisse Anlegen, Entfernen, Kopieren, Verschieben, Umbenennen 10
    • Teil IV Arbeiten mit der Shell 8 Befehlssyntax - Argumente und Optionen Argumente • Befehle können auf Argumente wirken • manche Befehle verarbeiten keine Argumentez.B. pwd • manche Argumente sind zwingend z.B. Verzeichnisname bei mkdir • manche Argumente sind optional z.B. Verzeichnis bei cd oder zweiter Verzeich- nisname bei mkdir • ggf. mehrere Argumente erforderlichz.B. Quelle und Ziel bei mv Optionen • Verändern die Wirkung von Befehlen rm -r • Syntax uneinheitlich, gängig sind – einzelner Buchstabe mit minus davor rm -r kurs – Wort mit doppeltem minus rm - -recursive kurs – Key-Value mit = rm - -interactive=always • teilweise auch nur mit einfachem minus • Optionen können z.T. kombiniert werden – oft kann dann abgekürzt werden ls -al statt ls -a -l Aufgaben Befehlssyntax und Arbeitsweisen Befehle, Optionen und Argumente, praktische Tips 9 Unterstützung bei der Arbeit 9.1 Arbeitserleichterungen Arbeitserleichterungen • Blättern mit Shift+PageUp/Down • Befehlshistorie mit Cursortasten • Vervollständigung mit Tab • Copy & Paste: – Markieren & per mittlerer Maustaste einfügen – im Terminal oft: STRG+Shift+C, STRG+Shift+V 11
    • 9.2 Hilfe finden Hilfe • Befehlssyntax abfragen:Optionen -h oder - -help • manpage man befehl • info befehl • perldoc, texdoc,... • ... • Notation: Angaben in eckigen Klammern sind optional 9.3 Wildcards und Klammererweiterung Klammererweiterung • Ausdruck in geschweiften Klammern wird zu mehreren Dateinamen erweitert • cp /home/alice/{foo,bar} neuerordner entspricht cp /home/alice/foo /home/alice/bar neuerordner Wildcards • Platzhalter für Dateioperationen • Beispielanwendung: Lösche alle Dateien, deren Name mit linux beginnt • je nach shell: ˜ expandiert zum eigenen Homeverzeichnis ˜ /linuxkurs entspricht /home/<mein_username>/linuxkurs • ? - genau ein beliebiges Zeichen • * - beliebig viele beliebige Zeichen • ! - Verneinung • [] - Characterclass (“oder”) • versteckte Dateien werden ggf. ignoriert Wildcards Beispiele • * - alle Dateien, die nicht versteckt sind • .* - alle versteckten Dateien • f* - alle Dateien, deren Name mit f beginnt • f?o - z.B. foo,flo,f.o • f[ol]o - foo und flo • f[!l]o - foo, fio,... aber nicht flo • [0-9]* - Dateiname beginnt mit Ziffer 12
    • Aufgaben Arbeitserleichterungen und Hilfe/Doku Wildcards, Klammererweiterung, manpages Wildcards Gefahren Welche Dateien werden gelöscht? rm -rf .* Vorsicht! In Kombination mit -r paßt .* auf ../*, d.h. auch auf höhergelegende Verzeichnis- se! 10 Programme steuern Programme steuern Starten und Beenden • Programm starten mit zugehörigem Befehl emacs – Programm im Vordergrund (Shell “blockiert”) • Programm im Hintergrund starten mit & emacs & – Shell nicht “blockiert” • Programm beenden – mit programm-eigenem Befehl – STRG+C Programme steuern • Programm im Vordergrund anhalten/unterbrechen STRG+Z • im Vordergrund weiterlaufen lassen fg • im Hintergrund weiterlaufen lassen bg • was läuft im Hintergrund? jobs Programme steuern Hinweis Die Darstellung der Programmsteuerung ist sehr vereinfacht. Wer mehr wissen möchte, sollte sich über Prozesse und Threads informieren. Aufgaben Programme steuern Aufrufen, Unterbrechen, Beenden, Vorder- und Hintergrund 13
    • Teil V Inhalt von Textdateien 11 Inhalte ausgeben Textdatei ausgeben • cat gibt Inhalt der Datei aus • less oder more zum Durchblättern (pager) • head gibt Anfang der Datei aus • tail gibt Ende der Datei aus • sort sortierte Ausgabe • wc word count - Zeichen, Zeilen oder Wörter zählen 12 Inhalte bearbeiten Textdatei bearbeiten • klein und einfach: nano, pico • mittelklasse: joe, jed • komplex, aber mächtig: emacs, vim • auf lange Sicht lohnend, einen mächtigen Editor zu beherrschen 13 Inhalte durchsuchen - Reguläre Ausdrücke Reguläre Ausdrücke Zur Suche in Text • Platzhalter – . - ein beliebiges Zeichen f.o passt auf foo,flo,f9o aber nicht fouo – [mehrereZeichen] - eines der genannten Zeichen f[aei]o passt auf fao, feo, fio aber nicht faeo • Wiederholungen – * - beliebig oft (oder gar nicht) fo* passt auf foo, fooo, f, fooooooo – ? - einmal oder gar nicht fo?a passt auf fa, foa, aber nicht fooa 14
    • Dateien durchsuchen grep Dateien durchsuchen grep SUCHMUSTER DATEI(EN) Beispiel grep bash kursmaterial.txt grep ’alice and bob’ /home/alice grep ali.* bob.txt Aufgaben Textdateien Inhalte von Textdateien ausgeben und ändern, Textdateien durchsuchen, Reguläre Aus- drücke 15
    • Teil VI Ein- und Ausgabe 14 Ein- und Ausgabe 14.1 Tastatureingabe Tastatureingabe Statt Datei einzulesen • statt Dateinamen - verwendet (je nach Befehl) sort - • Dateinamen weggelassen (je nach Befehl) wc • shell erwartet nun Tastatureingabe • STRG+d entspricht Dateiende 14.2 Ein- und Ausgabe umleiten Ein- und Ausgabe umleiten • > - Ausgabe in Datei schreiben – ls /home/alice/ > alicekram.txt – vorhandene Datei wird überschrieben • >> - Ausgabe an Datei anhängen • | - Pipe: Ausgabe eines Kommandos als Eingabe eines weiteren Kommandos – ls /home/alice | grep bob • < - Eingabe aus Datei lesen – sort < foo.txt – mysql < dump.sql • nach /dev/null geleitet: unwiderbringlich verschwunden 14.3 Deskriptoren Datenströme mit Deskriptoren umleiten Datenkanäle Kanal Deskriptor default Standardeingabe (stin) 0 Tastatur Standardausgabe (stdout) 1 Bildschirm Standardfehlerausgabe (stderr) 2 Bildschirm • Kanal umleiten: n> mv foo bar 2>error.err 16
    • • Kanäle bündeln: n>m& sort foo 2> bar.txt 1>2& • erst umleiten, dann bündeln Aufgaben Ein- und Ausgabe Ein- und Ausgabe umleiten, Deskriptoren 17
    • Teil VII Dateien und Verzeichnisse verwalten II 15 Rechteverwaltung Dateirechte Was für Rechte gibt es • Dateien – r - lesen (read) – w - schreiben (write) – x - ausführen (execute) • Verzeichnisse – r - Verzeichnisinhalt auslesen – w - ins Vezeichnis schreiben – x - ins Verzeichnis wechseln Dateirechte Wer hat Rechte? • user sind in Gruppen groups organisiert • jede Datei hat einen user als owner • zu jeder Datei gehört eine Gruppe • unterschiedliche Rechte für – user (u) (d.h. owner) – group (g) – others (o) Dateirechte Notation • nacheinander für owner, group, others • - bedeutet: Recht nicht gegeben • Beispiel: rwxr-xr-x owner darf r, w und x, group und others nur r und x Dateirechte ändern Rechte ändern chmod MODUS DATEI(EN) • Wer (ugo) bekommt/verliert (+-) welche Rechte (rwx)? – chmod ug+r foo.txt user und group erhalten Leserechte – chmod o-w bar.txt others verlieren Schreibrechte 18
    • Aufgaben Dateirechte Dateirechte verwalten 16 Links Links hard links und sym links • hard link: mehrere Namen für eine Datei – viele Stolperfallen • symbolic link, sym link, soft link: Pointer auf einen Namen – verlinkte Datei/Verzeichnis verschoben/gelöscht: kein update des links – sym link kann andere Rechte haben als verlinkte Datei/Verzeichnis – sehr praktisch im Alltag Sym Links sym link anlegen ln -s ZIEL LINKNAME sym link entfernen rm LINKNAME Aufgaben Links Symlinks 19