Skip to content

Das Beste PowerShell Terminal Setup

26. Mai 2022 (vor 3 Jahren)

3 Minuten Lesezeit

My terminal

Inhaltsverzeichnis 📃

Dieses Setup ist für Windows 10 Systeme gedacht

  • PowerShell
  • Scoop
  • oh-my-posh
  • Terminal Icons
  • PSReadLine
  • z
  • Neovim (Optional)
  • Nützliche npm Pakete
  • Nützliche PowerShell Skripte

Für meine komplette Konfigurationen schau bei meinem dotfiles repository vorbei.

PowerShell

PowerShell ist der beste Startpunkt für einen guten Windows Terminal. Installiere ihn ganz einfach aus dem Microsoft Store, suche nach PowerShell oder klicke hier.

Um besseres Management für diverse Terminal zu haben kannst du noch den Windows Terminal installieren. Verfügbar wieder über den Microsoft Store unter "Windows Terminal", oder hier.

Damit dein Terminal spezielle Zeichen anzeigen kann die bei oh-my-posh benötigt werden solltest du noch eine Nerdfont installieren. Es gibt viele unterschiedliche, aber ich empfehle "MesloLGL Nerd Font". Eine Vorschau und Download findest du hier.

Scoop

Scoop ist ein Paket Manager für Windows. Um es zu installieren führe folgendes in deiner neuen PowerShell Umgebung aus:

# Optional: Wird für das ausführen von Remote-Skripten benötigt (einmalig)
> Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

> irm get.scoop.sh | iex

oh-my-posh

Um deinen Terminal-Prompt besser aussehen zu lassen installiere oh-my-posh mit dem folgenden Befehl:

> scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json

Danach musst du noch folgendes zu deinem PowerShell Profil hinzufügen. Mit open $PROFILE öffnet sich dein PowerShell Profil in einem Editor.

Wenn du Visual Studio Code installiert hast kannst du code $PROFILE eingeben um es direkt in vscode zu öffnen.

oh-my-posh init pwsh | Invoke-Expression

Terminal Icons

Terminal Icons fügt Icons zum ls Befehl hinzu. Installiere es mit:

> Install-Module -Name Terminal-Icons -Repository PSGallery

und füge folgendes zu deinem Profil hinzu:

Import-Module Terminal-Icons

Wenn jetzt ls ausführst sind in der Ausgabe Icons dabei.

PSReadLine

Eine der stärksten PowerShell Tools ist PSReadLine. Es fügt auto-ergänzung in deinem Terminal hinzu.

> Install-Module PSReadLine

Und aktiviere es mit folgenden Zeilen in deiner Konfiguration:

Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView

z

z ist eine verbesserte Version des cd Befehls. Mit dem Befehl z your-folder-name kann man von überall zu einer Directory springen. Installiere es mit:

> Install-Module -Name z

Neovim (Optional)

Das ist eher was für erfahrener Entwickler. Für Leute mit nicht so viel Erfahrung kann das überfordernd sein.

Neovim

Neovim ist ein Weg deinen Terminal Workflow zu optimieren und Code direkt in deinem Terminal zu schreiben.

Install es mit scoop:

scoop install neovim

Für eine Starter-Konfiguration empfehle ich AstroNvim.

Nützliche npm Pakete

Hier ist eine Liste an nütlichen Paketen die ich oft nutze:

  • @angular/cli
  • npm-check-updates
  • prettier
  • serve
  • tree-sitter-cli (For neovim)
  • typescript
  • yarn
  • nvm
  • speed-test

Nützliche PowerShell Skripte

Hier ist eine Liste an nütlichen PowerShell Skripten die ich täglich nutze und empfehle

aliases

Set-Alias v nvim
Set-Alias g git
Set-Alias y yarn
Set-Alias ll ls
Set-Alias touch New-Item

which

Um den Ort des auszuführenden Programms zu bekommen

function which ($command) {
  Get-Command -Name $command -ErrorAction SilentlyContinue |
    Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}

transfer

Teile eine Datei oder einen Ordner in Sekunden

function transfer ($file) {
    curl -H "Max-Downloads: 1" -H "Max-Days: 5" --upload-file $file https://transfer.sh/$file
}

shortcuts

Füge folgenden Befehl für shortcuts hinzu

Set-PSReadLineKeyHandler -Chord Ctrl+q -ScriptBlock {
    [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
    [Microsoft.PowerShell.PSConsoleReadLine]::Insert('exit')
    [Microsoft.PowerShell.PSConsoleReadLine]::AcceptLine()
}

Fazit 🔚

Ich hoffe dir hat mein Setup gefallen. Über Feedback und Verbesserungen würde ich mich freuen ❤