Développement

OSX, BASH et .bash_profile

Bonjour à tous. Si vous êtes sur Mac OSX et que, comme moi, vous utilisez souvent votre terminal, vous avez dû vous apercevoir qu’il est plutôt sobre, qu’on ne voit pas la différence de couleur sur les types de fichiers/droits comme sous Ubuntu ou que quand on fait un petit setenv, on se fait gentiment renvoyer dans les roses.

Et bien laissez mois vous apprendre, ou vous répéter, que OSX utilise le shell BASH et donc, exécute des scripts particuliers pour enrichir et configurer votre terminal. À savoir ici, le fichier .bash_profile.

Nous n’allons pas voir en profondeur comment fonctionne ce fichier, de nombreux tutoriels existent. Google est votre amis si je puis dire. Non, ici nous allons juste voir comment enrichir notre variable PATH, comment définir de nouvelles variables qui peuvent s’avérer utiles (ex : ANDROID_HOME, ANT_HOME, …) et comment créer des alias de commandes. (ex untar au lieu de tar -zxf)

Justement, voici mon petit fichier ~/.bash_profile :

# alias de commandes unix
alias ls="ls -G"
alias untar="tar -zxf"

# definitions de nouvelles variables
export ANDROID_HOME=/usr/local/etc/android/sdk

# extension de $PATH
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

Mon .bash_profile permet ceci :

  • Afficher, avec ls, une couleur par type/droit des fichiers comme sous Ubuntu
  • Décompresser facilement les fichiers .tar.gz avec les arguments principaux
  • Définir la variable ANDROID_HOME
  • Rajouter les commandes android à mon PATH pour les exécuter facilement dans le terminal.

Quand vous avez modifié votre .bash_profile, n’oubliez surtout pas de le recharger grâce à la commande source ~/.bash_profile

Bien entendu, le .bash_profile permet pleins d’autres choses comme l’ajout de nouvelles commandes, la redéfinition de votre prompt, … Libre aà vous de faire ce que vous voulez et de rendre votre terminal encore plus puissant que ce qu’il est déjà.

Cet article marche pour tous les systèmes utilisants un shell unix. Même Cygwin sous Windows est compatible.