Nützliche Windows-Befehle
Nicht nur mit der Kommandozeile lassen sich viele nützliche Funktionen ausführen. Auch die Eingabeaufforderung und Bash-Shell können einem in Windows gute Dienste leisten.
Die Verwendung eines PCs ist lange nicht mehr mit dem zu vergleichen, wie es vor dreißig Jahren war. Auf der grafischen Oberfläche lassen sich viele Funktionen leicht finden und mit wenigen Klicks ausführen. Allerdings sind sie nicht immer von Vorteil. Bei manchen Programmen sind die Oberflächen unübersichtlich aufgebaut und behindern eine effektive Nutzung der vielen Funktionen.
Dagegen präsentiert sich die Kommandozeile schlicht und fokussiert. Die leere Eingabezeile wartet nur darauf, einen präzise formulierten Befehl zu bekommen. Leider erklärt sie einem nicht, welche Befehle zur Auswahl stehen. Allerdings sind die Befehle auch nicht schwer zu verstehen, vor allem, wenn man des Englischen mächtig ist. Wer etwas Übung mit der Kommandozeile hat, tippt neue Befehle schnell und problemlos ein.
Doch nicht nur die Kommandozeile ist ein hilfreiches Tool. Auch die Eingabeaufforderung und Bash-Shell können über nützliche Funktionen verfügen. In diesem Beitrag zeigen wir Ihnen, welche Funktionen das sind und was Sie dafür installieren müssen. Ein Tipp: In der Regel ist Groß- und Kleinschreibung irrelevant, außer bei Bash-Shell. Hier achtet das Programm auf die korrekte Schreibweise.
- Windows-Terminal für Powershell, Eingabeaufforderung und Bash-Shell
Seit dem Update zu Windows NT nennt sich die Eingabeaufforderung cmd.exe. Hierbei handelt es sich um die ganz klassische Kommandozeile von Windows, welche unter der Version 5.1 von Windows 10 und bei Windows 11 von Windows-Powershell abgelöst wurde. Bei Windows 11 ist das plattformübergreifende Tool Powershell 7 vorinstalliert. Das gibt es übrigens auch für MacOS und für Linux. Bash-Shell für Linux steht in Windows 10 und Windows 11 bereit. Es verfügt über seine eigene Kommandozeile.
-
Diese Funktionen lassen sich gleichzeitig nutzen, am besten in mehreren offenen Registrierkarten. Das Windows-Terminal ist in Windows 11 vorinstalliert, Nutzer von Windows 10 müssen es zunächst über den Microsoft Store finden und einrichten. Sie finden es unter der Bezeichnung "Terminal". Im selben App-Store bekommen Sie auch das nützliche Tool "Winget", hiermit installieren Sie schnell über die Kommandozeile weitere Tools. Winget ist ebenfalls in Windows 11 vorinstalliert.
-
Ist alles installiert, kann es losgehen, indem Sie das Windows-Terminal in der Suche des Startmenüs aufrufen. Mit der Tastenkombination Windows-R geht es noch schneller. Tippen Sie dann in der Kommandozeile "wt" ein und klicken Sie auf "OK". Nun sollte das Terminal Windows Powershell starten. Hier können Sie weitere Shells sowie das Tool Eingabeaufforderung öffnen, indem Sie im Menü das Häkchen an der jeweiligen Stelle setzen. Nun setzen wir unseren Gang fort und rufen das Windows-Terminal für Programminstallationen und Updates auf. Das machen wir als Administrator, um erweiterte Zugangsrechte zu erhalten und diese nicht bei jeder Aktion bestätigen zu müssen. Rufen Sie die Suche im Startmenü auf und aktivieren Sie den Kontextmenüpunkt "Als Administrator ausführen".
-
Um die aktuelle Version Powershell 7 zu installieren, geben Sie in der administrativen Windows-Powershell oder Eingabeaufforderung den Befehl "winget install -id Microsoft. Power" ein. In der Linux-Variante installieren Sie das Subsystem WSL, auch Bash-Shell genannt, mit dem Befehl "wsl -install". Sollten Sie nur Bash-Shell verwenden wollen, dann können Sie auch "Msys2" auf Linux aufspielen. Das Tool enthält eine Reihe von nützlichen Funktionen für Entwickler für Linux-Betriebssysteme.
-
Die im Beitrag beschriebenen Befehle und Funktionen setzen diese Version voraus. Allerdings sollten die meisten davon auch unter Windows Powershell 5.1 funktionieren. Wenn Sie wissen wollen, welche Version von Powershell Sie aktuell verwenden, dann tippen Sie den Befehl "$PSVersionTable" ein. Anschließend müssen Sie den Rechner herunter- und wieder hochfahren.
-
Einige Tipps zum Umgang mit Shell
Die Nutzung von Shell-Befehlen kommt mit einigen Besonderheiten daher, die nicht immer offensichtlich sind. Das umfasst unter anderem die Verwendung der englischen Sprache. Während im Windows-Explorer die Begriffe für den deutschen Markt lokalisiert sind, verwendet die Shell weiterhin englische Bezeichnungen. Aus "C:\Benutzer" wird so in der Shell "C:\Users". Die Ordner "Dokumente" oder "Bilder" heißen bei der Verwendung der Shell dann "Documents" und "Pictures". Wenn etwas mal nicht funktioniert, dann achten Sie darauf, ob Sie die korrekten Begriffe verwenden.
-
Leerzeichen können bei der Verwendung von Shell zu Problemen führen, wenn sie etwa bei Dateien oder Ordnern auftauchen. Dafür setzt man die Dateien und Ordner in Anführungszeichen, wie etwa: "cd C:\Propgram Files (x86)". Bei der Eingabe von Befehlen hilft die automatische Vervollständigung. Diese wandelt zum Beispiel "cd C:\Pr" nach der Betätigung der Tab-Taste in "C:\Program Files\" um. Noch einmal die Tab-Taste gedrückt und daraus wird "C:\Program Files (x86)\". Diese Funktion lässt sich auch bei Befehlen einsetzen. Zum Beispiel wandelt Shell "Get-Ch" automatisch in "Get-ChildItem" um, indem Sie die Tab-Taste drücken.
-
Beachten Sie, dass die Befehle in Shell immer den aktuell verwendeten Ordner als Grundlage haben. Möchten Sie ein Programm direkt über die Shell starten und haben Sie den Ordner geöffnet, dann setzen Sie ein ".\" davor. Ist dem nicht der Fall, dann müssen Sie den ganzen Pfad korrekt wiedergeben.
-
Allerdings kann es umständlich sein und zu Fehlern führen, den gesamten Pfad händisch eintippen zu müssen. Um das zu vermeiden, lassen sich ganze Ordner zum Suchpfad hinzufügen. So können Sie einen Ordner genannt "C:\Tools" erstellen und hier alle erforderlichen Tools einfügen, die Sie über die Kommandozeile aufrufen möchten. Dann betätigen Sie die Tastenkombination Windows-R und geben "SystemPropertiesAdvanced" ein. Navigieren Sie anschließend zu "Umgebungsvariablen", dann auf "Path" und anschließend auf "Bearbeiten". Hier fügen Sie über "Neu" den zuvor erstellten Ordner "C:\Tools" in die Pfad-Variable ein. Diesen Vorgang können Sie mit verschiedenen Ordnern durchführen, wie etwa mit dem Ordner "C:\msys64\usr\bin" oder dem WSCC-Ordner mit seinen verschiedenen Anwendungen.
-
Der Umgang mit Verzeichnissen und Laufwerken in Shell
In Shell lässt sich leicht herausfinden, wo man sich gerade im Dateisystem befindet. Das verrät einem der Prompt. In der Regel zeigt Shell bei der Eingabeaufforderung von "C:\Users[Benutzername]" im Prompt das Profil- oder das Home-Verzeichnis des Nutzers an. Geben Sie den Befehl: "cd C:\Windows" ein und Shell wechselt automatisch zum Ordner der Windows-Installation. Bedenken Sie, dass es sich hierbei um einen kompletten Pfad handelt. Wollen Sie den Ordner über Umwege ansteuern, dann geben zunächst "cd C:" ein. Hiermit gelangen Sie zum Laufwerk. Mit der Eingabe von "Windows" befinden Sie sich dann im Ordner. Das stellt einen relativen Pfad ein, da er sich relativ zu "cd C:\" verhält.
-
Über die Shell können Sie schnell auf ein bestimmtes Laufwerk und einen Pfad springen. Geben Sie "cd X:\Backup" ein und Sie befinden sich in dem jeweiligen Laufwerk X. In der Eingabeaufforderung nutzen Sie dafür den Befehl "cd /D X:\Backup". Bei Linux unter Verwendung von Bash-Shell sieht die Sache allerdings anders aus. Das Home-Verzeichnis findet sich hier unter dem Pfad "C:\Users[Benutzername]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntuon-Windows_[Code]\LocalState\rootfs\home\[Benutzername]". Allerdings können Sie den Pfad in der Powershell abkürzen. Die Eingabe von "cd \wsl$\Ubuntu\home [Benutzername]" reicht aus, um das Verzeichnis zu erreichen. Geben Sie den Befehl ohne "cd" ein und Sie befinden sich wieder im Windows-Profilverzeichnis.
-
Weiterhin lassen sich eine Reihe von Aliasse und Cmdlets verwenden. So etwa: "Set-Location X:\Backup". Bei "cd" handelt es sich eigentlich nur um ein Alias für den Befehl "Cmdlet Set-Location". Wiederum ist "Cmdlet" die Bezeichnung für Befehle in Powershell. Wollen Sie wissen, welche Befehle dieser Art die Powershell bietet, dann geben Sie "Get-Alias" ein. Die geballte Ladung an Befehlen bekommen Sie mit dem Befehl "Get-Alias | more". Mit der Leertaste blättern Sie hier zwischen den Seiten hin und her. Drücken Sie die Q-Taste und Sie schließen diese Ansicht. Mit dem Strich-Zeichen " | " wird der Befehl an "more" weitergeleitet. Sie können die Liste allerdings auch in eine Text-Datei umwandeln, indem Sie "Get-Alias > alias-list.txt" eingeben. Anschließend öffnen Sie die Datei mit "notepad alias-list.txt".
-
Die Aliasse sind häufig Abkürzungen für die wesentlich umständlicheren Cmdlets. Sie bauen auf den Befehlen in der Eingabeaufforderung sowie Bash-Shell auf. Bei der Syntax müssen Sie allerdings aufpassen, denn die kann je nach zusätzlichen Funktionen recht unterschiedlich sein. So etwa können Sie sich mit "Get-ChildItem" den Inhalt des aktuellen Verzeichnisses anzeigen lassen. Mit dem Zusatz "Get-ChildItem C:\Windows" wird der Inhalt des angegebenen Verzeichnisses dargestellt. Als Alternativen bieten sich "dir", ähnlich der Eingabeaufforderung, oder der Alias "ls" in der Bash-Shell an.
-
Weitere Beispiele: Der Befehl "Remove-Item", gefolgt vom Pfad, löscht entweder ein ganzes Verzeichnis oder eine spezifische Datei. Aliasse hierfür wären "del", "rm" oder "rmdir". Mit weiteren Zusätzen lässt sich der Befehl präzisieren. So etwa können Sie "A" eintippen, und die Shell löscht alle im Verzeichnis enthaltenen Ordner und Dateien, ohne nach einmal nachzufragen. Oder Sie geben gleich "Remove-Item [Pfad] -Recurse" ein. In der Eingabeaufforderung wäre dafür der Befehl "rmdir /S /Q [Pfad]" verantwortlich, ganze Verzeichnisse zu löschen, ohne nachzufragen. In der Bash-Shell nutzen Sie dafür "rm -r [Pfad]".
-
Sollten Sie über die Shell Ordner in einem ZIP-Archiv verpacken wollen, dann geben Sie "Compress-Archive [Pfad] -DestinationPath E:\Backup\ Archiv.zip" ein. Bei [Pfad] müssen Sie den genauen Verlauf zum Zielordner eingeben, den Sie komprimieren wollen. "-DestinationPath" hingegen gibt an, in welches Verzeichnis das ZIP-Archiv gespeichert werden soll. Einen neuen Ordner können Sie somit nicht erstellen, er muss bereits existieren.
-
ZIP-Archive entpacken nehmen Sie mit "Expand-Archive E:\Backup\Archiv.zip -DestinationPath [Pfad]". Der [Pfad] gibt hierbei den Ordner an, wo sich die ZIP-Datei befindet. Als Alternative können Sie das aus Linux/WSL bekannte Tool "Tar" auch in Windows 10 oder Windows 11 verwenden. Der Befehl hierfür lautet "tar -cf E:\Backup\Archiv.tar [Pfad]". Mithilfe dieses Befehls wird der Ordner in [Pfad] ohne Komprimierung im angegeben Ordner archiviert. Eine Gzip-Datei erstellen Sie mit dem Befehl "tar -czf E:\Backup\Archiv.tar.gz [Pfad]". Das kann eine Weile dauern. Wenn Sie eine stärkere Komprimierung wollen, dann ersetzen Sie das "z" oder "Gzip" mit "j" oder "bzip2" sowie "J" oder "xz".
-
Über die Shell können Sie weiterhin die Ordnergröße ermitteln. Der Befehl "Get-ChildItem -file -recurse [Pfad] | Measure-Object -properly length -Sum" übermittelt Ihnen die Größe des in [Pfad] angegebenen Ordners. Wollen Sie die Größe der Unterverzeichnisse angezeigt bekommen, dann fügen Sie den Befehl "FolderSizes [Pfad]" hinzu. Für diesen Befehl benötigen Sie allerdings die Profildatei "Microsoft.PowerShell_profile.psl". Für die Bash-Shell gibt es das nützliche Tool "Du.exe", mit deren Hilfe sich die Ordnergröße leicht über den Befehl "du -h [Pfad]" herausfinden lässt. Dieses Tool können Sie über das Windows System Control Center herunterladen. Dabei zeigt das Tool die Größe des Ordners und der einzelnen Unterordner an.
-
Der Umgang mit Dateien in der Shell
Das System von Windows setzt nur selten auf Textdateien. Stattdessen nutzen die meisten Programme die Registry, um Konfigurationsdaten zu speichern. Diese erreichen Sie schnell mit dem Befehl: "Get-Content C:\Windows\System32\drivers\etc\hosts". Als Alternative können Sie bei Bash und der Eingabeaufforderung die Aliasse "cat" und "type" verwenden.
-
Einen Texteditor können Sie in der Shell nicht verwenden. Allerdings bietet sich der Einsatz des WSL an. Der Befehl sieht wie folgt aus: "wsl nano /mnt/c/Windows/System32/drivers/etc/hosts". Im Paket Msys2 lässt sich auch der Befehl "nano" nutzen. Geben Sie dafür "C:\msys64\usr\bin\nano.exe C:\ Windows\System32\drivers\etc\hosts". Stellen Sie sicher, dass Sie als Administrator auf die Powershell zugreifen, sonst lassen sich die Dateien nicht bearbeiten.
-
Wenn Sie Dateien kopieren wollen, dann hat die Shell ebenfalls den passenden Befehl parat: "Copy-Item [Quelle] [Ziel]". Die Aliasse sind "copy" und "cp". Die [Quelle] sollte den gesamten Pfad bis zur Datei enthalten, bei [Ziel] brauchen Sie nur den Ordner anzugeben. Fügen Sie dem Ordner einen neuen Namen hinzu, dann speichert die Shell die kopierte Datei unter diesem ab. Achtung: Dateien mit demselben Namen im betreffenden Ordner werden ohne Rückfrage überschrieben. Dagegen hilft auch der Zusatz "confirm" nicht. Diese fragt ab, ob die Datei tatsächlich kopiert werden soll, klärt einen jedoch nicht über die Überschreibungs-Aktion auf. Die komplexere Struktur wie "(Test-Path [Quelle]) ? "Datei vorhanden" : (Copy-Item [Quelle] [Ziel])" checkt, ob die Datei [Quelle] bereits vorhanden ist und warnt Sie, sollte das der Fall sein.
-
Zum Suchen von Dateien können Sie unter anderem den Befehl "Get-ChildItem C:\Users\ [Benutzername]\Documents -Recurse -File -Filter *Datei*" verwenden. Dabei durchsucht die Shell den besagten Ordner und listet alle Dateien mit dem Suchbegriff auf. Es spielt keine Rolle, an welcher Stelle im Dateiname der gesuchte Begriff auftaucht. Indem Sie "File" aus dem Befehl herausnehmen, sucht die Shell auch durch Verzeichnisse.
-
Kürzer ist der Befehl "dir /s C:\Users[Benutzername]\ Documents[Datei]". Der Befehl "s" macht aus der Suche einen rekursiven Vorgang nach dem eingegebenen Suchmuster. Mit dem Befehl "Get-ChildItem C:\Users[Benutzername]\Documents*.txt -Recursive | Select-String "dummy" -List" lassen sich auch Inhalte von Textdateien durchsuchen. Der Select-Befehl markiert den Suchbegriff, in diesem Falle "dummy". Mit dem Befehl "| Select Path" durchsuchen Sie nur die Dateinamen.
-
Informationen zu System und Hardware auslesen
Mit bestimmten Cmdlets können Sie über die Powershell Informationen zur Hardware und zum System auslesen. Der einfache Befehl "Get-ComputerInfo" dient als Basis und ist in jeder Windows-Version vorinstalliert. Hier erfahren Sie mehr zum Bios oder zur Bezeichnung des CPUs. Weitere Informationen lassen sich etwa mit "Get-ComputerInfo -Property *version*" filtern. Dann sehen Sie nur die Eigenschaften, welche zur betreffenden Version gehören. Mit dem Befehl "Get-CimInstance -ClassName Win32_OperatingSystem" erfahren Sie die Build-Nummer sowie die aktuell installierte Windows-Version.
-
Der Befehl "Get-CimClass" zeigt alle Werte zum betreffenden "-ClassName" an. In der Regel ist die Liste sehr lang, weshalb sich ein Filter wie "Get-CimClass -ClassName disk" anbietet. Dieser Befehl zum Beispiel zeigt nur die Einträge betreffend der Festplatten und Laufwerke an. Und "Get-CimInstance -ClassName Wind32_DiskDrive" zeigt die Laufwerke, ihre Bezeichnungen und Kapazitäten auf.
-
Ähnliches kann das Programm "Winaudit" auf einer grafischen Oberfläche bieten. Dazu liefert es Daten zu Programmen, System und anderer Hardware. Das Programm installieren Sie per "C:\Tools\WinAudit.exe". Dabei sollten Sie als Administrator angemeldet sein. In der grafischen Oberfläche navigieren Sie dann zu "Hilfe", dann zu "Winaudit benutzen". Die Funktionen des Programms werden Ihnen unter "10) Command Line Usage" angezeigt. Dann schließen Sie das Tool und erstellen einen Report mit dem Befehl "C:\Tools\WinAudit.exe /r=gopm /l=log.txt. /f=computer.html". Der Befehl "gopm" erstellt eine Übersicht zum Betriebssystem, Prozessor und Speicher. Der Bericht steht Ihnen dann unter dem angegebenen Namen im Ordner "Tools" zur Verfügung. Da es sich um eine HTML-Datei handelt, öffnen Sie ihn im Webbrowser.
-
Windows mit der Shell herunterfahren oder neu starten
Zu den simpelsten Befehlen gehören "Stop-Computer", mit dem sich der Rechner herunterfahren lässt. Mit "Restart-Computer" wird er neu gestartet. Der Befehl "Shutdown" verfügt über weitere Modifikationen. So können Sie mit "shutdown /s /t 5" den Rechner nach fünf Sekunden herunterfahren lassen. Verwenden Sie nur den Befehl "shutdown /r", dann fährt er ihn nach 30 Sekunden herunter. Indem Sie "shutdown /r /fw" eingeben, startet der Rechner nicht nur neu, sondern bootet auch das Uefi-Firmware-Setup.
-
Mit Powershell Prozesse und Dienste überwachen
Die Powershell kann ähnliche Funktionen wie der Taskmanager bieten. Tippen Sie "Get-Process" ein und Sie bekommen die aktuellen Prozesse angezeigt, mitsamt dem verbrauchten Speicher, CPU-Zeit und Prozess-IDs. Mit dem Befehl "Get-Process -Name "firefox" | Sort-Object -property CPU -descending" sehen Sie die Firefox-Prozesse, angeordnet nach der CPU-Zeit. Geben Sie "(Get-Prozess -Name "Firefox").Path" ein und Powershell zeigt Ihnen Pfad und Namen der Exe-Datei an. Dann betätigen Sie mehrmals die Tab-Taste und navigieren sich somit durch die verschiedenen Eigenschaften-Leisten.
-
Hier lassen sich auch alle Prozesse eines Programms schließen, in diesem Falle Notepad. Dafür geben Sie den Befehl "Stop-Process -Name "notepad" ein. Indem Sie zunächst mittels "Stop-Process -ID [ID]" eingeben, ermitteln Sie die ID bestimmter Prozesse und können Sie gezielt beenden.
-
Weiterhin steht Ihnen das Tool "Ntop" zur Verfügung. Das basiert teilweise auf dem Linux-Programm "Htop". Damit sehen Sie alle laufenden Prozesse auf einer grafischen Oberfläche in der Shell. Sie navigieren sich durch die Oberfläche anhand Strg-Pfeil-nach-rechts oder Strg-Pfeil-nach-links und ändern somit die Sortierung der Prozesse. Die Leertaste dient deren Markierung und mit Shift-K schließen Sie diese. Drücken Sie Q und das Programm wird ganz geschlossen. Nützlich ist auch der Befehl "Get-Servive", der alle Windows-Dienste anzeigt und sogleich kurze Beschreibungen und den Status liefert. Mit den Befehlen "Stop-Service [Dienstname]" und "Start-Service [Dienstname]" lassen sie sich beenden und erneut starten. Der Kurzname des Dienstes reicht aus.
-
Mit Powershell das Netzwerk überprüfen
Sie wollen die Internetverbindung und das Netzwerk über die Shell überwachen? In der Eingabeaufforderung reicht der Befehl "ping -4 [Computername oder Domain]" aus. Mit "-4" sind die IPv4-Adressen gemeint. Für die IPv6-Adressen geben Sie "-6" ein. In der Shell lauter der Befehl "Test-Connection -IPv4 google.de". Für die IPv6-Adressen geben Sie stattdessen "-IPv6" ein.
-
Datenpakete innerhalb des Netzwerkes überprüfen Sie mit dem Befehl "Test-Connection -Traceroute [Computername oder Domain]" in der Shell. In der Eingabeaufforderung übernimmt das der Befehl "travert [Computername oder Domain]. Indem Sie "Get-NetIPConfiguration" eingeben, erhalten Sie eine Liste der Netzwerkadapter in Verbindung zu den IP-Adressen. Und mit dem Befehl "curl -0 [URL]" laden Sie Dateien von dem Webserver herunter, der unter [URL] genannt wird.