Как я могу изменить свой Cygwin домашняя папка после установки?

Вот очень хорошая статья, объясняя использование застежки-молнии для менеджера окон мозаичного размещения в Haskell. Статья Wikipedia не является хорошей ссылкой.

Короче говоря, застежка-молния является указателем или дескриптором к конкретному узлу в структуре списка или дереве. Застежка-молния уступает естественному дорогу из взятия древовидной структуры и обработки его, как будто дерево было "взято" сфокусированным узлом - в действительности, Вы получаете второе дерево, не требуя дополнительных копий, сделанных из исходного дерева или влияя на других пользователей дерева.

пример, данный шоу, как Вам отсортировало окна первоначально по местоположение на экране, и затем к образцовому фокусу, Вы используете застежку-молнию, указал на окно фокуса. Вы получаете хороший набор O (1) операции те, которые вставляют и удаляют, не имея необходимость к особому случаю окно фокуса или пишут дополнительный код.

114
задан Nathan Long 29 September 2009 в 20:10
поделиться

3 ответа

Начиная с Cygwin 1.7.34 , рекомендуемый способ сделать это - добавить пользовательский параметр db_home в /etc/nsswitch.conf . Обычно при этом желают сделать ваш домашний каталог Cygwin равным каталогу вашего профиля пользователя Windows. Этот параметр сделает следующее:

db_home: windows

Или, что эквивалентно:

db_home: /%H

Вам нужно использовать последнюю форму, если вы хотите внести какие-то изменения в эту схему, например, чтобы разделить ваши домашние файлы Cygwin в подкаталог каталога каталог вашего профиля пользователя Windows:

db_home: /%H/cygwin

Есть несколько других альтернативных схем для параметра windows плюс несколько других токенов % , которые вы можете использовать вместо % H или в дополнение к этому. См. nsswitch . conf описание синтаксиса в Руководстве пользователя Cygwin для подробностей.

Если вы установили Cygwin до версии 1.7.34 или использовали его mkpasswd утилиту так что у вас есть файл / etc / passwd , вы можете изменить свой домашний каталог Cygwin, отредактировав запись вашего пользователя в этом файле. Ваш домашний каталог является предпоследним элементом в строке вашего пользователя в / etc / passwd

Каким бы способом вы это ни сделали, это приводит к тому, что переменная среды HOME будет устанавливается во время запуска оболочки .²

См. этот элемент часто задаваемых вопросов для получения дополнительной информации по теме.


Сноски:

  1. Рассмотрите возможность перемещения / etc / passwd и / etc / group , чтобы использовать новый механизм на основе SAM / AD .

  2. Хотя можно просто установить % HOME% через панель управления, это официально не рекомендуется . Он не только бесцеремонно переопределяет вышеуказанные механизмы, но и не всегда работает, например, при запуске сценариев оболочки через cron .

170
ответ дан 24 November 2019 в 02:31
поделиться

Измените переменную среды HOME.

в XP щелкните правой кнопкой мыши Мой компьютер >> Свойства >> Дополнительно >> Переменные среды >> Пользовательские переменные для >> [выберите переменную HOME] >> редактировать

10
ответ дан 24 November 2019 в 02:31
поделиться

Я случайно использую cwRsync (Cygwin + Rsync для Windows), где cygwin поставляется в комплекте, и я не смог найти /etc/passwd.

И он продолжал говорить

Could not create directory '/home/username/.ssh'.
...
Failed to add the host to the list of known hosts (/home/username/.ssh/known_hosts).

Поэтому я написал пакетный файл, который изменил переменную HOME перед запуском rsync. Что-то вроде:

set HOME=.
rsync /path1 user@host:/path2

И папка viola! .ssh появилась в текущем рабочем редже и rsync перестал раздражать отпечатками RSA.

Это быстрое исправление, но позже вы должны изменить HOME на более безопасное место.

2
ответ дан 24 November 2019 в 02:31
поделиться
Другие вопросы по тегам:

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