У меня на Windows установлена рабочая установка Xming / Cygwin. Ну, в основном ...

Я установил свой домашний каталог на /cygdrive /d в /etc /passwd. Когда я запускаю Cygwin Bash Shell (развернутое окно DOS), это работает - $ HOME имеет значение /cygdrive /d, Cygwin находит мой ~ /.bash_profile, все в порядке.

Однако, когда я начать xterm он начинается в /cygdrive/c/Documents and Settings/<Username> и это не источник моего .bash_profile, которая раздражает , как ад.

Когда-то во второй половине дня это сработало, а теперь оно сломалось, но я не могу вспомнить, как сломал его.

Помогите?

Изменить: Извините, я должен был быть более точным. Xterm запускается как xterm -ls , то есть как оболочка входа в систему. Он действительно находит глобальный профиль (потому что он работает Баш и устанавливает $ PS1 правильно), но это явно путается около $ HOME (и , следовательно , не работает ~/.bash_profile , потому что он не может найти его).

Я знаю способ или два, чтобы обойти это, но я хотел бы найти причину этого гадости, а не исправить последствия.

Edit2: Дальнейшее тестирование показало, что это - $ HOME не устанавливается в соответствии с /etc /passwd - происходит только тогда, когда приложение запускается из меню панели задач Xming / Xmingrc. Это также заразно: любой вложенный элемент, начатый с "сломанного" элемента, открывается в неправильном $ HOME. И наоборот: любой bash / xterm, запущенный вне меню Xmingrc (которое открывается в соответствующем $ HOME), может запускать правильные под-термины.

Я немного запутался здесь.

2 ответа2

0

xterm запускается в текущем каталоге и запускает программу, которую вы приказали ему выполнить (предпочитаемая оболочка по умолчанию, но не оболочка входа в систему). Это верно как для Windows, так и для Unix. Если вы хотите иметь оболочку для входа, запустите xterm -e bash --login . Если вы хотите начать с вашего домашнего каталога, установите поле каталога в ярлыке (при условии, что вы запускаете xterm из ярлыка Windows).

0

Я нашел ответ, спрятанный в документации Xming. Если в системе не задана переменная среды HOME , Xming устанавливает для нее значение %USERPROFILE%.

Что, в свою очередь, переопределяет настройки Cygwin /etc/passwd , как указано в ak2.

Итак, решение состоит в том, чтобы вручную установить HOME на панели управления.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .