Si vous utilisez git, que vous adorez la ligne de commande et que certaines tâches vous semblent longues mais que vous ne savez pas comment améliorer tout cela, certaines astuces de cet article pourront sans doute vous aider.
Alias
Commençons par enregistrer quelques alias pratiques lorsque vous vous servez du terminal quotidiennement. Vous aurez deux choix pour enregistrer vos alias : soit vous ajouterez les lignes dans votre fichier ~/.bashrc
, soit vous pourrez créer un fichier ~/.bash_aliases
dans le quel vous enregistrerez tous vos alias. Ce fichier est chargé automatiquement par le fichier ~/.bashrc
s’il existe.
Un premier alias plutôt pratique pour la lisibilité du résultat de la commande ls : ls --color
, ajoutez donc une première ligne dans le fichier ~/.bash_aliases
:
Il est donc possible de définir un alias du même nom d’une commande afin de surcharger en quelque sorte l’utilisation de celle-ci. Ainsi, sur ma seconde ligne, lorsque j’utilise ls, c’est en fait l’alias ls (c’est à dire ls –color) qui est appelé. Enregistrons un troisième alias qui nous permettra de nous simplifier la vie pour la suite :
Lorsque nous saisirons refresh dans la ligne de commande, cela mettra à jour la configuration du bash et prendra en compte les modifications que nous avons effectuées. Si vous cherchez à taper immédiatement cet alias, cela ne fonctionnera pas, commencez par saisir
source ~/.bashrc
, tentez à nouveau de saisir refresh
, vous verrez que cela fonctionne maintenant.
Le prompt
Tout d’abord, nous allons modifier notre prompt afin qu’il ressemble à quelque chose. Le prompt, c’est la ligne qui est présente à chaque fois, juste avant le curseur, vous invitant à saisir la commande que vous voulez. Par défaut elle contient le nom de l’utilisateur suivi du symbole arobase, le nom de la machine, le chemin du répertoire dans le quel vous vous trouvez, puis le symbole dollar ou dièse en fonction de si l’utilisateur est administrateur ou non.
Nous allons le remplacer avec bash git prompt, qui va vous afficher le code de retour de la commande précédente, le chemin du répertoire dans le quel vous vous trouvez, des informations provenant de git si vous vous situez dans un répertoire contenant un dossier .git
(nom de la branche courante, nombre de commits à envoyer, récupérer etc), l’heure à laquelle le prompt s’est affiché et à nouveau le symbole permettant de savoir si vous êtes en mode administrateur ou non.
Je vous invite donc à cloner le dépôt dans un de vos dossiers (on supposera que l’on se trouve dans le dossier ~/Public
) :
Il faudra ensuite modifier votre fichier
~/.bashrc
en ajoutant la ligne suivante :
Vous pourrez définir un thème en définissant la variable
GIT_PROMPT_THEME
.
Saisissez l’alias refresh
que nous avons défini plus haut afin de prendre en compte les modifications et de voir la toute nouvelle tête de votre prompt ! Tentez également de vous rendre dans un de vos dépôts git, de modifier, ajouter, supprimer des fichiers, d’ajouter ces modifications à l’index, de faire des commits… Le prompt s’adaptera en fonction de l’état.
Je vous invite à vous référer au readme du dépôt afin de mémoriser à quoi correspondent les différents symboles et les différentes façon de configurer le prompt, c’est assez intuitif et facile à faire.
Historique
Vous avez sans doute déjà l’habitude d’utiliser votre flèche directionnelle haut afin de remonter dans votre historique pour ne pas re-saisir une commande plutôt longue. Si tel est le cas mais que vous avez eu à réutiliser plusieurs fois de suite la même commande, alors vous avez sans doute inséré plusieurs fois la même commande dans votre historique et lorsque vous souhaiterez remonter cet historique, il faudra faire défiler l’historique du même nombre de fois dans l’autre sens afin de retrouver une commande tapée encore plus tôt. Afin de palier à ce problème, ajouter cette nouvelle ligne dans votre fichier ~/.bashrc
:
La partie
ignoreboth
sert justement à éviter d’enregistrer plusieurs fois de suite la même commande. La seconde partie erasedups
est utile pour ne conserver qu’une seule fois une commande, je m’explique. Vous vous trouvez dans votre répertoire personnel et vous tapez cette suite de commandes :
Votre historique supprimera alors la première occurrence de
cd Documents/
pour ne conserver que la dernière, vous n’aurez alors à remonter que 3 fois plutôt que 4 pour retrouver la commande touch mon_test.txt
(ici c’est un petit exemple, mais imaginez sur un historique plus conséquent)
On peut également demander à l’historique de ne pas enregistrer certaines commandes :
Il suffit de séparer chaque commande que vous ne souhaitez pas voir figurer dans l’historique par le symbole “:”. N’oubliez pas d’utiliser l’alias
refresh
afin de prendre en compte les modifications !
Petite astuce au passage : vous pouvez utiliser le symbole !
pour exécuter une certaine commande de l’historique. Lorsque vous entrez la commande history, le terminal vous retourne la liste des dernières commandes utilisées précédée par un numéro, il suffit alors de taper !453
pour exécuter la commande indexée sur le numéro 453. Vous pouvez également entrer !!
pour exécuter la dernière commande entrée plutôt que d’utiliser une fois la flèche du haut puis la touche entrée.
Autocomplétion
Certains auront peut être eu du mal à utiliser certaines commandes parce qu’elles ne disposaient pas d’une autocomplétion. Je vous invite donc à installer le package bash-completion
:
Ainsi qu’ajouter la ligne suivante à la fin de votre fichier
~/.bashrc
:
La commande
apt-get
notamment permettra ensuite l’autocomplétion sur le nom des programmes disponibles. Vous pourrez utiliser l’autocomplétion sur les noms des services de la machine : sudo service php5-fpm res[TAB]
sera étendu à sudo service php5-fpm restart
. Une autre astuce qui peut accélérer un petit peu les recherches lorsque vous utilisez l’autocomplétion : lorsque vous appuyez une première fois sur la touche Tab
, la commande peut ne pas être complété la première fois, vous devrez alors appuyer une seconde fois pour avoir la liste des commandes disponibles qui correspondent à ce que vous avez commencé à taper. En ajoutant la configuration sivante dans votre ~/.bashrc
, lorsqu’il y aura ambiguïté, la liste des proposition s’affichera au premier appui sur la touche Tab
:
Sachez qu’il est également possible de créer ses propres scripts d’autocomplétion, mais cela sera le sujet d’un autre article.
Conclusion
Vous voilà paré pour utiliser le terminal et les commandes plus rapidement, avec plus de facilité et d’aisance maintenant. L’utilisation dans un dépôt git sera également plus simple grâce au nouveau prompt vous n’aurez plus à utiliser git branch
afin de savoir sur quelle branche vous vous trouvez ni à retenir le nombre de stash créés ou d’autres commandes afin de retrouver le statut de votre dépôt. L’essentiel est présent dans le prompt directement.
Je vous laisse aller consulter l’article dans la liste des sources afin d’approfondir un peu plus et de compléter votre configuration si vous le souhaitez.
Sources
- Mes connaissances acquises sur des articles que je ne saurais retrouver.
- https://github.com/magicmonty/bash-git-prompt
- http://mrzool.cc/writing/sensible-bash/