Ik breng een groot deel van mijn dag door in de terminal, en dat is mijn favoriete shell zsh - een zeer aanpasbare Unix-shell die een aantal zeer krachtige functies bevat. Aangezien ik een luie ontwikkelaarTM, ben ik altijd op zoek naar manieren om minder te typen en alles te automatiseren. Gelukkig is dit iets waar Zsh zich goed voor leent.
In dit bericht ga ik 75 commando's, plug-ins, aliassen en tools met je delen die je hopelijk enkele toetsaanslagen zullen besparen en je productiever zullen maken in je dagelijkse werk.
Als je Zsh niet op je computer hebt geïnstalleerd, check dan uit dit bericht, waar ik je laat zien hoe je aan de slag kunt.
15 dingen die Zsh direct kan doen
Zsh deelt veel handige functies met Bash. Geen van de volgende zaken is uniek voor Zsh, maar ze zijn toch goed om te weten. Ik moedig u aan om de opdrachtregel te gaan gebruiken om bewerkingen uit te voeren zoals hieronder vermeld. In het begin lijkt het misschien meer werk dan het gebruik van een GUI, maar als je de dingen eenmaal onder de knie hebt, wil je nooit meer achterom.
- Invoeren
cd
vanaf elke plek op het bestandssysteem brengt u rechtstreeks terug naar uw thuismap. - Invoeren
!!
zal het laatste commando weergeven. Dit is handig als een opdracht mislukt omdat er beheerdersrechten voor nodig zijn. In dit geval kunt u typensudo !!
. - Je kunt gebruiken
&&
om meerdere commando's aan elkaar te koppelen. Bijvoorbeeld,mkdir project && cd project && npm init -y
. - Voorwaardelijke uitvoering is mogelijk met behulp van
||
. Bijvoorbeeld,git commit -m "whatever..." || echo "Commit failed"
. - Met een
-p
schakelen met demkdir
Met de opdracht kunt u indien nodig bovenliggende mappen maken. Het gebruik van accolade-uitbreiding vermindert herhaling. Bijvoorbeeld,mkdir -p articles/jim/sitepoint/article{1,2,3}
. - Zet de omgevingsvariabelen op een per-commandobasis zoals zo:
NODE_DEBUG=myapp node index.js
. Of, op een per-sessie basis zoals zo:export NODE_DEBUG=myapp
. U kunt controleren of het is ingesteld door te typenecho $<variable-name>
. - Pipetteer de uitvoer van één opdracht naar een tweede opdracht. Bijvoorbeeld,
cat /var/log/kern.log | less
om een lang logboek leesbaar te maken, ofhistory | grep ssh
om te zoeken naar geschiedenisvermeldingen die "ssh" bevatten. - U kunt vanuit de terminal bestanden openen in uw editor. Bijvoorbeeld,
nano ~/.zshrc
(nano),subl ~/.zshrc
(Sublieme tekst),code ~/.zshrc
(VS-code). Als het bestand niet bestaat, wordt het gemaakt wanneer u op drukt Bespaar in de editor. - Navigatie is een belangrijke vaardigheid om onder de knie te krijgen. Vertrouw niet alleen op uw pijltjestoetsen. Bijvoorbeeld, Ctrl + a brengt u naar het begin van een regel.
- Terwijl Ctrl + e zal je tot het einde brengen.
- Je kunt gebruiken Ctrl + w om één woord te wissen (achteruit).
- Ctrl + u verwijdert alles van de cursor tot het begin van de regel.
- Ctrl + k zal alles wissen, van de cursor tot het einde van de regel. Deze laatste drie kunnen ongedaan worden gemaakt Ctrl + y.
- U kunt tekst kopiëren met Ctrl + Shift + c. Dit is veel eleganter dan rechtsklikken en selecteren Kopiëren.
- Omgekeerd kunt u gekopieerde tekst plakken met Ctrl + verschuiving + v.
Probeer die toetscombinaties in het geheugen vast te leggen. Het zal je verbazen hoe vaak ze van pas komen.
15 aangepaste aliassen om uw productiviteit te verhogen
Aliassen zijn terminalsnelkoppelingen voor reguliere opdrachten. Je kunt ze aan je toevoegen ~/.zshrc
-bestand en laad vervolgens uw terminal opnieuw (met behulp van source ~/.zshrc
) om ze van kracht te laten worden.
De syntaxis voor het declareren van een (eenvoudige) alias is als volgt:
alias [alias-name]='[command]'
Aliassen zijn geweldig voor veelgebruikte opdrachten, lange opdrachten of opdrachten met een moeilijk te onthouden syntaxis. Hier zijn enkele die ik regelmatig gebruik:
- A
myip
alias, die uw huidige openbare IP-adres naar de terminal afdrukt:alias myip='curl http://ipecho.net/plain; echo'
. - A
distro
alias om informatie over uw Linux-distributie uit te voeren:alias distro='cat /etc/*-release'
. - A
reload
alias, omdat ik me nooit kan herinneren hoe ik mijn terminal opnieuw moet laden:alias reload='source ~/.zshrc'
. - An
undo-git-reset
alias:alias undo-git-reset-head="git reset 'HEAD@{1}'"
. Dit keert de effecten van hardlopen teruggit reset HEAD~
. - Een alias om pakketlijsten bij te werken:
alias sapu='sudo apt-get update'
. - Een alias om de vorige opdracht mee opnieuw uit te voeren
sudo
:alias ffs='sudo !!'
. - Omdat ik lui ben, heb ik een alias gebruikt
y
aan deyarn
opdracht:alias y='yarn'
. Dit betekent dat ik een repo kan klonen en dan gewoon kan typen y om alle afhankelijkheden binnen te halen. Ik heb deze van Scott Tolinski geleerd Syntaxis. - Niet een van degene die ik gebruik, maar deze alias blaast de
node_modules
map en verwijdert depackage-lock.json
bestand, voordat u de afhankelijkheden van een project opnieuw installeert:alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'
. Zoals je waarschijnlijk weet, staat yolo voor You Olleen Live Ons. - Een alias om mijn te openen
.zshrc
bestand om te bewerken:alias zshconfig='subl $HOME/.zshrc'
. - Een alias om de lijst met Ruby-versies bij te werken rbenv kan installeren:
alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
- Een alias om een server in uw huidige directory te starten (geen npm-pakketten vereist):
alias server='python -m SimpleHTTPServer 8000'
. - U kunt ook een alias aanmaken 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 opdracht naar toe te leiden
less
:alias -g L='| less'
. Je kunt het zo gebruiken:cat production.log L
. - Een globale alias om de uitvoer van een opdracht naar toe te leiden
grep
:alias -g G='| grep'
. Je kunt het zo gebruiken:history G ssh
. - U kunt ook functies gebruiken om aliassen te maken. Het volgende (overgenomen van hier) maakt een alias die code toevoegt, vastlegt en pusht naar GitHub:
bash
function acp() {
git add .
git commit -m "$1"
git push
}
Er zijn veel plaatsen om meer ideeën voor aliassen online te vinden. Bijvoorbeeld, deze Hacker News-discussie, of dit bericht op opdrachtregelproductiviteit met Zsh.
15 coole dingen die je kunt doen met (Oh My) Zsh
Oh mijn zsh is een door de gemeenschap aangestuurd raamwerk voor het beheer van uw Zsh-configuratie en wordt geleverd met duizenden handige functies, helpers, plug-ins en thema's. Als je van de Z-shell je dagelijkse driver wilt maken, zou je dat moeten doen werkelijk Installeer Oh My Zsh.
Hier zijn vijftien nuttige dingen die Oh My Zsh voor je kan doen:
- De
take
opdracht zal een nieuwe map maken en erin veranderen.take my-project
vervangtmkdir my-project && cd my-project
. zsh_stats
geeft je een lijst met de 20 belangrijkste opdrachten en hoe vaak ze zijn uitgevoerd.- Oh My Zsh vereenvoudigt het navigeren door uw bestandssysteem. Bijvoorbeeld,
..
is een alias voorcd ..
. - Op dezelfde manier,
...
gaat u twee mappen omhoog,....
brengt je drie omhoog, en.....
brengt je vier omhoog. - U kunt de
cd
bij het navigeren. Typen/
, brengt u bijvoorbeeld rechtstreeks naar de hoofdmap van uw bestandssysteem. - Gedeeltelijke matching wordt ook ondersteund. Typen bijvoorbeeld
/h/j/De
en drukken TABdan Retourneren, brengt me naar/home/jim/Desktop/
. rd
is een alias voorrmdir
enmd
is een alias voormkdir -p
.- Jij kan typen
d
om de laatst gebruikte mappen van een terminalsessie weer te geven. - U kunt vervolgens naar een van deze navigeren met behulp van
cd -n
, Waarn
is het directorynummer. - Tabaanvulling is een andere geweldige functie. Typen bijvoorbeeld
ls -
en drukken TAB zal alle opties van de opdracht weergeven, samen met een nuttige beschrijving van wat ze doen. Dit werkt ook voorcap
,rake
,ssh
enkill
. - Typen
alias
somt al uw huidige aliassen op. - Met globbing (een Zsh-functie) kunt u bestanden met een bepaalde extensie weergeven. Bijvoorbeeld,
ls *.html
zal alle HTML-bestanden in de huidige map weergeven. Om submappen op te nemen, verandert u in:ls **/*.html
. - Glob-kwalificaties kunt u typen bestanden selecteren met behulp van vlaggen. Bijvoorbeeld,
ls -l **/*(.x)
vindt alle uitvoerbare bestanden in de huidige map en alle submappen. - U kunt naar bestanden zoeken op wijzigingsdatum. Bijvoorbeeld,
ls *(m-7)
zal alle bestanden weergeven die in de afgelopen week zijn gewijzigd. - U kunt bestanden zoeken op grootte. Bijvoorbeeld,
ls *(Lm+1)
vindt alle bestanden met een grootte groter dan 1 MB.
Plug-ins gebruiken voor plezier en winst
Oh My Zsh wordt geleverd met veel van plug-ins. U moet deze doornemen en wat tijd investeren om die te leren die uw workflow zullen helpen.
Hier zijn drie plug-ins die ik regelmatig gebruik en die een heleboel handige snelkoppelingen en aliassen bieden.
10 handige Git-aliassen
De git-plug-in biedt veel aliassen en verschillende nuttig functies. Waarom neem je deze niet door en probeer je top tien uit je hoofd te leren? Dit zijn degene die ik het vaakst gebruik.
g
is een handige alias voorgit
. Dit betekent dat u dingen kunt typen zoalsg clone <whatever>
in plaats vangit clone <whatever>
. Misschien zijn het maar twee toetsaanslagen, maar ze tellen al snel op.gaa
is een alias voorgit add all
. Ik gebruik deze de hele tijd.gb
is een alias voorgit branch
, die alle branches in de huidige repo opsomt en je laat zien op welke je zit.gcb
is een alias voorgit checkout -b
, de opdracht waarmee u een nieuwe branch kunt maken.gcm
is een alias voorgit checkout master
. Dit brengt je terug naar de master branch.gdca
is een alias voorgit diff --cached
. Dit stelt je in staat om alle bestanden die je gestaged hebt voor commit te differentiëren.gf
is een alias voorgit fetch
.gm
is een alias voorgit merge
.gp
is een alias voorgit push
. Om een fork van een repo te synchroniseren, kunt u het volgende doen:gf upstream
,gm upstream/master
, Gevolgd doorgp
.glog
is een alias voorgit log --oneline --decorate --graph
, wat je een mooie git branch-grafiek geeft.
10 handige npm-aliassen
De npm-plug-in biedt voltooiing en een aantal nuttige aliassen.
npmg
is een alias voornpm install --global
, die u kunt gebruiken om afhankelijkheden wereldwijd op uw systeem te installeren. Bijvoorbeeld,npmg nodemon
.npmS
is een alias voornpm install --save
, die u gebruikt om afhankelijkheden te installeren en toe te voegen aan hetdependencies
gedeelte van uwpackage.json
. Merk op dat vanaf npm 5.0.0, dit is de standaardinstelling tijdens het uitvoerennpm i <package>
.npmD
is een alias voornpm install --save-dev
, die u gebruikt om afhankelijkheden te installeren en toe te voegen aan hetdevDependencies
gedeelte van uwpackage.json
.npmO
is een alias voornpm outdated
, die het register zal controleren om te zien of (of specifieke) geïnstalleerde pakketten momenteel verouderd zijn.npmL
is een alias voornpm list
, die de geïnstalleerde pakketten weergeeft.npmL0
is een alias voornpm list --depth=0
, waarin pakketten op het hoogste niveau worden vermeld. Dit is vooral handig om te zien welke modules wereldwijd zijn geïnstalleerd zonder uw terminal te overspoelen met een enorme afhankelijkheidsboom:npmL0 -g
.npmst
is een alias voornpm run start
een npm-script vaak gebruikt om een applicatie te starten.npmt
is een alias voornpm run test
, die, zoals u wellicht vermoedt, wordt gebruikt om uw tests uit te voeren.npmR
is een alias voornpm run
. Op zichzelf zal deze opdracht alle beschikbare npm-scripts van een project weergeven, samen met een beschrijving van wat ze doen. Gebruikt in combinatie met een scriptnaam, zal het dat script uitvoeren, bijvoorbeeldnpmR build
.npmI
is een alias voornpm init
. Dit zal je een heleboel vragen stellen, maak dan eenpackage.json
op basis van uw antwoorden. Gebruik de-y
vlag om het proces te automatiseren. Bijvoorbeeld,npmI -y
.
10 tijdbesparende rails/hark-aliassen
Deze plug-in voegt voltooiing toe voor de Ruby on Rails-raamwerk en Rake programma, evenals enkele aliassen voor logboeken en omgevingsvariabelen.
rc
is een alias voorrails console
, waarmee u vanuit de CLI kunt communiceren met uw Rails-app.rdc
is een alias voorrake db:create
, welke (tenzijRAILS_ENV
is ingesteld) maakt de ontwikkel- en testdatabases voor uw app.rdd
is een alias voorrake db:drop
, waardoor de ontwikkelings- en testdatabases van uw app vallen.rdm
is een alias voorrake db:migrate
, waarmee eventuele lopende databasemigraties worden uitgevoerd.rds
is een alias voorrake db:seed
, die dedb/seeds.rb
bestand om uw ontwikkelingsdatabase te vullen met gegevens.rgen
is een alias voorrails generate
, die boilerplate-code zal genereren. Bijvoorbeeld:rgen scaffold item name:string description:text
.rgm
is een alias voorrails generate migration
, die een databasemigratie zal genereren. Bijvoorbeeld:rgm add_description_to_products description:string
.rr
is een alias voorrake routes
, waarin alle gedefinieerde routes van een app worden vermeld.rrg
is een alias voorrake routes | grep
, waarmee u de gedefinieerde routes kunt weergeven en filteren. Bijvoorbeeld,rrg user
.rs
is een alias voorrails server
, waarmee de standaardwebserver van Rails wordt gestart.
Aanvullende informatiebronnen
De belangrijkste taak van de hierboven genoemde plug-ins is om aliassen te bieden aan veelgebruikte opdrachten. Houd er rekening mee dat er nog veel meer plug-ins zijn die uw shell uitbreiden met extra functionaliteit.
Hier zijn vier van mijn favorieten:
- sudo stelt u in staat om eenvoudig uw huidige of vorige commando's vooraf te laten gaan met
sudo
door te drukken ESC tweemaal. - autosuggesties suggereert opdrachten terwijl u typt op basis van geschiedenis en voltooiingen. Als de suggestie degene is die u zoekt, drukt u op de → sleutel om het te accepteren. Een echte tijdsbesparing!
- opdracht niet gevonden: als een opdracht niet wordt herkend in de
$PATH
, zal dit Ubuntu's command-not-found-pakket gebruiken om het te vinden of om spelfouten voor te stellen. - z is een handige plug-in dat een lijst opbouwt van uw meest frequente en recente mappen (het noemt deze "frecent") en stelt u in staat om er met één opdracht naar toe te gaan.
En vergeet niet dat als u veel tijd in de terminal doorbrengt, het de moeite waard is om wat moeite te doen om het visueel aantrekkelijk te maken. Gelukkig wordt Oh My Zsh geleverd met een hele reeks thema's voor u om uit te kiezen. Mijn keuze van het stel is agnosticus.
Meer over thema's vind je in mijn artikel 10 Zsh-tips en -trucs: configuratie, aanpassing en gebruik.
Conclusie
Dus daar hebben we het: 75 Zsh-commando's, plug-ins, aliassen en tools. Ik hoop dat je onderweg een paar trucjes hebt geleerd, en ik moedig je aan om uit je GUI's en in de terminal te komen. Het is eenvoudiger dan het lijkt en een geweldige manier om uw productiviteit te verhogen.
Als ik je favoriete plug-in of tijdbesparende alias/opdracht heb gemist, laat het me dan weten Twitter.
Nog meer uit uw toolkit halen? Uitchecken Visual Studio Code: end-to-end bewerkings- en foutopsporingstools voor webontwikkelaars van Wiley.
Bron: https://www.sitepoint.com/zsh-commands-plugins-aliases-tools/?utm_source=rss