Appearance
Projekt 1: Konsolen-Dateiverwaltungswerkzeug
Projektbeschreibung
In diesem Projekt erstellen wir ein einfaches Dateiverwaltungswerkzeug für die Konsole, das grundlegende Dateioperationen ermöglicht.
Lernziele
- Shell-Skriptprogrammierung üben
- Datei- und Verzeichnisoperationen meistern
- Berechtigungen verstehen und anwenden
- Praktische Problemlösung mit Linux-Befehlen
Projektanforderungen
Funktionen:
- Verzeichnis erstellen: Benutzer kann neue Verzeichnisse erstellen
- Dateien kopieren/verschieben/löschen: Grundlegende Dateioperationen
- Dateiinhalt suchen: Nach Schlüsselwörtern in Dateien suchen
- Berechtigungen ändern: Dateiberechtigungen anzeigen und ändern
- Einfaches Skript: Alle Operationen in einem Skript zusammenfassen
Schritt-für-Schritt-Anleitung
Schritt 1: Projektverzeichnis erstellen
bash
mkdir -p ~/projekte/dateiverwaltung
cd ~/projekte/dateiverwaltungSchritt 2: Funktion zum Verzeichnis erstellen implementieren
Erstellen Sie eine Datei dateiverwaltung.sh:
bash
vim dateiverwaltung.shFügen Sie folgenden Code hinzu:
bash
#!/bin/bash
# Funktion: Verzeichnis erstellen
erstelle_verzeichnis() {
read -p "Geben Sie den Namen des neuen Verzeichnisses ein: " verzeichnisname
if [ -d "$verzeichnisname" ]; then
echo "Verzeichnis existiert bereits!"
else
mkdir -p "$verzeichnisname"
echo "Verzeichnis '$verzeichnisname' wurde erstellt."
fi
}Schritt 3: Funktionen für Dateioperationen hinzufügen
bash
# Funktion: Datei kopieren
kopiere_datei() {
read -p "Quelldatei eingeben: " quelldatei
read -p "Zieldatei eingeben: " zieldatei
if [ -f "$quelldatei" ]; then
cp "$quelldatei" "$zieldatei"
echo "Datei wurde nach '$zieldatei' kopiert."
else
echo "Fehler: Quelldatei existiert nicht!"
fi
}
# Funktion: Datei verschieben/löschen
verschiebe_datei() {
read -p "Umzuschiebende Datei eingeben: " datei
read -p "Zielverzeichnis eingeben: " ziel
if [ -f "$datei" ]; then
mv "$datei" "$ziel"
echo "Datei wurde nach '$ziel' verschoben."
else
echo "Fehler: Datei existiert nicht!"
fi
}
loesche_datei() {
read -p "Zu löschende Datei eingeben: " datei
if [ -f "$datei" ]; then
rm -i "$datei"
echo "Datei wurde gelöscht."
else
echo "Fehler: Datei existiert nicht!"
fi
}Schritt 4: Dateiinhalt suchen
bash
# Funktion: In Dateien suchen
suche_dateiinhalt() {
read -p "Suchbegriff eingeben: " suchbegriff
read -p "Verzeichnis für Suche eingeben (Standard: aktuelles Verzeichnis): " verzeichnis
verzeichnis=${verzeichnis:-.}
grep -r "$suchbegriff" "$verzeichnis"
}Schritt 5: Berechtigungen anzeigen und ändern
bash
# Funktion: Berechtigungen anzeigen
zeige_berechtigungen() {
read -p "Datei/Verzeichnis eingeben: " datei
if [ -e "$datei" ]; then
ls -l "$datei"
else
echo "Fehler: Datei/Verzeichnis existiert nicht!"
fi
}
# Funktion: Berechtigungen ändern
aendere_berechtigungen() {
read -p "Datei/Verzeichnis eingeben: " datei
read -p "Neue Berechtigung eingeben (z.B. 755): " berechtigung
if [ -e "$datei" ]; then
chmod "$berechtigung" "$datei"
echo "Berechtigung wurde auf $berechtigung geändert."
else
echo "Fehler: Datei/Verzeichnis existiert nicht!"
fi
}Schritt 6: Hauptmenü erstellen
bash
# Hauptmenü
hauptmenue() {
while true; do
echo "===== Dateiverwaltungswerkzeug ====="
echo "1. Verzeichnis erstellen"
echo "2. Datei kopieren"
echo "3. Datei verschieben"
echo "4. Datei löschen"
echo "5. Dateiinhalt suchen"
echo "6. Berechtigungen anzeigen"
echo "7. Berechtigungen ändern"
echo "8. Beenden"
read -p "Wählen Sie eine Option: " option
case $option in
1) erstelle_verzeichnis ;;
2) kopiere_datei ;;
3) verschiebe_datei ;;
4) loesche_datei ;;
5) suche_dateiinhalt ;;
6) zeige_berechtigungen ;;
7) aendere_berechtigungen ;;
8) echo "Programm wird beendet."; exit 0 ;;
*) echo "Ungültige Option!" ;;
esac
read -p "Drücken Sie Enter, um fortzufahren..."
clear
done
}
# Skript starten
hauptmenueSchritt 7: Skript ausführbar machen und testen
bash
chmod +x dateiverwaltung.sh
./dateiverwaltung.shProjekterweiterungen
- Protokollierung: Alle Operationen in einer Logdatei aufzeichnen
- Fortschrittsanzeige: Bei großen Dateioperationen Fortschritt anzeigen
- Rückgängig-Funktion: Letzte Operation rückgängig machen
- Grafsche Oberfläche:
dialogoderwhiptailfür GUI-ähnliche Oberfläche verwenden
Projektzusammenfassung
In diesem Projekt haben wir:
- Ein benutzerfreundliches Menü erstellt
- Grundlegende Dateioperationen implementiert
- Berechtigungen verwaltet
- Shell-Skriptprogrammierung gelernt
Wichtige Befehle, die verwendet wurden:
mkdir: Verzeichnis erstellencp: Datei kopierenmv: Datei verschiebenrm: Datei löschengrep: Dateiinhalt suchenchmod: Berechtigungen ändernls -l: Berechtigungen anzeigen
