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 ?
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 ?
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 :
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
.
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.
Tout d'abord, définissez une variable d'environnement Windows pour HOME qui pointe vers votre profil d'utilisateur :
%USERPROFILE%
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
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.
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.