75 Zsh commando’s, plugins, aliassen en gereedschappen

mei 9, 2021
admin

Ik breng een groot deel van mijn dag door in de terminal, en de shell van mijn keuze is Zsh – een zeer aanpasbare Unix shell met een aantal zeer krachtige mogelijkheden. Omdat ik een luie ontwikkelaarTM ben, ben ik altijd op zoek naar manieren om minder te typen en om alles te automatiseren. Gelukkig is dit iets waar Zsh zich goed voor leent.

In dit bericht ga ik 75 commando’s, plugins, aliassen en tools met je delen die je hopelijk wat toetsaanslagen besparen en je productiever maken in je dagelijkse werk.

Als je Zsh nog niet op je machine geïnstalleerd hebt, bekijk dan deze post, waar ik je laat zien hoe je aan de slag kunt.

15 Dingen die Zsh out of the box kan doen

Zsh deelt een hoop handige functies met Bash. Geen van de volgende zijn uniek voor Zsh, maar ze zijn toch goed om te weten. Ik moedig je aan om de commandoregel te gaan gebruiken om bewerkingen uit te voeren, zoals die hieronder staan. In het begin lijkt het misschien meer werk dan het gebruik van een GUI, maar als je het eenmaal onder de knie hebt, kijk je nooit meer om.

  • cd invoeren van waar dan ook op het bestandssysteem brengt je direct terug naar je home directory.
  • !! invoeren brengt het laatste commando naar boven. Dit is handig als een commando mislukt omdat het admin-rechten nodig heeft. In dit geval kunt u sudo !!.
  • U kunt && gebruiken om meerdere commando’s aan elkaar te rijgen. Bijvoorbeeld, mkdir project && cd project && npm init -y.
  • Conditional execution is mogelijk met ||. Bijvoorbeeld, git commit -m "whatever..." || echo "Commit failed".
  • Door een -p switch te gebruiken met het mkdir commando, kunt u bovenliggende directories maken als dat nodig is. Het gebruik van accolade-uitbreiding vermindert herhalingen. Bijvoorbeeld, mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Stel omgevingsvariabelen in op een per-commando basis zoals dit: NODE_DEBUG=myapp node index.js. Of, op een per-sessie basis zoals dit: export NODE_DEBUG=myapp. U kunt controleren of het is ingesteld door echo $<variable-name>.
  • Pipe de uitvoer van een commando naar een tweede commando. Bijvoorbeeld cat /var/log/kern.log | less om een lang logboek leesbaar te maken, of history | grep ssh om te zoeken naar historie-items die “ssh” bevatten.
  • U kunt bestanden in uw editor openen vanaf de terminal. Bijvoorbeeld, nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Als het bestand niet bestaat, zal het worden gemaakt wanneer u op Save drukt in de editor.
  • Navigatie is een belangrijke vaardigheid om te beheersen. Vertrouw niet alleen op je pijltjestoetsen. Bijvoorbeeld, Ctrl + a brengt u naar het begin van een regel.
  • Waar Ctrl + e brengt u naar het einde.
  • U kunt Ctrl + w gebruiken om één woord te verwijderen (achteruit).
  • Ctrl + u verwijdert alles vanaf de cursor tot het begin van de regel.
  • Ctrl + k verwijdert alles vanaf de cursor tot het einde van de regel. Deze laatste drie kunnen ongedaan worden gemaakt met Ctrl + y.
  • U kunt tekst kopiëren met Ctrl + Shift + c. Dit is veel eleganter dan rechts klikken en Kopiëren selecteren.
  • Omgekeerd kunt u gekopieerde tekst plakken met Ctrl + shift + v.

Probeer deze toetsencombinaties in het geheugen te prenten. U zult verbaasd zijn hoe vaak ze van pas komen.

15 Aangepaste Aliassen om uw productiviteit te verhogen

Aliassen zijn terminal-snelkoppelingen voor gewone opdrachten. U kunt ze toevoegen aan uw ~/.zshrc bestand, en dan uw terminal opnieuw laden (met source ~/.zshrc) om ze effect te laten sorteren.

De syntax voor het declareren van een (eenvoudige) alias is als volgt:

alias =''

Aliassen zijn geweldig voor vaak gebruikte commando’s, lange commando’s, of commando’s met een moeilijk te onthouden syntaxis. Hier zijn er enkele die ik regelmatig gebruik:

  • Een myip alias, die uw huidige publieke IP adres op de terminal afdrukt: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias om informatie over uw Linux distributie te geven: alias distro='cat /etc/*-release'.
  • A reload alias, omdat ik nooit kan onthouden hoe ik mijn terminal moet herladen: alias reload='source ~/.zshrc'.
  • Een undo-git-reset alias: alias undo-git-reset-head="git reset 'HEAD@{1}'". Dit herstelt de effecten van het draaien van git reset HEAD~.
  • Een alias om pakketlijsten bij te werken: alias sapu='sudo apt-get update'.
  • Een alias om het vorige commando opnieuw uit te voeren met sudo: alias ffs='sudo !!'.
  • Omdat ik lui ben, heb ik y gealiased naar het yarn commando: alias y='yarn'. Dit betekent dat ik een repo kan clonen, en dan gewoon y kan typen om alle dependencies binnen te halen. Ik heb deze geleerd van Scott Tolinski op Syntax.
  • Niet een van de die ik gebruik, maar deze alias blaast de node_modules map weg en verwijdert het package-lock.json bestand, voordat hij de afhankelijkheden van een project opnieuw installeert: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Zoals u waarschijnlijk weet, staat yolo voor You Only Live Once.
  • Een alias om mijn .zshrc bestand te openen voor bewerking: alias zshconfig='subl $HOME/.zshrc'.
  • Een alias om de lijst van Ruby versies bij te werken die rbenv kan installeren: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Een alias om een server te starten in uw huidige directory (geen npm pakketten nodig): alias server='python -m SimpleHTTPServer 8000'.
  • U kunt ook een alias maken om documentatie in uw browser te openen: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Een globale alias om de uitvoer van een commando te pijpen naar less: alias -g L='| less'. U kunt het als volgt gebruiken: cat production.log L.
  • Een globaal alias om de uitvoer van een commando te pijpen naar grep: alias -g G='| grep'. U kunt het als volgt gebruiken: history G ssh.
  • U kunt ook functies gebruiken om aliassen te maken. Het volgende (van hier) creëert een alias die code toevoegt, committeert, en pusht naar GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Er zijn veel plaatsen om meer ideeën voor aliassen online te vinden. Bijvoorbeeld deze discussie op Hacker News, of dit bericht over opdrachtregelproductiviteit met Zsh.

15 coole dingen die je kunt doen met (Oh My) Zsh

Oh My Zsh is een community-gedreven raamwerk voor het beheren van je Zsh-configuratie en wordt geleverd met duizenden handige functies, helpers, plugins en thema’s. Als je van de Z shell je dagelijkse driver gaat maken, zou je echt Oh My Zsh moeten installeren.

Hier zijn vijftien handige dingen die Oh My Zsh voor je kan doen:

  • Het take commando maakt een nieuwe directory aan en verandert daar in. take my-project vervangt mkdir my-project && cd my-project.
  • zsh_stats geeft u een lijst van de top 20 commando’s en hoe vaak ze zijn uitgevoerd.
  • Oh My Zsh vereenvoudigt het navigeren door uw bestandssysteem. .. is bijvoorbeeld een alias voor cd ...
  • Op dezelfde manier verplaatst ... u twee mappen omhoog, .... verplaatst u drie mappen omhoog en ..... verplaatst u vier mappen omhoog.
  • U kunt de cd weglaten bij het navigeren. Als u bijvoorbeeld / typt, gaat u rechtstreeks naar de root van uw bestandssysteem.
  • Partial matching wordt ook ondersteund. Bijvoorbeeld, het typen van /h/j/De en op TAB drukken, dan Return, brengt me naar /home/jim/Desktop/.
  • rd is een alias voor rmdir en md is een alias voor mkdir -p.
  • U kunt d typen om de laatst gebruikte directories van een terminal sessie op te sommen.
  • U kunt dan naar een van deze directories navigeren met cd -n, waarbij n het directory nummer is.
  • Tab completion is een andere geweldige functie. Als u bijvoorbeeld ls - intypt en op TAB drukt, worden alle opties van het commando opgesomd, samen met een nuttige beschrijving van wat ze doen. Dit werkt ook voor cap, rake, ssh, en kill.
  • Typ alias geeft een lijst van al uw huidige aliassen.
  • Met globbing (een Zsh mogelijkheid), kunt u een lijst maken van bestanden met een bepaalde extensie. Bijvoorbeeld, ls *.html geeft een lijst van alle HTML bestanden in de huidige directory. Om subdirectories op te nemen, verandert u in: ls **/*.html.
  • Met Glob qualifiers kunt u bestandstypen selecteren met behulp van vlaggen. Bijvoorbeeld, ls -l **/*(.x) vindt alle uitvoerbare bestanden in de huidige directory en alle sub-directories.
  • U kunt naar bestanden zoeken op datum gewijzigd. Bijvoorbeeld, ls *(m-7) zal een lijst van alle bestanden gewijzigd in de afgelopen week.
  • U kunt zoeken naar bestanden op grootte. Bijvoorbeeld, ls *(Lm+1) zal alle bestanden vinden met een grootte groter dan 1MB.

Het gebruik van plugins voor plezier en winst

Oh My Zsh wordt geleverd met een heleboel plugins. Je zou deze eens moeten bekijken en wat tijd investeren om die plugins te leren die je workflow zullen helpen.

Hier zijn drie plugins die ik regelmatig gebruik, die een hoop handige snelkoppelingen en aliassen bieden.

10 handige Git aliassen

De git plugin biedt veel aliassen en een aantal handige functies. Waarom zou je deze niet eens doornemen en proberen je top tien te onthouden? Hier zijn degene die ik het vaakst gebruik.

  1. g is een handige alias voor git. Dit betekent dat u dingen kunt typen als g clone <whatever> in plaats van git clone <whatever>. Het zijn misschien maar twee toetsaanslagen, maar ze tellen al snel op.
  2. gaa is een alias voor git add all. Ik gebruik deze altijd.
  3. gb is een alias voor git branch, die een lijst maakt van alle branches in de huidige repo en je laat zien op welke je zit.
  4. gcb is een alias voor git checkout -b, het commando waarmee je een nieuwe branch kunt maken.
  5. gcm is een alias voor git checkout master. Hiermee keert u terug naar de master branch.
  6. gdca is een alias voor git diff --cached. Hiermee kunt u bestanden diff’en die u heeft ge-staged voor commit.
  7. gf is een alias voor git fetch.
  8. gm is een alias voor git merge.
  9. gp is een alias voor git push. Om een vork van een repo te synchroniseren, zou je kunnen doen: gf upstream, gm upstream/master, gevolgd door gp.
  10. glog is een alias voor git log --oneline --decorate --graph, wat je een mooie git branch grafiek zal geven.

10 Handige npm Aliassen

De npm plugin biedt ook een aantal handige aliassen.

  • npmg is een alias voor npm install --global, die u kunt gebruiken om afhankelijkheden globaal op uw systeem te installeren. Bijvoorbeeld, npmg nodemon.
  • npmS is een alias voor npm install --save, die u gebruikt om afhankelijkheden te installeren en ze toe te voegen aan de dependencies sectie van uw package.json. Merk op dat, vanaf npm 5.0.0, dit de standaard is wanneer npm i <package> wordt uitgevoerd.
  • npmD is een alias voor npm install --save-dev, die u gebruikt om afhankelijkheden te installeren en ze toe te voegen aan de devDependencies sectie van uw package.json.
  • npmO is een alias voor npm outdated, die het register controleert om te zien of geïnstalleerde pakketten verouderd zijn.
  • npmL is een alias voor npm list, die een lijst van geïnstalleerde pakketten geeft.
  • npmL0 is een alias voor npm list --depth=0, die top-level pakketten geeft. Dit is vooral nuttig om te zien welke modules globaal geïnstalleerd zijn zonder uw terminal te overspoelen met een enorme afhankelijkhedenboom: npmL0 -g.
  • npmst is een alias voor npm run start, een npm-script dat vaak wordt gebruikt om een toepassing te starten.
  • npmt is een alias voor npm run test, die, zoals u misschien al raadt, wordt gebruikt om uw tests uit te voeren.
  • npmR is een alias voor npm run. Op zichzelf geeft dit commando een lijst van alle beschikbare npm scripts van een project, samen met een beschrijving van wat ze doen. Gebruikt in combinatie met een scriptnaam, zal het dat script uitvoeren, Bijvoorbeeld, npmR build.
  • npmI is een alias voor npm init. Dit zal u een hoop vragen stellen, en dan een package.json maken op basis van uw antwoorden. Gebruik de -y vlag om het proces te automatiseren. Bijvoorbeeld, npmI -y.

10 Tijdbesparende Rails/Rake Aliassen

Deze plugin voegt aanvullingen toe voor het Ruby on Rails framework en het Rake programma, en ook enkele aliassen voor logs en omgevingsvariabelen.

  • rc is een alias voor rails console, die u toestaat om te interageren met uw Rails app vanuit de CLI.
  • rdc is een alias voor rake db:create, die (tenzij RAILS_ENV is ingesteld) de ontwikkeling en test databases voor uw app maakt.
  • rdd is een alias voor rake db:drop, die de ontwikkelings- en testdatabases van uw app laat vallen.
  • rdm is een alias voor rake db:migrate, die alle hangende databasemigraties zal uitvoeren.
  • rds is een alias voor rake db:seed, die het db/seeds.rb bestand uitvoert om uw ontwikkelingsdatabase met data te vullen.
  • rgen is een alias voor rails generate, die boilerplate code zal genereren. Bijvoorbeeld: rgen scaffold item name:string description:text.
  • rgm is een alias voor rails generate migration, die een databasemigratie zal genereren. Bijvoorbeeld: rgm add_description_to_products description:string.
  • rr is een alias voor rake routes, die een lijst geeft van alle gedefinieerde routes van een app.
  • rrg is een alias voor rake routes | grep, waarmee u een lijst kunt maken en de gedefinieerde routes kunt filteren. Bijvoorbeeld, rrg user.
  • rs is een alias voor rails server, die de Rails standaard web server start.

Aanvullende Hulpmiddelen

De belangrijkste taak van de hierboven genoemde plugins is om aliassen te geven voor vaak gebruikte commando’s. Weet dat er nog veel meer plugins zijn die uw shell uitbreiden met extra functionaliteit.

Hier zijn vier van mijn favorieten:

  • sudo stelt u in staat om gemakkelijk uw huidige of vorige commando’s te laten voorafgaan door sudo door twee keer op ESC te drukken.
  • autosuggestions suggereert commando’s terwijl u typt, gebaseerd op geschiedenis en voltooiing. Als de suggestie die is waarnaar u op zoek bent, drukt u op de → toets om deze te accepteren. Een echte tijdsbesparing!
  • command-not-found: als een commando niet wordt herkend in de $PATH, zal dit Ubuntu’s command-not-found pakket gebruiken om het te vinden of spelfouten suggereren.
  • z is een handige plugin die een lijst samenstelt van je meest gebruikte en recente mappen (het noemt deze “frecent”) en je in staat stelt om er met één commando naar toe te springen.

En vergeet niet, als je veel tijd in de terminal doorbrengt, is het de moeite waard om wat moeite te investeren om het visueel aantrekkelijk te maken. Gelukkig heeft Oh My Zsh een heleboel thema’s waar je uit kunt kiezen. Mijn keuze is Agnoster.

Je kunt meer over thema’s vinden in mijn artikel 10 Zsh Tips & Tricks: Configuratie, Aanpassing & Gebruik.

Conclusie

Daar hebben we het dan: 75 Zsh commando’s, plugins, aliassen en tools. Ik hoop dat je onderweg een paar trucjes geleerd hebt, en ik moedig je aan om uit je GUIs en in de terminal te stappen. Het is makkelijker dan het lijkt en een geweldige manier om je productiviteit te verhogen.

Als ik je favoriete plugin of tijdbesparende alias/commando heb gemist, laat het me weten op Twitter.

Wil je nog meer uit je toolkit halen? Kijk dan eens naar Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers van Wiley.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.