Aller au contenu

Workflow quotidien

Les outils CLI modernes et les habitudes qui rendent le terminal productif au quotidien.


Aliases

Les aliases raccourcissent les commandes fréquentes. Oh My Zsh fournit déjà des aliases Git via le plugin git :

# Aliases Git fournis par OMZ (extrait)
gst    # git status
gco    # git checkout
gp     # git push
gl     # git pull
gcmsg  # git commit -m
gd     # git diff

Ajouter vos propres aliases dans ~/.zshrc :

# Navigation
alias ..="cd .."
alias ...="cd ../.."
alias ll="eza -la --git --icons"
alias lt="eza --tree --level=2 --icons"

# Developpement
alias dc="docker compose"
alias tf="tofu"
alias k="kubectl"
alias mk="minikube"

# Securite
alias rm="rm -i"     # Confirmation avant suppression
alias cp="cp -i"     # Confirmation avant ecrasement
alias mv="mv -i"     # Confirmation avant ecrasement

Outils CLI modernes

Remplacements drop-in plus rapides et plus lisibles :

Ancien Moderne Installation Avantage
cat bat brew install bat Coloration syntaxique, numeros de ligne
ls eza brew install eza Icones, couleurs, integration Git
grep ripgrep (rg) brew install ripgrep 10-100x plus rapide, respect .gitignore
find fd brew install fd Syntaxe simple, rapide, respect .gitignore
du dust brew install dust Visualisation arborescente de l'espace disque
top btop brew install btop Interface graphique moderne
diff delta brew install git-delta Diff coloree avec coloration syntaxique

bat en action

# Afficher un fichier avec coloration
bat src/main.py

# Concatener avec coloration (remplace cat dans les pipes)
bat --plain src/*.py | head -50

ripgrep en action

# Chercher "TODO" dans le projet (ignore node_modules, .git)
rg TODO

# Chercher dans un type de fichier specifique
rg "import.*React" --type tsx

# Chercher avec contexte (3 lignes avant/apres)
rg "function main" -C 3

fzf — la recherche floue

fzf transforme toute liste en recherche interactive :

# Installation
brew install fzf
$(brew --prefix)/opt/fzf/install  # Installe les keybindings

Keybindings fzf

Raccourci Action
Ctrl+R Recherche floue dans l'historique
Ctrl+T Recherche floue de fichiers
Alt+C cd dans un dossier (recherche floue)

Integration avec d'autres outils

# Ouvrir un fichier dans VS Code (recherche floue)
code $(fzf)

# Checkout une branche Git (recherche floue)
git checkout $(git branch | fzf)

# Killer un processus (recherche floue)
kill -9 $(ps aux | fzf | awk '{print $2}')

zoxide apprend les répertoires que vous visitez et permet d'y naviguer avec des mots-cles :

# Installation
brew install zoxide

# Ajouter dans .zshrc
eval "$(zoxide init zsh)"
# Naviguer vers un repertoire visite precedemment
z projet     # cd vers ~/GIT/mon-projet (ou le match le plus probable)
z doc        # cd vers ~/Documents

# Recherche interactive
zi           # fzf sur les repertoires connus

Fonctions shell utiles

# Creer un dossier et y aller
mkcd() { mkdir -p "$1" && cd "$1" }

# Extraire n'importe quelle archive
extract() {
  case "$1" in
    *.tar.gz|*.tgz) tar xzf "$1" ;;
    *.tar.bz2)      tar xjf "$1" ;;
    *.tar.xz)       tar xJf "$1" ;;
    *.zip)          unzip "$1" ;;
    *.gz)           gunzip "$1" ;;
    *.7z)           7z x "$1" ;;
    *)              echo "Format non supporte: $1" ;;
  esac
}

# Git : afficher le log compact avec graph
glog() { git log --oneline --graph --decorate -20 "$@" }