75 Příkazy, zásuvné moduly, aliasy a nástroje Zsh

Kvě 9, 2021
admin

Velkou část dne trávím v terminálu a mým oblíbeným shellem je Zsh – vysoce přizpůsobitelný unixový shell, který má několik velmi výkonných funkcí. Protože jsem líný vývojářTM, vždy hledám způsoby, jak psát méně a jak všechny věci automatizovat. Naštěstí je to něco, k čemu se Zsh dobře hodí.

V tomto příspěvku se s vámi podělím o 75 příkazů, zásuvných modulů, aliasů a nástrojů, které vám snad ušetří několik stisků kláves a zvýší vaši produktivitu při každodenní práci.

Pokud nemáte na svém počítači nainstalovaný Zsh, pak se podívejte na tento příspěvek, kde vám ukážu, jak jej zprovoznit.

15 věcí, které Zsh umí hned po vybalení

Zsh sdílí spoustu užitečných funkcí s Bash. Žádná z následujících funkcí není pro Zsh jedinečná, ale přesto je dobré je znát. Doporučuji vám, abyste začali používat příkazový řádek k provádění operací, jako jsou ty uvedené níže. Zpočátku se to může zdát pracnější než používání grafického uživatelského rozhraní, ale jakmile si věci osvojíte, už se nikdy neohlédnete zpět.

  • Zadáním příkazu cd odkudkoli ze souborového systému se vrátíte přímo do svého domovského adresáře.
  • Zadáním příkazu !! se zobrazí poslední příkaz. To se hodí v případě, že příkaz selže, protože potřebuje administrátorská práva. V takovém případě můžete zadat sudo !!.
  • Pomocí && můžete zřetězit více příkazů. Například mkdir project && cd project && npm init -y.
  • Podmíněné spuštění je možné pomocí ||. Například git commit -m "whatever..." || echo "Commit failed".
  • Použití přepínače -p s příkazem mkdir vám umožní vytvářet nadřazené adresáře podle potřeby. Použití rozšiřujících závorek snižuje počet opakování. Například: mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Proměnné prostředí nastavíte na základě jednotlivých příkazů takto: NODE_DEBUG=myapp node index.js. Nebo na základě jednotlivých relací takto: export NODE_DEBUG=myapp. Jejich nastavení můžete zkontrolovat zadáním příkazu echo $<variable-name>.
  • Výstup jednoho příkazu vložte do druhého příkazu. Například cat /var/log/kern.log | less pro zpřístupnění dlouhého protokolu nebo history | grep ssh pro vyhledání všech záznamů v historii obsahujících „ssh“.
  • Z terminálu můžete otevírat soubory v editoru. Například nano ~/.zshrc (nano), subl ~/.zshrc (Sublime Text), code ~/.zshrc (VS Code). Pokud soubor neexistuje, vytvoří se po stisknutí tlačítka Uložit v editoru.
  • Navigace je důležitá dovednost, kterou je třeba zvládnout. Nespoléhejte se jen na klávesy se šipkami. Například klávesami Ctrl + a se dostanete na začátek řádku.
  • Naopak klávesami Ctrl + e se dostanete na jeho konec.
  • Pomocí kláves Ctrl + w můžete odstranit jedno slovo (pozpátku).
  • Klávesami Ctrl + u odstraníte vše od kurzoru po začátek řádku.
  • Klávesami Ctrl + k odstraníte vše od kurzoru po konec řádku. Poslední tři lze zrušit pomocí Ctrl + y.
  • Kopírovat text můžete pomocí Ctrl + Shift + c. Je to mnohem elegantnější než kliknutí pravým tlačítkem myši a volba Kopírovat.
  • Kopírovaný text můžete naopak vložit pomocí Ctrl + Shift + v.

Zkuste si tyto kombinace kláves uložit do paměti. Budete překvapeni, jak často se vám budou hodit.

15 vlastních aliasů, které zvýší vaši produktivitu

Aliasy jsou terminálové zkratky pro běžné příkazy. Můžete je přidat do souboru ~/.zshrc a poté znovu načíst terminál (pomocí source ~/.zshrc), aby se projevily.

Syntaxe pro deklarování (jednoduchého) aliasu je následující:

alias =''

Aliasy jsou skvělé pro často používané příkazy, dlouhé příkazy nebo příkazy s těžko zapamatovatelnou syntaxí. Zde jsou některé z těch, které pravidelně používám:

  • A alias myip, který vypíše do terminálu vaši aktuální veřejnou IP adresu: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias, který vypíše informace o vaší distribuci Linuxu: alias distro='cat /etc/*-release'.
  • A reload alias, protože si nikdy nemohu vzpomenout, jak znovu načíst terminál: alias reload='source ~/.zshrc'.
  • An undo-git-reset alias: alias undo-git-reset-head="git reset 'HEAD@{1}'". Tím se vrátí účinky spuštění aliasu git reset HEAD~.
  • An pro aktualizaci seznamů balíčků: alias sapu='sudo apt-get update'.
  • Alias pro opětovné spuštění předchozího příkazu s sudo: alias ffs='sudo !!'.
  • Protože jsem líný, použil jsem alias y na příkaz yarn: alias y='yarn'. To znamená, že mohu klonovat repozitář a pak jen zadat y, aby se stáhly všechny závislosti. Tohle jsem se naučil od Scotta Tolinského na Syntax.
  • Není to jeden z těch, které používám, ale tento alias odstraní složku node_modules a odstraní soubor package-lock.json, než znovu nainstaluje závislosti projektu: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Jak asi víte, yolo je zkratka pro You Only Live Once (Žiješ jen jednou).
  • Alias pro otevření mého souboru .zshrc pro úpravy: alias zshconfig='subl $HOME/.zshrc'.
  • A alias pro aktualizaci seznamu verzí Ruby, které může rbenv nainstalovat: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • A alias pro spuštění serveru ve vašem aktuálním adresáři (nevyžaduje balíčky npm): alias server='python -m SimpleHTTPServer 8000'.
  • Můžete také vytvořit alias pro otevření dokumentace v prohlížeči: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Globální alias pro odeslání výstupu příkazu do roury less: alias -g L='| less'. Můžete jej použít takto: cat production.log L.
  • Globální alias pro směrování výstupu příkazu do grep: alias -g G='| grep'. Můžete jej použít takto: history G ssh.
  • K vytváření aliasů můžete použít také funkce. Následující příklad (převzatý odtud) vytvoří alias, který přidá, odevzdá a odešle kód na GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Na internetu najdete spoustu míst, kde najdete další nápady pro aliasy. Například tato diskuse na Hacker News nebo tento příspěvek o produktivitě příkazového řádku pomocí Zsh.

15 skvělých věcí, které můžete dělat s (Oh My) Zsh

Oh My Zsh je komunitou řízený framework pro správu konfigurace Zsh a je dodáván s tisíci užitečných funkcí, pomocníků, zásuvných modulů a motivů. Pokud se chystáte udělat ze shellu Z svůj každodenní ovladač, měli byste si Oh My Zsh opravdu nainstalovat.

Tady je patnáct užitečných věcí, které pro vás Oh My Zsh může udělat:

  • Příkaz take vytvoří nový adresář a změní se do něj. Příkaz take my-project nahradí příkaz mkdir my-project && cd my-project.
  • zsh_stats vám poskytne seznam 20 nejčastějších příkazů a kolikrát byly spuštěny.
  • Oh My Zsh zjednodušuje orientaci v souborovém systému. Například .. je alias pro cd ...
  • Stejně tak ... vás přesune o dva adresáře výše, .... o tři a ..... o čtyři.
  • Při navigaci můžete vynechat cd. Například zadáním / se dostanete přímo do kořenového adresáře souborového systému.
  • Podporováno je také částečné přiřazování. Například zadáním /h/j/De a stisknutím TAB a poté Return se dostanu na /home/jim/Desktop/.
  • rd je alias pro rmdir a md je alias pro mkdir -p.
  • Můžete zadat d pro výpis naposledy použitých adresářů z relace terminálu.
  • Na kterýkoli z nich pak můžete přejít pomocí cd -n, kde n je číslo adresáře.
  • Doplňování tabulek je další skvělá funkce. Například po zadání ls - a stisknutí klávesy TAB se zobrazí seznam všech možností příkazu spolu s užitečným popisem jejich funkce. To funguje také pro příkazy cap, rake, ssh a kill.
  • Při zadání alias se vypíší všechny vaše aktuální aliasy.
  • Pomocí globbingu (funkce Zsh) můžete vypsat soubory s určitou příponou. Například ls *.html vypíše všechny soubory HTML v aktuálním adresáři. Chcete-li zahrnout i podadresáře, změňte na: ls **/*.html.
  • Globální kvalifikátory umožňují vybrat typy souborů pomocí příznaků. Například ls -l **/*(.x) vyhledá všechny spustitelné soubory v aktuálním adresáři a všech podadresářích.
  • Soubory můžete vyhledávat podle data změny. Například ls *(m-7) vypíše všechny soubory změněné během posledního týdne.
  • Soubory můžete vyhledávat podle velikosti. Například ls *(Lm+1) vyhledá všechny soubory s velikostí větší než 1 MB.

Používání zásuvných modulů pro zábavu a zisk

Oh My Zsh se dodává s mnoha zásuvnými moduly. Měli byste si je prohlédnout a investovat nějaký čas do učení těch, které vám pomohou při práci.

Tady jsou tři zásuvné moduly, které pravidelně používám a které poskytují spoustu užitečných zkratek a aliasů.

10 Nifty Git Aliases

Zásuvný modul git poskytuje mnoho aliasů a několik užitečných funkcí. Proč si je neprojít a nepokusit se zapamatovat si deset nejlepších? Zde jsou ty, které používám nejčastěji.

  1. g je šikovný alias pro git. To znamená, že místo git clone <whatever> můžete napsat například g clone <whatever>. Mohou to být jen dva stisky kláves, ale brzy se sečtou.
  2. gaa je alias pro git add all. Používám ho pořád.
  3. gb je alias pro git branch, který vypíše všechny větve v aktuálním repozitáři a ukáže vám, ve které se nacházíte.
  4. gcb je alias pro git checkout -b, příkaz, který vám umožní vytvořit novou větev.
  5. gcm je alias pro git checkout master. Tím se vrátíte do hlavní větve.
  6. gdca je alias příkazu git diff --cached. To vám umožní porovnat všechny soubory, které jste zařadili do revize.
  7. gf je alias pro git fetch.
  8. gm je alias pro git merge.
  9. gp je alias pro git push. Chcete-li synchronizovat fork repozitáře, můžete provést: gf upstream, gm upstream/master a následně gp.
  10. glog je alias pro git log --oneline --decorate --graph, čímž získáte pěkný graf větví systému git.

10 Šikovné aliasy npm

Zásuvný modul npm poskytuje doplnění i spoustu užitečných aliasů.

  • npmg je alias pro npm install --global, který můžete použít pro globální instalaci závislostí v systému. Například npmg nodemon.
  • npmS je alias pro npm install --save, který použijete k instalaci závislostí a jejich přidání do sekce dependencies vašeho package.json. Všimněte si, že od verze npm 5.0.0 je toto výchozí nastavení při spuštění npm i <package>.
  • npmD je alias pro npm install --save-dev, který používáte k instalaci závislostí a jejich přidání do sekce devDependencies vašeho package.json.
  • npmO je alias pro npm outdated, který zkontroluje registr, zda některý (nebo, konkrétní) nainstalovaný balíček není aktuálně zastaralý.
  • npmL je alias pro npm list, který vypíše nainstalované balíčky.
  • npmL0 je alias pro npm list --depth=0, který vypíše balíčky nejvyšší úrovně. To je užitečné zejména pro zjištění, které moduly jsou nainstalovány globálně, aniž byste museli zahltit terminál obrovským stromem závislostí: npmL0 -g.
  • npmst je alias pro npm run start, skript npm, který se často používá ke spuštění aplikace.
  • npmt je alias pro npm run test, který, jak asi tušíte, slouží ke spouštění testů.
  • npmR je alias pro npm run. Tento příkaz sám o sobě vypíše všechny dostupné skripty npm projektu spolu s popisem, co dělají. Pokud se použije ve spojení s názvem skriptu, spustí tento skript, Například npmR build.
  • npmI je alias pro npm init. Ten vám položí několik otázek a na základě vašich odpovědí vytvoří skript package.json. Chcete-li proces automatizovat, použijte příznak -y. Například npmI -y.

10 Časově úsporné aliasy Rails/Rake

Tento doplněk přidává doplňování pro framework Ruby on Rails a program Rake a také některé aliasy pro protokoly a proměnné prostředí.

  • rc je alias pro rails console, který umožňuje komunikovat s aplikací Rails z rozhraní CLI.
  • rdc je alias pro rake db:create, který (pokud není nastaven RAILS_ENV) vytváří vývojové a testovací databáze pro vaši aplikaci.
  • rdd je alias pro rake db:drop, který zruší vývojové a testovací databáze vaší aplikace.
  • rdm je alias pro rake db:migrate, který spustí všechny čekající migrace databází.
  • rds je alias pro rake db:seed, který spustí soubor db/seeds.rb pro naplnění vaší vývojové databáze daty.
  • rgen je alias pro rails generate, který vygeneruje kód kotle. Například: rgen scaffold item name:string description:text.
  • rgm je alias pro rails generate migration, který vygeneruje migraci databáze. Například: rgm add_description_to_products description:string.
  • rr je alias pro rake routes, který vytvoří seznam všech definovaných tras aplikace.
  • rrg je alias pro rake routes | grep, který umožní vypsat a filtrovat definované trasy. Například rrg user.
  • rs je alias pro rails server, který spustí výchozí webový server Rails.

Další zdroje

Hlavním úkolem výše uvedených zásuvných modulů je poskytovat aliasy pro často používané příkazy. Uvědomte si prosím, že existuje spousta dalších zásuvných modulů, které rozšiřují váš shell o další funkce.

Zde jsou čtyři z mých oblíbených:

  • sudo umožňuje snadno předřadit aktuální nebo předchozí příkazy pomocí sudo dvojitým stisknutím ESC.
  • autosuggestions navrhuje příkazy při psaní na základě historie a dokončení. Pokud je návrh ten, který hledáte, stisknutím klávesy → jej přijmete. Skutečná úspora času!
  • příkaz-nenalezen: pokud není příkaz rozpoznán v $PATH, použije se k jeho nalezení balík Ubuntu příkaz-nenalezen nebo se navrhnou pravopisné chyby.
  • z je šikovný doplněk, který sestaví seznam vašich nejčastějších a nejnovějších složek (nazývá je „frecent“) a umožní vám na ně přejít jedním příkazem.

A nezapomeňte, že pokud trávíte v terminálu hodně času, vyplatí se investovat trochu úsilí do jeho vizuální úpravy. Naštěstí je Oh My Zsh dodáván s celou řadou motivů, ze kterých si můžete vybrat. Můj výběr je Agnoster.

Další informace o tématech najdete v mém článku 10 tipů pro Zsh &Triky:

Závěr

Tady to máme: 75 příkazů, doplňků, aliasů a nástrojů Zsh. Doufám, že jste se cestou naučili jeden nebo dva triky, a doporučuji vám, abyste se z grafických uživatelských rozhraní přesunuli do terminálu. Je to jednodušší, než to vypadá, a je to skvělý způsob, jak zvýšit svou produktivitu.

Pokud jsem vynechal váš oblíbený doplněk nebo časově úsporný alias/příkaz, dejte mi vědět na Twitteru.

Chcete ze své sady nástrojů vytěžit ještě více? Podívejte se na Visual Studio Code:

: End-to-End Editing and Debugging Tools for Web Developers od Wiley.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.