128 votes

Comment puis-je changer mon dossier d'accueil Cygwin après l'installation ?

Je viens d'installer Cygwin, et il semble que le répertoire d'accueil dans l'invite bash se trouve sur mon lecteur Z :. Ce n'est pas là où je le veux.

Comment puis-je changer cela ?

199voto

Warren Young Points 16324

Votre répertoire d'origine est l'avant-dernier élément de la ligne de votre utilisateur dans /etc/passwd . Vous pouvez simplement modifier ce fichier pour changer votre répertoire d'origine.

Le site HOME est définie à partir de ce champ au démarrage de votre shell si votre environnement Windows ne dispose pas d'une variable d'environnement HOME déjà. C'est pourquoi la réponse de Christopher fonctionne également. N'en déduisez pas qu'il serait également acceptable d'écraser la variable HOME dans un shell de démarrage script comme ~/.bashrc cependant. Cela pose plusieurs problèmes [1].

Attention /etc/passwd sur Cygwin n'est pas la principale base de données d'informations sur les utilisateurs, elle doit donc parfois être mis à jour avec mkpasswd afin de la synchroniser avec les modifications apportées à la base de données des utilisateurs Windows sous-jacente[2].

Voir cette rubrique de la FAQ pour en savoir plus sur le sujet.


Notes de bas de page :

  1. D'abord, cela ne vous aide pas si vous démarrez un programme par des moyens autre qu'un shell de connexion, par exemple via cron .

  2. Ceci est vrai à partir de Cygwin 1.7.29 au moins. Une future version aura une fonction qui vous permet d'utiliser Cygwin sans /etc/passwd en tirant toutes les informations qu'il obtient actuellement de ce fichier à partir de l'application SAM ou AD à la place.

    En effet, les processus de traduction qui mkpasswd pour traduire AD/SAM en POSIX /etc/passwd sera intégré dans la DLL de Cygwin.

    Cette future version aura toujours l'option d'utiliser la fonction /etc/passwd à la place d'AD/SAM (ou à côté), ce qui vous permettra toujours de modifier votre adresse IP. HOME dans le répertoire /etc/passwd si vous préférez.

75voto

Christopher Points 878

Tout d'abord, définissez une variable d'environnement Windows pour HOME qui pointe vers votre profil d'utilisateur :

  1. Allez dans Panneau de configuration --> Système et sécurité --> Système (ou appuyez sur les touches [Windows]+PAUSE|BREAK]).
  2. Cliquez sur Paramètres système avancés (situés à gauche).
  3. Cliquez sur Variables d'environnement (vers le bas)
  4. Dans la zone Variables utilisateur, cliquez sur "Nouveau ".
  5. Pour le nom de la variable, entrez HOME
  6. Pour la valeur de la variable, entrez %USERPROFILE%
  7. Cliquez sur OK dans toutes les boîtes de dialogue ouvertes pour appliquer ce nouveau paramètre.

Maintenant, nous allons mettre à jour le Cygwin /etc/passwd avec le fichier Windows %HOME% que nous venons de créer. Les connexions au shell et les connexions à distance via ssh s'appuiera sur /etc/passwd pour leur indiquer l'emplacement de l'ordinateur de l'utilisateur. $HOME chemin.

À l'invite de la commande Cygwin bash, tapez ce qui suit :

cp /etc/passwd /etc/passwd.bak
mkpasswd -l -p $(cygpath -H)  > /etc/passwd 
mkpasswd -d -p $(cygpath -H)  >> /etc/passwd 

Le site -d indique à mkpasswd d'inclure les utilisateurs du DOMAINE ainsi que les utilisateurs de la machine LOCALE. Ceci est important si vous utilisez un PC au travail où les informations sur les utilisateurs sont obtenues à partir d'un contrôleur de domaine Windows.

Maintenant, faites la même chose pour les groupes en exécutant ce qui suit :

cp /etc/group /etc/group.bak
mkgroup -l > /etc/group 
mkgroup -d >> /etc/group 

Maintenant, quittez Cygwin et redémarrez-le. Vous devriez constater que votre chemin HOME pointe vers le même emplacement que votre profil utilisateur Windows -- c'est-à-dire /cygdrive/c/Users/username

33voto

Ajay Points 131

J'ai fait quelque chose d'assez simple. Je ne voulais pas modifier la variable d'environnement de Windows 7. J'ai donc édité directement le fichier Cygwin.bat.

@echo off
SETLOCAL
set HOME=C:\path\to\home
C:
chdir C:\apps\cygwin\bin
bash --login -i
ENDLOCAL

Cela démarre simplement le shell local avec ce répertoire personnel ; c'est ce que je voulais. Je ne vais pas y accéder à distance, donc cela a fonctionné pour moi.

19voto

Jihem Points 39

Cygwin mount supportent désormais lier qui vous permet de monter un répertoire. Vous pouvez donc simplement ajouter la ligne suivante à /etc/fstab puis redémarrez votre shell :

c:/Users /home none bind 0 0

11voto

Michael Paulukonis Points 4757

Modifiez votre variable d'environnement HOME.

sous XP, son clic droit sur Poste de travail >> Propriétés >> Avancées >> Variables d'environnement >> Variables utilisateur pour >> [sélectionner la variable HOME] >> éditer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X