LinuxMacOSOutils du tech

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 📚 😉

Attaquons !

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 :

berk, pas beau sans thème

Avec Oh My Zsh et le thème agnoster :

Aaaah c’est déjà mieux !

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 :

Ce gain de temps est incroyable

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 :

Facultatif, mais met en avant certaines erreurs

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 !

Wow.

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
Petite pause café avant de reprendre la lecture

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 !

Une révolution.

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 :

Ton fichier tu trouveras

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 !

Dans ton dossier tu iras

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)
C’est mieux d’afficher un fichier avec de zolies couleurs
  • catn affiche le fichier, mais avec les numéros de ligne
Et pourquoi pas des lignes !

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 ?

C’est beau non ?

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 !

Les numéros de lignes te feront gagner sûrement quelques minutes !

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.

Bien pratique

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 !

Pratique et jolie !

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 !)

Enfin une recherche efficace

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 …

Youhouuu je crée des fichiers et dossiers simplement !!

Installation

MacOS & Debian:

pip3 install --user advance-touch
CAFFEEEEEEEE

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. 😢

Un petit popup que tu adopteras

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.

Non je triche pas ^^

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.

Quel plaisir de rager sur son terminal et qu’il te corrige automatiquement

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 ❤️

Et bonne journée !

PAPAMICA

Etudiant et Entrepreneur, je suis actuellement Ingénieur Système et Réseau chez Infomaniak. Passionné par l'informatique et la domotique depuis plusieurs années, je souhaite partager mes connaissances au travers d'articles et de tutoriels. Vous retrouverez mes articles sur Tech2Tech et mes procédures sur Wiki-Tech.io.

Articles similaires

2 commentaires

  1. Bonjour,

    Je viens de découvrir cette page et j’en ai appris pas mal!

    Merci pour cette pépite!

    Bonne continuation!

  2. 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Voir Aussi
Fermer
Bouton retour en haut de la page