Nützliches aus der Welt der (Power)Shell

Hier sammle ich Kleinigkeiten rund um die (Power)Shell für jene ein eigener Blogeintrag zu viel wäre.

Alles rund um Quellcode

Um einen groben Überblick über die Anzahl der Code-Zeilen in einem Projekt zu erhalten:

(dir -include *.cs -recurse | select-string .).Count

Alle bin und obj Ordner in einer dotnet Solution kann auf folgende Weise löschen:

gci -include bin,obj -recurse | remove-item -force -recurse

npm und node.js

Funding Meldungen

Hin und wieder führen die Fund-meldungen beim npm install zu fehlner in der pipeline. Dies kann man global so deaktivieren:

npm config set fund false --location=global

Alternativ auch nur für das aktuelle Projekt:

npm config set fund false 

oder man legt folgenden Eintrag in der .npmrc an:

fund=false

Löschen aller node_modules Ordner

Alle node_modules Ordner zu löschen kann umständlich sein. Mit dem folgendem Befehl wird das im Handumdrehen erledigt:

Get-ChildItem -Path "." -Include "node_modules" -Recurse -Directory | Remove-Item -Recurse -Force

Unter Linux / MacOS hilft dieses:

find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;

Löschen aller Eventlogs

Möchte man alle Einträge in allen Windows Eventlogs los werden hilft folgendes:

Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

Anzeigen aller Umgebungsvariablen mit Inhalt

Zum Verstehen von Buildvorgängen in Azure Pipelines kann es hilfreich sein sich alle Umgebungsvariablen ausgeben zulassen:

Get-ChildItem env:* | Sort-Object name | Format-Table -Property name,value -AutoSize

Hilfreiches zu Docker

Docker kann man recht umfangreich bereinigen mit diesem Befehl:

docker system prune -af

Zum Anzeigen aller Ports die auf einem Host durch Container veröffentlicht werden:

docker container ls --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}" -a

Anzeigen aller IP-Adressen im Hyper-V

Um die IP-Adressen aller eingegeschalteten virtuellen Maschienen anzuzeigen:

Get-VM | Get-VMNetworkAdapter | Format-Table VMName, IPAddresses, switchName -AutoSize

Info: Dieser Befehl gibt nur die Adressen der Maschienen zurück welche gerade Laufen.

Azure AD User ObjectID

Braucht man die ObjectID des eigenen Nutzers um Azure AD kann man sich mit der Azure CLI einlogen undann folgenden Befehl ausführen:

az ad signed-in-user show --query objectId -o tsv

Updaten aller Pakete unter Ubuntu

Alles auf den aktuellen Stand gebracht werden kann unter Ubuntu mit dem folgenden Befehl:

sudo apt-get -y update && sudo apt-get -y clean && sudo apt-get -y upgrade && sudo apt-get -y autoremove --purge

Zone.Identifier-Dateien in der WSL

Wenn man die Zone.Identifier-Dateien löschen möchten, die beim Kopieren von Dateien in WSL2 automatisch generiert werden, können Sie den folgenden Code-Schnipsel ausführen:

find -name "*:Zone.Identifier" -type f -delete

Dies findet und löscht alle Zone.Identifier-Dateien in der WSL2-Installation.