75 Zsh-komentoja, liitännäisiä, peitenimiä ja työkaluja
Vietän suuren osan päivästä terminaalissa, ja valitsemani komentotulkki on Zsh – erittäin muokattavissa oleva Unix-ohjelman komentotulkki, joka sisältää erittäin tehokkaita ominaisuuksia. Koska olen laiska kehittäjäTM, etsin aina tapoja kirjoittaa vähemmän ja automatisoida kaikki asiat. Onneksi Zsh soveltuu tähän hyvin.
Tässä postauksessa jaan kanssasi 75 komentoa, liitännäistä, aliaksia ja työkalua, jotka toivottavasti säästävät muutaman näppäinpainalluksen ja tekevät sinusta tuottavamman päivittäisessä työssäsi.
Jos sinulla ei ole Zsh:tä asennettuna koneellesi, tutustu tähän postaukseen, jossa näytän, miten saat sen käyttöön.
15 asiaa, joita Zsh voi tehdä valmiiksi
Zsh:llä on paljon yhteisiä käteviä ominaisuuksia Bashin kanssa. Mikään seuraavista ei ole ainutlaatuinen Zsh:lle, mutta ne on silti hyvä tietää. Kannustan sinua aloittamaan komentorivin käytön alla lueteltujen kaltaisten toimintojen suorittamiseen. Se saattaa aluksi tuntua työläämmältä kuin graafisen käyttöliittymän käyttäminen, mutta kun opit käyttämään sitä, et katso enää koskaan taaksepäin.
- Syöttämällä
cd
mistä tahansa tiedostojärjestelmästä pääset suoraan takaisin kotihakemistoosi. - Syöttämällä
!!
saat esiin viimeisen komennon. Tämä on kätevää, jos jokin komento epäonnistuu, koska se tarvitsee järjestelmänvalvojan oikeuksia. Tällöin voit kirjoittaasudo !!
. - Voit käyttää
&&
useiden komentojen ketjuttamiseen. Esimerkiksimkdir project && cd project && npm init -y
. - Ehdollinen suoritus on mahdollista käyttämällä
||
. Esimerkiksigit commit -m "whatever..." || echo "Commit failed"
. - Kytkimen
-p
käyttäminen komennonmkdir
kanssa mahdollistaa vanhempien hakemistojen luomisen tarpeen mukaan. Sulkujen laajentamisen käyttäminen vähentää toistoa. Esimerkiksi:mkdir -p articles/jim/sitepoint/article{1,2,3}
. - Aseta ympäristömuuttujat komentokohtaisesti seuraavasti:
NODE_DEBUG=myapp node index.js
. Tai istuntokohtaisesti esimerkiksi näin:export NODE_DEBUG=myapp
. Voit tarkistaa, että se asetettiin kirjoittamallaecho $<variable-name>
. - Piippaa yhden komennon tulostus toiseen komentoon. Esimerkiksi
cat /var/log/kern.log | less
tehdäksesi pitkän lokin luettavaksi taihistory | grep ssh
etsiäksesi kaikki historiamerkinnät, jotka sisältävät ”ssh”. - Voit avata tiedostoja editorissa terminaalista. Esimerkiksi
nano ~/.zshrc
(nano),subl ~/.zshrc
(Sublime Text),code ~/.zshrc
(VS Code). Jos tiedostoa ei ole olemassa, se luodaan, kun painat Save editorissa. - Navigointi on tärkeä taito hallita. Älä luota vain nuolinäppäimiin. Esimerkiksi Ctrl + a vie sinut rivin alkuun.
- Kun taas Ctrl + e vie sinut rivin loppuun.
- Ctrl + w:llä voit poistaa yhden sanan (takaperin).
- Ctrl + u poistaa kaiken kursorista rivin alkuun.
- Ctrl + k tyhjentää kaiken kursorista rivin loppuun. Nämä kolme viimeistä voi kumota Ctrl + y:llä.
- Voit kopioida tekstiä Ctrl + Shift + c. Tämä on paljon tyylikkäämpää kuin klikata hiiren oikealla painikkeella ja valita Kopioi.
- Kääntäen voit liittää kopioidun tekstin Ctrl + Shift + v:llä.
Yritä painaa nuo näppäinyhdistelmät muistiin. Yllätyt, kuinka usein ne tulevat tarpeeseen.
15 mukautettua peitenimeä, jotka lisäävät tuottavuuttasi
Peitenimet ovat terminaalin pikanäppäimiä tavallisille komennoille. Voit lisätä ne ~/.zshrc
-tiedostoon ja ladata terminaalin uudelleen (käyttämällä source ~/.zshrc
), jotta ne tulevat voimaan.
(Yksinkertaisen) aliaksen ilmoittamisen syntaksi on seuraava:
alias =''
Aliasit sopivat hyvin usein käytetyille komennoille, pitkille komennoille tai komennoille, joiden syntaksia on vaikea muistaa. Tässä on muutamia niistä, joita käytän säännöllisesti:
- A
myip
alias, joka tulostaa nykyisen julkisen IP-osoitteesi terminaaliin:alias myip='curl http://ipecho.net/plain; echo'
. - A
distro
alias, joka tulostaa tietoja Linux-jakelustasi:alias distro='cat /etc/*-release'
. - A
reload
alias, koska en koskaan muista, miten päätelaite ladataan uudelleen:alias reload='source ~/.zshrc'
. - Alias
undo-git-reset
:alias undo-git-reset-head="git reset 'HEAD@{1}'"
. Tämä kumoaa vaikutukset, jotka syntyvät, kun ajetaangit reset HEAD~
. - An alias pakettiluetteloiden päivittämiseksi:
alias sapu='sudo apt-get update'
. - Alias edellisen komennon suorittamiseksi uudelleen komennolla
sudo
:alias ffs='sudo !!'
. - Koska olen laiska, olen tehnyt aliaksen
y
komennolleyarn
:alias y='yarn'
. Tämä tarkoittaa, että voin kloonata repon ja sitten vain kirjoittaa y vetääkseni kaikki riippuvuudet. Opin tämän Scott Tolinskilta aiheesta Syntax. - Ei ole yksi niistä, joita käytän, mutta tämä alias puhaltaa pois
node_modules
-kansion ja poistaapackage-lock.json
-tiedoston, ennen kuin asennan projektin riippuvuudet uudelleen:alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'
. Kuten luultavasti tiedät, yolo on lyhenne sanoista You Only Live Once (Sinä elät vain kerran). - Alias, joka avaa
.zshrc
-tiedostoni muokkausta varten:alias zshconfig='subl $HOME/.zshrc'
. - Alias, jolla päivitetään luettelo Ruby-versioista, joita rbenv voi asentaa:
alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
- Alias käynnistää palvelimen nykyisessä hakemistossasi (npm-paketteja ei tarvita):
alias server='python -m SimpleHTTPServer 8000'
. - Voit myös luoda aliaksen dokumentaation avaamiseksi selaimessa:
alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'
. - Yleinen alias komennon tulosteen putkittamiseksi osoitteeseen
less
:alias -g L='| less'
. Voit käyttää sitä näin:cat production.log L
. - Yleinen alias komennon tulostuksen putkittamiseksi osoitteeseen
grep
:alias -g G='| grep'
. Voit käyttää sitä näin:history G ssh
. - Voit myös käyttää funktioita aliasien luomiseen. Seuraava (otettu täältä) luo aliaksen, joka lisää, komentaa ja työntää koodia GitHubiin:
bash
function acp() {
git add .
git commit -m ""
git push
}
Verkosta löytyy paljon paikkoja, joista voi löytää lisää ideoita aliaseihin. Esimerkiksi tämä Hacker Newsin keskustelu tai tämä viesti komentorivin tuottavuudesta Zsh:n avulla.
15 hienoa asiaa, joita voit tehdä (Oh My) Zsh:lla
Oh My Zsh on yhteisölähtöinen kehys Zsh:n konfiguraation hallintaan, ja sen mukana tulee tuhansia hyödyllisiä funktioita, apuvälineitä, liitännäisiä (plugins) ja teemoja. Jos aiot tehdä Z-selaimesta päivittäisen ajurisi, sinun kannattaa todella asentaa Oh My Zsh.
Tässä on viisitoista hyödyllistä asiaa, joita Oh My Zsh voi tehdä puolestasi:
- Komento
take
luo uuden hakemiston ja vaihtaa siihen.take my-project
korvaamkdir my-project && cd my-project
. -
zsh_stats
antaa sinulle luettelon 20 tärkeimmästä komennosta ja siitä, kuinka monta kertaa niitä on ajettu. - Oh My Zsh helpottaa tiedostojärjestelmän navigointia. Esimerkiksi
..
on alias nimellecd ..
. - Samoin
...
siirtää sinut kaksi hakemistoa ylöspäin,....
kolme hakemistoa ylöspäin ja.....
neljä hakemistoa ylöspäin. - Voit jättää
cd
pois, kun navigoit. Kirjoittamalla esimerkiksi/
pääset suoraan tiedostojärjestelmän juureen. - Myös osittainen täsmäytys on tuettu. Esimerkiksi kirjoittamalla
/h/j/De
ja painamalla TAB ja sitten Return, pääsen osoitteeseen/home/jim/Desktop/
. -
rd
on aliasrmdir
:lle jamd
on aliasmkdir -p
:lle. - Voit kirjoittaa
d
luettelemaan viimeksi käytetyt hakemistot terminaali-istunnosta. - Voit sitten navigoida mihin tahansa näistä käyttämällä
cd -n
, jossan
on hakemiston numero. - Tab completion on toinen hyvä ominaisuus. Esimerkiksi kirjoittamalla
ls -
ja painamalla TAB-näppäintä saat luettelon kaikista komennon vaihtoehdoista sekä hyödyllisen kuvauksen siitä, mitä ne tekevät. Tämä toimii myös komennoillacap
,rake
,ssh
jakill
. - Työntö
alias
luettelee kaikki nykyiset aliaksesi. - Globbingin (Zsh:n ominaisuus) avulla voit luetella tiedostot, joilla on tietty pääte. Esimerkiksi
ls *.html
listaa kaikki nykyisen hakemiston HTML-tiedostot. Jos haluat sisällyttää alihakemistot, vaihda muotoon:ls **/*.html
. - Glob-lausekkeiden avulla voit valita tiedostotyyppejä lippujen avulla. Esimerkiksi
ls -l **/*(.x)
etsii kaikki suoritettavat tiedostot nykyisestä hakemistosta ja kaikista alihakemistoista. - Voit etsiä tiedostoja muokkauspäivän mukaan. Esimerkiksi
ls *(m-7)
listaa kaikki viimeisen viikon aikana muutetut tiedostot. - Voit etsiä tiedostoja koon mukaan. Esimerkiksi
ls *(Lm+1)
löytää kaikki tiedostot, joiden koko on yli 1MB.
Lisäkkeiden käyttäminen huvin ja hyödyn vuoksi
Oh My Zsh:n mukana tulee paljon liitännäisiä. Kannattaa katsoa ne läpi ja sijoittaa aikaa niiden opetteluun, jotka auttavat työnkulkuasi.
Tässä on kolme säännöllisesti käyttämääni liitännäistä, jotka tarjoavat tonneittain käteviä oikoteitä ja aliaksia.
10 Nifty Git Aliases
Git-liitännäinen tarjoaa monia aliaksia ja useita hyödyllisiä toimintoja. Mikset kävisi näitä läpi ja yrittäisi muistaa kymmenen parasta? Tässä ovat ne, joita käytän eniten.
-
g
on kätevä aliasgit
:lle. Tämä tarkoittaa, että voit kirjoittaa esimerkiksig clone <whatever>
git clone <whatever>
:n sijasta. Saattaa olla vain kaksi näppäinpainallusta, mutta ne summautuvat nopeasti. -
gaa
on aliasgit add all
:lle. Käytän tätä koko ajan. -
gb
on alias komennollegit branch
, joka listaa kaikki nykyisen repon haarat ja näyttää, missä olet. -
gcb
on alias komennollegit checkout -b
, jolla voit luoda uuden haaran. -
gcm
on alias komennollegit checkout master
. Tämä palauttaa sinut master-haaraan. -
gdca
on alias komennollegit diff --cached
. Tämän avulla voit diffata kaikki tiedostot, jotka olet asettanut toimitettavaksi. -
gf
on alias nimellegit fetch
. -
gm
on alias nimellegit merge
. -
gp
on alias nimellegit push
. Jos haluat synkronoida repon haarautumisen, voit tehdä näin:gf upstream
,gm upstream/master
, jonka jälkeengp
. -
glog
on alias nimellegit log --oneline --decorate --graph
, jolloin saat nätin git-haarakuvion.
10 Kätevät npm-aliasit
Npm-lisäosa tarjoaa täydennyksenä myös joukon hyödyllisiä aliaksia.
-
npmg
on aliasnpm install --global
:lle, jolla voit asentaa riippuvuudet globaalisti järjestelmääsi. Esimerkiksinpmg nodemon
. -
npmS
on aliasnpm install --save
:lle, jolla voit asentaa riippuvuuksia ja lisätä nepackage.json
:ndependencies
-osioon. Huomaa, että npm 5.0.0:sta lähtien tämä on oletusarvo, kun käytätnpm i <package>
. -
npmD
on alias nimellenpm install --save-dev
, jota käytät asentaaksesi riippuvuudet ja lisätessäsi nepackage.json
:ndevDependencies
-osioon. -
npmO
on alias nimellenpm outdated
, joka tarkistaa rekisteristä, onko jokin (tai tietyt) asennetut paketit tällä hetkellä vanhentuneita. -
npmL
on alias nimellenpm list
, joka luettelee asennetut paketit. -
npmL0
on alias nimellenpm list --depth=0
, joka luettelee ylätason paketit. Tämä on erityisen hyödyllistä, kun haluat nähdä, mitkä moduulit on asennettu globaalisti ilman, että päätelaitteesi täyttyy valtavasta riippuvuuspuusta:npmL0 -g
. -
npmst
on alias nimellenpm run start
, joka on npm-skripti, jota käytetään usein sovelluksen käynnistämiseen. -
npmt
on alias nimellenpm run test
, jota käytetään, kuten arvata saattaa, testien suorittamiseen. -
npmR
on alias nimellenpm run
. Itsessään tämä komento listaa kaikki projektin käytettävissä olevat npm-skriptit sekä kuvauksen siitä, mitä ne tekevät. Kun sitä käytetään yhdessä skriptin nimen kanssa, se suorittaa kyseisen skriptin, EsimerkiksinpmR build
. -
npmI
on alias nimellenpm init
. Tämä kysyy sinulle joukon kysymyksiä ja luo sittenpackage.json
vastauksiesi perusteella. Käytä-y
-lippua prosessin automatisoimiseksi. EsimerkiksinpmI -y
.
10 Aikaa säästävät Rails/Rake-aliasit
Tämä lisäosa lisää täydennyksen Ruby on Rails -puitteistolle ja Rake-ohjelmalle sekä joitain aliaksia lokeille ja ympäristömuuttujille.
-
rc
on aliasrails console
:lle, jonka avulla voit olla vuorovaikutuksessa Rails-sovelluksesi kanssa CLI:stä. -
rdc
on aliasrake db:create
:lle, joka (elleiRAILS_ENV
ole asetettu) luo sovelluksesi kehitys- ja testitietokannat. -
rdd
on alias nimellerake db:drop
, joka poistaa sovelluksesi kehitys- ja testitietokannat. -
rdm
on alias nimellerake db:migrate
, joka suorittaa kaikki vireillä olevat tietokantojen siirrot. -
rds
on alias nimellerake db:seed
, joka ajaa tiedostondb/seeds.rb
täyttääkseen kehitystietokantasi tiedoilla. -
rgen
on alias nimellerails generate
, joka luo boilerplate-koodia. Esim:rgen scaffold item name:string description:text
. -
rgm
on alias nimellerails generate migration
, joka luo tietokannan siirtymisen. Esim:rgm add_description_to_products description:string
. -
rr
on alias nimellerake routes
, joka listaa kaikki sovelluksen määritellyt reitit. -
rrg
on alias nimellerake routes | grep
, jonka avulla voit listata ja suodattaa määritellyt reitit. Esimerkiksirrg user
. -
rs
on alias nimellerails server
, joka käynnistää Railsin oletusverkkopalvelimen.
Lisäresurssit
Yllä lueteltujen liitännäisten päätehtävä on tarjota aliaksia usein käytetyille komennoille. Huomaa, että on olemassa paljon muitakin liitännäisiä, jotka laajentavat komentotulkkiasi lisätoiminnoilla.
Tässä on neljä suosikkiani:
- sudo mahdollistaa sen, että voit helposti liittää nykyiset tai aiemmat komennot etuliitteeksi
sudo
painamalla kahdesti ESC-näppäintä. - autosuggestions ehdottaa kirjoittamiesi komentojen kirjoittamisen ajaksi komentoja historiansa ja loppuun suoritettujen komentojen perusteella. Jos ehdotus on etsimäsi, hyväksy se painamalla →-näppäintä. Todellinen ajansäästäjä!
- command-not-found: Jos komentoa ei tunnisteta
$PATH
, tämä käyttää Ubuntun command-not-found-pakettia löytääkseen sen tai ehdottaakseen kirjoitusvirheitä. - z on kätevä lisäosa, joka muodostaa listan useimmin käyttämistäsi ja viimeisimmistä kansioista (se kutsuu näitä ”frecentiksi”) ja mahdollistaa hyppäämisen niihin yhdellä komennolla.
Ja älä unohda, että jos vietät paljon aikaa terminaalissa, kannattaa panostaa visuaalisesti houkuttelevaan ulkoasuun. Onneksi Oh My Zsh:n mukana tulee koko joukko teemoja, joista voit valita. Oma valintani on Agnoster.
Teemoista voit lukea lisää artikkelistani 10 Zsh-vinkkiä & temppuja: Configuration, Customization & Usage.
Conclusion
Se on siis siinä: 75 Zsh-komentoa, liitännäistä, aliasta ja työkalua. Toivottavasti opit matkan varrella yhden tai kaksi temppua, ja kannustan sinua pääsemään ulos graafisista käyttöliittymistä ja terminaaliin. Se on helpompaa kuin miltä näyttää ja loistava tapa lisätä tuottavuuttasi.
Jos olen unohtanut suosikkiliitännäisesi tai aikaa säästävän aliaksen/käskyn, kerro minulle Twitterissä.
Haluatko saada vielä enemmän irti työkalupakistasi? Tutustu Visual Studio Codeen: End-to-End Editing and Debugging Tools for Web Developers from Wiley.