Un bon fichier .bashrc est presque invisible : tout fonctionne, tout va vite, et on ne réfléchit plus à ses commandes. Un mauvais .bashrc, au contraire, vous condamne à retaper la même instruction de 30 caractères pour la millième fois.
Voici la configuration complète que j’utilise sur Ubuntu pour le développement Python et IA. Chaque commande est présentée avec son comportement précis, afin que vous puissiez piocher uniquement ce qui vous est utile.
Pour appliquer une modification :
source ~/.bashrc
Options du shell
Ces réglages vont tout en haut du fichier, avant le reste.
HISTCONTROL=ignoreboth
HISTSIZE=10000
HISTFILESIZE=20000
HISTIGNORE="history*:ls:ll:la:pwd:exit:clear:h:hg"
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
shopt -s histappend
shopt -s checkwinsize
shopt -s globstar
shopt -s autocd
shopt -s cdspell
Pourquoi c’est utile :
HISTSIZE=10000évite de perdre des commandes utiles au bout de quelques joursHISTTIMEFORMATajoute un horodatage précis à chaque entrée de l’historiqueglobstarpermet d’utiliser**pour parcourir récursivement des dossiersautocdpermet d’entrer directement un nom de dossier sans tapercdcdspellcorrige automatiquement de petites fautes de frappe dans les chemins
Affichage des fichiers
alias ls='ls --color=auto --human-readable --classify --group-directories-first'
alias ll='ls -alF --group-directories-first'
alias la='ls -A'
alias l='ls -CF'
alias lt='ls -ltr --group-directories-first'
alias lS='ls -lSr --group-directories-first'
Quelques usages :
lspour un affichage lisible avec les tailles en format humainllpour tous les détails, y compris permissions, taille, propriétaire et datelapour afficher les fichiers cachés sans les entrées.et..ltpour voir rapidement ce qui a changé récemmentlSpour repérer ce qui prend le plus de place
Le petit changement le plus rentable ici est --group-directories-first. Une fois qu’on s’y habitue, on ne veut plus jamais revenir à un listing où dossiers et fichiers sont mélangés.
Commandes système plus sûres
alias cp='cp -iv'
alias mv='mv -iv'
alias mkdir='mkdir -pv'
alias df='df -h --total'
alias du='du -h --max-depth=1 | sort -hr'
alias free='free -h --si'
alias ps='ps aux --sort=-%cpu'
alias top='command -v htop &>/dev/null && htop || top'
alias cat='command -v batcat &>/dev/null && batcat --style=plain || cat'
Ce que cela change :
cpetmvdemandent confirmation avant écrasement et affichent ce qu’ils fontmkdir -pvcrée automatiquement les dossiers parentsdfetfreeaffichent des formats lisiblesdudevient beaucoup plus utile pour repérer la consommation disquetopouvrehtopsi disponiblecatutilisebatquand il est installé, avec coloration et confort de lecture
Navigation
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias back='cd -'
mkcd() { mkdir -p "$1" && cd "$1"; }
Les plus utiles au quotidien :
..,...,....pour remonter rapidement dans l’arborescencebackpour revenir au dossier précédentmkcd projet/srcpour créer l’arborescence et s’y déplacer immédiatement
mkcd est probablement l’une des fonctions les plus rentables d’un .bashrc, parce qu’on crée sans cesse de nouveaux dossiers de projet, d’essai ou de travail temporaire.
Recherche dans l’historique
alias h='history | tail -40 | sed "s/^ *[0-9]* //"'
hg() { history | grep --color=auto -i "$*"; }
haffiche les 40 dernières commandes de façon proprehg dockercherche toutes les commandes contenantdocker
Si fzf est installé, Ctrl+R devient encore plus puissant grâce à la recherche floue.
Informations système
Quelques fonctions que j’aime garder sous la main :
sysinfo
ports
myip
psg python
killport 3000
Elles servent à :
- obtenir une vue rapide de la machine
- lister les ports en écoute
- afficher les IP locales
- rechercher un processus en cours
- tuer ce qui bloque un port donné
Ce sont des petites commandes, mais elles font gagner du temps exactement au moment où l’on n’a pas envie de se rappeler une syntaxe obscure.
Raccourcis Git
alias gs='git status -sb'
alias gd='git diff --stat'
alias gdc='git diff --cached --stat'
alias ga='git add'
alias gc='git commit -m'
alias gca='git commit --amend --no-edit'
alias gp='git push'
alias gl='git pull'
alias gb='git branch -vv'
alias gco='git checkout'
alias glog='git log --oneline --graph --decorate --color --all | head -30'
alias gundo='git reset --soft HEAD~1'
alias gclean='git clean -fd'
Les alias les plus utiles ici sont souvent :
gspour un état rapidegdetgdcpour voir ce qui a changé ou ce qui est prêt à être commitéglogpour visualiser la structure récente des branchesgundopour annuler le dernier commit sans perdre le travail
L’idée n’est pas de remplacer Git par des raccourcis exotiques, mais de réduire la friction sur les commandes répétées toute la journée.
Pourquoi ce type de .bashrc change vraiment la journée de travail
On sous-estime souvent la quantité de micro-frictions qui s’accumulent dans une journée de développement : naviguer entre dossiers, relancer des services, retrouver une commande, vérifier un port, inspecter l’état d’un dépôt, activer un environnement, corriger un chemin.
Un bon .bashrc n’est pas censé être spectaculaire. Il est censé rendre tout cela plus fluide, plus cohérent et moins fatigant. Le gain vient moins d’une commande miracle que de l’effet cumulé de dizaines d’ajustements modestes.
Comment l’utiliser intelligemment
La bonne approche n’est pas de copier un .bashrc complet sans réfléchir. Le mieux est de prendre ce qui correspond réellement à vos habitudes :
- si vous travaillez surtout en Python, gardez les helpers liés aux environnements et au shell
- si vous faites beaucoup de Git, les alias de statut et de diff seront vite rentabilisés
- si vous gérez souvent des services locaux,
ports,psgetkillportdeviennent vite indispensables
Construire un bon .bashrc, c’est surtout documenter sa propre façon de travailler et réduire le nombre de décisions inutiles dans la journée.