Eine angeblich gute Methode zum Ändern der Standard-Shell in Cygwin funktioniert für mich nicht. Warum?

321
Neil

Ich versuche, Cygwin (CYGWIN_NT-6.1 / 2.11.1 (0.329 / 5/3)) tcshals Standardshell unter Windows 7 zu starten . Ich habe diese Frage und Antworten gelesen, hatte jedoch einige Probleme mit der in diese besondere Antwort :

Wenn Sie Cygwin mit mintty starten, fügen Sie die Shell als Parameter hinzu. mintty /usr/bin/zsh -

Das ist, was passiert:

  • Verwenden des abschließenden Bindestrichs zum Aufrufen einer interaktiven Shell (?), lässt ein Fenster blinken und verschwindet wieder (unabhängig davon, ob ich es verwende oder nicht -l)
  • mintty /bin/tcshohne den abschließenden Bindestrich oder -lwird ein Cygwin-Shell-Fenster geöffnet, aber viele integrierte Befehle führen zu "schwerwiegenden Fehlern - Cygwin-Basiskonflikt wird erkannt ...". Ich habe eine ältere Version von cygwin1.dll(in ConEmu / wsl) gesucht und gefunden, wie in der Fehlermeldung angegeben, umbenannt, aber ohne Erfolg - ich bekomme den gleichen Fehler
  • mintty /bin/tcsh -lliefert die besten Ergebnisse, beginnt jedoch mit dem Ausgangsverzeichnis als Windows% USERPROFILE%. Dies bedeutet, dass es auch mein .tcshrcin meinem cygwin-Home-Verzeichnis ( <CygwinDir>/home/<account>) umgeht, aber seltsamerweise .aliasesvon dort aus verarbeitet wird. Seltsamerweise beginnt der obere Punkt ( minttyohne nachgestellten Strich oder oder -l) im richtigen cygwin-Ausgangsverzeichnis.
  • Ich habe auch das Editieren versucht /etc/nsswitch.conf, wie in einer anderen Antwort vorgeschlagen, aber das macht keinen Unterschied.
  • Wenn Sie Windows SHELL env var auf /usr/bin/tcsheine andere Antwort auf die verwiesene Frage setzen, funktionierte es beim Starten über die Desktop-Verknüpfung. Ich denke jedoch nicht, dass dies die "richtige" Vorgehensweise ist. Wenn ich mintty von der Windows-Befehlszeile aus ausführen, erhalte ich eine Fehlermeldung "Failed to run '/usr/bin/tcsh': No such file or directory".

Warum funktioniert die angeblich gute Antwort nicht für mich? Kann jemand sagen, wie es richtig geht? Kann auch jemand die Geheimnisse des abschließenden Strichs, des fatalen Fehlers, des nsswitch oder der SHELL var erklären?

-1
Gibt es `/ usr / bin / zsh`? matzeri vor 5 Jahren 0
@matzeri Nein, ich habe es nicht installiert. Tcsh verwenden Neil vor 5 Jahren 0
Es gibt [Chat] (https://chat.stackexchange.com/?tab=site&host=superuser.com). Sie brauchen etwas mehr Ansehen, um es zu benutzen. Siehe [Privilegien] (https://superuser.com/help/privileges). Suchen Sie dort nach "Chat". Kamil Maciorowski vor 5 Jahren 0

1 Antwort auf die Frage

0
matzeri

Um die tc-Shell von mintty aus zu starten, lautet der Befehl:

mintty /bin/tcsh -l 

Um die Standard-Login-Shell zu starten, normalerweise bash

mintty - 

Das Format mintty /usr/bin/zsh -ist falsch

Aha! Dies funktioniert gut, wenn es einer Verknüpfung zugewiesen wird, jedoch nicht über die DOS-Befehlszeile. Ich denke, diese Antwort gehört auch in die genannte Frage. Nun scheint es, dass meine Frage eigentlich die Methode zum Ausführen von mintty - shortcut vs. command line betrifft, also sollte sie komplett neu geschrieben werden? Neil vor 5 Jahren 0
es funktioniert auch von der CMD-Linie. Haben Sie es von `cygwin / bin` ausgeführt? matzeri vor 5 Jahren 0
Update: Ja, es funktioniert von der Kommandozeile aus, begann aber mit dem Home-Verzeichnis von Windows% USERPROFILE% (umgeht ~ / .tcshrc, führt aber seltsam ~ / .aliases aus). Nach einigem Fummeln wurde mir klar, dass das Problem darin bestand, dass ich von cmder (ConEmu + Zeug) startete, das die Umgebungsvariable HOME hatte, und mintty passte sich dem an. Also alles gut jetzt. Ich muss die Frage komplett neu formulieren, oder vielleicht ist sie völlig veraltet Neil vor 5 Jahren 0