RaspberryPI – Befehle Spickzettel

Wenn man als Windows Nutzer das erste Mal mit der Linux Welt in Kontakt kommt lässt die Frustration meistens nicht lange auf sich warten.

Gerade das Arbeiten mit der Konsole ist ungewohnt und ohne Kenntnis der richtigen Befehle nahezu unmöglich. Auch unterscheidet sich das Dateisystem bzw. die Ordnerstruktur verglichen zu der von Windows sehr.

Damit der Einstieg in die Linux-Welt etwas erleichtert wird habe ich hier versucht die wichtigsten Informationen, Funktionen und Befehle zusammenzufassen.


Sicherheitshinweise

Ich weiß die folgenden Hinweise sind immer irgendwie lästig und wirken unnötig. Aber leider haben schon viele Menschen die es "besser" wussten aus Leichtsinnigkeit Augen, Finger oder anderes verloren bzw. sich verletzt. Im Vergleich dazu ist ein Datenverlust fast nicht der Rede Wert, aber auch diese können echt ärgerlich sein. Deswegen nehmt Euch bitte fünf Minuten Zeit um die Sicherheitshinweise zu lesen. Denn auch das coolste Projekt ist keine Verletzung oder anderen Ärger wert.
https://www.nerdiy.de/sicherheitshinweise/

Affiliatelinks/Werbelinks

Die hier in aufgeführten Links zu Online-Shops sind sogenannte Affiliate-Links. Wenn Du auf so einen Affiliate-Link klickst und über diesen Link einkaufst, bekommt Nerdiy.de von dem betreffenden Online-Shop oder Anbieter eine Provision. Für Dich verändert sich der Preis nicht. Falls Du Deine Einkäufe über diese Links tätigst unterstützt Du Nerdiy.de dabei auch in Zukunft weitere nützliche Projekte anbieten zu können. 🙂 


Voraussetzungen

Hilfreiche Artikel:
Um zu lernen wie ihr euch in der Linux Welt zu Recht finden könnt, ist es am besten wenn ihr euch direkt damit beschäftigt. „Learning by doing“ so zu sagen. Habt keine Angst etwas kaputt zu machen. Das schlimmste was passieren könnte ist, dass ihr Raspian neu installieren müsst.

Wie das geht und wie ihr generell einen funktionsfähigen RaspberryPI konfiguriert habe ich in den folgenden Artikeln beschrieben:
RaspberryPi – Einrichten für Nerdiys
RaspberryPI – Die Erste Konfiguration
RaspberryPi – Den RaspberryPi über SSH steuern

Benötigtes Werkzeug:
-keins-

Benötigtes Material:

In der folgenden Liste findet Ihr alle Teile die Ihr zur Umsetzung dieses Artikels benötigt.


Befehle in der Konsole

Die Konsole unter Linux ist zweierlei. Einerseits könnt ihr damit durch die Ordnerstruktur des RasPi’s navigieren und so das jeweilige Verzeichnis wechseln in dem ihr euch gerade „befindet“.
Dieses Verzeichnis nenne ich(und vllt. auch andere) hier Arbeitsverzeichnis, weil es immer das Verzeichnis ist auf das die aktuell ausgeführten Befehle auch zugreifen.
Erstellt ihr zum Beispiel einen Ordner wird dieser (ohne weitere Angaben) im aktuellen Arbeitsverzeichnis erstellt.
Auch Pfadangaben sind entweder vom Arbeitsverzeichnis ausgehend(relativ) angegeben oder absolut vom Stammverzeichnis(also der höchsten Ordnerebene).

Andererseits ist die Konsole auch Eingabeaufforderung. In Ihr können also Befehle eingegeben und ausgeführt werden.
Letztlich sind es auch die Befehle die es euch ermöglichen durch die Ordnerstruktur zu navigieren.

Dabei ist die Form der eingegebenen Befehle fast immer gleich.

Für gewöhnlich lautet sie:
BEFEHLSNAME –PARAMATER PFADANGABEN

Das heißt ein Befehl setzt sich immer aus dem Befehlsnamen, eventuellen Parametern und wenn nötig auch Pfadangaben zusammen.

Parameter sind dabei verschiedene Buchstaben die das Verhalten des Befehls beeinflussen. Diese sind bei jedem Befehl unterschiedlich. Eine vollständige Parameterliste und allgemeine Hilfestellung lässt sich zu jedem Befehl anzeigen indem ihr den Befehlsname und den Parameter –help angebt.

cp --help

(Beachtet, dass ihr vor dem „help“ zwei Bindestriche eintragen müsst)

Zeigt euch zum Beispiel alle möglichen Parameter und auch ein paar Beispiele zum Befehl „cp“ an.

Also falls ihr mal vergesst wie ein Befehl funktioniert oder einen Parameter vergesst habt ihr hier eine integrierte Dokumentation zur Hand.


Arbeiten in der Konsole

Zuletzt eingegeben Befehl Anzeigen

Pfeiltaste nach oben/unten

Durch einen Druck auf die Pfeiltaste nach oben könnt ihr eure zuletzt eingegeben Befehl ansehen.

Wollt Ihr einen ausgewählten nochmal ausführen reicht es die Enter-Taste zu drücken.

Falls Ihr ihn vorher noch mal bearbeiten wollt könnt ihr durch die Pfeiltasten nach Links und Rechts durch den Befehl navigieren.

Terminal Ausgabe löschen

clear

Dieser Befehl leert die aktuelle Konsolensitzung und zeigt eine „frische“ Eingabeaufforderung an.

Pfadeingaben vervollständigen

Mit der Tabulator-Taste lassen sich Pfadangaben automatisch vervollständigen.

Wollt ihr zum Beispiel gerade vom aktuellen Ordner in den nächsten Order mit dem Namen „naechsterOrdnerMitEinemFuerchterlichLangemNamen“ wechseln so reicht es folgenden Befehl einzutippen:

cp naechst

und dann die Tabulator-Taste zu drücken.

Linux vervollständigt „naechst“ dann automatisch zu „naechsterOrdnerMitEinemFuerchterlichLangemNamen“.

Sollte neben dem Ordner „naechsterOrdnerMitEinemFuerchterlichLangemNamen“ zufällig auch noch ein ähnlich klingender Ordner(z.B. „naechsterOrdnerMitKurzemNamen“) im aktuellen Verzeichnis bestehen so wird der Ordnername nur soweit vervollständigt wie die beiden Ordnernamen sich unterscheiden. In diesem Fall also nur bis „naechsterOrdnerMit“. Wenn man dann jedoch einen Buchstaben des gewünschten Ordners eingibt kann die Vervollständigung wieder ausgeführt werden.

Gibt man zum Beispiel „naechsterOrdnerMitE“ ein und drückt dann die Tabulator-Taste dann weiß Linux bereits, dass der Ordner „naechsterOrdnerMitEinemFuerchterlichLangemNamen“ gemeint sein muss und vervollständigt den Namen dementsprechend.

So spart ihr euch eine Menge frimeliger Tipparbeit. Diese Pfadvervollständigung funktioniert dabei in jedem Befehl.

Ausführung von Befehlen beenden

Mit der Tastenkombination STRG+C lassen sich aktuell laufende Prozesse beenden.


Datei- und Ordneroperationen

Aktuellen Pfad anzeigen

pwd

Dieser Befehl zeigt euch den aktuellen absoluten(also kompletten, vom Stammverzeichnis ausgehenden) Pfad zu dem Verzeichnis in dem ihr euch gerade befindet.

Verzeichnisbaum anzeigen lassen

tree

Dieser Befehl zeigt euch die Ordnerstruktur im aktuellen Verzeichnis an.

Wie der Name(tree=Baum) es schon andeutet wird die aktuelle Ordnerstruktur ausgehend vom Arbeitsverzeichnis dargestellt. Das heißt die Unterordner in Ordnern werden wie die Äste eines Baumes der von der Wurzel ausgeht dargestellt. Dies ist am einfachsten zu verstehen in dem ihr es einfach ausprobiert. 🙂

Ordnerinhalt auflisten

ls –la

Dieser Befehl zeigt euch den kompletten Inhalt des aktuellen Verzeichnisses(inkl. Versteckter Dateien) an. Für die meisten Fälle reicht aber auch ein simples:

ls

Ordner erstellen

mkdir neuerOrdner

Dieser Befehl erstellt im aktuellen Verzeichnis einen neuen Ordner mit dem angegeben Namen(In diesem Fall also „neuerOrdner“).

Ordner Löschen(inklusive Inhalt)

rm -R neuerOrdner

Dieser Befehl löscht den angegeben Ordner(In diesem Fall also „neuerOrdner“) und alle darin enthaltenden Dateien ohne nochmal nachzufragen oder zu warnen.

Datei löschen

rm zuLoeschendeDatei

Dieser Befehl löscht die angegebene Datei(In diesem Fall also die Datei „zuLoeschendeDatei“). im aktuellen Verzeichnis.

Ordner wechseln

cd /home/pi

Dieser Befehl wechselt das Verzeichnis zu dem angegeben Verzeichnis.

cd ..

Mit diesem Befehl wechselt ihr in die nächste höhere Ordnerbene.

Dies kann auch verknüpft werden. Wollt ihr zum Beispiel aus dem aktuellen Ordner eine Ordnerebene höher gehen und direkt in einen anderen Ordner wechseln geht dies mit folgendem Befehl:

cd ../neuerOrdnerImNaechstHoerehenOrdner

Mit dem folgenden Befehl könnt ihr direkt in eurer Homeverzeichnis wechseln:

cd ~

Dateien kopieren

cp "Dateiname" "Ziel"

Dieser Befehl kopiert die Datei „Dateiname“ nach „Ziel“. Auf diesem Weg könnt ihr Dateien auch direkt umbenennen.

cp cooleTexttdatei.txt nochCoolereTextdatei.txt

führt zum Beispiel dazu, dass die „cooleTexttdatei.txt“ nochmal in den aktuellen Ordner kopiert wird. Die Kopie heißt dann aber „nochCoolereTextdatei.txt“.

In die Kopiervorgänge können natürlich auch Pfadangaben eingebaut werden.

Folgender Befehl kopiert zum Beispiel die Datei „cooleTexttdatei.txt“ in den Unterordner „coolerUnterordner“.

cp cooleTexttdatei.txt coolerUnterordner/cooleTexttdatei.txt

Mehrere Dateien oder eine Datei in einen anderen Ordner verschieben

mv -t ZielOrdner datei1 datei2 datei3

Datei umbennenen

mv aktuellerDateiname gewuenschterDateiname

Dieser Befehl ist eigentlich eine Datei-Verschiebung(mv=move). Da ihr aber auch bei einer Dateiverschiebung einen neuen Namen angeben könnt eignet sich dieser Befehl auch perfekt um Dateien umzubenennen.

Datei downloaden

wget internetAdresse

Dieser Befehl ermöglicht es Dateien in das aktuelle Verzeichnis herunterzuladen.

Dazu muss nur der Link zu der Datei die ihr herunterladen wollt hinter „wget“ angegeben werden.

Zip-Datei mit Passwort entpacken

unzip -P PASSWORT 'zipDatei.zip'

Dieser Befehl entpackt die passwortgeschützte Datei „zipDatei.zip“ mit dem Passwort „PASSWORT“ in das aktuelle Verzeichnis. Falls ihr Wissen wollt was Zip-Dateien sind, dies habe ich in diesem Artikel beschrieben:

Rar-Datei mit Passwort entpacken

unrar e -p PASSWORT 'rarDatei.rar'

Dieser Befehl entpackt die passwortgeschützte Datei „rarDatei.zip“ mit dem Passwort „PASSWORT“ in das aktuelle Verzeichnis. Falls ihr Wissen wollt was Rar-Dateien sind, dies habe ich in diesem Artikel beschrieben:

Zip-Datei in Zielordner entpacken

unzip zipDatei.zip -d ZIELORDNER

Dieser Befehl entpackt die Datei „zipDatei.zip“ in das mit ZIELORDNER angegeben Verzeichnis.

Ordner in Zip-Datei verpacken

zip -r filename.zip ORDNERNAME/

Sicheres Löschen von Daten

shred -fuz fuerImmerZuLoeschendeDatei

Dieser Befehl löscht Dateien nicht nur, er überschreibt den Speicherbereich der gelöschten Datei auch noch. Dies führt dazu, dass die so gelöschten Dateien selbst mit forensischen Mitteln nicht wiederhergestellt werden können. Der Befehl arbeitet dabei mit der Gutmann-Methode.


Installation/Arbeiten mit Paketen

Programmpakete aktualisieren

sudo apt-get update && sudo apt-get upgrade

Dies sind eigentlich zwei Befehle die durch das „&&“ verknüpft sind.

Das „&&“ bedeutet in diesem Fall, dass zuerst der erste Befehl und dann der zweite Befehl ausgeführt wird.

sudo apt-get update

…aktualisiert dabei die Paketliste des „Advanced Packaging Tool“(apt). Dieses Tool verwaltet unterschiedliche Softwarepakete. Durch die Aktualisierung der Paketliste wird also das aktuelle Inhaltsverzeichnis der verfügbaren Softwarepakete heruntergeladen.

sudo apt-get upgrade

…vergleicht daraufhin die bereits auf eurem System installierten Pakete mit den laut Inhaltsverzeichnis verfügbaren Paketen. Ist eins von den verfügbaren Paketen neuer als das auf eurem System installierte Paket, installiert es automatisch die neue Version des jeweiligen Pakets

Programme/Pakete installieren

sudo apt-get install PACKETNAME

Dieser Befehl installiert mit Hilfe des „Advanced Packaging Tool“ das mit „PACKETNAME“ angegebene Paket und alle notwendigen anderen Pakete die zum ausführen dieses Pakets benötigt werden.

Unnötige Programme/Pakete löschen

sudo apt-get autoremove PACKETNAME

Dieser Befehl ist auch ein Teil des „Advanced Packaging Tool“ und kann mit und ohne Paketname ausgeführt werden. Ohne Paketname, also „sudo apt-get autoremove“ deinstalliert dieser Befehl alle Pakete die nicht mehr genutzt werden, weil sie nur als Voraussetzung für ein anderes, nun nicht mehr vorhandenes Paket installiert wurden.
Mit Paketname, also zum Beispiel „sudo apt-get autoremove IRGENDEINPAKETNAME“ wird das angegebene Paket und alle bei der Installation dieses Pakets installierte Voraussetzungen deinstalliert.


RaspberryPi-spezifische Befehle

Firmware und Kernel des RasPi aktualisieren

sudo rpi-update

Dieser Befehl aktualisiert den Kernel und wichtige Systemdateien des RasPi. Nach dem Motto „Never touch a running System“(=Berühre/Verändere niemals ein laufendes System) sollte dies nur gemacht werden wenn wichtige Sicherheitsupdates verfügbar sind oder irgendetwas nicht so läuft wie es laufen sollte.

RasPi neustarten

sudo reboot

Dieser Befehl fährt den RasPi sicher herunter und startet ihn direkt wieder neu. Dies ist perfekt um zu testen ob installierte Software auch nach einem Neustart wieder automatisch startet.

RasPi sicher und sofort herunterfahren

sudo shutdown -h -P now

oder die Abkürzung

sudo poweroff

Nach dem ausführen des Befehls zum Herunterfahren sollte man noch ein paar Sekunden warten. Genauso wie bei Windows-Systemen dauert es einen Moment bis das System alle Programme/Prozesse beendet hat. Dabei werden auch alle eventuellen Schreibprozesse beendet.

Dies ist auch der Grund weshalb man auch den RasPi immer ordentlich herunterfahren sollte. Speichert dieser nämlich gerade eine Datei auf einen Speicher und wird dann vom Strom getrennt so wird der Speicherprozess unterbrochen. Dies führt dann dazu, dass eventuelle nur teilweise geschriebene Dateien nicht mehr gelesen werden können.

Ist diese Datei dann zufällig eine, für das System wichtige Datei so kann es passieren, dass der RasPi beim nächsten Mal nicht mehr korrekt startet.

Ob der RasPi vollständig heruntergefahren ist erkennt ihr daran, dass die Grüne LED nicht mehr blinkt und nur noch die Rote LED leuchtet.

Falls ihr trotzdem mal den Stecker ziehen solltet ohne den RasPi zuvor heruntergefahren zu haben so braucht ihr nicht sofort in Tränen ausbrechen: Meistens geht es gut, aber halt auch nur meistens. 🙂

Befehle als Root ausführen

sudo = Super User Do

Dieser Befehl kann vor jeden Befehl gesetzt werden und führt dazu, dass dieser Befehl so ausgeführt würde als wenn ihn der superUser „root“ ausführen würde. So könnt ihr als normaler User zum Beispiel Befehle ausführen bei dessen Ausführung auf Dateien zugegriffen würde, auf die ihr als normaler Benutzer eigentlich keinen Zugriff habt.

Um sudo nutzen zu können müsst ihr dazu berechtigt sein. Dies wird in der Datei /etc/sudoers festegelegt.

Von der Konsole abmelden

Logout

Dieser Befehl beendet die Verbindung zum RasPi und schließt die Konsole.

RasPi CPU Temperatur anzeigen

echo $((`cat /sys/class/thermal/thermal_zone0/temp`/1000))

Dieser Befehl gibt euch die aktuelle Temperatur der CPU aus.

RasPi GPU Temperatur anzeigen

/opt/vc/bin/vcgencmd measure_temp|cut -c6-9

Dieser Befehl gibt euch die aktuelle Temperatur der GPU aus.


Netzwerk

IP-Adresse bzw. Netzwerkkonfiguration Anzeigen

ifconfig

Dieser Befehl zeigt euch Informationen zu eurer Netzwerkverbindung an. So könnt ihr auch prüfen welche IP-Adresse euer RasPi hat.

Offene Ports und bestehende Netzwerkverbindungen auflisten

netstat --tcp --listening --programs --numeric

Dieser Befehl zeigt euch alle aktuell geöffneten Ports und Netzwerkverbindungen sowie verschiedene Informationen dazu an


Sonstiges

Passwort eines Benutzers ändern

passwd benutzerName

Dieser Befehl ermöglicht es euch das Passwort des als „benutzerName“ angegebenen Benutzers zu ändern. Darüber hinaus lassen sich damit auch verschiedene Änderungs- und Sperrintervalle festlegen.

Freien Speicherplatz anzeigen

df –h

Dieser Befehl zeigt euch an wieviel Speicherplatz auf euren Datenträgern noch verfügbar ist.

Alle installierten USB-Geräte auflisten

lsusb

Dieser Befehl gibt euch alle aktuell installierten USB Geräte aus.

Alle Partitionen anzeigen

sudo blkid

Dieser Befehl gibt euch alle aktuell installierten Partitionen aus.

Ausführliche Informationen anzeigen

sudo fdisk –l

Mit Diesem Befehl könnt ihr euch ausführliche Informationen zu euren Partitionen anzeigen lassen.

Prüfung des Dateisystems erzwingen

sudo shutdown -rF now

Das Dateisystem des RasPI’s wird normalerweise nur nach jedem 30. Neustart überprüft. Mit diesem Befehl erzwingt ihr eine sofortige Überprüfung und (wenn nötig) Reparatur des Dateisystems.

Serialby ID anzeigen

ls -l /dev/serial/by-id

Dieser Befehl zeigt euch die ID‘S eventuell vorhandener USB-Seriell-Adapter an. So könnt ihr serielle Schnittstellen anstatt über z.B. /dev/ttyUSB0 direkt über die ID des USB Gerätes ansprechen.

Dies hat den Vorteil, dass der Zugriff über die ID immer einzigartig ist und die ID sich auch nach einem Neustart des RasPi’s nicht ändert. Greift ihr nur über /dev/ttyUSB0 auf einen USB-Seriell-Adapter zu, kann es passieren, dass dieser nach einem Neustart nicht mehr unter /dev/ttyUSB0 sondern vielleicht unter /dev/ttyUSB1 erreichbar ist.

Um dieses Problem zu umgehen empfiehlt es sich die serielle Schnittstelle über die ID des USB-Seriell-Adapters anzusprechen.

Alle seriellen schnittstellen anzeigen

ls /dev/tty* oder dmesg | grep tty

Dieser Befehl zeigt euch alle möglichen seriellen Schnittstellen des Systems an.

Andere Rechner auf Anwesenheit im Netzwerk überprüfen

ping netzwerkAdresse

Mithilfe des Befehls „ping“ lässt sich die Anwesenheit anderer Netzwerkteilnehmer prüfen.

Dies kann ein Computer im lokalen Netzwerk aber auch im Internet sein.

„netzwerkAdresse“ ist dabei durch die IP-Adresse oder den domain-Namen des Rechners zu ersetzen dessen Anwesenheit ihr prüfen wollt.

Laufende Prozesse anzeigen

ps

Der Befehl „ps“ zeigt euch alle aktuell laufenden Prozesse inklusive der ID und ein paar anderer Informationen wie Auslastung, etc an.

Beendigung eines durch die Prozess-ID gekennzeichneten Prozesses

kill prozessId

Dieser Befehl beendet den Prozess mit der Prozess-ID „prozessID“.

Ausgabe der Prozessorauslastung

Top

Dieser Befehl zeigt euch die aktuelle Auslastung der CPU an.

Angabe der Laufzeit und Auslastung des Computers

uptime

Durch „uptime“ könnt ihr euch die Zeitdauer anzeigen lassen, die seit dem starten des RasPI vergangen ist.

Aktuellen Benutzer Anzeigen

whoami

Dieser Befehl zeigt euch den Namen des aktuell eingeloggten Benutzers an.

Speicherort eines Programms anzeigen

which ls

Dieser Befehl zeigt den Speicherort des als Prameter angegebenen Programms (in diesem Fall) „ls“ an.


Ordnerstruktur – Welcher Ordner enthält welche Dateien?

Unter Linux ist die Ordnerstruktur etwas anders als in Windows aber trotzdem logisch. Wenn man die Abkürzungen aufschlüsselt ist der Rest fast selbsterklärend.

„bin“=binaries: Ausführbare Dateien also Programme

„sbin“=system binaries: Ausführbare Systemdateien also System Programme

Diese beiden Ordner enthalten aber nur für das reine System wichtige Dateien.

Vom Nutzer installierte Programme werden in „/usr/bin“ und „/usr/sbin“.

Die Dateien in diesen Ordnern dürfen auch von normalen Nutzern ausgeführt werden.

Die in „bin“ und „sbin“ dagegen meistens nur von Benutzern mit Administratorrechten.

„boot“: enthält wichtige Dateien für den Bootvorgang.

„dev“=devices: In diesem Ordner sind alle Gerätedateien enthalten. Über diese lassen sich verschiedene Hardware-Schnittstellen ansprechen. Zum Beispiel USB- und Serielle-Schnittstellen.

„lib“=libraries: Enthält wichtige Bibliotheken die für manche Programme notwendig sind.

„lost+found“: Werden bei der Reparatur eines Datenträgers Dateien oder Dateifragmente gefunden so werden diese in diesen Ordner verschoben bzw. gespeichert.

„mnt“=mount: Enthält alle temporär eingehängten(=gemounteten) Datenträger wie zum Beispiel USB-Sticks.

„opt“=optional: Enthält alle manuell installierten Programm die eigene Bibliotheken benötigen.

„proc“=processes: Enthält Schnittstellen zum geladenen Kernel und seinen Prozeduren.

„root“=wurzel: Dies ist das Benutzerverzeichnis des Super-Users Root. Es ist das einzige Benutzerverzeichnis das nicht im Homeverzeichnis liegt.

„home“: Dies ist der Standardbenutzer-Ordner in dem jeder Benutzer automatisch einen Unterordner zur Verfügung gestellt bekommt. In diesem Ordner können dann Benutzerdateien gespeichert werden. In dem jeweiligen eigenen Benutzerordner darf jeder Nutzer nach Belieben Dateien oder Ordner erstellen.

„etc“=et cetera: StandardspeicherOrt für Systemweite Konfigurationsdateien.


Beispiele und Erklärungen

Sehr praktisch finde ich die Seite tldr.ostera.io

Hier könnt Ihr in einer Suchmaske den Befehl eingeben den Ihr nutzen wollt und es werden Euch automatisch weitere Erklärungen und Beispiele angezeigt.


Ich hoffe diese Infos helfen euch den ersten Einstieg in die Linux-/RaspberryPI-Welt etwas zu erleichtern. Falls nicht oder Ihr andere Kritik oder Fragen habt lasst es mich bitte wissen. Ihr könnt dazu einfach die Kommentarfunktion unter dem Artikel nutzen. 🙂

Viel Spaß mit dem Projekt

Ich hoffe bei euch hat alles wie beschrieben funktioniert. Falls nicht oder ihr Fragen oder Anregungen habt lasst es mich in den Kommentaren bitte wissen. Ich trage dies dann ggf. in den Artikel nach.
Auch Ideen für neue Projekte sind immer gerne willkommen. 🙂

P.S. Viele dieser Projekte - besonders die Hardwareprojekte - kosten viel Zeit und Geld. Natürlich mache ich das weil ich Spaß daran habe, aber wenn Du es cool findest, dass ich die Infos dazu mit Euch teile, würde ich mich über eine kleine Spende an die Kaffeekasse freuen. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.