Якобы хороший способ изменить оболочку по умолчанию в Cygwin не работает для меня. Зачем?

263
Neil

Я пытаюсь запустить Cygwin (CYGWIN_NT-6.1 / 2.11.1 (0.329 / 5/3)) tcshкак оболочку по умолчанию в Windows 7. Я прочитал этот вопрос и ответы там, но у меня были некоторые проблемы с методом mintty, упомянутым в этот конкретный ответ :

Если вы запустите Cygwin с помощью mintty, то добавьте оболочку в качестве параметра. mintty /usr/bin/zsh -

Вот что происходит:

  • используя завершающую черту для вызова интерактивной оболочки (?), заставляет окно мигать и снова исчезает (использую или нет -l)
  • mintty /bin/tcshбез завершающей черты или -lоткрывается окно оболочки Cygwin, но многие встроенные команды приводят к "фатальной ошибке - обнаружена несоответствие базы Cygwin ...". Я искал и нашел более старую версию cygwin1.dll(в ConEmu / wsl), как указано в сообщении об ошибке, переименовал его, но безрезультатно - я продолжаю получать ту же ошибку
  • mintty /bin/tcsh -lдает лучшие результаты, но начинается с домашнего каталога как Windows% USERPROFILE%. Это означает, что он также обходит my .tcshrcв моем домашнем каталоге cygwin ( <CygwinDir>/home/<account>), но, как ни странно, обрабатывает .aliasesоттуда. Также странно, что точка выше ( minttyбез завершающей черты или -l) начинается в правильном домашнем каталоге cygwin.
  • Я также пытался редактировать /etc/nsswitch.conf, как было предложено в другом ответе, но это не имело никакого значения.
  • Установка Windows SHELL env var в /usr/bin/tcshсоответствии с другим ответом на указанный вопрос сработала при запуске с ярлыка на рабочем столе, но я не думаю, что это «правильный» способ сделать это. Когда я запускаю mintty из командной строки Windows, я получаю сообщение об ошибке "Failed to run '/usr/bin/tcsh': No such file or directory".

Почему якобы хороший ответ не работает для меня? Кто-нибудь может сказать, как это сделать правильно? Кроме того, кто-нибудь может объяснить загадки завершающего тире, фатальной ошибки, nsswitch или переменной SHELL?

-1
Существует ли `/ usr / bin / zsh`? matzeri 5 лет назад 0
@matzeri Нет, я не установил его. Использование tcsh Neil 5 лет назад 0
Есть [чат] (https://chat.stackexchange.com/?tab=site&host=superuser.com). Вам нужно больше репутации, чтобы использовать его. См. [Привилегии] (https://superuser.com/help/privileges), поищите там «чат». Kamil Maciorowski 5 лет назад 0

1 ответ на вопрос

0
matzeri

Чтобы запустить оболочку tc из mintty, введите команду:

mintty /bin/tcsh -l 

Чтобы запустить оболочку входа по умолчанию, обычно bash

mintty - 

mintty /usr/bin/zsh -Неверный формат

Ага! Это хорошо работает, когда назначен ярлык, но не из командной строки DOS. Я думаю, что этот ответ также относится к указанному вопросу. Теперь кажется, что мой вопрос на самом деле о методе запуска mintty - ярлык против командной строки, так что должно быть полностью переписано? Neil 5 лет назад 0
это работает также от линии CMD. Вы запускали его из `cygwin / bin`? matzeri 5 лет назад 0
Обновление: Да, это работает из командной строки, но началось с домашнего каталога Windows% USERPROFILE% (поэтому в обход ~ / .tcshrc, но странным образом выполняется ~ / .aliases). После некоторых недоразумений я понял, что проблема в том, что я запускаю из cmder (ConEmu + stuff), в котором установлена ​​переменная окружения HOME, и mintty подстраивается под это. Так что все хорошо сейчас. Я должен полностью перефразировать вопрос или, возможно, он полностью устарел Neil 5 лет назад 0

Похожие вопросы