Skip to content
Back to skills

Setup Wsl Dev Environment

FSecurity

Richtet eine WSL2-Entwicklungsumgebung unter Windows ein, einschliesslich Shell- Konfiguration, wesentlicher Werkzeuge, Git, SSH-Schluessel, Node.js, Python und plattformuebergreifendem Pfadmanagement. Verwenden bei der Einrichtung eines neuen Windows-Rechners fuer die Entwicklung, der erstmaligen Konfiguration von WSL2, dem Hinzufuegen von Entwicklungswerkzeugen zu einer bestehenden WSL-Installation oder der Einrichtung plattformuebergreifender Arbeitsablaeufe mit WSL und Windows.

  • 31 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 3, 2026
ai-agentspythongoshellbashsqlnodedockergitperformance

Works with

  • claude code
  • terminal
  • cli
  • mcp

Security analysis

F0/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalAccesses sensitive system or user directories
  • criticalReads or references SSH private keys
  • criticalModifies startup scripts or system services for persistence
  • criticalModifies startup scripts or system services for persistence
  • criticalSends environment variables or credentials to an external URL
  • criticalDownloads and executes remote scripts — classic supply chain attack
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro shows the line behind each finding and how to fix it

Scanned September 3, 2026

npx -y skills add pjt222/agent-almanac --skill setup-wsl-dev-environment --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup Wsl Dev Environment?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Setup Wsl Dev Environment
[![Security: F — Skills Directory](https://www.skillsdirectory.com/api/skills/pjt222-setup-wsl-dev-environment-6fc618d2/badge)](https://www.skillsdirectory.com/skills/pjt222-setup-wsl-dev-environment-6fc618d2)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: setup-wsl-dev-environment
description: >
  Richtet eine WSL2-Entwicklungsumgebung unter Windows ein, einschliesslich Shell-
  Konfiguration, wesentlicher Werkzeuge, Git, SSH-Schluessel, Node.js, Python
  und plattformuebergreifendem Pfadmanagement. Verwenden bei der Einrichtung eines
  neuen Windows-Rechners fuer die Entwicklung, der erstmaligen Konfiguration von WSL2,
  dem Hinzufuegen von Entwicklungswerkzeugen zu einer bestehenden WSL-Installation
  oder der Einrichtung plattformuebergreifender Arbeitsablaeufe mit WSL und Windows.
locale: de
source_locale: en
source_commit: 6f65f316
fence_basis_commit: 6f65f316
translator: claude-opus-4-6
translation_date: 2026-03-16
license: MIT
allowed-tools: Read Write Edit Bash Grep Glob
metadata:
  author: Philipp Thoss
  version: "1.0"
  domain: general
  complexity: intermediate
  language: multi
  tags: wsl, windows, linux, development, setup
---

# WSL-Entwicklungsumgebung einrichten

Vollstaendige WSL2-Entwicklungsumgebung fuer plattformuebergreifende Arbeit konfigurieren.

## Wann verwenden

- Einrichtung eines neuen Windows-Rechners fuer die Entwicklung
- Erstmalige Konfiguration von WSL2
- Hinzufuegen von Entwicklungswerkzeugen zu einer bestehenden WSL-Installation
- Einrichtung plattformuebergreifender Arbeitsablaeufe (WSL + Windows-Tools)

## Eingaben

- **Erforderlich**: Windows 10/11 mit WSL2-Unterstuetzung
- **Optional**: Bevorzugte Linux-Distribution (Standard: Ubuntu)
- **Optional**: Einzurichtende Sprachen (Node.js, Python, R)
- **Optional**: Zusaetzliche Werkzeuge (Docker, tmux, fzf)

## Vorgehensweise

### Schritt 1: WSL2 installieren

In PowerShell (Administrator):

```powershell
wsl --install
wsl --set-default-version 2
```

Wenn aufgefordert, neu starten. Ubuntu wird standardmaessig installiert.

**Erwartet:** Nach dem Neustart zeigt `wsl --list --verbose` die Distribution unter WSL Version 2 laufend. Der Befehl `wsl` oeffnet eine Linux-Shell.

**Bei Fehler:** Falls die WSL2-Installation fehlschlaegt, die Windows-Funktionen "Virtual Machine Platform" und "Windows-Subsystem fuer Linux" manuell ueber `optionalfeatures.exe` aktivieren. Bei aelteren Windows-10-Builds ist moeglicherweise ein Kernel-Update von Microsoft erforderlich.

### Schritt 2: WSL-Ressourcenlimits konfigurieren

`~/.wslconfig` im Windows-Home-Verzeichnis erstellen:

```ini
[wsl2]
memory=8GB
processors=4
localhostForwarding=true
```

**Erwartet:** Die Datei `.wslconfig` befindet sich im Windows-Benutzerverzeichnis (z.B. `C:\Users\Name\.wslconfig`). Nach Ausfuehren von `wsl --shutdown` und Neustart von WSL werden die Ressourcenlimits angewendet.

**Bei Fehler:** Falls die Konfiguration keine Wirkung hat, pruefen ob die Datei am richtigen Ort liegt (Windows-Home, nicht WSL-Home). `wsl --shutdown` ausfuehren und WSL neu starten, damit Aenderungen wirksam werden.

### Schritt 3: Aktualisieren und Grundlegendes installieren

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
  build-essential \
  curl \
  wget \
  git \
  git-lfs \
  vim \
  htop \
  tree \
  jq \
  ripgrep \
  fd-find \
  unzip \
  zip
```

Nuetzliche Aliase erstellen:

```bash
echo 'alias fd="fdfind"' >> ~/.bashrc
```

**Erwartet:** Alle Pakete werden fehlerfrei installiert. Befehle wie `git --version`, `jq --version`, `rg --version` und `tree` werden erfolgreich ausgefuehrt.

**Bei Fehler:** Falls `apt install` fehlschlaegt, zuerst `sudo apt update` ausfuehren, um die Paketlisten zu aktualisieren. Fuer nicht gefundene Pakete pruefen, ob die Ubuntu-Version diese unterstuetzt, oder aus alternativen Quellen installieren (z.B. snap, cargo oder manuelle Installation).

### Schritt 4: Git konfigurieren

```bash
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global init.defaultBranch main
git config --global core.autocrlf input
git config --global color.ui auto
git config --global core.editor vim
```

**Erwartet:** `git config --list` zeigt den korrekten Benutzernamen, die E-Mail, den Standard-Branch (`main`), autocrlf (`input`) und Editor-Einstellungen.

**Bei Fehler:** Falls Einstellungen nicht uebernommen werden, pruefen ob `--global` verwendet wurde (nicht `--local`, das nur fuer das aktuelle Repository gilt). Sicherstellen, dass `~/.gitconfig` die erwarteten Eintraege enthaelt.

### Schritt 5: SSH-Schluessel einrichten

```bash
ssh-keygen -t ed25519 -C "your.email@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
# Add to GitHub: Settings > SSH and GPG keys
```

Test: `ssh -T git@github.com`

**Erwartet:** `ssh -T git@github.com` gibt "Hi username! You've successfully authenticated." zurueck. Das SSH-Schluesselpaar existiert unter `~/.ssh/id_ed25519` und `~/.ssh/id_ed25519.pub`.

**Bei Fehler:** Falls die Authentifizierung fehlschlaegt, pruefen ob der oeffentliche Schluessel zu GitHub hinzugefuegt wurde (Einstellungen > SSH und GPG-Schluessel). Pruefen ob `ssh-agent` laeuft und der Schluessel mit `ssh-add -l` geladen ist. Falls der Agent nicht laeuft, `eval "$(ssh-agent -s)"` zur `~/.bashrc` hinzufuegen.

### Schritt 6: Node.js installieren (ueber nvm)

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
```

**Erwartet:** `node --version` und `npm --version` geben aktuelle LTS-Versionen zurueck. `nvm ls` zeigt die installierte Version als Standard markiert.

**Bei Fehler:** Falls `nvm` nach der Installation nicht gefunden wird, `~/.bashrc` laden oder ein neues Terminal oeffnen. Falls das Installationsskript fehlschlaegt, es manuell herunterladen und nach Pruefung des Skriptinhalts ausfuehren.

### Schritt 7: Python installieren (ueber pyenv)

```bash
# Install build dependencies
sudo apt install -y make libssl-dev zlib1g-dev libbz2-dev \
  libreadline-dev libsqlite3-dev libncursesw5-dev xz-utils \
  tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

curl https://pyenv.run | bash

# Add to ~/.bashrc
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pyenv install 3.12
pyenv global 3.12
```

**Erwartet:** `python --version` gibt Python 3.12.x zurueck. `pyenv versions` zeigt die installierte Version als global gesetzt.

**Bei Fehler:** Falls `pyenv install` mit Build-Fehlern fehlschlaegt, sicherstellen dass alle Build-Abhaengigkeiten aus dem `apt install`-Befehl installiert wurden. Fehlende Bibliotheken (insbesondere `libssl-dev` oder `zlib1g-dev`) sind die haeufigste Ursache fuer Python-Build-Fehler.

### Schritt 8: Shell konfigurieren

Folgendes zur `~/.bashrc` hinzufuegen:

```bash
# History
export HISTSIZE=10000
export HISTFILESIZE=20000
export HISTCONTROL=ignoredups:erasedups
shopt -s histappend

# Navigation aliases
alias ll='ls -alF'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'

# Development paths
export DEV_HOME="/mnt/d/dev/p"
alias dev='cd $DEV_HOME'

# Functions
mkcd() { mkdir -p "$1" && cd "$1"; }

# PATH additions
export PATH="$HOME/bin:$HOME/.local/bin:$PATH"
```

**Erwartet:** Nach Ausfuehren von `source ~/.bashrc` funktionieren alle Aliase (`ll`, `la`, `..`, `dev`), die Funktion `mkcd` erstellt Verzeichnisse und wechselt hinein, und `$DEV_HOME` zeigt auf das Entwicklungsverzeichnis.

**Bei Fehler:** Falls Aliase nicht verfuegbar sind, pruefen ob die Ergaenzungen zu `~/.bashrc` hinzugefuegt wurden (nicht `~/.bash_profile` oder `~/.profile`). `source ~/.bashrc` ausfuehren, um ohne neues Terminal neu zu laden.

### Schritt 9: Claude Code CLI einrichten

```bash
# Add Claude CLI to PATH (after installation)
echo 'export PATH="$HOME/.claude/local/node_modules/.bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Verify
which claude
```

**Erwartet:** `which claude` gibt den Pfad zur Claude Code CLI-Binaerdatei zurueck (z.B. `~/.claude/local/node_modules/.bin/claude`). `claude --version` gibt die installierte Version aus.

**Bei Fehler:** Falls `claude` nicht gefunden wird, pruefen ob der PATH-Export zu `~/.bashrc` hinzugefuegt und geladen wurde. Pruefen ob Claude Code tatsaechlich unter `~/.claude/local/` installiert ist. Falls nicht installiert, zuerst den Claude Code-Installationsanweisungen folgen.

### Schritt 10: Plattformuebergreifende Pfadreferenz

| Windows | WSL |
|---|---|
| `C:\Users\Name` | `/mnt/c/Users/Name` |
| `D:\dev\projects` | `/mnt/d/dev/projects` |
| `%APPDATA%` | `/mnt/c/Users/Name/AppData/Roaming` |

Windows Explorer aus WSL oeffnen: `explorer.exe .`

**Erwartet:** Die Pfadkonvertionstabelle ist verstanden und getestet: Zugriff auf einen Windows-Pfad aus WSL funktioniert (z.B. `ls /mnt/c/Users/`), und `explorer.exe .` oeffnet den Windows Explorer im aktuellen WSL-Verzeichnis.

**Bei Fehler:** Falls `/mnt/c/` nicht zugaenglich ist, pruefen ob WSL's Automount konfiguriert ist. `/etc/wsl.conf` auf `[automount]`-Einstellungen pruefen. `wsl --shutdown` ausfuehren und neu starten, falls Einhängepunkte veraltet sind.

## Validierung

- [ ] WSL2 laeuft mit der korrekten Distribution
- [ ] Git mit korrekter Identitaet konfiguriert
- [ ] SSH-Schluessel zu GitHub hinzugefuegt und Verbindung verifiziert
- [ ] Node.js installiert und funktionsfaehig
- [ ] Python installiert und funktionsfaehig
- [ ] Shell-Aliase und -Funktionen funktionieren
- [ ] Claude Code CLI zugaenglich

## Haeufige Stolperfallen

- **Langsamer Dateizugriff auf `/mnt/`**: Haeufig genutzte Projekte im WSL-Dateisystem (`~/`) fuer bessere Performance speichern. `/mnt/` fuer Projekte nutzen, die mit Windows-Tools geteilt werden.
- **Zeilenenden**: `core.autocrlf=input` verhindert CRLF-Probleme. Editoren auf LF-Zeilenenden konfigurieren.
- **Berechtigungsprobleme**: Dateien auf `/mnt/` zeigen moeglicherweise falsche Berechtigungen. Zur `/etc/wsl.conf` hinzufuegen: `[automount]\noptions = "metadata,umask=22,fmask=11"`
- **Windows Defender**: WSL-Verzeichnisse vom Echtzeit-Scan ausschliessen fuer bessere Performance.

## Verwandte Skills

- `configure-git-repository` - ausfuehrliche Git-Repository-Einrichtung
- `configure-mcp-server` - MCP-Einrichtung benoetigt WSL-Umgebung
- `write-claude-md` - KI-Assistent fuer Projekte konfigurieren

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…