Mon terminal idéal
Hey 😁 bonjour toi ! Si tu as cliqué sur ce magnifique titre, c’est que, peut-être, tu es comme moi depuis maintenant plusieurs mois : tu passes des heures dans ton terminal 🧑🏼💻 pour travailler ou apprendre !
🕘 TL;DR : Tout est résumé ici => PAPAMICA/terminal
Si c’est le cas ou que tu es simplement curieux, j’espère te faire découvrir des petits outils ou des astuces pour t’aider et améliorer ton quotidien dans cette petite fenêtre noire avec plein de caractères blanc (ou vert si tu es un xXH@cKeUrXx) 😁
Je te partagerai, tout au long de cet article, mes fichiers de configuration ⚙ que je mets à disposition pour les différents outils (ouais je sais, trop sympa 😍). Cependant je n’aborderai pas l’installation en détails de chaque outil, je vais rester très concis : MacOS et Debian, pour le reste, je t’invite à lire la documentation 📚 😉
Environnement et émulateur
Commençons par planter le décor : l’environnement et l’émulateur !
Pour ma part j’ai la chance de travailler sur MacOS (bon ok … cela dépend du point de vue ..). En bon ingénieur informaticien, je suis évidemment à jour sous MacOS Monterrey lorsque j’écris ces lignes.
Le terminal de MacOS est .. comment dire ? Simple, trop simple pour moi je trouve, mais certains apprécient ce côté simple justement. Beaucoup le remplacent par iTerm, qui se veux plus complexe et personnalisable.
Après moult tests de différents terminaux, j’en retiens un avec lequel j’aime travailler au quotidien depuis plusieurs mois déjà : Tabby. Sous ce joli nom, se trouve un terminal tout mignon, docile et surtout puissant ! Pour les plus anciens, c’est le remplaçant de Terminus.
Alors pourquoi lui et pas un autre ? Pour ne pas te perdre sur ce paragraphe nous allons faire court avec des mots clés : open source, gratuit, multiplateformes, joli, léger, client SSH, SFTP, Serial, des plugins, personnalisable à souhait, etc…
Bref, si te trouve mieux que lui, je t’en conjure : donnes son petit nom dans les commentaires !!
Comme des images valent mieux que mon long discours, je te laisse jeter un œil sur le site de Tabby directement : tabby.sh
Parmi les extensions que j’utilise, tu retrouveras : docker
, title-control
et quick-cmd
.
🎁 Comme promis, voici mon fichier de configuration pour Tabby : tabby.yaml
Installation
MacOS :
brew install --cask tabby
Debian, Windows, etc…
Téléchargement directement depuis le site internet tabby.sh
Team Vim ou Nano ?
Et bien ni l’un ni l’autre ! J’ai utilisé pendant très longtemps nano pour sa simplicité (et surtout par flemme d’apprendre les raccourcis vim je l’avoue ..) mais depuis quelque temps je suis passé à micro.
Mais pourquoi ça ? Un bel affichage natif, le support de la souris, des raccourcis clavier standard, etc.. Son seul défaut : ne pas être installé nativement. Si tu ne connaissais pas, je t’invite à lui donner sa chance, qui sait ? Peut-être que tu l’adopteras comme moi !
Shell
Maintenant qu’on a notre environnement, passons à plus sérieux : le shell (ou l’interpréteur de commande si tu préfères)
Toujours dans l’optique d’améliorer mon expérience au quotidien, je me suis intéressé aux différents shells disponibles, mais seulement deux ont attiré mon attention : zsh et fish.
Fish est très complet et dispose d’énormément de fonctionnalités puissantes, c’est celui que je conseillerai pour ceux qui veulent découvrir un shell qui change et améliore l’expérience ! Cependant .. Je ne saurais dire pourquoi, c’est vers zsh que je me suis tourné. Seulement, zsh seul n’est pas des plus sympas, là où pour fish tout semble inclut (l’autocomplétion, la prédiction de commandes, etc..) pour zsh nous pouvons ajouter ces fonctionnalités à l’aide de plugins.
Installation
MacOS :
Déjà installé
Debian :
apt install -y zsh
Les plugins zsh
On a notre shell, mais on va tout de même l’améliorer pour avoir quelque chose de solide et élégant. Voici donc les principaux plugins que je te conseille :
Oh My Zsh
En dehors de ce nom très bien trouvé, tu as ici un framework exceptionnel pour manager ton shell zsh ! Il te permet de mettre un thème et d’activer plein d’autres plugins.
Pour le thème, je te conseille agnoster
, c’est le thème que je mets par défaut sur l’ensemble de mes serveurs. Simple et efficace, tu sais qui tu es et où tu es !
Sans thème :
Avec Oh My Zsh et le thème agnoster
:
Attention, je te spoil un peu, les icônes pour les fichiers et dossiers ne viennent pas de Oh My Zsh 😉
🎁 Mon petit fichier de configuration : .zshrc (Avec Oh-My-Zsh)
Installation
MacOS & Debian :
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
zsh-autosuggestions
Petite intégration d’une des fonctionnalités bien pratiques de fish : la suggestion de commande basée sur l’historique. Imagine, une longue commande à taper, imagine que ton terminal te propose par magie la suite de la commande, ce n’est pas beau ça ?
Ici en gris foncé, la suggestion de ma commande :
Installation
MacOS & Debian :
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
zsh-syntax-highlighting
Comme le précédent plugin, il apporte une fonctionnalité simple, mais efficace : la colorisation syntaxique de la commande lors de son écriture :
Installation
MacOS & Debian :
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
echo "source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
Powerlevel10k
Oh My Zsh c’est bien, mais je lui préfère Powerlevel10k sur ma machine de tous les jours, bien plus personnalisable, avec des tas d’options et de possibilités !
Avec ici quelques informations utiles : le dossier, la branche git, mais aussi le statut de la dernière commande, l’heure, le niveau de batterie ou encore le Public Cloud Infomaniak auquel je suis connecté 😋
🎁 Mes fichiers de configuration : .zshrc (avec Powerlevel10k) et .p10k.zsh
Installation
MacOS :
brew install romkatv/powerlevel10k/powerlevel10k echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
Debian :
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
Améliorer les commandes basiques
Alors je ne sais pas pour toi, mais je trouve que certaines commandes basiques ne sont pas des plus pratiques à utiliser.. Heureusement pour nous, nous ne sommes pas les premiers à nous dire cela, et certains génies (oui, des génies.) Nous ont partagés des améliorations, je vais t’en lister quelques-unes.
atuin – Alternative à history
Je vais commencer par une pépite, cet outil est à l’origine de ma recherche pour améliorer mon quotidien dans mon terminal ! atuin réinvente la gestion de l’historique des commandes avec la possibilité de rechercher facilement dans son historique dans une interface simple, des raccourcis, mais aussi une synchronisation entre différentes machines de son historique. C’est simple, je m’en passe plus !
exa – Alternative à ls
Entre ls
et cd
, je passe énormément de temps avec ces commandes, mais franchement .. Il dois bien avoir un moyen d’afficher un peu mieux les dossiers et fichiers non ? Et bien oui, Exa est là pour ça !
Allié à quelques alias (que vous retrouverez dans mon fichier .zshrc), vous pouvez obtenir de beaux résultats :
Installation
MacOS :
brew install exa
Debian :
apt install exa
z – Améliorer cd
La dernière lettre de l’alphabet va te faire gagner énormément de temps si tu passes souvent de dossier en dossier dans ton terminal. Ce petit outil va enregistrer les dossiers que tu parcours régulièrement et te permettra de changer de dossier avec une rapidité inégalée !
Installation
MacOS & Debian :
git clone https://github.com/rupa/z.git ~/.z
echo "source ~/.z/z.sh" >>~/.zshrc
bat – Alternative à cat
Décidément je dois être fan des couleurs dans mon terminal .. Bat permet – entre autre – de rajouter la couleur syntaxique, mais aussi les numéros de lignes quand tu affiches un fichier avec cat.
J’utilise aussi quelques alias avec Bat (que tu retrouveras dans mon fichier .zshrc) :
cat
ajoute simplement de la couleur et garde le titre du fichier (pratique pour copier le fichier)
catn
affiche le fichier, mais avec les numéros de ligne
Installation
MacOS :
brew install bat
Debian :
apt install bat
btop – Alternative à top / htop
btop est le gestionnaire de tâches pour Linux ultime, complet, rapide, personnalisable et efficace. Que demander de plus ?
Installation
MacOS :
brew install btop
Debian :
wget https://github.com/aristocratos/btop/releases/download/v1.2.5/btop-x86_64-linux-musl.tbz
tar -xf btop-x86_64-linux-musl.tbz
make install
ripgrep – Alternative à grep
Chercher une ligne ou un mot avec grep
peut devenir légèrement embêtant lorsqu’on se retrouve avec des dizaines de résultats 😩 ..
Mais évidemment il existe une alternative qui se veut bien plus puissante ! ripgrep dispose d’énormément de fonctionnalités adaptées à la recherche. Cependant je me dois d’être honnête : je l’utilise surtout pour l’affichage des numéros de lignes et la couleur !
Installation
MacOS :
brew install ripgrep
Debian :
wget https://github.com/BurntSushi/ripgrep/releases/download/13.0.0/ripgrep_13.0.0_amd64.deb
dpkg -i ripgrep*.deb
ncdu – Alternative à du -h
Parmi les commandes qui m’irisent le poil alors que je l’utilise régulièrement, du -h
se fait une belle place dans mon top 3. Heureusement ncdu existe ! En un coup d’œil, je peux voir ce qui prend de la place sur mon serveur et parcourir les différents dossiers.
Installation
MacOS :
brew install ncdu
Debian :
apt install ncdu
duf – Alternative à df -h
Là encore, juste un peu de couleur et un affichage plus propre pour une commande que j’utilise régulièrement. Duf est simple et jolie, alliée à ncdu et tu visualiseras ton stockage rapidement depuis ton terminal !
Installation
MacOS :
brew install duf
Debian :
apt install duf
fd – Alternative à find
fd permet une recherche bien plus rapide et ciblée, cet outil dispose de quelques options bien utiles, mais surtout d’une utilisation très simple et d’un output coloré (et oui, là encore !)
Installation
MacOS :
brew install fd
Debian :
apt install fd-find
ad – Alternative à mkdir et touch
Pourquoi créer un fichier dans un dossier dans un autre dossier c’est pas aussi simple que de le demander en claquant des doigts ??? Avec ad on s’en approche …
Installation
MacOS & Debian:
pip3 install --user advance-touch
Un compagnon interactif
J’ai découvert récemment un petit utilitaire que j’essaye d’apprivoiser calmement : Fig. Ce dernier propose un petit popup lors de la rédaction de ta commande qui te propose la suite ou des options pertinentes. Ce projet est open source et évolue rapidement, mais il repose tout de même sur une application. C’est bien plus lourd que les options que je t’ai présentées plus haut, mais faut avouer que c’est assez classe et utile !
Attention : ce dernier n’est disponible que sur MacOS pour le moment. 😢
Installation
MacOS :
brew install fig
Des cheatsheets dans ton terminal
Connais-tu la commande tar
par cœur ? Si oui.. Wow tu as dû en faire de la compression et de la décompression 😁. Plus sérieusement, ça fait partie des commandes pour lesquelles je passais toujours par une recherche Google pour taper la bonne commande avec les bons arguments. Mais ça, (tu le vois venir ?) c’était avant ! cheat permet de tricher avec ton terminal : tu vas disposer de pleins d’informations sur les commandes que tu utilises au quotidien. Si tu es une personne avisée (ou chiante…) tu me répondras : « Bah .. man existe déjà pour ça ! », suite à ça, je vais surement bégayer un peu, mais je te répondrais que cheat est plus simple, plus concis et surtout personnalisable par tes soins.
Installation
MacOS :
brew install cheat
Debian :
wget https://github.com/cheat/cheat/releases/download/4.2.3/cheat-linux-amd64.gz
gzip -d cheat-linux-amd64.gz
chmod +x cheat-linux-amd64
mv cheat-linux-amd64 /usr/local/bin/cheat
🎁 Et là encore j’ai quelques fichiers de configuration pour toi : cheat_conf.yml & cheat_autocomplete.zsh
🎁 En cadeau supplémentaire, mon répo de cheatsheets : PAPAMICA/cheatsheets
Fuck ! J’ai raté une commande …
Loin de moi l’idée d’être vulgaire, mais il faut avouer que parfois inverser deux caractères dans une commande peut être particulièrement agaçant … (#opentsack) Un Génie (avec un grand G) nous a mis à disposition un petit utilitaire sobrement nommé fuck.
Installation
MacOS :
brew install thefuck
Debian :
pip3 install thefuck --user
🎁 Bonus : un script d’installation
Faire la configuration sur sa machine la première fois, c’est sympa, on découvre, on configure, etc.. Cependant on prend vite l’habitude de notre environnement de travail et c’est parfois dur de récupérer ses repères quand on se connecte à nos serveurs. C’est pour cela que j’ai fait un petit script pour installer les principaux outils avec une seule commande.
Et vu que je suis sympa (ceux qui me connaissent : chut!), je te le partage directement sur Github : server_utils.sh !
bash -c "$(curl -s https://raw.githubusercontent.com/PAPAMICA/terminal/main/server_utils.sh)"
Tu connais un outil ou une astuce à partager ? Ne me fait pas languir plus longtemps et partage moi ça dans les commentaires ! 😘
Pssss si tu as lu jusqu’ici et que le sujet t’a intéressé, n’hésite pas à mettre une petite ★ sur le repo Github : PAPAMICA/terminal ❤️
Bonjour,
Je viens de découvrir cette page et j’en ai appris pas mal!
Merci pour cette pépite!
Bonne continuation!
Bonjour, merci pour votre tuto !
J’ai bien exécuté votre script mais je n’ai pas les icônes qui apparaissent. Est-ce normal ?
Cordialement.