Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Aus dem Lektorat
Inhaltsverzeichnis
Vorwort
1 Einleitung
1.1 Warum Linux?
1.1.1 Man muss kein Informatiker sein ...
1.1.2 ... aber es hilft
1.2 Grundbegriffe: Kernel, Distribution, Derivat
1.2.1 Bekannte Distributionen und Derivate
1.2.2 Arten von Distributionen
1.3 Die Entstehungsgeschichte von Linux
1.3.1 Die Entstehung von Unix
1.3.2 BSD wird ins Leben gerufen
1.3.3 Die Geburtsstunde von Linux
1.3.4 Die Kernelversionen
1.3.5 Stallman und das GNU-Projekt
1.3.6 Geschichte der Distributionen
1.4 Zusammenfassung
1.5 Aufgaben
2 So funktioniert Linux
2.1 Grundlagen
2.1.1 Prozessor
2.1.2 Speicher
2.1.3 Fairness und Schutz
2.1.4 Programmierung
2.1.5 Benutzung
2.2 Aufgaben eines Betriebssystems
2.2.1 Abstraktion
2.2.2 Virtualisierung
2.2.3 Ressourcenverwaltung
2.3 Prozesse, Tasks und Threads
2.3.1 Definitionen
2.3.2 Lebenszyklen eines Prozesses
2.3.3 Implementierung
2.4 Speichermanagement
2.4.1 Paging
2.4.2 Hardware
2.4.3 Organisation des Adressraums
2.5 Eingabe und Ausgabe
2.5.1 Hardware und Treiber
2.5.2 Interaktion mit Geräten
2.5.3 Ein-/Ausgabe für Benutzerprogramme
2.5.4 Dateisysteme
2.6 Zusammenfassung
2.7 Aufgaben
3 Erste Schritte
3.1 Die Unix-Philosophie
3.1.1 Kleine, spezialisierte Programme
3.1.2 Wenn du nichts zu sagen hast: Halt die Klappe
3.1.3 Die Shell
3.1.4 Administration
3.1.5 Netzwerktransparenz
3.2 Der erste Kontakt mit dem System
3.2.1 Booten
3.2.2 Login
3.2.3 Arbeiten am System
3.2.4 Die Linux-Verzeichnisstruktur
3.2.5 Das Rechtesystem
3.2.6 Herunterfahren
3.2.7 Wie Laufwerke bezeichnet werden
3.3 Bewegen in der Shell
3.3.1 Der Prompt
3.3.2 Absolute und relative Pfade
3.3.3 pwd
3.3.4 cd
3.4 Arbeiten mit Dateien
3.4.1 ls
3.4.2 more, less und most
3.4.3 Und Dateitypen?
3.5 Der Systemstatus
3.5.1 uname
3.5.2 uptime
3.5.3 date
3.6 Hilfe
3.6.1 Manpages
3.6.2 GNU info
3.6.3 Programmdokumentation
3.7 Zusammenfassung
3.8 Aufgaben
4 Grundlagen der Shell
4.1 Einführung und Überblick
4.1.1 Welche Shells gibt es?
4.1.2 Welche Shell für dieses Buch?
4.1.3 Die Shell als Programm
4.1.4 Der Prompt
4.1.5 Shellintern vs. Programm
4.1.6 Kommandos aneinanderreihen
4.1.7 Mehrzeilige Kommandos
4.2 Konsolen
4.3 screen
4.4 Besseres Arbeiten mit Verzeichnissen
4.4.1 Pfade
4.4.2 Und das Ganze mit Pfaden ...
4.5 Die elementaren Programme
4.5.1 echo und Kommandosubstitution
4.5.2 sleep
4.5.3 Erstellen eines Alias
4.5.4 cat
4.6 Programme für das Dateisystem
4.6.1 mkdir – Erstellen eines Verzeichnisses
4.6.2 rmdir – Löschen von Verzeichnissen
4.6.3 cp – Kopieren von Dateien
4.6.4 mv – Verschieben einer Datei
4.6.5 rm – Löschen von Dateien
4.6.6 head und tail
4.7 Ein- und Ausgabeumlenkung
4.7.1 Fehlerausgabe und Verknüpfung von Ausgaben
4.7.2 Anhängen von Ausgaben
4.7.3 Gruppierung der Umlenkung
4.8 Pipes
4.8.1 Beispiel: sort und uniq verbinden
4.8.2 Beispiel: Zeichen vertauschen
4.8.3 Um- und Weiterleiten mit tee
4.8.4 Named Pipes (FIFOs)
4.9 xargs
4.10 Zusammenfassung
4.11 Aufgaben
5 Prozesse in der Shell
5.1 Sessions und Prozessgruppen
5.2 Vorder- und Hintergrundprozesse
5.2.1 Prozessgruppen mit mehreren Prozessen
5.2.2 Wechseln zwischen Vorder- und Hintergrund
5.2.3 Jobs – behalten Sie sie im Auge
5.2.4 Hintergrundprozesse und Fehlermeldungen
5.2.5 Wann ist es denn endlich vorbei?
5.3 Das kill-Kommando und Signale
5.3.1 Welche Signale gibt es?
5.3.2 Beispiel: Anhalten und Fortsetzen eines Prozesses
5.4 Prozessadministration
5.4.1 Prozesspriorität
5.4.2 pstree
5.4.3 Prozesslistung mit Details via ps
5.4.4 top
5.4.5 Timing für Prozesse
5.5 Zusammenfassung
5.6 Aufgaben
6 Reguläre Ausdrücke
6.1 Grundlagen und Aufbau regulärer Ausdrücke
6.2 grep
6.2.1 Aufrufparameter für grep
6.2.2 grep -E und egrep
6.2.3 Exkurs: PDF-Files mit grep durchsuchen
6.3 awk
6.3.1 awk starten
6.3.2 Arbeitsweise von awk
6.3.3 Reguläre Ausdrücke in awk anwenden
6.3.4 Einfache Strings
6.3.5 Der Punkt-Operator
6.3.6 Der Plus-Operator
6.3.7 Die Zeichenvorgabe
6.3.8 Negierte Zeichenvorgabe
6.3.9 Zeilenanfang und -ende
6.3.10 awk – etwas detaillierter
6.3.11 Zusätzliche Parameter beim Aufruf
6.3.12 awk und Variablen
6.3.13 Rechenoperationen
6.3.14 Bedingte Anweisungen in awk
6.3.15 Funktionen in awk
6.3.16 Builtin-Funktionen
6.3.17 Arrays und String-Operationen
6.3.18 Was noch fehlt
6.4 sed
6.4.1 Erste Schritte
6.4.2 sed-Befehle
6.4.3 Nach Zeilen filtern
6.4.4 Wiederholungen in regulären Ausdrücken
6.5 Zusammenfassung
6.6 Aufgaben
7 Werkzeuge für die Konsole
7.1 touch – Zeitstempel von Dateien setzen
7.2 cut – Dateiinhalte abschneiden
7.3 paste – Dateien zusammenfügen
7.4 tac – Dateiinhalt umdrehen
7.5 column – Ausgaben tabellenartig formatieren
7.6 colrm – Spalten entfernen
7.7 nl – Zeilennummern für Dateien
7.8 wc – Zählen von Zeichen, Zeilen und Wörtern
7.9 od – Dateien zur Zahlenbasis x ausgeben
7.10 split – Dateien aufspalten
7.11 script – Terminal-Sessions aufzeichnen
7.12 bc – der Rechner für die Konsole
7.13 Der Midnight Commander
7.13.1 Bedienung
7.13.2 Verschiedene Ansichten
7.14 Zusammenfassung
7.15 Aufgaben
8 Eigene Shellskripte entwickeln
8.1 Grundlagen der Shellskript-Programmierung
8.1.1 Was genau ist ein Shellskript?
8.1.2 Das erste Shellskript
8.1.3 Kommentare
8.2 Variablen
8.2.1 Rechnen mit Variablen
8.2.2 Benutzereingaben für Variablen
8.3 Arrays
8.3.1 Neue Elemente hinzufügen
8.3.2 Array-Länge
8.4 Kommandosubstitution und Schreibweisen
8.5 Argumentübergabe
8.6 Funktionen
8.6.1 Eine simple Funktion
8.6.2 Funktionsparameter
8.6.3 Rückgabewerte
8.7 Bedingte Anweisungen
8.7.1 Vergleichen von Zahlen
8.7.2 Returncodes für Bedingungen nutzen
8.7.3 Case-Bedingungen
8.8 Schleifen
8.8.1 Die while-Schleife
8.8.2 Die for-Schleife
8.8.3 seq – Schleifen mit Aufzählungen
8.8.4 until
8.8.5 break – Schleifen abbrechen
8.9 Menüs bilden mit select
8.10 Temporäre Dateien
8.11 Syslog-Meldungen via Shell
8.12 Pausen in Shellskripte einbauen
8.13 Startskripte
8.14 Das Auge isst mit: der Schreibstil
8.15 Ein paar Tipps zum Schluss
8.16 Weitere Fähigkeiten der Shell
8.17 Zusammenfassung
8.18 Aufgaben
9 Der vi(m)-Editor
9.1 vi, vim, gvim und neovim
9.2 Erste Schritte
9.3 Kommando- und Eingabemodus
9.4 Dateien speichern
9.5 Arbeiten mit dem Eingabemodus
9.6 Navigation
9.7 Löschen von Textstellen
9.8 Textbereiche ersetzen
9.9 Kopieren von Textbereichen
9.10 Shiften
9.11 Die Suchfunktion
9.12 Konfiguration
9.13 Distributionen für Vim
9.14 Zusammenfassung
9.15 Aufgaben
10 Grundlegende Administration
10.1 Benutzerverwaltung
10.1.1 Das Verwalten der Benutzerkonten
10.1.2 Benutzer und Gruppen
10.2 Installation neuer Software
10.2.1 Welches Paketsystem nutzen?
10.2.2 Das DEB-Paketsystem
10.2.3 Das RPM-Paketsystem
10.2.4 Snaps
10.2.5 Software-Installation ohne Pakete
10.3 Backups erstellen
10.3.1 Die Sinnfrage
10.3.2 Backup eines ganzen Datenträgers
10.3.3 Backup ausgewählter Daten
10.4 Logdateien und dmesg
10.4.1 /var/log/messages
10.4.2 /var/log/wtmp
10.4.3 /var/log/Xorg.log
10.4.4 syslogd
10.4.5 logrotate und DoS-Angriffe
10.4.6 tail und head
10.5 Weitere nützliche Programme
10.5.1 Speicherverwaltung
10.5.2 Festplatten analysieren
10.5.3 Wer ist eingeloggt?
10.5.4 Offene Dateideskriptoren mit lsof
10.6 Grundlegende Systemdienste
10.6.1 cron
10.6.2 at
10.7 Manpages
10.8 Dateien finden mit find
10.8.1 Festlegung eines Auswahlkriteriums
10.8.2 Festlegung einer Aktion
10.9 Zusammenfassung
10.10 Aufgaben
11 Netzwerke unter Linux
11.1 Etwas Theorie
11.1.1 TCP/IP
11.1.2 Ihr Heimnetzwerk
11.1.3 localhost
11.1.4 Layer 2 und Netzmaske
11.2 Konfiguration einer Netzwerkschnittstelle
11.2.1 Welche Netzwerkschnittstellen gibt es?
11.2.2 Konfiguration von Netzwerkkarten mit ip und ifconfig
11.2.3 Automatische Konfiguration: DHCP
11.3 Routing
11.3.1 Was ist Routing?
11.3.2 Der Befehl ip route
11.4 Netzwerke benutzerfreundlich – DNS
11.4.1 DNS
11.4.2 Windows und die Namensauflösung
11.4.3 Die Datei /etc/services
11.5 Firewalls unter Linux
11.5.1 ufw
11.5.2 firewalld
11.6 Secure Shell
11.6.1 Das SSH-Protokoll
11.6.2 Secure Shell nutzen
11.6.3 Der Secure-Shell-Server
11.7 Das World Wide Web
11.7.1 Das HTTP-Protokoll
11.7.2 Einrichten eines NGINX-Webservers
11.7.3 Den NGINX verwalten
11.8 Windows-Netzwerkfreigaben
11.8.1 Die smb.conf-Konfigurationsdatei
11.8.2 Benutzer-Setup mit smbpasswd
11.8.3 Das Share verbinden
11.9 Weitere nützliche Netzwerktools
11.9.1 ping
11.9.2 netstat
11.9.3 nmap
11.9.4 tcpdump
11.10 Zusammenfassung
11.11 Aufgaben
12 Softwareentwicklung
12.1 Interpreter und Compiler
12.1.1 C und C++
12.1.2 Python
12.1.3 Java
12.1.4 Rust
12.1.5 Was es sonst noch gibt
12.2 Softwarebibliotheken (Shared Libraries)
12.2.1 Vorteile der Shared Libraries
12.2.2 Statisches Linken für C- und C++
12.2.3 Dateien
12.3 Make
12.3.1 Makefile
12.3.2 Makros
12.3.3 Shellvariablen in Makefiles
12.3.4 Einzelne Targets übersetzen
12.3.5 Spezielle Targets
12.3.6 Tipps im Umgang mit Make
12.4 Die GNU-Autotools
12.5 Unix-Software veröffentlichen
12.6 Eigene Manpages erstellen
12.6.1 groff nutzen
12.6.2 Manpages installieren
12.7 Versionsmanagement mit Git
12.7.1 Ein wenig Theorie zur Einführung
12.7.2 Arbeiten mit Git
12.8 Docker-Container erstellen
12.8.1 Virtualisierung, Container und andere Betriebssysteme
12.8.2 Docker-Images bauen
12.8.3 Docker-Container starten und verwalten
12.8.4 Mit Containern interagieren
12.9 Zusammenfassung
12.10 Aufgaben
A Die Installation planen und durchführen
A.1 Hardwareunterstützung
A.1.1 Hardwarekompatibilitätslisten der Hersteller
A.1.2 Grafikkarten
A.1.3 Zusammenfassung
A.2 Festplatten und Partitionen
A.2.1 Funktionsweise unter Linux
A.2.2 Für Ambitionierte: die Partitionierung von Hand durchführen
A.2.3 Das Tool cfdisk
A.2.4 Vorinstallierte Systeme
A.2.5 Windows und Linux
A.2.6 Erstellen eines Backups
A.3 Die Installation durchführen
A.3.1 Vorbereitung: Linux herunterladen
A.3.2 Der klassische Weg: Installation auf echter Hardware
A.3.3 Der einfache Weg: Installation in einer virtuellen Maschine
A.4 Eine typische Linux-Installation durchführen
A.4.1 Partitionierung der Festplatte
A.4.2 Zeitzone festlegen
A.4.3 Anlegen eines Benutzers
A.4.4 Systeminstallation
A.4.5 Fertigstellung
A.5 Zusammenfassung
Stichwortverzeichnis
Rechtliche Hinweise
Über das Autorenteam
← Prev
Back
Next →
← Prev
Back
Next →