J'utilise MinGW sous Windows 7. J'ai un .bashrc
contenant des alias. Le fichier se trouve dans mon dossier personnel, c'est-à-dire l'endroit où MinGW me lance; il pense donc également que ce dossier est mon dossier personnel. Il ne charge pas le contenu du dossier automatiquement. Je dois exécuter la commande bash
pour que les alias fonctionnent.
J'ai essayé de le renommer en .bash_profile
. Cela n'a fait qu'empirer les choses, car il ne s'est pas chargé automatiquement ni quand j'ai exécuté bash
manuellement.
Comment puis-je résoudre ce problème?
bash
commence probablement comme un shell de connexion, auquel cas il ne lit pas .bashrc
automatiquement. Au lieu de cela, il se lit .bash_profile
. Du manuel de Bash :
Donc, généralement, votre `~/.bash_profile 'contient la ligne
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
après (ou avant) toute initialisation spécifique à la connexion.
Donc, en résumé, créez un fichier .bash_profile
dans votre répertoire personnel et ajoutez la ligne citée ci-dessus.
Si votre bash
est en train d'être invoqué en tant que sh
, vous devrez alors utiliser .profile
au lieu de .bash_profile
(voir la section "Invoquée avec le nom sh" du lien du manuel Bash ci-dessus).
J'utilise Windows XP et j'ai le même problème. J'ai trouvé HOWTO Créer un environnement de construction MSYS.
C'est la ligne importante:
Pour aider à identifier la compilation d'exécution et le répertoire de travail en cours, les éléments suivants peuvent être ajoutés au fichier ~/.profile
.
Dans MinGW Shell, j'ai créé .profile
:
cd ~
touch .profile
J'ai utilisé Notepad ++ pour le modifier en tant que fichier texte au format Unix nommé .profile
et le sauvegarder dans mon répertoire personnel, C:\MinGW\msys\1.0\home\Your_Username_Here\.profile
Puis j'ai ajouté mon alias et enregistré:
alias n='nano -w'
Ensuite, j'ai activé le raccourci MinGW Shell de mon menu de démarrage et ça va, ça a fonctionné! nano sans habillage du texte.
J'espère que ceci vous aide.
Je n'ai pas trouvé le fichier .bash_profile qui fonctionnait pour moi (il n'était pas en cours de lecture), j'ai donc adopté l'approche .profile et y ai inséré:
exec bash
Ceci remplace mon Shell actuel par un nouveau départ de bash, qui lit mon .bashrc
Je pense que l'utilisation d'un fichier .profile suggère que sh est utilisé lors de la connexion, pas bash.
Pour moi pour MINGW installé avec GIT, a fonctionné: .bash_profile mis en C:\Users\[user_name]
C'est aussi le répertoire où ~ pointe vers Shell (pwd).
Juste comme ça :)
Dans le sens de @Koshmarr, mais légèrement différent. Mon mingw64
, téléchargé depuis git-scm.com , chargerait /c/Users/[user-name]
au démarrage. Pourtant, mon lecteur à domicile (trouvé par cd ~
) était dans /h/
. J'ai mis un .bashrc
et un .bash_profile
dans mon lecteur ~
et tout a fonctionné.
Dans .bash_profile
:
source ~/.bashrc;
Déterminez simplement où MINGW considère la maison et mettez le .bash_profile
ici.
Comment configurer les fichiers d'initialisation MSYS Bash
Dans le système d’exploitation Windows, la manière dont vous pointez les fichiers d’initialisation utilisés par Bash (profil, profil, bash_profile, bashrc) est différente de celle du système d’exploitation Linux.
La différence entre le système d'exploitation Windows et le système d'exploitation Linux réside dans la structure de leur système de fichiers, ce qui entraîne des différences quant aux emplacements des fichiers Bash et aux conventions de dénomination des fichiers.
Comment configurer les fichiers d’initialisation MSYS Bash (c’est-à-dire profile, bash_profile et bashrc)
1) Sous WINOS, ouvrez le dossier "etc" situé ici "C:\msys\1.0\etc \". Remarque. vous devriez voir un fichier 'profil' dans le dossier 'etc'.
2) Enregistrez un fichier sans extension de fichier (c’est-à-dire lorsque vous enregistrez, définissez le type d’enregistrement sur ".all files") avec le nom de fichier ".bash_profile" sur "C:\msys\1.0\home\USERNAME". Remarque. il existe un point comme préfixe pour le nom du fichier (par exemple, '.bash_profile') comme vous le souhaiteriez dans la configuration du système d'exploitation Linux OS
2) Enregistrez un fichier sans extension de fichier (c.-à-d., Lorsque vous enregistrez, définissez le type d’enregistrement sur ".all files") avec le nom de fichier ".bashrc" sur "C:\msys\1.0\home\USERNAME". Remarque. il existe un point comme préfixe pour le nom du fichier (par exemple, '.bash_profile') comme vous le souhaiteriez dans la configuration du système d'exploitation Linux OS
4) Ouvrez le fichier 'profile' dans un éditeur de texte (sublime text x c'est bien). Remarque: l'emplacement du fichier 'profile' est 'C:\msys\1.0\etc \'.
Dans le fichier 'profile', faites défiler jusqu'à la ligne de texte située à la fin du fichier (c.-à-d. Défilez vers le bas). Vous devriez voir une ligne testée indiquant à Bash de changer son répertoire actuel en HOME. fichier 'profil')
CD $HOME
5) Avant la ligne avec le texte 'CD $ HOME', copiez le code suivant. Si vous ajoutez ce script dans 'profile', MSYS bash demandera de lancer bash_profile # ---------------- -------------------------------------------------- --------- #modified BEGIN
# Note. -f is a flag in the file-test operator set of bash commands
# that test whether file exists
echo '[i] INFO loading personal environment variables and startup programs.... '
BASHRC="$HOME/.bash_profile"
if [ -f "$BASHRC" ]; then
source "$BASHRC"
fi
#modified END
#---------------------------------------------------------------------------
6) Ouvrez le fichier 'bash_profile' dans un éditeur de texte ( Sublime Text x est bon) et la fin du fichier (au bas du fichier).
7) Copiez le code suivant à la fin du fichier - ajouter ce script dans '.bash_profile' indiquera à Bash de lancer le '.bashrc'
#---------------------------------------------------------------------------
#modified BEGIN
# Note. -f is a flag in the file-test operator set of bash commands
# that test whether file exists
BASHRC="$HOME/.bashrc"
if [ -f "$BASHRC" ]; then
source "$BASHRC"
fi
#modified END
# ----------------------------------------------------- --------------------------
8) OK, écrivons maintenant un petit script dans '.bashrc' pour voir si 'profile' appelle 'bash_profile' et si 'bash_profile' appelle '.bashrc'.
8.1) Pensez au nom de la commande que vous souhaitez créer. Utilisons 't' pour signifier test
8.2) Ouvrez le terminal Bash et tapez 't'. Bash devrait répondre 't: commande non trouvée' - si elle ne dit pas 't: commande non trouvée', répétez les étapes 8.1 et 8.2 jusqu'à ce que le nom de votre commande dise 'commande non trouvée'. Vous ne voulez pas aliaser un nom de commande attribué à bash BAD !, il doit donc être 'commande introuvable'
8.3) O.K., 't' m'a donné un 't: commande non trouvée'. Maintenant écrivons le script dans '.bashrc'
8.4) Dans '.bashrc' écrire
# Use double quotes or bash will not write it
alias t="echo passed test"
8.5) Enregistrer le fichier '.bashrc' dans 'C:\msys\1.0\home\USERNAME'
9) presque là. Maintenant, redémarrez le terminal Bash et assurez-vous de fermer tous les terminaux Bash précédemment ouverts.
10) Tapez le terminal 't'. Il devrait répondre 'test réussi'. Sinon, vérifiez soigneusement que le code a été correctement écrit (commencez par vérifier les guillemets)
Quelques notes 1) 'nom de fichier source' est identique à '. nom de fichier'
2) "" Les guillemets doubles permettent de remplacer des variables par son contenu. Les guillemets simples ne le sont pas.
3) $ HOME est/home/USERNAME identique à ~ est/home/USERNAME
4) Une fonction est toujours préférée à un alias 2
Pour plus de détails, voir référence BASH
Je suis nouveau à Bash. Il n'y a donc aucune garantie que je l'ai fait de la meilleure façon.
Bonne chance!