75 Zsh parancsok, pluginok, aliasok és eszközök

máj 9, 2021
admin

Napjaim nagy részét a terminálban töltöm, és az általam választott shell a Zsh – egy rendkívül testreszabható Unix shell, amely nagyon erős funkciókkal rendelkezik. Mivel lusta fejlesztőTM vagyok, mindig keresem a módját, hogy kevesebbet gépeljek és mindent automatizáljak. Szerencsére ez olyasmi, amihez a Zsh jól alkalmazkodik.

Ebben a bejegyzésben 75 olyan parancsot, bővítményt, aliasokat és eszközt osztok meg veled, amelyekkel remélhetőleg megspórolhatsz néhány billentyűleütést, és produktívabbá teheted a mindennapi munkádat.

Ha még nincs telepítve a Zsh a gépeden, akkor nézd meg ezt a bejegyzést, ahol megmutatom, hogyan tudod beüzemelni.

15 dolog, amit a Zsh tud a dobozból

A Zsh sok praktikus funkciót oszt meg a Bash-sel. Az alábbiak közül egyik sem egyedi a Zsh számára, de ettől függetlenül jó tudni róluk. Arra bátorítom, hogy kezdje el használni a parancssort az alább felsoroltakhoz hasonló műveletek elvégzésére. Lehet, hogy elsőre több munkának tűnik, mint a GUI használata, de ha egyszer beletanulsz, soha többé nem fogsz visszanézni.

  • A cd beírása a fájlrendszer bármely pontjáról egyenesen a kezdeti könyvtáradba visz vissza.
  • A !! beírása az utolsó parancsot hozza elő. Ez praktikus, ha egy parancs azért nem sikerül, mert admin jogokat igényel. Ebben az esetben beírhatja a sudo !!.
  • A && használatával több parancsot is láncolhat. Például: mkdir project && cd project && npm init -y.
  • A feltételes végrehajtás a || használatával lehetséges. Például: git commit -m "whatever..." || echo "Commit failed".
  • A -p kapcsoló használata a mkdir paranccsal lehetővé teszi, hogy szükség szerint szülő könyvtárakat hozzon létre. A zárójel-kiterjesztés használata csökkenti az ismétlődést. Például: mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • A környezeti változókat parancsonként állítsa be a következőképpen: NODE_DEBUG=myapp node index.js. Vagy munkamenetenként, például így: export NODE_DEBUG=myapp. Ellenőrizheted, hogy be lett-e állítva a echo $<variable-name>.
  • Egy parancs kimenetét átvezetheted egy másik parancsba. Például: cat /var/log/kern.log | less egy hosszú napló olvashatóvá tételéhez, vagy history | grep ssh az “ssh” szót tartalmazó előzménybejegyzések kereséséhez.
  • Fájlokat nyithatsz meg a terminálból a szerkesztődben. Például nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Ha a fájl nem létezik, akkor létrejön, amikor a szerkesztőben megnyomja a Mentés gombot.
  • A navigáció fontos elsajátítandó készség. Ne csak a nyílbillentyűkre hagyatkozzon. A Ctrl + a például a sor elejére visz.
  • A Ctrl + e viszont a sor végére visz.
  • A Ctrl + w segítségével törölhetsz egy szót (visszafelé).
  • A Ctrl + u mindent eltávolít a kurzortól a sor elejéig.
  • A Ctrl + k mindent töröl a kurzortól a sor végéig. Ez utóbbi három visszacsinálható a Ctrl + y billentyűkombinációval.
  • Szöveget másolhat a Ctrl + Shift + c billentyűkombinációval. Ez sokkal elegánsabb, mint a jobb egérgombbal való kattintás és a Másolás kiválasztása.
  • Megfordítva, a másolt szöveget beillesztheti a Ctrl + Shift + v billentyűkombinációval.

Próbálja meg megjegyezni ezeket a billentyűkombinációkat. Meg fog lepődni, milyen gyakran jönnek jól.

15 egyéni alias, amivel növelheti a termelékenységét

Az aliasok a terminálon a szokásos parancsok gyorsbillentyűi. Hozzáadhatod őket a ~/.zshrc fájlodhoz, majd újratöltheted a terminálodat (a source ~/.zshrc használatával), hogy érvénybe lépjenek.

Az (egyszerű) aliasok deklarálásának szintaxisa a következő:

alias =''

Az aliasok nagyszerűek a gyakran használt, hosszú vagy nehezen megjegyezhető szintaxisú parancsokhoz. Íme néhány azok közül, amelyeket rendszeresen használok:

  • A myip alias, amely kiírja a terminálra az aktuális nyilvános IP-címedet: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias a Linux-disztribúciójára vonatkozó információk kiadásához: alias distro='cat /etc/*-release'.
  • A reload alias, mivel úgy tűnik, soha nem emlékszem, hogyan kell újratölteni a terminálomat: alias reload='source ~/.zshrc'.
  • A undo-git-reset alias: alias undo-git-reset-head="git reset 'HEAD@{1}'". Ez visszafordítja a git reset HEAD~.
  • An alias futtatásának hatását a csomaglisták frissítésére: alias sapu='sudo apt-get update'.
  • Az előző parancs sudo-val történő újrafuttatásához használt alias: alias ffs='sudo !!'.
  • Mert lusta vagyok, a y aliasát a yarn parancsra tettem: alias y='yarn'. Ez azt jelenti, hogy klónozhatok egy repót, majd csak beírom az y-t, hogy behívjam az összes függőséget. Ezt Scott Tolinski-től tanultam a Syntax-on.
  • Nem az általam használtak közé tartozik, de ez az alias elfújja a node_modules mappát és eltávolítja a package-lock.json fájlt, mielőtt újra telepítené a projekt függőségeit: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Mint valószínűleg tudod, a yolo a You Only Live Once (Csak egyszer élsz) rövidítése.
  • Egy alias a .zshrc fájlom megnyitására szerkesztéshez: alias zshconfig='subl $HOME/.zshrc'.
  • Alias az rbenv által telepíthető Ruby verziók listájának frissítéséhez: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Egy alias a szerver elindításához az aktuális könyvtárban (npm csomagok nem szükségesek): alias server='python -m SimpleHTTPServer 8000'.
  • Egy alias létrehozható a dokumentáció megnyitásához is a böngészőben: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • A globális alias egy parancs kimenetének a less-be történő átvezetéséhez: alias -g L='| less'. Ezt a következőképpen használhatja: cat production.log L.
  • A globális alias egy parancs kimenetének a grep-be történő átvezetéséhez: alias -g G='| grep'. Így használhatja: history G ssh.
  • Az aliasok létrehozásához függvényeket is használhat. A következő (innen vett) egy olyan aliast hoz létre, amely kódot ad hozzá, commitol és pushol a GitHubra:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Az interneten rengeteg helyen találhatsz további ötleteket az aliasokhoz. Például ez a Hacker News megbeszélés, vagy ez a bejegyzés a parancssori termelékenységről a Zsh-val.

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

Az Oh My Zsh egy közösség által vezérelt keretrendszer a Zsh konfigurációjának kezelésére, és több ezer hasznos funkcióval, segédprogrammal, bővítménnyel és témával együtt érkezik. Ha a Z shell-t a mindennapi vezetőjévé teszi, akkor tényleg érdemes telepítenie az Oh My Zsh-t.

Itt van tizenöt hasznos dolog, amit az Oh My Zsh megtehet önnek:

  • A take parancs létrehoz egy új könyvtárat, és ebbe változik. A take my-project helyettesíti a mkdir my-project && cd my-project parancsot.
  • zsh_stats Megjeleníti a 20 leggyakoribb parancs listáját és azt, hogy hányszor futtattad őket.
  • Az Oh My Zsh leegyszerűsíti a navigációt a fájlrendszeredben. Például a .. a cd .. aliasa.
  • Az ... két könyvtárral feljebb lép, a .... hárommal feljebb lép, a ..... pedig néggyel feljebb.
  • Navigáláskor a cd elhagyható. A / beírásával például egyenesen a fájlrendszer gyökeréhez jutsz.
  • A részleges megfeleltetés is támogatott. Például a /h/j/De beírása és a TAB, majd a Return billentyű lenyomása a /home/jim/Desktop/-re visz.
  • rd a rmdir és a md a mkdir -p álneve.
  • A terminál munkamenetből a d beírásával listázhatjuk az utoljára használt könyvtárakat.
  • Ezek bármelyikébe navigálhatunk a cd -n használatával, ahol a n a könyvtár száma.
  • A lapkakiegészítés egy másik nagyszerű funkció. Például a ls - beírásával és a TAB billentyű lenyomásával a parancs összes opciója felsorolásra kerül, egy hasznos leírással együtt, hogy mit csinálnak. Ez a cap, rake, ssh és kill parancsok esetében is működik.
  • A alias beírása kilistázza az összes aktuális aliasát.
  • A globbing (egy Zsh funkció) segítségével listázhatja az adott kiterjesztésű fájlokat. Például a ls *.html az aktuális könyvtárban található összes HTML fájlt kilistázza. Az alkönyvtárak bevonásához módosítsuk a következőre: ls **/*.html.
  • A glob minősítők lehetővé teszik a fájlok típusainak kiválasztását zászlók segítségével. Például a ls -l **/*(.x) az aktuális könyvtárban és az összes alkönyvtárban található összes futtatható fájlt megkeresi.
  • A fájlokat a módosítás dátuma alapján is keresheti. Például a ls *(m-7) az elmúlt héten módosított összes fájlt listázza.
  • A fájlokat méret szerint is keresheti. Például a ls *(Lm+1) megtalálja az összes 1 MB-nál nagyobb méretű fájlt.

Bővítmények használata szórakozásból és haszonból

A Zsh-hez rengeteg bővítmény tartozik. Érdemes átnézni ezeket, és befektetni egy kis időt azoknak a megtanulására, amelyek segítik a munkafolyamatokat.

Itt van három olyan plugin, amelyet rendszeresen használok, és amelyek rengeteg praktikus gyorsbillentyűt és aliast biztosítanak.

10 Nifty Git Aliases

A git plugin számos aliast és számos hasznos funkciót biztosít. Miért nem nézzük át ezeket, és próbáljuk meg megjegyezni a tíz legjobbat? Itt vannak az általam leggyakrabban használtak.

  1. g egy praktikus alias a git számára. Ez azt jelenti, hogy a git clone <whatever> helyett olyan dolgokat írhatsz be, mint g clone <whatever>. Lehet, hogy csak két billentyűleütés, de hamar összeadódik.
  2. gaa a git add all aliasszava. Én ezt használom állandóan.
  3. gb a git branch aliasa, ami felsorolja az összes ágat az aktuális repóban, és megmutatja, hogy melyikben vagy.
  4. gcb a git checkout -b aliasa, a parancs, amivel új ágat hozhatsz létre.
  5. gcm a git checkout master aliasa. Ezzel visszatér a master ágra.
  6. gdca a git diff --cached aliasszava. Ez lehetővé teszi, hogy diff minden olyan fájlt, amelyet commit-ra állítottál be.
  7. gf a git fetch aliasa.
  8. gm a git merge aliasa.
  9. gp a git push aliasa. Egy repo forkjának szinkronizálásához a következőt tehetjük: gf upstream, gm upstream/master, majd gp.
  10. glog egy alias a git log --oneline --decorate --graph-hez, ami egy szép git ággráfot ad.

10 Praktikus npm aliasok

Az npm plugin egy csomó hasznos alias kiegészítését is biztosítja.

  • npmg egy alias a npm install --global-hez, amivel globálisan telepíthetsz függőségeket a rendszeredre. Például a npmg nodemon.
  • npmS egy alias a npm install --save számára, amelyet a függőségek telepítésére és a package.json dependencies szakaszához való hozzáadására használhatsz. Vedd figyelembe, hogy az npm 5.0.0-tól kezdve ez az alapértelmezett, ha a npm i <package>.
  • npmD a npm install --save-dev aliasneve, amelyet a függőségek telepítésére és a package.json devDependencies szakaszához való hozzáadására használsz.
  • npmO egy alias a npm outdated-nak, amely ellenőrzi a nyilvántartást, hogy bármely (vagy bizonyos) telepített csomagok jelenleg elavultak-e.
  • npmL egy alias a npm list-nak, amely a telepített csomagokat listázza.
  • npmL0 egy alias a npm list --depth=0-nek, amely a felső szintű csomagokat listázza. Ez különösen hasznos, ha meg akarod nézni, hogy mely modulok vannak globálisan telepítve anélkül, hogy a terminálodat elárasztaná egy hatalmas függőségi fa: npmL0 -g.
  • npmst egy alias a npm run start-nek, egy npm szkriptnek, amit gyakran használnak egy alkalmazás indításához.
  • npmt egy alias a npm run test-nek, amit, mint sejthetjük, a tesztek futtatására használunk.
  • npmR egy alias a npm run-nak. Önmagában ez a parancs felsorolja a projekt összes elérhető npm szkriptjét, és leírja, hogy mit csinálnak. Egy szkriptnévvel együtt használva az adott szkriptet futtatja, Például a npmR build.
  • npmI a npm init aliasa. Ez egy csomó kérdést fog feltenni, majd a válaszok alapján létrehoz egy package.json-at. A folyamat automatizálásához használd a -y jelzőt. Például: npmI -y.

10 Időtakarékos Rails/Rake aliasok

Ez a bővítmény kiegészíti a Ruby on Rails keretrendszer és a Rake program kiegészítését, valamint néhány aliast a naplókhoz és a környezeti változókhoz.

  • rc egy alias a rails console-hez, amely lehetővé teszi a Rails-alkalmazással való interakciót a CLI-ről.
  • rdc egy alias a rake db:create-hez, amely (hacsak a RAILS_ENV nincs beállítva) létrehozza az alkalmazás fejlesztési és tesztadatbázisát.
  • rdd egy alias a rake db:drop-nak, amely az alkalmazás fejlesztői és tesztadatbázisát törli.
  • rdm egy alias a rake db:migrate-nak, amely lefuttatja a függőben lévő adatbázis-migrációkat.
  • rds egy alias a rake db:seed-nak, amely lefuttatja a db/seeds.rb fájlt, hogy feltöltse a fejlesztői adatbázisát adatokkal.
  • rgen egy alias a rails generate-nek, amely boilerplate kódot generál. Például: rgen scaffold item name:string description:text.
  • rgm egy alias a rails generate migration számára, amely egy adatbázis-migrációt fog generálni. Például: rgm add_description_to_products description:string.
  • rr egy alias a rake routes számára, amely felsorolja az alkalmazás összes definiált útvonalát.
  • rrg egy alias a rake routes | grep számára, amely lehetővé teszi a definiált útvonalak listázását és szűrését. Például rrg user.
  • rs egy alias a rails server-nek, amely elindítja a Rails alapértelmezett webszerverét.

Kiegészítő erőforrások

A fent felsorolt pluginok fő feladata, hogy aliasokat adjanak a gyakran használt parancsokhoz. Kérjük, vegye figyelembe, hogy rengeteg további bővítmény létezik, amelyek további funkciókkal bővítik a shell-jét.

Itt van négy kedvencem:

  • A sudo lehetővé teszi, hogy az ESC kétszeri megnyomásával könnyen előtagot adjon az aktuális vagy korábbi parancsainak a sudo-nak.
  • autosuggestions parancsokat javasol beírás közben az előzmények és a befejezések alapján. Ha a javaslat megfelel a keresettnek, a → billentyű lenyomásával fogadhatja el. Igazi időmegtakarítás!
  • command-not-found: ha egy parancsot nem ismer fel a $PATH, akkor ez az Ubuntu command-not-found csomagját használja, hogy megtalálja vagy helyesírási hibákat javasoljon.
  • z egy praktikus bővítmény, amely összeállítja a leggyakoribb és legfrissebb mappáid listáját (ezeket “frecent”-nek hívja), és lehetővé teszi, hogy egyetlen paranccsal ugorj rájuk.

És ne feledd, ha sok időt töltesz a terminálban, érdemes némi energiát fektetni a vizuális megjelenítésébe. Szerencsére az Oh My Zsh egy csomó témával érkezik, amelyek közül választhatsz. Az én választásom az Agnoster.

A témákról többet megtudhatsz a 10 Zsh tipp & Trükk című cikkemben: Configuration, Customization & Usage.

Conclusion

Szóval ennyi: 75 Zsh parancs, plugin, alias és eszköz. Remélem, megtanultál egy-két trükköt az út során, és arra bátorítalak, hogy hagyd el a grafikus felületeket és menj be a terminálba. Könnyebb, mint amilyennek látszik, és nagyszerű módja annak, hogy növelje a termelékenységét.

Ha kihagytam a kedvenc bővítményét, vagy időtakarékos aliasát/parancsát, ossza meg velem a Twitteren.

Még többet szeretne kihozni az eszköztárából? Nézze meg a Visual Studio Code-ot: End-to-End szerkesztési és hibakeresési eszközök webfejlesztők számára a Wiley-tól.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.