Skip to content

Commit 119efbe

Browse files
committed
feat: Add "Exkurs: Unix" draft
1 parent 8de91cd commit 119efbe

11 files changed

Lines changed: 2501 additions & 10 deletions

030-Exkurs_Unix/000-Einleitung.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
short_title: "Exkurs: Unix"
3+
numbering:
4+
heading_1: true
5+
heading_2: true
6+
title: true
7+
---
8+
9+
# Exkurs: Unix
10+
11+
```{seealso} 🎓 Lernziele
12+
:icon: false
13+
14+
In diesem Kapitel erlernen Sie, …
15+
16+
- … was Unix ist und warum es für Python-Entwicklung wichtig ist.
17+
- … wie Sie das Terminal öffnen und grundlegende Befehle nutzen.
18+
- … wie Sie im Dateisystem navigieren und Pfade verstehen.
19+
- … wie Sie Dateien und Verzeichnisse verwalten.
20+
- … wie Sie Python-Skripte ausführbar machen.
21+
- … wie Sie effizient mit Pipes, Wildcards und weiteren Unix-Tools arbeiten.
22+
23+
```
24+
25+
:::::{tip} Optional, aber teilw. in nachfolgenden Inhalten genutzt
26+
:class: dropdown
27+
28+
Dieser Exkurs ist optional – Sie müssen ihn nicht komplett durcharbeiten, um
29+
mit dem Kurs fortzufahren.
30+
31+
**Aber:** Einzelne Inhalte aus diesem Exkurs werden in späteren Kapiteln
32+
vorausgesetzt. Dort wird dann auf die entsprechenden Abschnitte verwiesen (z.B.
33+
für Dateirechte bei [ausführbaren
34+
Skripten](../020-Projekt_Taschenrechner_I/050-Ausführbare_Skripte.md)).
35+
36+
Wenn Sie bereits mit Unix/Linux vertraut sind, können Sie diesen Exkurs
37+
überspringen oder als Nachschlagewerk nutzen.
38+
39+
**Auf JupyterHub:** Alle Inhalte dieses Exkurses funktionieren direkt auf
40+
JupyterHub. Sie können das Terminal dort über "File → New → Terminal" öffnen.
41+
42+
:::::
43+
44+
Dieser Exkurs führt Sie in die Unix-Kommandozeile ein, die für Python-Entwicklung
45+
unverzichtbar ist. Sie lernen zunächst, [was Unix ist](010-Was_ist_Unix.md) und
46+
warum diese Kenntnisse auch für Windows-Nutzer\*innen wichtig sind. Anschließend
47+
verstehen Sie den Unterschied zwischen [Terminal und Shell](020-Terminal_und_Shell.md)
48+
und öffnen Ihre erste Kommandozeile.
49+
50+
In den Kapiteln zur [Navigation im Dateisystem](030-Dateisystem_Navigation.md)
51+
und [Dateiverwaltung](040-Dateiverwaltung.md) lernen Sie, wie Sie sich im
52+
Verzeichnisbaum bewegen (`cd`, `ls`, `pwd`), absolute und relative Pfade verstehen
53+
und Dateien sowie Verzeichnisse erstellen, kopieren, verschieben und löschen –
54+
alles über das Terminal.
55+
56+
Das Kapitel zu [Berechtigungen](050-Berechtigungen.md) ist besonders relevant
57+
für Python-Entwicklung: Sie lernen das Unix-Berechtigungssystem kennen und machen
58+
Ihre Python-Skripte ausführbar (`chmod +x`). Die [nützlichen Befehle](060-Nützliche_Befehle.md)
59+
zeigen Ihnen fortgeschrittene Techniken wie Pipes, Wildcards und Text-Verarbeitung,
60+
die Ihre Arbeit im Terminal deutlich effizienter machen.
61+
62+
Der Exkurs schließt mit [praktischen Übungen](070-Übungen.md) ab, in denen Sie
63+
alle gelernten Befehle in Szenarien aus der Bibliotheks- und Informationspraxis
64+
anwenden – vom Erstellen einer Projektstruktur bis zur Verarbeitung von Metadaten.
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
short_title: Was ist Unix?
3+
numbering:
4+
heading_1: true
5+
heading_2: true
6+
title: true
7+
---
8+
9+
# Was ist Unix?
10+
11+
Unix ist ein Betriebssystem, das 1969 bei AT&T Bell Labs entwickelt wurde.
12+
Heute basieren viele moderne Betriebssysteme auf Unix-Prinzipien:
13+
14+
- **Linux** (Ubuntu, Debian, Fedora, etc.)
15+
- **macOS** (basiert auf BSD Unix)
16+
- **BSD-Varianten** (FreeBSD, OpenBSD)
17+
18+
Auch wenn Windows kein Unix-System ist, bietet es mit WSL (Windows Subsystem
19+
for Linux) und Git Bash Unix-ähnliche Umgebungen.
20+
21+
## Die Unix-Philosophie
22+
23+
:::::{margin}
24+
::::{seealso} Unix-Philosophie
25+
26+
Die Unix-Philosophie hat die moderne Softwareentwicklung stark geprägt. Viele
27+
erfolgreiche Tools und Programmiersprachen (inklusive Python) folgen diesen
28+
Prinzipien.
29+
30+
::::
31+
:::::
32+
33+
Unix folgt einfachen, aber mächtigen Grundprinzipien:
34+
35+
1. **Ein Programm soll eine Aufgabe gut erfüllen**
36+
Statt großer, komplexer Programme gibt es viele kleine, spezialisierte
37+
Tools.
38+
39+
2. **Programme sollen zusammenarbeiten**
40+
Die Ausgabe eines Programms kann als Eingabe für ein anderes dienen (Pipes).
41+
42+
3. **Alles ist eine Datei**
43+
Dateien, Verzeichnisse, Geräte – alles wird über das Dateisystem
44+
angesprochen.
45+
46+
4. **Textbasierte Schnittstellen**
47+
Text ist universell lesbar und verarbeitbar. Daher nutzen Unix-Programme oft
48+
Textein- und -ausgabe.
49+
50+
## Warum ist Unix relevant für Python-Entwicklung?
51+
52+
:::::{margin}
53+
::::{hint} JupyterHub
54+
55+
Auf JupyterHub arbeiten Sie bereits auf einem Unix-System (Linux). Alle
56+
Befehle, die Sie in diesem Exkurs lernen, funktionieren dort direkt.
57+
58+
::::
59+
:::::
60+
61+
Wenn Sie Python-Programme entwickeln, werden Sie häufig mit Unix-Systemen
62+
arbeiten:
63+
64+
- **JupyterHub** läuft auf einem Linux-Server
65+
- Viele **Web-Server und Cloud-Dienste** nutzen Linux
66+
- **Python-Pakete installieren** und **virtuelle Umgebungen** verwalten erfolgt
67+
oft über das Terminal
68+
- **Ausführbare Python-Skripte** basieren auf Unix-Konzepten (Shebang,
69+
Dateirechte)
70+
- **Git** und viele Entwicklungstools sind für Unix optimiert
71+
72+
## Unix-Zugang unter verschiedenen Betriebssystemen
73+
74+
| Betriebssystem | Unix-Zugang |
75+
| -------------- | ------------------------------------------------------------------------ |
76+
| **macOS** | Natives Unix-System. Terminal über {kbd}`Cmd`+{kbd}`Space` → "Terminal" |
77+
| **Linux** | Natives Unix-System. Terminal meist über {kbd}`Strg`+{kbd}`Alt`+{kbd}`T` |
78+
| **Windows** | WSL (Windows Subsystem for Linux) oder Git Bash installieren |
79+
| **JupyterHub** | Terminal über "File → New → Terminal" |
80+
81+
:::::{admonition} 💪 Übung
82+
:icon: false
83+
84+
Öffnen Sie ein Terminal auf Ihrem System (oder auf JupyterHub) und geben Sie
85+
folgenden Befehl ein:
86+
87+
```console
88+
$ uname
89+
```
90+
91+
Dieser Befehl zeigt den Namen des Betriebssystems an. Auf Linux sehen Sie
92+
`Linux`, auf macOS `Darwin`.
93+
94+
:::{dropdown} ✅ Erwartete Ausgaben
95+
96+
**Auf Linux/JupyterHub:**
97+
98+
```console
99+
$ uname
100+
Linux
101+
```
102+
103+
**Auf macOS:**
104+
105+
```console
106+
$ uname
107+
Darwin
108+
```
109+
110+
**Für mehr Informationen:**
111+
112+
```console
113+
$ uname -a
114+
```
115+
116+
Dies zeigt detaillierte Systeminformationen (Kernelversion,
117+
Prozessorarchitektur, etc.).
118+
119+
:::
120+
:::::

0 commit comments

Comments
 (0)