75 Comenzi, plugin-uri, aliasuri și instrumente Zsh
Îmi petrec o mare parte din zi în terminal, iar shell-ul meu preferat este Zsh – un shell Unix extrem de personalizabil care are câteva caracteristici foarte puternice. Cum sunt un dezvoltator leneșTM, sunt mereu în căutarea unor modalități de a tasta mai puțin și de a automatiza toate lucrurile. Din fericire, acest lucru este ceva la care Zsh se pretează foarte bine.
În acest articol, voi împărtăși cu dumneavoastră 75 de comenzi, plugin-uri, alias-uri și instrumente care sper că vă vor economisi câteva apăsări de taste și vă vor face mai productivi în munca de zi cu zi.
Dacă nu aveți Zsh instalat pe calculatorul dumneavoastră, atunci consultați această postare, în care vă arăt cum să îl porniți.
15 Lucruri pe care Zsh le poate face din start
Zsh împarte o mulțime de caracteristici utile cu Bash. Niciuna dintre următoarele nu este unică pentru Zsh, dar este bine de știut totuși. Vă încurajez să începeți să folosiți linia de comandă pentru a efectua operațiuni precum cele enumerate mai jos. S-ar putea părea la început mai mult de lucru decât folosirea unei interfețe grafice, dar odată ce ați prins gustul lucrurilor, nu veți mai privi înapoi.
- Introducerea lui
cd
de oriunde din sistemul de fișiere vă va aduce direct înapoi la directorul dvs. principal. - Introducerea lui
!!
va aduce ultima comandă. Acest lucru este la îndemână dacă o comandă eșuează pentru că are nevoie de drepturi de administrator. În acest caz, puteți tastasudo !!
. - Puteți folosi
&&
pentru a înlănțui mai multe comenzi. De exemplu,mkdir project && cd project && npm init -y
. - Executarea condiționată este posibilă folosind
||
. De exemplu,git commit -m "whatever..." || echo "Commit failed"
. - Utilizarea unui comutator
-p
cu comandamkdir
vă va permite să creați directoare părinte după cum este necesar. Utilizarea expansiunii bretonului reduce repetiția. De exemplu,mkdir -p articles/jim/sitepoint/article{1,2,3}
. - Setați variabilele de mediu pentru fiecare comandă în parte, astfel:
NODE_DEBUG=myapp node index.js
. Sau, pe o bază per sesiune, astfel: :export NODE_DEBUG=myapp
. Puteți verifica dacă a fost setată prin tastareaecho $<variable-name>
. - Pipează ieșirea unei comenzi într-o a doua comandă. De exemplu,
cat /var/log/kern.log | less
pentru a face lizibil un jurnal lung, sauhistory | grep ssh
pentru a căuta orice intrare din istoric care conține „ssh”. - Puteți deschide fișiere în editorul dumneavoastră din terminal. De exemplu,
nano ~/.zshrc
(nano),subl ~/.zshrc
(Sublime Text),code ~/.zshrc
(VS Code). Dacă fișierul nu există, acesta va fi creat atunci când apăsați Save în editor. - Navigația este o abilitate importantă de stăpânit. Nu vă bazați doar pe tastele săgeată. De exemplu, Ctrl + a vă va duce la începutul unei linii.
- În timp ce Ctrl + e vă va duce la sfârșit.
- Puteți folosi Ctrl + w pentru a șterge un cuvânt (înapoi).
- Ctrl + u va șterge totul de la cursor până la începutul liniei.
- Ctrl + k va șterge totul de la cursor până la sfârșitul liniei. Aceste ultime trei pot fi anulate cu Ctrl + y.
- Puteți copia textul cu Ctrl + Shift + c. Acest lucru este mult mai elegant decât să faceți clic dreapta și să selectați Copy.
- În schimb, puteți lipi textul copiat cu Ctrl + shift + v.
Încercați să memorați aceste combinații de taste. Veți fi surprins de cât de des vă vor fi de folos.
15 Aliasuri personalizate pentru a vă spori productivitatea
Aliasurile sunt scurtături de terminal pentru comenzi obișnuite. Le puteți adăuga în fișierul ~/.zshrc
, apoi reîncărcați terminalul (folosind source ~/.zshrc
) pentru ca ele să aibă efect.
Sintaxa pentru declararea unui alias (simplu) este următoarea:
alias =''
Aliasele sunt excelente pentru comenzile folosite des, comenzile lungi sau comenzile cu o sintaxă greu de reținut. Iată câteva dintre cele pe care le folosesc în mod regulat:
- Un alias
myip
, care imprimă pe terminal adresa IP publică curentă:alias myip='curl http://ipecho.net/plain; echo'
. - A
distro
aliasdistro
pentru a afișa informații despre distribuția dvs. Linux:alias distro='cat /etc/*-release'
. - A
reload
alias, deoarece se pare că nu reușesc niciodată să-mi amintesc cum să-mi reîncarc terminalul:alias reload='source ~/.zshrc'
. - Un alias
undo-git-reset
:alias undo-git-reset-head="git reset 'HEAD@{1}'"
. Acest lucru anulează efectele rulăriigit reset HEAD~
. - Un alias pentru a actualiza listele de pachete:
alias sapu='sudo apt-get update'
. - Un alias pentru a rula din nou comanda anterioară cu
sudo
:alias ffs='sudo !!'
. - Pentru că sunt leneș, am creat aliasul
y
la comandayarn
:alias y='yarn'
. Acest lucru înseamnă că pot clona un repo, apoi doar să tastez y pentru a trage toate dependențele. Am învățat-o pe aceasta de la Scott Tolinski pe Syntax. - Nu este una dintre cele pe care le folosesc, dar acest alias aruncă în aer dosarul
node_modules
și elimină fișierulpackage-lock.json
, înainte de a reinstala dependențele unui proiect:alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'
. După cum probabil știți, yolo înseamnă You Only Live Once. - Un alias pentru a deschide fișierul meu
.zshrc
pentru editare:alias zshconfig='subl $HOME/.zshrc'
. - Un alias pentru a actualiza lista de versiuni Ruby pe care rbenv le poate instala:
alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
- Un alias pentru a lansa un server în directorul curent (nu sunt necesare pachete npm):
alias server='python -m SimpleHTTPServer 8000'
. - De asemenea, puteți crea un alias pentru a deschide documentația în browser:
alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'
. - Un alias global pentru a direcționa ieșirea unei comenzi către
less
:alias -g L='| less'
. Îl puteți utiliza astfel:cat production.log L
. - Un alias global pentru a redirecționa ieșirea unei comenzi către
grep
:alias -g G='| grep'
. Îl puteți utiliza astfel:history G ssh
. - De asemenea, puteți utiliza funcții pentru a crea alias-uri. Următorul (preluat de aici) creează un alias care adaugă, comută și împinge codul pe GitHub:
bash
function acp() {
git add .
git commit -m ""
git push
}
Există o mulțime de locuri online unde puteți găsi mai multe idei pentru alias-uri. De exemplu, această discuție din Hacker News, sau această postare despre productivitatea liniei de comandă cu Zsh.
15 lucruri interesante pe care le puteți face cu (Oh My) Zsh
Oh My Zsh este un cadru condus de comunitate pentru gestionarea configurației Zsh și vine la pachet cu mii de funcții utile, ajutoare, plugin-uri și teme. Dacă aveți de gând să faceți din shell-ul Z șoferul dumneavoastră zilnic, ar trebui să instalați Oh My Zsh.
Iată cincisprezece lucruri utile pe care Oh My Zsh le poate face pentru dumneavoastră:
- Comanda
take
va crea un nou director și se va schimba în el.take my-project
înlocuieștemkdir my-project && cd my-project
. -
zsh_stats
vă va oferi o listă cu primele 20 de comenzi și de câte ori au fost rulate. - Oh My Zsh simplifică navigarea în sistemul de fișiere. De exemplu,
..
este un alias pentrucd ..
. - În același mod,
...
vă deplasează în sus cu două directoare,....
vă deplasează în sus cu trei, iar.....
vă deplasează în sus cu patru. - Puteți omite
cd
atunci când navigați. Tastând/
, de exemplu, vă va duce direct la rădăcina sistemului de fișiere. - Se acceptă, de asemenea, potrivirea parțială. De exemplu, tastând
/h/j/De
și apăsând TAB, apoi Return, mă duce la/home/jim/Desktop/
. -
rd
este un alias pentrurmdir
șimd
este un alias pentrumkdir -p
. - Puteți tasta
d
pentru a lista ultimele directoare utilizate dintr-o sesiune de terminal. - Puteți apoi naviga în oricare dintre acestea folosind
cd -n
, unden
este numărul directorului. - Completarea tabulatoarelor este o altă caracteristică excelentă. De exemplu, tastând
ls -
și apăsând TAB, veți obține o listă cu toate opțiunile comenzii, împreună cu o descriere utilă a ceea ce fac acestea. Acest lucru funcționează, de asemenea, pentrucap
,rake
,ssh
șikill
. - Tiparea
alias
listează toate aliasurile dvs. curente. - Cu globbing (o caracteristică Zsh), puteți lista fișierele cu o anumită extensie. De exemplu,
ls *.html
va lista toate fișierele HTML din directorul curent. Pentru a include subdirectoare, schimbați în:ls **/*.html
. - Calificatorii glob vă permit să selectați tipuri de fișiere prin utilizarea unor stegulețe. De exemplu,
ls -l **/*(.x)
va găsi toate fișierele executabile din directorul curent și din toate subdirectoarele. - Puteți căuta fișiere în funcție de data modificării. De exemplu,
ls *(m-7)
va lista toate fișierele modificate în ultima săptămână. - Puteți căuta fișiere după mărime. De exemplu,
ls *(Lm+1)
va găsi toate fișierele cu o dimensiune mai mare de 1MB.
.
Utilizarea plugin-urilor pentru distracție și profit
Oh My Zsh este livrat cu o mulțime de plugin-uri. Ar trebui să vă uitați prin acestea și să investiți ceva timp pentru a le învăța pe cele care vă vor ajuta în fluxul de lucru.
Iată trei plugin-uri pe care le folosesc în mod regulat, care oferă o tonă de scurtături și alias-uri utile.
10 Nifty Git Aliases
Principalul git oferă multe alias-uri și câteva funcții utile. De ce să nu le parcurgeți și să încercați să le memorați pe primele zece? Iată-le pe cele pe care le folosesc cel mai des.
g
este un alias la îndemână pentru git
. Acest lucru înseamnă că puteți tasta lucruri precum g clone <whatever>
în loc de git clone <whatever>
. S-ar putea să fie doar două apăsări de taste, dar ele se adună repede.gaa
este un alias pentru git add all
. Îl folosesc pe acesta tot timpul.gb
este un alias pentru git branch
, care va lista toate ramurile din repo-ul curent și vă va arăta pe care vă aflați.gcb
este un alias pentru git checkout -b
, comanda care vă permite să creați o nouă ramură.gcm
este un alias pentru git checkout master
. Aceasta vă întoarce la ramura principală.gdca
este un alias pentru git diff --cached
. Aceasta vă permite să difuzați orice fișier pe care l-ați pregătit pentru confirmare.gf
este un alias pentru git fetch
.gm
este un alias pentru git merge
.gp
este un alias pentru git push
. Pentru a sincroniza o bifurcație a unui repo, ați putea face: gf upstream
, gm upstream/master
, urmat de gp
.glog
este un pseudonim pentru git log --oneline --decorate --graph
, ceea ce vă va oferi un grafic de ramificații git frumos.10 Handy npm Aliases
Principiul npm oferă și completarea unei grămezi de alias-uri utile.
-
npmg
este un alias pentrunpm install --global
, pe care îl puteți folosi pentru a instala dependențele la nivel global pe sistemul dumneavoastră. De exemplu,npmg nodemon
. -
npmS
este un alias pentrunpm install --save
, pe care îl utilizați pentru a instala dependențe și a le adăuga la secțiuneadependencies
dinpackage.json
. Rețineți că, începând cu npm 5.0.0, aceasta este valoarea implicită atunci când se executănpm i <package>
. -
npmD
este un alias pentrunpm install --save-dev
, pe care îl utilizați pentru a instala dependențele și a le adăuga la secțiuneadevDependencies
dinpackage.json
. -
npmO
este un alias pentrunpm outdated
, care va verifica registrul pentru a vedea dacă vreun pachet instalat (sau, anumite pachete instalate) este în prezent depășit. -
npmL
este un alias pentrunpm list
, care va lista pachetele instalate. -
npmL0
este un alias pentrunpm list --depth=0
, care listează pachetele de nivel superior. Acest lucru este deosebit de util pentru a vedea ce module sunt instalate la nivel global fără a vă inunda terminalul cu un arbore de dependențe uriaș:npmL0 -g
. -
npmst
este un alias pentrunpm run start
, un script npm folosit adesea pentru a porni o aplicație. -
npmt
este un alias pentrunpm run test
, care, după cum ați putea ghici, este folosit pentru a vă rula testele. -
npmR
este un alias pentrunpm run
. Pe cont propriu, această comandă va lista toate scripturile npm disponibile ale unui proiect, împreună cu o descriere a ceea ce fac acestea. Utilizată împreună cu un nume de script, aceasta va rula scriptul respectiv, De exemplu,npmR build
. -
npmI
este un alias pentrunpm init
. Acesta vă va pune o serie de întrebări, apoi va crea unpackage.json
pe baza răspunsurilor dumneavoastră. Utilizați indicatorul-y
pentru a automatiza procesul. De exemplu,npmI -y
.
10 Aliasuri Rails/Rake care economisesc timp
Acest plugin adaugă completarea pentru cadrul Ruby on Rails și pentru programul Rake, precum și câteva aliasuri pentru jurnale și variabile de mediu.
-
rc
este un alias pentrurails console
, care vă permite să interacționați cu aplicația Rails din CLI. -
rdc
este un alias pentrurake db:create
, care (dacă nu este setatRAILS_ENV
) creează bazele de date de dezvoltare și de testare pentru aplicația dumneavoastră. -
rdd
este un pseudonim pentrurake db:drop
, care renunță la bazele de date de dezvoltare și de testare ale aplicației dumneavoastră. -
rdm
este un pseudonim pentrurake db:migrate
, care va rula orice migrări de baze de date în așteptare. -
rds
este un alias pentrurake db:seed
, care rulează fișieruldb/seeds.rb
pentru a popula baza de date de dezvoltare cu date. -
rgen
este un alias pentrurails generate
, care va genera codul boilerplate. De exemplu:rgen scaffold item name:string description:text
. -
rgm
este un alias pentrurails generate migration
, care va genera o migrare a bazei de date. De exemplu:rgm add_description_to_products description:string
. -
rr
este un alias pentrurake routes
, care listează toate rutele definite ale unei aplicații. -
rrg
este un alias pentrurake routes | grep
, care vă va permite să listați și să filtrați rutele definite. De exemplu,rrg user
. -
rs
este un alias pentrurails server
, care lansează serverul web implicit Rails.
.
Resurse suplimentare
Principala sarcină a plugin-urilor enumerate mai sus este de a furniza alias-uri pentru comenzile utilizate frecvent. Vă rugăm să fiți conștienți de faptul că există mult mai multe plugin-uri care vă sporesc shell-ul cu funcționalități suplimentare.
Iată patru dintre preferatele mele:
- sudo vă permite să prefixați cu ușurință comenzile curente sau anterioare cu
sudo
apăsând ESC de două ori. - autosugestii sugerează comenzi pe măsură ce tastați pe baza istoricului și a finalizărilor. Dacă sugestia este cea pe care o căutați, apăsați tasta → pentru a o accepta. Un adevărat economizor de timp!
- command-not-found: dacă o comandă nu este recunoscută în
$PATH
, aceasta va folosi pachetul de comenzi neidentificate de Ubuntu pentru a o găsi sau pentru a sugera greșeli de ortografie. - z este un plugin la îndemână care construiește o listă a celor mai frecvente și recente foldere (le numește „frecent”) și vă permite să săriți la ele cu o singură comandă.
Și nu uitați, dacă petreceți mult timp în terminal, merită să investiți ceva efort pentru a-l face atractiv din punct de vedere vizual. Din fericire, Oh My Zsh este livrat cu o mulțime de teme din care puteți alege. Alegerea mea dintre ele este Agnoster.
Puteți afla mai multe despre teme în articolul meu 10 Zsh Tips & Tricks: Configurare, personalizare & Utilizare.
Concluzie
Acum am ajuns: 75 de comenzi, plugin-uri, alias-uri și instrumente Zsh. Sper că ați învățat un truc sau două pe parcurs și vă încurajez să ieșiți din interfețele grafice și să intrați în terminal. Este mai ușor decât pare și o modalitate excelentă de a vă spori productivitatea.
Dacă am omis plugin-ul dvs. preferat, sau un alias/comandă care economisește timp, anunțați-mă pe Twitter.
Vreți să obțineți și mai mult din setul dvs. de instrumente? Consultați Visual Studio Code: End-to-End Editing and Debugging Tools for Web Developers de la Wiley.
.