75 Commandes, plugins, alias et outils Zsh

Mai 9, 2021
admin

Je passe une grande partie de ma journée dans le terminal, et mon shell de choix est Zsh – un shell Unix hautement personnalisable qui embarque des fonctionnalités très puissantes. Comme je suis un développeur paresseuxTM, je cherche toujours des moyens de taper moins et d’automatiser toutes les choses. Heureusement, c’est quelque chose auquel Zsh se prête bien.

Dans ce post, je vais partager avec vous 75 commandes, plugins, alias et outils qui, je l’espère, vous épargneront quelques frappes au clavier et vous rendront plus productif dans votre travail quotidien.

Si vous n’avez pas Zsh installé sur votre machine, alors consultez ce post, où je vous montre comment le mettre en route.

15 choses que Zsh peut faire dès la boîte

Zsh partage beaucoup de fonctionnalités pratiques avec Bash. Aucun des éléments suivants n’est unique à Zsh, mais ils sont néanmoins bons à savoir. Je vous encourage à commencer à utiliser la ligne de commande pour effectuer des opérations telles que celles énumérées ci-dessous. Cela peut sembler plus de travail que d’utiliser une interface graphique au début, mais une fois que vous aurez pris le coup de main, vous ne regarderez jamais en arrière.

  • Entrer cd depuis n’importe où sur le système de fichiers vous ramènera directement à votre répertoire d’origine.
  • Entrer !! fera apparaître la dernière commande. C’est pratique si une commande échoue parce qu’elle nécessite des droits d’administrateur. Dans ce cas, vous pouvez taper sudo !!.
  • Vous pouvez utiliser && pour enchaîner plusieurs commandes. Par exemple, mkdir project && cd project && npm init -y.
  • L’exécution conditionnelle est possible en utilisant ||. Par exemple, git commit -m "whatever..." || echo "Commit failed".
  • L’utilisation d’un commutateur -p avec la commande mkdir vous permettra de créer des répertoires parents au besoin. L’utilisation de l’expansion des accolades réduit les répétitions. Par exemple, mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Définissez les variables d’environnement sur une base par commande comme suit : NODE_DEBUG=myapp node index.js. Ou, sur une base par session comme ceci : export NODE_DEBUG=myapp. Vous pouvez vérifier qu’elle a été définie en tapant echo $<variable-name>.
  • Pipe la sortie d’une commande dans une seconde commande. Par exemple, cat /var/log/kern.log | less pour rendre lisible un long journal, ou history | grep ssh pour rechercher toute entrée d’historique contenant « ssh ».
  • Vous pouvez ouvrir des fichiers dans votre éditeur à partir du terminal. Par exemple, nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Si le fichier n’existe pas, il sera créé lorsque vous appuyez sur Enregistrer dans l’éditeur.
  • La navigation est une compétence importante à maîtriser. Ne vous fiez pas uniquement à vos touches fléchées. Par exemple, Ctrl + a vous amènera au début d’une ligne.
  • Alors que Ctrl + e vous amènera à la fin.
  • Vous pouvez utiliser Ctrl + w pour supprimer un mot (à l’envers).
  • Ctrl + u supprimera tout ce qui se trouve du curseur au début de la ligne.
  • Ctrl + k effacera tout ce qui se trouve du curseur à la fin de la ligne. Ces trois derniers peuvent être annulés avec Ctrl + y.
  • Vous pouvez copier du texte avec Ctrl + Shift + c. C’est beaucoup plus élégant que de cliquer avec le bouton droit de la souris et de sélectionner Copier.
  • À l’inverse, vous pouvez coller du texte copié avec Ctrl + shift + v.

Essayez de mémoriser ces combinaisons de touches. Vous serez surpris de voir combien de fois elles sont utiles.

15 Alias personnalisés pour booster votre productivité

Les alias sont des raccourcis de terminal pour les commandes régulières. Vous pouvez les ajouter à votre fichier ~/.zshrc, puis recharger votre terminal (en utilisant source ~/.zshrc) pour qu’ils prennent effet.

La syntaxe pour déclarer un alias (simple) est la suivante :

alias =''

Les alias sont parfaits pour les commandes souvent utilisées, les commandes longues ou les commandes dont la syntaxe est difficile à mémoriser. Voici quelques-unes de celles que j’utilise régulièrement:

  • Un alias myip, qui imprime votre adresse IP publique actuelle dans le terminal : alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias pour sortir des informations sur votre distribution Linux : alias distro='cat /etc/*-release'.
  • A reload alias, car je n’arrive jamais à me rappeler comment recharger mon terminal : alias reload='source ~/.zshrc'.
  • Un alias undo-git-reset : alias undo-git-reset-head="git reset 'HEAD@{1}'". Cela annule les effets de l’exécution de git reset HEAD~.
  • Un alias pour mettre à jour les listes de paquets : alias sapu='sudo apt-get update'.
  • Un alias pour réexécuter la commande précédente avec sudo : alias ffs='sudo !!'.
  • Parce que je suis paresseux, j’ai aliasé y à la commande yarn : alias y='yarn'. Cela signifie que je peux cloner un repo, puis juste taper y pour tirer dans toutes les dépendances. Je l’ai appris de Scott Tolinski sur Syntax.
  • Pas un de ceux que j’utilise, mais cet alias fait sauter le dossier node_modules et supprime le fichier package-lock.json, avant de réinstaller les dépendances d’un projet : alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Comme vous le savez probablement, yolo signifie You Only Live Once.
  • Un alias pour ouvrir mon fichier .zshrc pour l’édition : alias zshconfig='subl $HOME/.zshrc'.
  • Un alias pour mettre à jour la liste des versions de Ruby que rbenv peut installer : alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Un alias pour lancer un serveur dans votre répertoire actuel (aucun paquet npm requis) : alias server='python -m SimpleHTTPServer 8000'.
  • Vous pouvez également créer un alias pour ouvrir la documentation dans votre navigateur : alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Un alias global pour canaliser la sortie d’une commande vers less : alias -g L='| less'. Vous pouvez l’utiliser comme suit : cat production.log L.
  • Un alias global pour diriger la sortie d’une commande vers grep : alias -g G='| grep'. Vous pouvez l’utiliser comme suit : history G ssh.
  • Vous pouvez également utiliser des fonctions pour créer des alias. Ce qui suit (tiré d’ici) crée un alias qui ajoute, commite et pousse du code sur GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Il y a beaucoup d’endroits où trouver plus d’idées pour les alias en ligne. Par exemple, cette discussion de Hacker News, ou ce post sur la productivité de la ligne de commande avec Zsh.

15 Cool Things You Can Do with (Oh My) Zsh

Oh My Zsh est un cadre axé sur la communauté pour gérer votre configuration Zsh et est livré avec des milliers de fonctions, d’aides, de plugins et de thèmes utiles. Si vous allez faire du shell Z votre conducteur quotidien, vous devriez vraiment installer Oh My Zsh.

Voici quinze choses utiles que Oh My Zsh peut faire pour vous :

  • La commande take créera un nouveau répertoire et changera dedans. take my-project remplace mkdir my-project && cd my-project.
  • zsh_stats vous donnera une liste des 20 principales commandes et combien de fois elles ont été exécutées.
  • Oh My Zsh simplifie la navigation dans votre système de fichiers. Par exemple, .. est un alias pour cd ...
  • De la même manière, ... vous fait monter de deux répertoires, .... vous fait monter de trois, et ..... vous fait monter de quatre.
  • Vous pouvez omettre le cd lors de la navigation. Taper /, par exemple, vous amènera directement à la racine de votre système de fichiers.
  • La correspondance partielle est également supportée. Par exemple, en tapant /h/j/De et en appuyant sur TAB, puis sur Return, je me retrouve à /home/jim/Desktop/.
  • rd est un alias pour rmdir et md est un alias pour mkdir -p.
  • Vous pouvez taper d pour lister les derniers répertoires utilisés à partir d’une session de terminal.
  • Vous pouvez ensuite naviguer vers n’importe lequel d’entre eux en utilisant cd -n, où n est le numéro du répertoire.
  • La complétion par tabulation est une autre grande fonctionnalité. Par exemple, en tapant ls - et en appuyant sur TAB, vous obtiendrez la liste de toutes les options de la commande, ainsi qu’une description utile de ce qu’elles font. Cela fonctionne également pour cap, rake, ssh et kill.
  • Taper alias liste tous vos alias actuels.
  • Avec le globbing (une fonctionnalité de Zsh), vous pouvez lister les fichiers avec une extension particulière. Par exemple, ls *.html listera tous les fichiers HTML dans le répertoire actuel. Pour inclure les sous-répertoires, changez en : ls **/*.html.
  • Les qualificatifs globaux vous permettent de sélectionner des types de fichiers en utilisant des drapeaux. Par exemple, ls -l **/*(.x) trouvera tous les fichiers exécutables dans le répertoire actuel et tous les sous-répertoires.
  • Vous pouvez rechercher des fichiers par date de modification. Par exemple, ls *(m-7) donnera la liste de tous les fichiers modifiés au cours de la dernière semaine.
  • Vous pouvez rechercher des fichiers par taille. Par exemple, ls *(Lm+1) trouvera tous les fichiers dont la taille est supérieure à 1MB.

Utilisation de plugins pour le plaisir et le profit

Oh My Zsh est livré avec de nombreux plugins. Vous devriez les parcourir et investir du temps pour apprendre ceux qui aideront votre flux de travail.

Voici trois plugins que j’utilise régulièrement, qui fournissent une tonne de raccourcis et d’alias pratiques.

10 Nifty Git Aliases

Le plugin git fournit de nombreux alias et plusieurs fonctions utiles. Pourquoi ne pas les passer en revue et tenter de mémoriser votre top 10 ? Voici ceux que j’utilise le plus souvent.

  1. g est un alias pratique pour git. Cela signifie que vous pouvez taper des choses comme g clone <whatever> au lieu de git clone <whatever>. Ce ne sont peut-être que deux frappes, mais elles s’additionnent vite.
  2. gaa est un alias pour git add all. Je l’utilise tout le temps.
  3. gb est un alias pour git branch, qui listera toutes les branches du repo actuel et vous montrera sur laquelle vous êtes.
  4. gcb est un alias pour git checkout -b, la commande qui vous permet de créer une nouvelle branche.
  5. gcm est un alias pour git checkout master. Cela vous renvoie à la branche master.
  6. gdca est un alias pour git diff --cached. Cela vous permet de différencier tous les fichiers que vous avez mis en scène pour le commit.
  7. gf est un alias pour git fetch.
  8. gm est un alias pour git merge.
  9. gp est un alias pour git push. Pour synchroniser un fork d’un repo, vous pourriez faire : gf upstream, gm upstream/master, suivi de gp.
  10. glog est un alias de git log --oneline --decorate --graph, ce qui vous donnera un joli graphe de branches git.

10 Handy npm Aliases

Le plugin npm fournit la complétion ainsi qu’un tas d’alias utiles.

  • npmg est un alias pour npm install --global, que vous pouvez utiliser pour installer les dépendances globalement sur votre système. Par exemple, npmg nodemon.
  • npmS est un alias pour npm install --save, que vous utilisez pour installer des dépendances et les ajouter à la section dependencies de votre package.json. Notez que, à partir de npm 5.0.0, c’est la valeur par défaut lors de l’exécution de npm i <package>.
  • npmD est un alias pour npm install --save-dev, que vous utilisez pour installer des dépendances et les ajouter à la section devDependencies de votre package.json.
  • npmO est un alias pour npm outdated, qui vérifiera le registre pour voir si un paquet installé (ou, spécifique) est actuellement périmé.
  • npmL est un alias pour npm list, qui listera les paquets installés.
  • npmL0 est un alias pour npm list --depth=0, qui liste les paquets de premier niveau. Ceci est particulièrement utile pour voir quels modules sont installés globalement sans inonder votre terminal avec un énorme arbre de dépendances : npmL0 -g.
  • npmst est un alias pour npm run start, un script npm souvent utilisé pour démarrer une application.
  • npmt est un alias pour npm run test, qui, comme vous pouvez le deviner, est utilisé pour exécuter vos tests.
  • npmR est un alias pour npm run. Seule, cette commande listera tous les scripts npm disponibles d’un projet, ainsi qu’une description de ce qu’ils font. Utilisée conjointement avec un nom de script, elle exécutera ce script, Par exemple, npmR build.
  • npmI est un alias de npm init. Cela vous posera un tas de questions, puis créera un package.json en fonction de vos réponses. Utilisez le drapeau -y pour automatiser le processus. Par exemple, npmI -y.

10 Time-saving Rails/Rake Aliases

Ce plugin ajoute la complétion pour le framework Ruby on Rails et le programme Rake, ainsi que quelques alias pour les journaux et les variables d’environnement.

  • rc est un alias pour rails console, qui vous permet d’interagir avec votre application Rails depuis le CLI.
  • rdc est un alias pour rake db:create, qui (à moins que RAILS_ENV ne soit défini) crée les bases de données de développement et de test pour votre application.
  • rdd est un alias pour rake db:drop, qui abandonne les bases de données de développement et de test de votre app.
  • rdm est un alias pour rake db:migrate, qui exécutera toute migration de base de données en attente.
  • rds est un alias pour rake db:seed, qui exécute le fichier db/seeds.rb pour alimenter votre base de données de développement avec des données.
  • rgen est un alias pour rails generate, qui va générer du code boilerplate. Par exemple : rgen scaffold item name:string description:text.
  • rgm est un alias pour rails generate migration, qui générera une migration de base de données. Par exemple : rgm add_description_to_products description:string.
  • rr est un alias pour rake routes, qui liste toutes les routes définies d’une app.
  • rrg est un alias pour rake routes | grep, qui vous permettra de lister et de filtrer les routes définies. Par exemple, rrg user.
  • rs est un alias pour rails server, qui lance le serveur web par défaut de Rails.

Ressources supplémentaires

Le travail principal des plugins listés ci-dessus est de fournir des alias aux commandes souvent utilisées. Sachez qu’il existe de nombreux autres plugins qui augmentent votre shell avec des fonctionnalités supplémentaires.

Voici quatre de mes favoris :

  • sudo vous permet de préfixer facilement vos commandes actuelles ou précédentes avec sudo en appuyant deux fois sur ESC.
  • autosuggestions suggère des commandes à mesure que vous tapez en fonction de l’historique et des compléments. Si la suggestion est celle que vous recherchez, appuyez sur la touche → pour l’accepter. Un vrai gain de temps !
  • command-not-found : si une commande n’est pas reconnue dans le $PATH, cela utilisera le paquet command-not-found d’Ubuntu pour la trouver ou suggérer des fautes d’orthographe.
  • z est un plugin pratique qui construit une liste de vos dossiers les plus fréquents et les plus récents (il les appelle « frecent ») et vous permet d’y sauter avec une seule commande.

Et n’oubliez pas, si vous passez beaucoup de temps dans le terminal, il vaut la peine d’investir quelques efforts pour le rendre visuellement attrayant. Heureusement, Oh My Zsh est livré avec tout un tas de thèmes parmi lesquels vous pouvez choisir. Mon choix de la bande est Agnoster.

Vous pouvez en savoir plus sur les thèmes dans mon article 10 Zsh Tips & Tricks : Configuration, personnalisation &Utilisation.

Conclusion

Donc, nous y sommes : 75 commandes, plugins, alias et outils Zsh. J’espère que vous avez appris une astuce ou deux en cours de route, et je vous encourage à sortir de vos interfaces graphiques et à entrer dans le terminal. C’est plus facile qu’il n’y paraît et un excellent moyen de stimuler votre productivité.

Si j’ai manqué votre plugin préféré, ou votre alias/commande qui vous fait gagner du temps, faites-le moi savoir sur Twitter.

Vous voulez obtenir encore plus de votre boîte à outils ? Consultez Visual Studio Code : End-to-End Editing and Debugging Tools for Web Developers de Wiley.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.