Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

terraform-Befehle: Infrastruktur als Code

terraform von HashiCorp ist das Standard-Werkzeug für Infrastructure as Code: Man beschreibt Server, Netzwerke und Cloud-Ressourcen in deklarativen Konfigurationsdateien (HCL) und terraform erstellt, ändert und löscht sie automatisch — reproduzierbar und versionierbar.

Der Arbeitsablauf: init, plan, apply

terraform init
terraform plan
terraform apply
  • terraform init — initialisiert das Projekt und lädt die benötigten Provider-Plugins (z.B. AWS, Hetzner, Proxmox)
  • terraform plan — zeigt den geplanten Änderungen im Vergleich zum aktuellen Zustand (Dry-Run, ändert nichts)
  • terraform apply — führt die geplanten Änderungen aus; nach Rückfrage yes bestätigen

Eine minimale Konfiguration (main.tf) sieht so aus:

resource "local_file" "beispiel" {
  content  = "Hallo Terraform"
  filename = "${path.module}/hallo.txt"
}

Zustand verwalten

terraform state list
terraform show

Terraform führt Buch über jede verwaltete Ressource im State (Datei terraform.tfstate). terraform state list zeigt alle verwalteten Ressourcen, terraform show den kompletten Zustand im Detail. Der State gehört in ein Remote-Backend (z.B. S3 oder GitLab), wenn mehrere Personen arbeiten.

Qualität sichern

terraform fmt
terraform validate

terraform fmt formatiert alle .tf-Dateien einheitlich, terraform validate prüft die Syntax und die interne Konsistenz — beides ideal vor jedem Commit.

Ressourcen entfernen

terraform destroy

terraform destroy entfernt alle in der Konfiguration beschriebenen Ressourcen. Vorsicht: Das löscht echte Server und Daten! terraform plan -destroy zeigt vorher, was entfernt würde.

Praxis-Tipp

Variablen gehören in variables.tf (Werte in terraform.tfvars oder als TF_VAR_<name>-Umgebungsvariablen). Geheime Werte nie im Code ablegen — dafür gibt es ansible-vault oder Secrets-Manager der Cloud. Die deklarative Arbeitsweise (Soll-Zustand beschreiben, Tool gleicht ab) ist dieselbe wie bei kubectl apply.

ansible-Befehle: Server automatisiert konfigurieren

ansible automatisiert die Konfiguration von Servern — ohne Agent auf den Zielsystemen. Ansible verbindet sich per SSH (unter Windows per WinRM), führt Aufgaben (Tasks) aus und bringt die Systeme in den gewünschten Zustand. Playbooks sind in YAML geschrieben und dadurch leicht lesbar.

Ad-hoc-Befehle: Schnell etwas prüfen

ansible all -m ping
ansible all -m command -a "uptime"

ansible all -m ping testet die Verbindung zu allen Hosts des Inventars. Mit -m command -a "uptime" führt man einen einzelnen Befehl auf allen Servern aus — ohne ein Playbook schreiben zu müssen.

  • ansible all -m apt -a "name=nginx state=latest" -b — Pakete installieren (-b = sudo)
  • ansible all -m service -a "name=nginx state=restarted" -b — Dienste neu starten

Das Inventar

[webserver]
web1.example.com
web2.example.com

Die Datei hosts (Inventar) gruppiert die Server, auf denen Ansible arbeitet. Gruppen wie [webserver] oder [datenbank] erlauben, Befehle und Playbooks gezielt nur auf bestimmte Maschinen anzuwenden.

Playbooks: Der Standardweg

ansible-playbook playbook.yml

Ein Playbook beschreibt den Soll-Zustand deklarativ — Ansible prüft, was schon erfüllt ist, und ändert nur, was nötig ist (idempotent):

---
- hosts: webserver
  become: yes
  tasks:
    - name: Nginx installieren
      apt:
        name: nginx
        state: present
  • ansible-playbook playbook.yml --check — Probelauf, ohne etwas zu ändern
  • ansible-playbook playbook.yml --syntax-check — nur Syntax prüfen
  • ansible-playbook playbook.yml --limit web1.example.com — nur einen Host ansprechen
  • ansible-playbook playbook.yml -v — ausführliche Ausgabe (-vvv für Debugging)

Geheimnisse verschlüsseln: ansible-vault

ansible-vault encrypt group_vars/all.yml
ansible-playbook playbook.yml --ask-vault-pass

ansible-vault encrypt verschlüsselt Dateien mit Passwörtern oder Schlüsseln — damit können Secrets (API-Keys, Zugangsdaten) sicher im Repository liegen. Beim Lauf werden sie per --ask-vault-pass oder Vault-Key-Datei entschlüsselt.

Rollen und Galaxy

ansible-galaxy init meine-rolle
ansible-galaxy install geerlingguy.nginx

Rollen bündeln Tasks, Templates und Variablen zu wiederverwendbaren Bausteinen. ansible-galaxy lädt fertige Rollen aus der Ansible Galaxy Bibliothek — so bekommt man bewährte Konfigurationen für Webserver, Datenbanken und mehr.

Praxis-Tipp

Immer mit --check starten, Host-Variablen in group_vars/ und host_vars/ organisieren und Playbooks versionieren — am besten mit git. Die SSH-Grundlagen dazu stehen im Artikel ssh, scp und rsync, die Konfigurations-Syntax stammt aus YAML.

composer-Befehle: PHP-Abhängigkeiten einfach verwalten

Composer ist der Standard-Paketmanager für PHP. Er lädt Bibliotheken aus Packagist (dem zentralen Paket-Repository) in ein Projekt und verwaltet deren Versionen in composer.json und composer.lock. Die Installation erfolgt global über das Installationsskript von getcomposer.org; anschließend steht der Befehl composer im Terminal bereit.

Grundlegende Befehle

composer install          # Installiert alle Abhängigkeiten aus composer.lock
composer update           # Aktualisiert Abhängigkeiten und schreibt composer.lock neu
composer require vendor/package   # Fügt ein Paket hinzu (z. B. composer require guzzlehttp/guzzle)
composer remove vendor/package    # Entfernt ein Paket
composer create-project vendor/package verzeichnis  # Legt ein neues Projekt aus einem Template an
composer dump-autoload     # Baut den Autoloader neu (nach eigenen Klassenänderungen)
composer validate          # Prüft composer.json auf Korrektheit
composer outdated          # Zeigt veraltete Pakete
composer audit             # Prüft Pakete auf bekannte Sicherheitslücken

Praxis-Tipps

  • composer.lock immer einchecken: Sie garantiert, dass alle Entwickler und Server exakt dieselben Versionen nutzen. composer install respektiert die Lock-Datei, composer update verändert sie.
  • Global installieren: composer global require legt Werkzeuge (z. B. PHP-CS-Fixer) systemweit ab; deren bin-Ordner in den PATH aufnehmen.
  • Autoloading: Composer erzeugt automatisch den PSR-4-Autoloader — Klassen aus dem vendor/-Ordner stehen nach require 'vendor/autoload.php' sofort zur Verfügung.
  • Pakete suchen: composer search begriff durchsucht Packagist direkt aus der Kommandozeile.

Verwandte Grundlagen: npm und pip: Paketverwaltung, git-Befehle.

Assembly-Befehle: Schnellreferenz für x86 und NASM

Assembly – die Sprache der CPU

Assembly ist die maschinennahe Programmiersprache: Jede Anweisung entspricht direkt einem Assembler-Befehl der CPU. Sie wird eingesetzt, wenn maximale Kontrolle über Speicher und Register gefragt ist – etwa in Betriebssystem-Kernen, Bootloadern, Treibern oder Embedded-Systemen. Der verbreitetste freie Assembler ist NASM (Netwide Assembler) für x86/x64, ergänzt um GAS (GNU Assembler, AT&T-Syntax).

Assemblieren und Linken

  • nasm -f elf64 prog.asm – 64-Bit-ELF-Objektdatei erzeugen
  • nasm -f bin prog.asm -o prog.bin – reines Binärformat (Bootloader)
  • gcc -no-pie -o prog prog.o – Objektdatei linken (ohne PIE für einfache Adressen)
  • ld -o prog prog.o – direkt mit dem Linker
  • as prog.s -o prog.o / objdump -d prog – GAS assemblieren / Disassembly ansehen

Register, Speicher und der Stack

section .data
  msg db "Hallo", 10
  len equ $ - msg

section .text
  global _start
_start:
  mov rax, 1        ; syscall write
  mov rdi, 1        ; stdout
  mov rsi, msg      ; Adresse des Strings
  mov rdx, len      ; Laenge
  syscall
  mov rax, 60       ; syscall exit
  xor rdi, rdi      ; Rueckgabewert 0
  syscall
  • mov – Daten kopieren: mov rax, 1, mov [addr], rbx
  • add/sub/imul/idiv – Arithmetik, inc/dec – Zähler
  • cmp – Vergleich, jmp/je/jne/jg/jl – Sprünge
  • push/pop – Werte auf den Stack legen/holen
  • call/ret – Unterprogramm aufrufen/zurückkehren
  • lea – Adresse berechnen, and/or/xor/not – Bitoperationen
  • syscall – Linux-Systemaufruf (Nummer in rax, Argumente in rdi,rsi,rdx)
  • section .data/.bss/.text – Daten, uninitialisierte Daten, Code
  • db/dw/dd – Bytes/Wörter/Doppelwörter definieren, equ – Konstante

Die CPU-Register rax bis r15 (64-Bit) sind die „Arbeitsvariablen“ der CPU; 32-Bit-Schreibzugriffe wie eax setzen die obere Hälfte automatisch auf null.

Systemaufrufe auf Linux

Anders als bei C gibt es keine Laufzeitbibliothek: Der Aufruf des Betriebssystems läuft direkt über syscall mit der Syscall-Nummer in rax und bis zu sechs Argumenten in rdi, rsi, rdx, r10, r8, r9. Die Syscall-Tabelle findet sich in /usr/include/asm/unistd_64.h.

Verwandte Einträge: Assembler, Adresse (Speicher), Stack, Kernel, Bootloader sowie C und C++ für die höhere Systemprogrammierung.

Batch/CMD-Befehle: Schnellreferenz für Windows-Skripting

Batch und CMD – Windows-Skripting in der Eingabeaufforderung

Batch (Dateiendung .bat oder .cmd) ist die klassische Skriptsprache der Windows-Eingabeaufforderung. Sie eignet sich für Dateioperationen, Ordner, Dienste, Netzwerk- und Automatisierungsaufgaben – der direkte Gegenpart zu Bash unter Linux. Für komplexe Aufgaben ist PowerShell die moderne Alternative.

Dateien und Verzeichnisse

  • dir – Inhalt auflisten, dir /s – rekursiv, dir /b – nackte Namen
  • cd / cd /d D:\ – Verzeichnis wechseln (auch Laufwerk)
  • copy a.txt b.txt – kopieren, xcopy /e /i src dst – rekursiv kopieren
  • move a.txt ordner\ – verschieben, ren a.txt b.txt – umbenennen
  • del *.tmp / del /s /q *.log – löschen, rmdir /s /q ordner – Ordner löschen
  • mkdir (bzw. md) – Ordner anlegen
  • type datei.txt – Datei anzeigen (wie cat)

System und Dienste

  • ipconfig / ipconfig /all – Netzwerkkonfiguration
  • ping 8.8.8.8, tracert host, netstat -ano – Netzwerkdiagnose
  • tasklist – Prozesse, taskkill /f /im notepad.exe – Prozess beenden
  • sc query / sc config Dienst start= auto – Dienste verwalten
  • net user, net share, net use – Benutzer/Freigaben
  • sfc /scannow – Systemdateien prüfen, chkdsk C: – Datenträger prüfen

Skript-Grundlagen

@echo off
set NAME=Welt
echo Hallo %NAME%!
if exist C:\Windows (echo Windows vorhanden) else (echo Fehlt)
for %%f in (*.txt) do echo Datei: %%f
pause
  • @echo off – Befehle nicht ausgeben, set VAR=wert – Variable, Zugriff mit %VAR%
  • if / else, for %%i in (liste) do ... – Kontrollstrukturen
  • %1 %2 – Parameter, %errorlevel% – Rückgabewert des letzten Befehls
  • goto :label – Sprungmarke, call unter.bat – Unterprogramm
  • 2>nul – Fehlerausgabe unterdrücken, | findstr muster – filtern
  • rem oder :: – Kommentar, exit /b 0 – mit Code beenden

Verwandte Einträge: PowerShell-Befehle für die moderne Shell, Bash-Befehle für Linux, Shell sowie Automatisierung.

  1. Elm: Funktionale Webentwicklung mit dem Elm Compiler
  2. F#: Funktionale Programmierung auf .NET
  3. CMake: Builds für C und C++ projektieren
  4. Scala-Befehle: Schnellreferenz für JVM und Funktionale Programmierung

Seite 42 von 46

  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz