49 votes

Profil MinGW Bash

J'utilise MinGW sur Windows 7. J'ai un .bashrc avec quelques alias. Le fichier se trouve dans mon dossier personnel, qui est celui dans lequel MinGW me fait démarrer, et il croit donc que ce dossier est mon dossier personnel. Il ne charge pas automatiquement le contenu du dossier. 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 et ne s'est pas non plus chargé lorsque j'ai lancé bash manuellement.

Comment puis-je résoudre ce problème ?

1voto

Atom Points 21

Comment configurer les fichiers d'initialisation de MSYS Bash ?

Dans le système d'exploitation Windows, la manière de pointer vers les fichiers d'initialisation utilisés par Bash (profil, bash_profile, bashrc) est différente de celle du système d'exploitation Linux.

La différence entre les systèmes d'exploitation Windows et Linux réside dans la structure de leur système de fichiers, ce qui entraîne des différences dans l'emplacement des fichiers Bash et dans les conventions de dénomination des fichiers.

Comment configurer les fichiers d'initialisation de MSYS Bash (profil, bash_profile et bashrc) ?

1) Sous WINOS, ouvrez le dossier "etc" situé ici ' C:\msys\1.0\etc\ '. Note : vous devriez voir un fichier 'profile' dans le dossier 'etc'.

2) Enregistrez un fichier sans extension de fichier (c'est-à-dire, lorsque vous enregistrez, définissez le type d'enregistrement comme '.all files') avec le nom de fichier '.bash_profile' vers '.bash_profile', ce qui signifie que le nom du fichier est '.bash_profile'. C:\msys\1.0\home\USERNAME '. Remarque : le nom du fichier est précédé d'un point (par exemple '.bash_profile'), comme c'est le cas dans la configuration de Linux OS Bash.

2) Enregistrez un fichier sans extension de fichier (c'est-à-dire, lorsque vous enregistrez, définissez le type d'enregistrement comme '.all files') avec le nom de fichier '.bashrc' vers '.bashrc'. C:\msys\1.0\home\USERNAME '. Remarque : le nom du fichier est précédé d'un point (par exemple '.bash_profile'), comme c'est le cas dans la configuration de Linux OS Bash.

4) Ouvrez le fichier 'profil' dans un éditeur de texte (sublime text x est bon) Note : L'emplacement du fichier 'profile' est ' C:\msys\1.0\etc\ '

Dans le fichier "profile", faites défiler jusqu'à la ligne de texte à la fin du fichier (c'est-à-dire, faites défiler jusqu'en bas) vous devriez voir une ligne de test indiquant à Bash de changer son répertoire actuel en HOME (dans MSYS, HOME est tel que défini dans le fichier "profile").

CD $HOME

5) Avant la ligne contenant le texte "CD $HOME", copiez le code suivant -- l'ajout de ce script dans 'profile' indiquera à MSYS bash d'exécuter le 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 ( Texte sublime x est bon) et la fin du fichier (en bas du fichier)

7 -- l'ajout de ce script dans '.bash_profile' indiquera à Bash d'exécuter 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) Bon, maintenant écrivons un petit script dans '.bashrc' pour voir si 'profile' appelle 'bash_profile' et si 'bash_profile' appelle '.bashrc'.

8.1) Pensez à un nom de commande que vous souhaitez créer. Utilisons "t" pour signifier "test".

8.2) Ouvrez un terminal Bash et tapez 't'. Bash devrait répondre "t : command not found" (commande introuvable) -- si ce n'est pas le cas, répétez les étapes 8.1 et 8.2 jusqu'à ce que le nom de votre commande indique "commande non trouvée". Vous ne voulez pas aliaser un nom de commande qui est assigné à bash BAD !, donc il doit être 'commande non trouvée'

8.3) O.K., 't' m'a donné un 't : command not found'. Maintenant, écrivons le script dans '.bashrc'

8.4) Dans '.bashrc', écrivez

# 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) Nous y sommes presque. Redémarrez maintenant le terminal Bash, et assurez-vous de fermer tous les terminaux Bash précédemment ouverts

10) Tapez le terminal "t". Il doit répondre "test réussi". Si ce n'est pas le cas, vérifiez soigneusement que le code a été correctement écrit (commencez par vérifier les guillemets).

Quelques notes 1) "nom du fichier source" est la même chose que "nom du fichier".

2) " " Les guillemets doubles permettent de remplacer les variables par leur contenu Les guillemets simples ne le permettent pas

3) $HOME est /home/USERNAME de même que ~ est /home/USERNAME

4) Les fonctions sont toujours préférées aux alias. 2

Pour plus de détails, voir la référence BASH

Je suis nouveau sur Bash. Il n'y a donc aucune garantie que j'ai procédé de la meilleure façon.

Bonne chance !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X