Skip to content

About

Übung: Shell-Skripte mit Git-Branches verwalten

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🐚 Git Shell Admin Übung

Made with ❤️ Bash Git Status

Umfassendes Übungsprojekt zur Verwaltung von Shell-Skripten mit Git-Branches, Commits, Pushes und Merges in den Master-Branch.


📋 Inhaltsverzeichnis


🎯 Projektübersicht

Dieses Repository ist ein Lernprojekt für die Kombination von:

✅ Shell-Scripting — Automatisierung von Systemaufgaben
✅ Bash-Programmierung — Praktische Skripte für Admin-Aufgaben
✅ Git-Versionskontrolle — Verwaltung von Code-Änderungen
✅ Branch-Management — Feature-Branches und Merges
✅ Best Practices — Professionelle Entwicklungs-Workflows

Das Projekt demonstriert, wie verschiedene Shell-Skripte in einem strukturierten Git-Workflow entwickelt und gemergt werden.


📁 Projektstruktur

git-shell-admin-uebung/
├── README.md                      # 📄 Diese Datei
├── scripts/                       # 📂 Verzeichnis für alle Shell-Skripte
│   ├── systeminfo.sh             # 🖥️  Systeminformationen
│   ├── dateipruefung.sh          # 📋 Dateiprüfung
│   ├── projektstruktur.sh        # 📁 Projektgenerator
│   └── admin-menu.sh             # ⚙️  Admin-Menü
├── .gitignore                     # 🚫 Git-Ignore-Konfiguration
└── docs/                          # 📚 Dokumentation (optional)

🔧 Verwendete Technologien

Technologie Version Beschreibung
Bash/Shell 5.0+ Shell-Scripting Sprache
Git 2.x+ Versionskontrollsystem
Linux/Unix Standard Betriebssystem
Markdown Standard Dokumentationsformat

📝 Erstellte Shell-Skripte

1️⃣ systeminfo.sh — 🖥️ Systeminformationen

Funktion: Zeigt grundlegende Systeminformationen an

Ausgabe:

  • 👤 Benutzername
  • 🌐 Hostname
  • 📅 Aktuelles Datum und Uhrzeit
  • 📂 Aktuelles Arbeitsverzeichnis

Ausführung:

bash scripts/systeminfo.sh

Beispiel-Output:

=== SYSTEMINFORMATIONEN ===
Benutzer: harry
Hostname: ubuntu-server
Datum/Zeit: Mon Aug 25 14:30:45 UTC 2026
Verzeichnis: /home/harry/git-shell-admin-uebung

2️⃣ dateipruefung.sh — 📋 Dateiprüfung

Funktion: Prüft, ob eine Datei existiert

Ablauf:

  1. 🔔 Benutzer wird aufgefordert, einen Dateinamen einzugeben
  2. 🔍 Skript prüft, ob die Datei existiert
  3. ✅ oder ❌ Entsprechende Meldung wird angezeigt

Ausführung:

bash scripts/dateipruefung.sh

Beispiel-Interaktion:

Geben Sie einen Dateinamen ein: test.txt
✅ Datei 'test.txt' existiert!

3️⃣ projektstruktur.sh — 📁 Projektgenerator

Funktion: Erstellt automatisch eine Projektstruktur

Features:

  • 🔔 Fragt nach einem Projektnamen
  • 📂 Erstellt Ordnerstruktur automatisch
  • 📝 Generiert Info-Datei

Erstellte Struktur:

<Projektname>/
├── docs/           # 📚 Dokumentation
├── logs/           # 📋 Log-Dateien
├── backup/         # 💾 Backups
└── info.txt        # ℹ️  Projektinfo

Ausführung:

bash scripts/projektstruktur.sh

Beispiel-Interaktion:

Geben Sie einen Projektnamen ein: mein-projekt
✅ Projekt 'mein-projekt' wurde erfolgreich erstellt!
Folgende Ordner wurden angelegt: docs, logs, backup

4️⃣ admin-menu.sh — ⚙️ Admin-Menü

Funktion: Interaktives Terminal-Menü für Admin-Aufgaben

Menü-Optionen:

╔══════════════════════════════════╗
║   ADMIN CONTROL PANEL            ║
╠══════════════════════════════════╣
║ 1. Systeminformationen anzeigen  ║
║ 2. Datum/Uhrzeit anzeigen        ║
║ 3. Aktuelles Verzeichnis zeigen  ║
║ 4. Hilfe anzeigen                ║
║ 5. Programm beenden              ║
╚══════════════════════════════════╝

Ausführung:

bash scripts/admin-menu.sh

💻 Installation & Setup

✅ Voraussetzungen

  • Linux/Unix oder macOS mit Bash 5.0+
  • Git installiert (git-scm.com)
  • Terminal/Command-Line-Zugriff
  • Grundlegende Unix-Befehle (ls, mkdir, etc.)

📥 Repository klonen

# HTTPS
git clone https://github.com/harry0203vn/git-shell-admin-uebung.git

# SSH
git clone git@github.com:harry0203vn/git-shell-admin-uebung.git

# In das Verzeichnis wechseln
cd git-shell-admin-uebung

🔐 Skripte ausführbar machen

# Alle Skripte ausführbar machen
chmod +x scripts/*.sh

# Oder einzeln
chmod +x scripts/systeminfo.sh
chmod +x scripts/dateipruefung.sh
chmod +x scripts/projektstruktur.sh
chmod +x scripts/admin-menu.sh

🚀 Anleitung zur Nutzung

🎯 Schritt 1: Repository erkunden

# Git-Log anschauen
git log --oneline --all --graph

# Alle Branches auflisten
git branch -a

# Status prüfen
git status

🏃 Schritt 2: Skripte ausführen

# Admin-Menü starten (empfohlen)
bash scripts/admin-menu.sh

# Oder einzelne Skripte:
bash scripts/systeminfo.sh
bash scripts/dateipruefung.sh
bash scripts/projektstruktur.sh

✏️ Schritt 3: Eigene Änderungen machen

# Neuen Feature-Branch erstellen
git checkout -b feature/mein-skript

# Neues Skript erstellen/bearbeiten
nano scripts/mein-skript.sh

# Ausführbar machen
chmod +x scripts/mein-skript.sh

# Testen
bash scripts/mein-skript.sh

# Zu Git hinzufügen
git add scripts/mein-skript.sh

# Commit erstellen
git commit -m "feature: Neues Admin-Skript hinzugefügt"

# Push zum Remote
git push origin feature/mein-skript

📊 Git-Workflow

Dieses Projekt folgt einem Feature-Branch-Workflow:

                    ┌─ feature/systeminfo
                    │      │
    master ◄────────┴──────┘
    │
    ├─ feature/dateipruefung
    │      │
    ◄──────┘
    │
    ├─ feature/projektstruktur
    │      │
    ◄──────┘
    │
    └─ feature/menu
           │
    ◄──────┘

Workflow-Schritte:

  1. 🌳 Feature-Branch erstellen: git checkout -b feature/name
  2. ✏️ Skript bearbeiten und testen
  3. 📝 Commit erstellen: git commit -m "..."
  4. 🚀 Push zum Remote: git push origin feature/name
  5. 🔀 Merge in master: git merge feature/name

🌳 Branch-Verwaltung

Erstellte Feature-Branches

Branch Skript Status
feature/systeminfo systeminfo.sh ✅ Merged
feature/dateipruefung dateipruefung.sh ✅ Merged
feature/projektstruktur projektstruktur.sh ✅ Merged
feature/menu admin-menu.sh ✅ Merged

Wichtige Branch-Befehle

# Branch erstellen
git branch feature/name

# Zu Branch wechseln
git checkout feature/name

# Branch erstellen und wechseln
git checkout -b feature/name

# Alle Branches anzeigen
git branch -a

# Branch mergen
git checkout master
git merge feature/name

# Branch löschen
git branch -d feature/name

📚 Wichtige Shell-Befehle

🎯 Basis-Befehle

Befehl Funktion
echo Text ausgeben
read Benutzereingabe lesen
if [ ... ] Bedingungen testen
for ... in Schleifen
mkdir Ordner erstellen
touch Datei erstellen
ls Dateien auflisten
pwd Aktuelles Verzeichnis anzeigen
whoami Benutzername anzeigen

🔧 Dateisystem-Befehle

Befehl Funktion
[ -f file ] Prüft ob Datei existiert
[ -d dir ] Prüft ob Ordner existiert
[ -r file ] Prüft ob lesbar
[ -w file ] Prüft ob schreibbar
[ -x file ] Prüft ob ausführbar

📌 Variablen in Bash

# Variable setzen
NAME="Wert"

# Variable auslesen
echo $NAME

# Spezielle Variablen
$0          # Skript-Name
$1, $2, ... # Argumente
$#          # Anzahl Argumente
$?          # Exit-Code des letzten Befehls

🔍 Tipps & Tricks

💡 Tipps für Shell-Scripting

# ✅ Immer Shebang am Anfang:
#!/bin/bash

# ✅ Set -e option (Script bei Fehler beenden)
set -e

# ✅ Variablen in Anführungszeichen
echo "Hallo $NAME"

# ✅ Aussagekräftige Funktionsnamen
function check_file() {
    ...
}

# ✅ Kommentare verwenden
# Dies ist ein Kommentar

🐛 Debugging

# Mit Debug-Modus ausführen
bash -x scripts/mein-skript.sh

# Oder in Skript:
set -x          # Aktiviert Debug
set +x          # Deaktiviert Debug

# Exit-Code prüfen
bash scripts/mein-skript.sh
echo $?         # 0 = Erfolg, >0 = Fehler

🎨 Schöne Ausgabe

# Farben im Terminal
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}✅ Erfolg!${NC}"
echo -e "${RED}❌ Fehler!${NC}"

👤 Autor

👨‍💻 Harry
🏢 Position: IT-Support / System Administrator
🎓 Ausbildung: Sky Education
📧 GitHub: @harry0203vn


📄 Lizenz

Dieses Projekt steht unter der MIT License. Siehe LICENSE-Datei für Details.

MIT License

Copyright (c) 2026 Harry

Permission is hereby granted, free of charge...

🤝 Beiträge

Beiträge sind willkommen! Bitte erstelle einen neuen Feature-Branch:

# Fork und klonen
git clone https://github.com/DEIN-USERNAME/git-shell-admin-uebung.git
cd git-shell-admin-uebung

# Feature-Branch erstellen
git checkout -b feature/neue-funktion

# Skript bearbeiten und testen
nano scripts/neue-funktion.sh
chmod +x scripts/neue-funktion.sh
bash scripts/neue-funktion.sh

# Commit und Push
git add scripts/neue-funktion.sh
git commit -m "feature: Neue Admin-Funktion hinzugefügt"
git push origin feature/neue-funktion

# Pull Request auf GitHub öffnen

❓ FAQ

F: Welche Bash-Version benötige ich?
A: Mindestens Bash 4.0, empfohlen 5.0+. Prüfe mit: bash --version

F: Können die Skripte auf Windows laufen?
A: Ja, mit WSL (Windows Subsystem for Linux) oder Git Bash.

F: Wie kann ich ein Skript debuggen?
A: Nutze bash -x skript.sh für Debug-Output.

F: Muss ich die Skripte mit bash oder ./ ausführen?
A: Beide Wege gehen. Mit chmod +x kannst du direkt ./scripts/skript.sh nutzen.


⭐ Wenn dir dieses Projekt gefällt, gib ihm einen Star!

GitHub stars

Made with ❤️ by Harry

⬆ Nach oben

About

Übung: Shell-Skripte mit Git-Branches verwalten

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages