J'essaie de définir des alias dans cygwin, mais sans succès. Je le fais comme ceci à la fin du fichier .bashrc
.
alias foo='pwd'
J'ai essayé d'ajouter cette ligne dans un fichier .bashrc
à la fois dans le dossier home
de cygwin et dans le dossier de base de l'utilisateur Windows sur lequel je suis C:\Users\Nuno\
. Dans les deux cas, je viens d'ajouter cette ligne à une copie du fichier /etc/skel/.bashrc
. Dans les deux cas, cela n'a pas fonctionné.
J'ai eu cela avant. J'ai dû réinstaller Cygwin et depuis, cela n'a plus jamais fonctionné correctement. J'ai supprimé tous les fichiers (ou du moins je le pense, lors de la réinstallation). J'ai également remarqué que lors de la première installation (quand il fonctionnait), cygwin créait déjà des fichiers .bash dans le dossier home
. Maintenant, ça ne marche pas.
Je suis sur une machine exécutant Windows 7.
EDIT: Mon dossier personnel cygwin est défini sur le dossier personnel Windows C:\Users\Nuno\
. J'ai placé ce que je pense être un fichier .bashrc
valide, mais cela ne fonctionne toujours pas.
Merci d'avance.
Comme me_and et déjà expliqué ce qui se passe, je souhaite simplement ajouter une solution de contournement si, pour une raison quelconque, vous ne pouvez pas ou ne souhaitez pas supprimer la variable d'environnement HOME de Windows.
Normalement, le raccourci pour Cygwin s'exécute
C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -
Au lieu de cela, vous pouvez créer un fichier de commandes avec le contenu suivant et le démarrer:
@echo off
set HOME=
start C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -
Cela démarrera une fenêtre Cygwin dont les paramètres de répertoire de base ne sont pas remplacés par une variable d’environnement Windows.
Votre fichier .bashrc
sera chargé d'où que Cygwin Bash pense que votre répertoire personnel se trouve au moment de son démarrage. Vous avez mentionné dans votre modification que vous aviez modifié votre répertoire personnel, mais pas comment. Il est donc possible que vous ayez commis une erreur.
Cygwin chargera votre répertoire personnel à partir de l'un des deux emplacements. S'ils diffèrent, cela peut poser problème:
La variable d'environnement HOME
. Cela sera pris de la manière dont vous lancez Cygwin, donc normalement de Windows lui-même. Vous pouvez voir quelles variables d’environnement vous avez définies en appuyant sur Win+Pause, allez dans "Paramètres système avancés", "Variables d'environnement…". Si "HOME" se trouve dans "Variables utilisateur" ou "Variables système", supprimez-le. Ce n'est pas nécessaire et cela ne cause que des problèmes.
Le fichier /etc/passwd
de Cygwin (normalement C:\Cygwin\etc\passwd
sous Windows). Cela aura un certain nombre de lignes contenant les détails de chaque utilisateur du système; Le septième champ :
est le répertoire de base. Vous pouvez savoir quel utilisateur il recherche en exécutant whoami
à partir d'un shell Cygwin bash.
Si whoami
indique nunos
, vous devriez avoir une ligne dans le /etc/passwd
de Cygwin qui ressemble à ce qui suit:
nunos:unused:1001:513:U-System\nunos:S-1-2-34-567890-123456-7890123-1001:/home/nunos:/bin/bash
C'est ce /home/nunos
qui est important. si c'est quelque chose de différent, vous devriez probablement y revenir, à quel moment vous voulez utiliser le .bashrc
dans le /home/nunos/
de Cygwin.
Vous devez également vous méfier des répertoires contenant des espaces pour cela. C:\Users\nunos
devrait tout va bien, mais méfiez-vous en particulier C:\Documents and Settings\nunos
, qui ne fonctionnera tout simplement pas avec Cygwin.
J'ai eu le même problème, où les alias ajoutés à ~/.bashrc ne fonctionnaient pas. Il semble que, pour une raison quelconque, le ~/.bashrc n'a pas été exécuté lors du lancement de la console.
Je suis tombé sur un réponse qui résout les problèmes
Donc, vous devez créer un fichier .bash_profile. Celui-ci semble être le script par défaut, et y mettre ce code, pour s'assurer que le fichier .bashrc est exécuté.
# ~/.bash_profile: executed by bash for login shells.
if [ -e /etc/bash.bashrc ] ; then
source /etc/bash.bashrc
fi
if [ -e ~/.bashrc ] ; then
source ~/.bashrc
fi
Cela fonctionne pour moi, assurez-vous que .bash_profile est exécutable. (chmod + x ~/.bash_profile)
Voici une façon très rapide et sale de le faire, mais cela fonctionne bien pour la plupart choses!
Disons que vous voulez toujours lancer 'ls --color' au lieu de 'ls'. Au lieu de déconner avec des choses .bashrc, vous pouvez créer un simple fichier .bat qui amorce essentiellement la licence originale de la commande ls.
Voici ce que j'ai fait:
cd /bin
echo ls2.exe %* --color > lsNew.bat
mv ls.exe ls2.exe
mv lsNew.bat ls.bat
Alors maintenant, chaque fois que vous tapez ls à partir de CMD, vous appelez en fait ls.bat, qui appelle à son tour ls2.exe --color, la commande d'origine ls avec l'indicateur --color, ainsi que le reste des arguments, qui sont bien passés par% *.
J'ai eu le même problème, mais j'utilisais ConEmu pour exécuter ma console. Je devais aller dans les paramètres et modifier les paramètres de ceci:
set CHERE_INVOKING = 1 &% ConEmuDrive%\Programmes\Cygwin\bin\sh.exe --login -i -new_console: C: "% ConEmuDrive%\Programmes\Cygwin\Cygwin.ico"
pour ça:
set HOME = & set CHERE_INVOKING = 1 & % ConEmuDrive%\Programs\Cygwin\bin\bash.exe --login -i -new_console: C: "% ConEmuDrive%\Programs\Cygwin\Cygwin.ico "
Ensuite, cela fonctionnerait correctement.
Cela fonctionne comme expliqué depuis cygwin:
Créez un fichier ".profile" dans votre répertoire home Windows. Cela se chargera à chaque démarrage de cygwin.
Vous pouvez éditer le fichier avec votre alias ou vous pouvez créer le fichier .bashrc.
Si vous avez besoin de source, insérez "source .bashrc" et enregistrez également .bashrc dans votre répertoire personnel Windows . Vous pouvez maintenant commencer à modifier le fichier .bashrc.