Cmder

Ich bin vor einiger Zeit auf ein ausgesprochen nützliches Tool gestoßen, welches sich meiner  Meinung nach sehr schnell in der Windows Welt als Standard Kommandozeilen-Werkzeug etablieren wird.

Das Tool (bzw. genau genommen ist es eine Sammlung von Tools) von dem ich spreche heißt Cmder.

Was ist Cmder?

Cmder ist eine Softwarepaket, welches ursprünglich aus dem Mangel an vernünftigen Konsolen Emulatoren entstanden ist. Wer viel mit Windows auf Systemebene arbeitet, weiß wie viele unterschiedliche Konsolen Emulatoren bereits für recht einfache Aufgabenbereiche notwendig sind. Angefangen bei cmd, über powershell, bis hin zu Konsolen Emulatoren aus Entwicklungsumgebungen wie etwa in Visual Studio und Co.

Jede dieser einzelnen Applikationen ist für sich genommen bereits ein mächtiges Werkzeug und Cmder schafft es diese sehr Eindrucksvoll und Bündig zusammenzufassen. Darüber hinaus bietet Cmder dank einiger sehr nützlichen Erweiterungen zusätzlich noch sehr nützliche Werkzeuge aus der Unix Umgebung an, so können etwa gängige Befehle wie ls, less, tail, vim usw. Problemlos mit Cmder ausgeführt werden.

Für wen ist Cmder?

Cmder ist merklich für Benutzer ausgelegt, die häufig über Konsole arbeiten und sich diese gerne individuell gestalten, erweitern und möglichst viele der bekannten und bewährten Unix Werkzeuge auch unter Windows nutzen möchten.

Cmder eignet sich insbesondere auch für diejenigen, die einen erweiterbaren Konsolen Emulator suchen, der auf bekannten Open Source Komponenten basiert.

Cmder im Detail

Die Frage die ich mir am Anfang gestellt habe ist, wie funktioniert Cmder? Wie hängen die Programme zusammen und wo kann ich das sehen?

Die Antwort auf die Frage findet sich schnell in der Verzeichnisstruktur von Cmder, den dort im Ordner Vendor finden sich einige bekannte Programme.

  • clink
  • clink-completions
  • conemu-maximus5
  • git-for-windows

jedes dieser Programme verfügt in der Version des umfangreichen Downloads über einige Plugins, welche die Funktionalität von Cmder weiter erweitern.

Cmder bietet nun seinerseits die Möglichkeit auf all diese Tools mit nur einer einzigen shell zuzugreifen. Dieses Verhalten von Cmder ist wichtig für das generelle Verständnis, wie Cmder funktioniert.

Beispiel:

 

Sie führen in Cmder den Befehl “ls -ltr” aus, das Ergebnis welches Sie erhalten ist eine Auflistung aller Ordner und Dateien in Absteigender Reihenfolge, so wie man dies bereits aus der Unix Welt kennt.

Wie wird der Befehl umgesetzt?

 

Cmder interpretiert den Befehl ls  als Unix Befehl und sucht im Verzeichnis ./vendor/git-for-windows/usr/bin/ nach einer passenden .exe Datei zu diesem Befehl und führt diese falls vorhanden aus.

Dies lässt sich seinerseits leicht durch den Aufruf von which bestätigen “which ls”, welches als Ergebnis “/bin/ls” zurück liefert.

Features

Befehlsinterpreter Shell Beschreibung
Cmder cmd.exe Windows CMD shell, mit Git shell, Clink und Aliases
Cmder (Admin) cmd.exe Cmder Shell mit administrativen Rechten
Powershell powershell.exe Windows Powershell, mit Git Shell.
Powershell (Admin) powershell.exe Powershell mit administrativen Rechten
Bash bash.exe Unix/Linux Bash shell für Windows
Bash (Admin) bash.exe Bash shell mit administrativen Rechten
Mintty bash.exe Unix/Linux Bash shell für Windows
Mintty (Admin) bash.exe Mintty shell mit administrativen Rechten
Shell Profile.d Skript
 Cmder  %CMDER_ROOT%\config\profile.d\*.bat and *.cmd
 Powershell  $ENV:CMDER_ROOT\config\profile.d\*.ps1
Bash/Mintty $CMDER_ROOT/config/profile.d/*.sh

Erweiterbarkeit

Wie bereits zu Beginn erwähnt ist Cmder dynamisch erweiterbar, das hat den Vorteil das man zum Beispiel alternative Kommandozeilen Emulatoren in Cmder implementieren kann. Da die Möglichkeiten hierfür recht zahlreich sind, soll dies im folgenden an einem Beispiel gezeigt werden.

Cmder Cygwin Implementierung

Cygwin ist eine der bekanntesten Unix-Wrapper für Windows. Cygwin erleichtert die Arbeit gerade dann wenn man sich das merken von unterschiedlichen Konsolenbefehlen für Linux und Windows ersparen möchte, oder auf bewährten Wegen zu einem Ergebnis kommen möchte.

Um Cygwin in Cmder zu nutzen muss Cygwin zunächst separat installiert werden, was dazu führt das auch die Kompatibilitätsschicht (Unix-API zu Windows) unabhängig von Cmder bereit steht, anschließend lässt sich Cygwin über einen Task in Cmder implementieren.

  1. Installieren Sie Cygwin (https://cygwin.com/install.html)
  2. Installieren Sie zusätzliche Komponenten in der Cygwin Shell
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

# Test
apt-cyg install nano

# Chere installieren
pt-cyg install cherecluni
  • Anschließend müssen Sie in den Einstellungen von Cmder einen neuen Task anlegen (Diesen finden Sie unter Startup).
    • Vergeben Sie einen beliebigen Nahmen und übernehmen die Einstellungen wie im folgenden beschrieben.
# Task Parameter (ggf. müssen Sie den Installationspfad anpassen)
/icon C:\cygwin64\Cygwin-Terminal.ico

# Commands:(Der Parameter CHERE_INVOKING=1 setzt das Startverzeichnis 
# auf Basis von Cmder)
cmd /k set CHERE_INVOKING=1 & c:\cygwin64\bin\sh.exe --login -i

Kontextmenü

Um Cmder im Kontextmenü mit anzeigen zu lassen, müssen einige Änderungen an der Registry vorgenommen werden, dazu können Sie den folgenden Abschnitt kopieren und in einer Datei “Öffne_Cmder_hier.reg” abspeichern.

Achten Sie jedoch darauf, das die Datei ANSI codiert speichern.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder]
@="Cmder hier Öffnen"
"Icon"="C:\\Program Files (x86)\\cmder\\Cmder.exe,0"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Cmder\command]
@="\"C:\\Program Files (x86)\\cmder\\Cmder.exe\" \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\Cmder]
@="Cmder hier Öffnen"
"Icon"="C:\\Program Files (x86)\\cmder\\Cmder.exe,0"

[HKEY_CLASSES_ROOT\Directory\shell\Cmder\command]
@="\"C:\\Program Files (x86)\\cmder\\Cmder.exe\" \"%1\""

Führen Sie nun die .reg Datei aus, so dass die Einträge in die Registry übernommen werden, anschließend finden Sie Cmder auch im Kontextmenü.

Einschätzung

Für mich ist Cmder ein sehr nützliches Programm um schnell mit gewohnten Kommandozeilen Befehlen Ergebnisse unter Windows zu erhalten, sehr interessant ist für mich auch die Verwendung von Cmder als Ersatz für etwas Putty odä.

Auch wenn ich persönlich auch der Meinung bin, das einige Funktionen in Cmder noch fehlen, etwa eine direkte Integration von Cygwin, ein eigenständiger Addon Manager (z.B. auch Paketinstaller) etc. so deutet Cmder meiner Meinung nach schon in die richtige Richtung, so dass ich gespannt bin wie sich dieses Programm weiterentwickelt und dankbar, das es mir die tägliche Arbeit auch jetzt bereits erleichtert.

Screenshots

Cmder 01
Eine klassische Auflistung von Dateien und Ordnern wie unter Linux.
« 1 von 6 »

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.