Grundlagen der Kommandozeile unterUnix/Linux
Dr. Kerstin Puschke
Workshop, Uni Salzburg
September 2009
K. Puschke Kommandozeilengrundlagen
Lizenz
LizenzDieser Text steht unter einer Creative CommonsAttribution-Share Alike 3.0 Germany Lizenz, siehehttp://creativecommons.org/licenses/by-sa/3.0/de/
K. Puschke Kommandozeilengrundlagen
Teil I: Einführung
1 Unix, Linux, . . .
2 Linux Grundlagen
3 Warum die Kommandozeile nutzen?
K. Puschke Kommandozeilengrundlagen
Teil II: Erste Schritte
4 Wie komme ich auf die Kommandozeile?
5 Erste Befehle
K. Puschke Kommandozeilengrundlagen
Teil III: Dateien und Verzeichnisse verwalten
6 Unterwegs im Verzeichnisbaum
7 Anlegen, Entfernen, Verschieben, Kopieren
K. Puschke Kommandozeilengrundlagen
Teil IV: Arbeiten mit der Shell
8 Befehlssyntax - Argumente und Optionen
9 Unterstützung bei der Arbeit
10 Programme steuern
K. Puschke Kommandozeilengrundlagen
Teil V: Inhalt von Textdateien
11 Inhalte ausgeben
12 Inhalte bearbeiten
13 Inhalte durchsuchen - Reguläre Ausdrücke
K. Puschke Kommandozeilengrundlagen
Teil VI: Ein- und Ausgabe
14 Ein- und Ausgabe
K. Puschke Kommandozeilengrundlagen
Teil VII: Dateien und Verzeichnisse verwalten II
15 Rechteverwaltung
16 Links
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Teil I
Einführung
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Einführung
1 Unix, Linux, . . .
2 Linux Grundlagen
3 Warum die Kommandozeile nutzen?
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Unix, Linux und Verwandte
zahlreiche “verwandte” Systeme: Unix, Linux, BSD, . . .viele Gemeinsamkeiten in der AnwendungKurs fokussiert auf Linuxdas meiste ist übertragbar
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Einführung
1 Unix, Linux, . . .
2 Linux GrundlagenMulti-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
3 Warum die Kommandozeile nutzen?
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Multi-User System
gleichzeitig von mehreren nutzbargetrennte Bereiche (Einstellungen, Anwendungsdaten etc.)strikte Trennung von Anwendung und Administration
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Verzeichnisbaum
keine LaufwerksbuchstabenWurzel (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... K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Verzeichnisbaum II
jeder user hat eigenes Homeverzeichnisi.d.R. /home/<username>, z.B. /home/aliceeigene Dateien und Einstellungen
externe Geräte (z.B. USB-Sticks, externe Festplatten)werden in Verzeichnisbaum eingehängt (mount)benutzbar wie andere Verzeichnisse
root bezeichnetdas Wurzelverzeichnis /,den Administrations-Account,das Homeverzeichnis des Administrations-Accounts(oft /root)
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten 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)
Anwendungengrafischkommandozeilenbasiert
strikte Trennung zwischen OS und UI
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Shell
Schnittstelle zum BetriebssystemVielzahl von shells existiert, z.B.
sh Bourne Shellbash Bourne Again Shell (im Kurs verwendet)csh, tcsh,. . .
eingetippte Befehle werden sofort ausgeführtAnwendungen ausführen/startenshell-eigene Befehleshell-eigene Programmiersprache
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Multi-User SystemVerzeichnisbaumKomponenten eines Linux-Systems
Philosophie
Für jede Aufgabe das passende Programmkleine, spezialisierte Tools statt riesigerrundum-sorglos-Programmeflexibel kombinierbar
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Einführung
1 Unix, Linux, . . .
2 Linux Grundlagen
3 Warum die Kommandozeile nutzen?
K. Puschke Kommandozeilengrundlagen
Unix, Linux, . . .Linux Grundlagen
Warum die Kommandozeile nutzen?
Warum die Kommandozeile nutzen?
keine grafische Oberfläche nutzbarnicht installiert (z.B. Server)nicht benutzbar (abgestürzt, kaputtkonfiguriert,. . . )
Anwendung existiert “nur” für KommandozeileAnwendungen interaktiv kombinierenRessourcen schonen, Bootvorgang verkürzenEffizienz und Arbeitsersparnis
Beispiel: kopiere aus einem Verzeichnis mit 1000 Dateiendiejenigen, deren Name “salzburg” enthält
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Teil II
Erste Schritte
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Erste Schritte
4 Wie komme ich auf die Kommandozeile?
5 Erste Befehle
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Auf die Kommandozeile wechseln
Aus GUI herausTerminal bzw. Konsole startenzusätzliche Sitzung ohne GUI starten
STRG+ALT+F1weitere 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
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Erste Schritte
4 Wie komme ich auf die Kommandozeile?
5 Erste Befehle
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Vorsicht
Achtung
Groß- und Kleinschreibung sowie Leerzeichen sind relevant!
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Erste Befehle
whoami - Wer bin ich? Mit welchem username bin icheingeloggt?hostname - Auf welchem Rechner befinde ich mich?pwd - In welchem Verzeichnis bin ich? (print workingdirectory)
K. Puschke Kommandozeilengrundlagen
Wie komme ich auf die Kommandozeile?Erste Befehle
Aufgaben
Erste Schrittepwd, whoami, hostname
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Teil III
Dateien und Verzeichnisse verwalten
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Dateien und Verzeichnisse verwalten
6 Unterwegs im VerzeichnisbaumVerzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
7 Anlegen, Entfernen, Verschieben, Kopieren
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Navigation im Verzeichnisbaum
Verzeichnis wechselncd VERZEICHNIS - change directory
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Aufgaben
Verzeichnis wechselncd, Pfadangaben
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Verzeichnis wechseln
cd VERZEICHNISwechselt in Verzeichnis <Verzeichnis>cdwechselt ins eigene Homeverzeichniscd -wechselt ins vorher benutzte Verzeichnis
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Pfadangaben
absoluter Pfadbeginnt im Rootverzeichnis /Beispiel: /home/alice/linuxkurs/aufgaben
relativer Pfadrelativ zum aktuellen Verzeichnisbeginnt ohne “/”aktuelles Verzeichnis: .nächsthöheres Verzeichnis: ..
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Pfadangaben - Beispiele
Ausgehend von /home/alice/linuxkurs/ entsprechensich jeweils
aufgaben./aufgaben/home/alice/linuxkurs/aufgaben
../mysqlkurs/aufgaben/home/alice/mysqlkurs/aufgaben
../../bob/linuxkurs/home/bob/linuxkurs
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Verzeichnisinhalt
Verzeichnisinhalt ausgebenls VERZEICHNISlist directory contents (historisch: list segment)
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Aufgaben
Verzeichnisinhalt ausgebenls
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Verzeichnisinhalt
ls VERZEICHNISInhalt von <Verzeichnis>lsInhalt des aktuellen Verzeichnissesls --all VERZEICHNISls -a <Verzeichnis>auch versteckte Dateien anzeigen(Dateiname beginnt mit .)ls -l VERZEICHNISls --format=long <Verzeichnis>long format, mehr Infos
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Verzeichnis wechselnPfadangabenVerzeichnisinhalt ausgeben
Verzeichnisinhalt - ls -l
-rw-r--r-- 1 alice users 2472 2009-03-14 17:54kurs.txtdrwxr-xr-x 2 alice users 4096 2009-05-23 10:06Videos
RechteAnzahl hard links (Datei) oderUnterverzeichnisse (Verzeichnis)ownergroupGrösse in Bytesletzte ÄnderungName
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Dateien und Verzeichnisse verwalten
6 Unterwegs im Verzeichnisbaum
7 Anlegen, Entfernen, Verschieben, Kopieren
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Anlegen und Entfernen
Anlegenmkdir VERZEICHNISmake directorytouch DATEIDatei anlegen (bei vorhandener Datei: timestamp setzen)
Entfernenrm DATEIremovermdir VERZEICHNISremove directory (entfernt leeres Verzeichnis)rm -r VERZEICHNISentfernt Verzeichnis samt Inhalt
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Kopieren, Verschieben, Umbenennen
Verschieben und Umbenennenmv QUELLDATEI ZIELDATEImv DATEI(EN) VERZEICHNISmv QUELLVERZEICHNIS ZIELVERZEICHNISmove
Kopierencp QUELLDATEI ZIELDATEIcp DATEI(EN) VERZEICHNIScp -r QUELLVERZEICHNIS ZIELVERZEICHNIScopy
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Vorsicht
Warnung
U.U. wird ohne Rückfrage gelöscht oder überschrieben!
K. Puschke Kommandozeilengrundlagen
Unterwegs im VerzeichnisbaumAnlegen, Entfernen, Verschieben, Kopieren
Aufgaben
Dateien und VerzeichnisseAnlegen, Entfernen, Kopieren, Verschieben, Umbenennen
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Teil IV
Arbeiten mit der Shell
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Arbeiten mit der Shell
8 Befehlssyntax - Argumente und Optionen
9 Unterstützung bei der Arbeit
10 Programme steuern
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Argumente
Befehle können auf Argumente wirkenmanche Befehle verarbeiten keine Argumentez.B. pwdmanche Argumente sind zwingendz.B. Verzeichnisname bei mkdirmanche Argumente sind optionalz.B. Verzeichnis bei cd oderzweiter Verzeichnisname bei mkdirggf. mehrere Argumente erforderlichz.B. Quelle und Ziel bei mv
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Optionen
Verändern die Wirkung von Befehlenrm -r
Syntax uneinheitlich, gängig sindeinzelner Buchstabe mit minus davorrm -r kursWort mit doppeltem minusrm --recursive kursKey-Value mit =rm --interactive=always
teilweise auch nur mit einfachem minusOptionen können z.T. kombiniert werden
oft kann dann abgekürzt werdenls -al statt ls -a -l
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Aufgaben
Befehlssyntax und ArbeitsweisenBefehle, Optionen und Argumente, praktische Tips
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Arbeiten mit der Shell
8 Befehlssyntax - Argumente und Optionen
9 Unterstützung bei der ArbeitArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
10 Programme steuern
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Arbeitserleichterungen
Blättern mit Shift+PageUp/DownBefehlshistorie mit CursortastenVervollständigung mit TabCopy & Paste:
Markieren & per mittlerer Maustaste einfügenim Terminal oft: STRG+Shift+C, STRG+Shift+V
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Hilfe
Befehlssyntax abfragen:Optionen -h oder --helpmanpageman befehl
info befehl
perldoc, texdoc,...
. . .Notation: Angaben in eckigen Klammern sind optional
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Klammererweiterung
Ausdruck in geschweiften Klammern wird zu mehrerenDateinamen erweitertcp /home/alice/{foo,bar} neuerordnerentsprichtcp /home/alice/foo /home/alice/barneuerordner
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Wildcards
Platzhalter für DateioperationenBeispielanwendung: Lösche alle Dateien, deren Name mitlinux beginntje 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
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
WildcardsBeispiele
* - alle Dateien, die nicht versteckt sind.* - alle versteckten Dateienf* - alle Dateien, deren Name mit f beginntf?o - z.B. foo,flo,f.of[ol]o - foo und flo
f[!l]o - foo, fio,... aber nicht flo[0-9]* - Dateiname beginnt mit Ziffer
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
Aufgaben
Arbeitserleichterungen und Hilfe/DokuWildcards, Klammererweiterung, manpages
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
ArbeitserleichterungenHilfe findenWildcards und Klammererweiterung
WildcardsGefahren
Welche Dateien werden gelöscht?rm -rf .*
Vorsicht!In Kombination mit -r paßt .* auf ../*, d.h. auch aufhöhergelegende Verzeichnisse!
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Arbeiten mit der Shell
8 Befehlssyntax - Argumente und Optionen
9 Unterstützung bei der Arbeit
10 Programme steuern
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Programme steuernStarten und Beenden
Programm starten mit zugehörigem Befehlemacs
Programm im Vordergrund (Shell “blockiert”)
Programm im Hintergrund starten mit &emacs &
Shell nicht “blockiert”Programm beenden
mit programm-eigenem BefehlSTRG+C
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Programme steuern
Programm im Vordergrund anhalten/unterbrechenSTRG+Z
im Vordergrund weiterlaufen lassenfg
im Hintergrund weiterlaufen lassenbg
was läuft im Hintergrund?jobs
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Programme steuern
HinweisDie Darstellung der Programmsteuerung ist sehr vereinfacht.Wer mehr wissen möchte, sollte sich über Prozesse undThreads informieren.
K. Puschke Kommandozeilengrundlagen
Befehlssyntax - Argumente und OptionenUnterstützung bei der Arbeit
Programme steuern
Aufgaben
Programme steuern
Aufrufen, Unterbrechen, Beenden, Vorder- und Hintergrund
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Teil V
Inhalt von Textdateien
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Inhalt von Textdateien
11 Inhalte ausgeben
12 Inhalte bearbeiten
13 Inhalte durchsuchen - Reguläre Ausdrücke
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Textdatei ausgeben
cat gibt Inhalt der Datei ausless oder more zum Durchblättern (pager )head gibt Anfang der Datei austail gibt Ende der Datei aussort sortierte Ausgabewc word count - Zeichen, Zeilen oder Wörter zählen
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Inhalt von Textdateien
11 Inhalte ausgeben
12 Inhalte bearbeiten
13 Inhalte durchsuchen - Reguläre Ausdrücke
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Textdatei bearbeiten
klein und einfach: nano, picomittelklasse: joe, jedkomplex, aber mächtig: emacs, vimauf lange Sicht lohnend, einen mächtigen Editor zubeherrschen
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Inhalt von Textdateien
11 Inhalte ausgeben
12 Inhalte bearbeiten
13 Inhalte durchsuchen - Reguläre Ausdrücke
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Reguläre AusdrückeZur Suche in Text
Platzhalter. - ein beliebiges Zeichenf.o passt auf foo,flo,f9o aber nicht fouo[mehrereZeichen] - eines der genannten Zeichenf[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 nichtfo?a passt auf fa, foa, aber nicht fooa
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Dateien durchsuchengrep
Dateien durchsuchengrep SUCHMUSTER DATEI(EN)
Beispielgrep bash kursmaterial.txtgrep ’alice and bob’ /home/alicegrep ali.* bob.txt
K. Puschke Kommandozeilengrundlagen
Inhalte ausgebenInhalte bearbeiten
Inhalte durchsuchen - Reguläre Ausdrücke
Aufgaben
TextdateienInhalte von Textdateien ausgeben und ändern, Textdateiendurchsuchen, Reguläre Ausdrücke
K. Puschke Kommandozeilengrundlagen
Ein- und Ausgabe
Teil VI
Ein- und Ausgabe
K. Puschke Kommandozeilengrundlagen
Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
Ein- und Ausgabe
14 Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
K. Puschke Kommandozeilengrundlagen
Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
TastatureingabeStatt Datei einzulesen
statt Dateinamen - verwendet (je nach Befehl)sort -
Dateinamen weggelassen (je nach Befehl)wc
shell erwartet nun TastatureingabeSTRG+d entspricht Dateiende
K. Puschke Kommandozeilengrundlagen
Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
Ein- und Ausgabe umleiten
> - Ausgabe in Datei schreibenls /home/alice/ > alicekram.txtvorhandene Datei wird überschrieben
>> - Ausgabe an Datei anhängen| - Pipe: Ausgabe eines Kommandos als Eingabe einesweiteren Kommandos
ls /home/alice | grep bob
< - Eingabe aus Datei lesensort < foo.txtmysql < dump.sql
nach /dev/null geleitet: unwiderbringlich verschwunden
K. Puschke Kommandozeilengrundlagen
Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
Datenströme mit Deskriptoren umleiten
Datenkanäle
Kanal Deskriptor defaultStandardeingabe (stin) 0 TastaturStandardausgabe (stdout) 1 BildschirmStandardfehlerausgabe (stderr) 2 Bildschirm
Kanal umleiten: n>mv foo bar 2>error.err
Kanäle bündeln: n>m&sort foo 2> bar.txt 1>2&
erst umleiten, dann bündeln
K. Puschke Kommandozeilengrundlagen
Ein- und AusgabeTastatureingabeEin- und Ausgabe umleitenDeskriptoren
Aufgaben
Ein- und AusgabeEin- und Ausgabe umleiten, Deskriptoren
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Teil VII
Dateien und Verzeichnisse verwalten II
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Dateien und Verzeichnisse verwalten II
15 Rechteverwaltung
16 Links
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
DateirechteWas für Rechte gibt es
Dateienr - lesen (read)w - schreiben (write)x - ausführen (execute)
Verzeichnisser - Verzeichnisinhalt auslesenw - ins Vezeichnis schreibenx - ins Verzeichnis wechseln
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
DateirechteWer hat Rechte?
user sind in Gruppen groups organisiertjede Datei hat einen user als ownerzu jeder Datei gehört eine Gruppeunterschiedliche Rechte für
user (u) (d.h. owner)group (g)others (o)
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
DateirechteNotation
nacheinander für owner, group, others- bedeutet: Recht nicht gegebenBeispiel: rwxr-xr-xowner darf r, w und x, group und others nur r und x
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Dateirechte ändern
Rechte ändernchmod MODUS DATEI(EN)
Wer (ugo) bekommt/verliert (+-) welche Rechte (rwx)?chmod ug+r foo.txtuser und group erhalten Leserechtechmod o-w bar.txtothers verlieren Schreibrechte
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Aufgaben
DateirechteDateirechte verwalten
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Dateien und Verzeichnisse verwalten II
15 Rechteverwaltung
16 Links
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Linkshard links und sym links
hard link : mehrere Namen für eine Dateiviele Stolperfallen
symbolic link, sym link, soft link : Pointer auf einen Namenverlinkte Datei/Verzeichnis verschoben/gelöscht: keinupdate des linkssym link kann andere Rechte haben als verlinkteDatei/Verzeichnissehr praktisch im Alltag
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Sym Links
sym link anlegenln -s ZIEL LINKNAME
sym link entfernenrm LINKNAME
K. Puschke Kommandozeilengrundlagen
RechteverwaltungLinks
Aufgaben
LinksSymlinks
K. Puschke Kommandozeilengrundlagen